Sunday, February 28, 2010

Distinctive ring tone with OCS

I tested the script in lab environment. Further testing might be needed before deployment in production to assure proper service.

Since Snom phone is SIP phone, interoperability with OCS R2 can be achieved only after installing special firmware. What is interesting here – while OCS firmware adds additional components, the standard SIP functions are preserved and in some cases we can take advantage of this fact and add additional functionality to our OCS environment.

A colleague asked me if would be possible to have the phone ring with distinctive tone when a call ordinates from PSTN i.e. external call. In pure OCS environment this is not possible since we don’t have Alert-Info header supplied in INVITE, as defined in RFC-3960. Even if we had it, thou, MOC and Tanjay would not respect it anyway. Snom, on other hand, will. Look under Preferences -> Alert-Info Ringer:

Here we can set a specific ring tone depending of the value of Alert Info header. In our case (GMC), we set Ringer 9 as default ring tone via provisioning; leaving the default Ringer 1 is sufficient. But how to supply the value and trigger the event? Here comes the power of OCS Frond End scripting and MSPL - by capturing the ordination of the call (via Mediation Server) and inserting Alert-Info header in the INVITE. All we need is to create .am script and configure our front end server to use it. Here are the steps:

1. Since we need web server, I used the frond end’s IIS to host the script. In your wwwroot, create text file. Open it with Notepad and enter the following content:

2. Edit the line: “lc:appUri=http://your_FQDN_here/alert” to reflect your environment i.e. if your front end server’s name is, the line should read: “lc:appUri=http://”

3. Rename the file to

4. We will use Front End Scripts node to add our script. Go to Properties

5. In the Front End Scripts window, click Add

6. Populate the fields as shown (of course, replace with your FQDN

7. Click OK to save.

8. The script will be added on the bottom of the list. Use UP button to move it above “UserServices”
9. You should see the script listed as enabled and running.
How it works:

The script monitors the USER-AGENT header to detect if the call arrives from the Mediation server: “if ( ! ContainsString( userAgent, "mediation", true )” and if true, adds the needed header: “AddHeader( "Alert-Info", "Alert-Info:;info=alert-external" )” in format which Snom will understand. The phone then is aware of the value – “alert-external” and applies the selected ring tone.

MSPL is very powerful tool and I am sure you can experiment and add other functionalities specific to your environment.

Saturday, February 27, 2010

Just random thoughts

Unified Communications is dangerous! Like methamphetamine - once you try it, can’t stop thinking about it. My name is Drago and I am addicted to UC! That’s it. I said it!

When it comes to endpoints, the Great Chinese Wall looks like a sand castle compared to the stubbornness of Microsoft to collaborate with other manufacturers. To some extend I can understand – Telephony is essential part of the Workflow and breaking this element will disrupt or break the Workflow itself. In this regard, having endpoints that perform exactly as expected is important – last thing Microsoft wants is bad name of the platform because of underperforming phones. It is a war out there and the competition will jump on every opportunity to throw mud wherever sticks or not. My gut feeling tells me that Microsoft is (for many people yet to be seen, though) a player in the VoIP market already and despite the big words about interoperability and openness, backstabbing and dirty tricks is (and always will be) part of the corporate voodoo… As we say in my country: “If you don’t want the cat to drink the milk, cover the pan”. And so Microsoft does…

Yes, we have Tanjay, Catalina, Oak – very well crafted in means of design and performance – no arguments here. When I wrote in previous blog that I have a feeling the developers never left the lab and corporate meetings when working on the OCS phone line, I meant - the disconnect between the concept and reality. As IT person, I look for logical reason behind everything. No, your computer did not decide to show pop-ups on its own – you did something that shouldn’t have beforehand! You phone does not ring because you set “Do Not Disturb” as status, not because “This system sucks”. Even if the common sense justifies the logic of presence and call flow, one cannot imagine the frustration of having to deal with perceptions every day, all day! One manager of department insisted the phones must ring even if the person is off for the day. Another, to have every phone ring with different ring tone, so he can determine who is at his desk - from his office. Come on! I am just a Bulgarian, not a magician!

If you read this, I am sure by now you already asking yourself “Ok… that is your point?”

I know our deployment will make a lot of people to roll eyes, and yet it is true – we are using non-certified Snom endpoint. 90% of all phones are Snom300. In 100% OCS EV environment, 11 months already! Not a single PSTN line (except the security systems and the elevators) and I blog about UC, not posting job resume somewhere… because it works. Only with Snom I was able to satisfy some of the weirdest requirements of our Departmental Managers… Everybody that attended a corporate meeting knows the feeling of being a “scapegoat” where all others have “legitimate” reason to off-load their failures and channel it toward “the IT and their VoIP system”. The people hate changes by design (intelligent or not) and the best way to fight this is to have the flexibility to fight back with “OK, you got what you want, now shut up” and believe me, nothing sounds sweeter than when the President say “I don’t want to hear any more The VoIP system does not work. Works for me just fine… live with it”. To get there, however, you need to have the right tools at your disposal…

My point is – Snom went above and beyond to develop firmware that actually works with OCS. It does have its small problems, which we solve on fly when discovered, and I just dream of a perfect world where Microsoft would partner with them in joint effort to offer greater variety, flexibility and price ranges. After all, we do VoIP not only to satisfy our own vision for the feature, but for down to earth reasons as increased productivity, reduced MRC and last, but not least, fast ROI.

In my next post, I will offer a solution as of now one can use Snom phones to ring it with distinctive ring tone depend of where the call ordinates – PSTN -> OCS or within the organizations.