Saturday, August 28, 2010

Snom management (Part II)

I had a dream last night… for which I sincerely apologize now.

Since long time ago, when I woke up, I’ll turn on the TV and flip through the news channels with hope to hear the news that the Federal Government balanced the budget last night. So I did this morning, only to find out that since 47 years ago, no one is allowed to have a dream on this day. Oh well…

Managing Snom phone environment is not a dream. It takes, however, time and mental discipline to understand what a German mind wanted to say when wrote this manual. And now, I have even bigger problem to explain it in simple words. You see, we, whose native language is different from English, will construct every sentence on our language, translate it to English and say it, write it, whatever. So now I have to “decode” the German idea written on English, to Bulgarian and then back to English. What a mess…

With Snom, we have three core important components:
  1. General Settings - settings which we want to apply to ALL Snom devices in our environment, for example, Language, Time Zone, Date Format, Time Format, VLAN’s, QoS tagging and so on.
  2. Phone Specific Settings – settings to be applied to each individual phone. I do not intend to elaborate on this too much since you don’t want to use it in your OCS/Wave14 environment – I will explain later.
  3. Firmware settings – information about the firmware version that MUST be installed on the unit.
In this example, I will refer to Snom300, but the concept is the same for all models. My domain is drago.ws and I have a webserver service installed on machine with FQDN - provisioning.drago.ws
Let’s put all his together.
Upon boot, snom300 will submit “Vendor Class Identifier” via DHCP Option 60 (“snom300” in this case). In this post, we configured our DHCP server to respond with “Predefined Options” (that is, Options we want to supply to any device that reports THIS particular “Vendor Class”. The reason is – we might have configured DHCP to respond with “Provisioning URL = http://provisioning.drago.ws “ to all snom300 phones, but “Provisioning URL = fox.drago. ws” to all snom370, snom820 and snom870.
Once my snom300 obtains the Provisioning URL, the unit will send HTTP GET request to the URL in format http://provisioning.drago.ws/snom300.htm – snom300 (the vendor Identifier) is appended at the end of the URL. This is by design and for simplicity – you don’t have to worry about encapsulating Option 67 within Option 43, although this is possible and must be used in some cases. I might elaborate on this topic some other day… To reply to this request, we must have, indeed, file named “snom300.htm” in the rood of our webserver with the following content:

<?xml version="1.0" encoding="utf-8"?>
<setting-files>
<file url="https://provisioning.drago.ws/general.xml"/>
</setting-files>

We have just told the unit to look for file named “general.xml” at this URL – https://provisioning.drago.ws. First – note that I want any further exchange between the phone and the webserver to be encrypted and second, told the phone what is the URL. This is because I could redirect the phone to a different URL if I had reason to do so.

Look at this sample “general.xml” file content:

<?xml version="1.0" encoding="utf-8"?>
<settings>
<phone-settings>
<settings_refresh_timer perm="RW">3600</settings_refresh_timer>
<language perm="RW">English</language>
<web_language perm="RW">English</web_language>
<tone_scheme perm="RW">USA</tone_scheme>
<timezone perm="RW">USA-5</timezone>
<date_us_format perm="RW">on</date_us_format>
<time_24_format perm="RW">on</time_24_format>
<ntp_server perm="RW">10.0.0.91</ntp_server>
<ntp_refresh_timer perm="RW">86400</ntp_refresh_timer>
<retry_after_failed_register perm="RW">60</retry_after_failed_register>
<codec_tos perm="">184</codec_tos>
<signaling_tos perm="">184</signaling_tos>
<update_policy perm="RW">auto_update</update_policy>
<firmware_interval perm="RW">480</firmware_interval>
<firmware_status perm="RW">https://provisioning.drago.ws/firmware.xml</firmware_status>
</phone-settings>
</settings>

Line by line breakdown:

<settings_refresh_timer perm="RW">3600</settings_refresh_timer> - 3600 is the number in seconds the phone should request, obtain and apply this file again, in case we want to push any change of settings.
<language perm="RW">English</language> - Language to be applied to the phone display
<web_language perm="RW">English</web_language> - Language to be used for the phone's web interface
<tone_scheme perm="RW">USA</tone_scheme> - DTMF tone scheme to be applied to the phone
<timezone perm="RW">USA-5</timezone> - Time Zone (Eastern Standard Time in this case)
<date_us_format perm="RW">on</date_us_format> - Date format
<time_24_format perm="RW">on</time_24_format> - Time format (US or "the rest of the world")
<ntp_server perm="RW">10.0.0.91</ntp_server> - IP address or FQDN of NTP server to be used by the phone for the phone clock
<ntp_refresh_timer perm="RW">86400</ntp_refresh_timer> - 86400 is the number in seconds before the next time sync.
<retry_after_failed_register perm="RW">60</retry_after_failed_register> - interesting parameter that forces the phone to reboot itself when registration fails for number of seconds - 60 in this case.
<codec_tos perm="">184</codec_tos> - Here we instruct the phone to tag the RTP traffic with DSCP Option 46 (Expedited Forwarding) QoS Type Of Service.
<signaling_tos perm="">184</signaling_tos> - same as the above, but tagging SIP (signaling) traffic.

The last three lines require special attention.

<update_policy perm="RW">auto_update</update_policy> - here we tell the phone to apply the firmware update automatically without user interaction/approval
<firmware_interval perm="RW">480</firmware_interval> - Hre we tell the phone to check every (480 in this case) minutes if new firmware is available.
<firmware_status perm="RW">https://provisioning.drago.ws/firmware.xml</firmware_status> - ...and finally, where the phone should check for the most current firmware the admin wants to apply.

To wrap up, here is an example of work flow:

We unbox new unit. Connect it to the network and powered it. The phone tells DHCP which model it is. DHCP returns info where the phone should go first for settings. The phone downloads the settings, applies (time, language, firmware URL etc) and…

…reads “firmware.xml” file with the following content:

<?xml version="1.0" encoding="utf-8"?>
<firmware-settings>
<firmware perm="">https://provisioning.drago.ws/300/snom300-OCS-8.5.3-SIP-f.bin</firmware>
</firmware-settings>

Here we just told that the phone MUST have version “snom300-OCS-8.5.3-SIP-f.bin” currently installed. At this point, the phone will compare the current FW version to the one in the “firmware.xml” and now we have two possibilities – the firmware on the phone is the same (the counter is reset and new cycle of 480 minutes begins), or the firmware does not mach. If the phone is not on call or off-hook, it will reboot, download the new firmware, apply it, read the general.xml and firmware.xml and register if provisioned with a valid account.

I placed the .bin file in separate folder - “300”, in order to keep some consistency i.e. firmware for model 300 is located in folder “300”, the one for model 870 in folder… “870” and so on.

Next week we will discuss where the parameters like "date_us_format" - come from and how we can add additional parameters to our provisioning files to get the most of the manageability story of Snom VoIP phones.

Tuesday, August 24, 2010

Managing Snom endpoints in your environment

Managing any VoIP endpoint could be a nightmare or a pleasure, depend of how you view it. Pretty much as Group Policy – you might not use it at all and the environment will still work, although every time a change must be made, one needs to touch every device. Or… make a single change on central location and have it applied at once. Snom endpoints are no exception. Being a multi-platform, multi-protocol device, it often confuses the administrator/enduser with the rich set of features and… the end result could be either mismanagement (lack of management, that is) or over complication. Based on my experience, I intend to make series of posts describing some of the methods and procedures necessary to have one healthy Snom environment.

Snom phones rely on provisioning server, essentially an http or https server that responds to a particular request with specific xml file(s), which are later applied to all phones or a particular one, thus managing settings, user account and so on. Before we go in to details about the format and the content of the provisioning files, we must answer perhaps the most important question – how Snom phone will “know” where to go to get the provisioning information?

Snom uses DHCP Option 66 (TFTP Server Name) to obtain information of the provisioning server URL. One question comes immediately to mind – “Ok… we are not booting from TFTP, why using this option in first place. And, I already use it for other devices on the network… am I doomed?”

My answer to the first question – I have no idea! Perhaps Snom ran out of “options”? My goal is, however, to show you an alternative way to utilize this option and have central management solution in place.
 
As many other well designed network devices, Snom endpoints will submit Option 60 (Vendor Class Identifier) in the in the DHCP Discovery broadcast. The goal is – if the DHCP server understands the option and the Scope/Server options are properly configured, the DHCP response will contain a very specific values meant for the requester (Snom) only. With other words, you could already have an Option 66 set for some purposes and still supply your Snom phones with unique value (namely “Provisioning URL”).
 
Before we precede with the configuration steps of our DHCP server, there are few important notes:
  1. Each Snom model submits the word “snom” (lower case!) and the model number in a single string i.e. snom300, snom320, snom360…snom870 and so on as “Vendor Class Identifier”. I got to think today - why not only “snom” so that we will have to configure the entire shebang one time only? Well, model 300 (with its simplicity), compared to 870 with the large color touch screen display, is like Ford Fiesta next to Cadillac Escalade. And… Snom 8xx series can show live stream (security camera for example) on the display… bottom line - different features require different provisioning options.
  2. This example is for Microsoft DHCP server. If you are Linux guy, the assumption is that you already “know it all” and/or your Ubuntu or SUSE or whatever makes you hot has configured itself already, fearing the possibility to face you… or Chuck Norris…
  3. The screenshots are from DHCP mmc on Windows 2008 R2
On your Microsoft Windows DHCP server:
Right click on IPv4 and select “Define Vendor Classes”

In DHCP Vendor Classes window, click Add button.

In New Class window, populate as shown and click OK button.

Repeat the above steps for each Snom model in your environment.

Right click on IPv4 and select “Set Predefined Options”

On “Predefined Options and Values”, click Add

Select snomXXX model and click Add

In Options Type windows, populate the fields as shown:

Click OK and OK again.

***by setting this prerequisites, we will send the provisioning URL via option 66, BUT encapsulated in Option 43 i.e. different way compared to DHCP Standard Option 66.

Now right click over the Scope Options (of the scope your phones are on) and select “Configure Options”.

Click “Advanced” tab in “Scope Options” window and select snomXXX from “Vendor Class” dropdown menu.

Tick “66 Option 43”…

…and enter the provisioning URL of your Provisioning/Settings Server.

***This part can be very tricky and need a little explanation. Notice that the box has three sections – Data, Binary, and ASCII.

  1. Don’t worry about Data, nor Binary (unless you hate your life)
  2. Click under ASCII (on right of the “.”
  3. Backspace one to remove that “.” Or you will get your phone in some sort of loop (I need to talk to the guys in Berlin about that)
Now type the URL of the provisioning/settings server as continuous string (http://provisioning.drago.ws is currently shown

Click “OK” and you are all set

In the next post of this series I will explain how exactly Snom Provisioning works and what we can do with it.

P.S. Have I mentioned that Snom300 works just fine with Wave14?

Saturday, August 21, 2010

Igor! IT'S ALIVE, IT'S ALIVE!!! (At least Dr. Frankenstein never signed NDA and could share the secret… if he wanted to.)

Georgia Military College proudly announces successful implementation of the next generation of Microsoft’s communication and collaboration platform – code name “Wave 14” in Production environment! We are now moving users from OCS 2007 R2 to Wave 14 faster than the Congress approval rating is going down… which means – fast as we can!

I am very excited to see the product evolving in positive direction. The new features are not randomly thrown here and there (because “Cisco have it”), but rather carefully crafted based on end-user needs and feedback. I am confident that Wave 15 will be a complete Enterprise solution simply because more and more companies today see the added value of UC to the business process, which means more and more feedback will flow to Microsoft…

Indeed, to talk about the deployment steps and post screenshots now will be (most probably) irrelevant, since this is Beta and any changes can occur between now and RTM. I strongly encourage my colleagues from the EDU sector to evaluate the solution as soon as it becomes publicly available. It is a live change experience, believe me. Those who hate you will hate you even more, but “undecided” will join you faster than Arlen Specter went Democrat…

Friday, June 4, 2010

Summer blues

Ah, the summer is here… Actually, summer come in Milledgeville after the last day of winter. This is now we do it here – by flipping the switch of the heat pump from Hot to Cold. I was trimming the lawn while ago when remembered what good friend of mine told me when I come in USA – “When you don’t have to cut your grass and assemble your furniture by yourself – means you are rich and successful” and I ran back to write this down. Anyway, while I am on the computer…


Today is the first day of the “summer work schedule”. Some colleagues in the EDU sector know what I am talking about – half days on Fridays. Nice outside, quiet… kind of invitation to relax and think about past, present and future. I was flipping through my calendar and found that last year on this day we completed our OCS EV deployment and issued an order for disconnection of our PSTN lines. Was I scared? No. Was I under stress – big time. I knew that the timeline is too short and the lack of training will stress the folks even more and yet, if you ask me will I do it again, the answer is - Yes! As I shared in earlier posts, I take my job and role in the college with pride and determination because in my opinion the role of IT today went long way compared to 10-15 years ago. The time of the “computer gigs” is long gone. IT professionals run the operations today, like it or not. What would happen if one department in the college is closed today? Ohm, they will have twice as much to do tomorrow. Now, what would happen if IT is not operational? You got the point.

While SEO is the brain of the operations with his/her oversight of the present and vision for the future, IT is the heart. The stories of soldiers lost limbs in combat a year ago and swimming, running, hiking and claiming today never stop to amaze me. How they manage to do that? With brain and heart -the two key components. In this regard, I don’t understand how some colleagues can lay low and get by with “why should I do it if I don’t have to”…

We jumped in the unknown exactly one year ago. We worked hard to overcome the problems and took the challenge to learn and develop. This morning one of the biggest opponents of the UC in the college stopped me in the corridor and told me “I am sure my husband called, but I did not received missed call notification. Not a big deal, just… hope everything is all right with the system”. Got it? The people finally took ownership over the system!

I can now die one happy sysadmin.

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 ocsfe01.domain.com, the line should read: “lc:appUri=http:// ocsfe01.domain.com/alert”

3. Rename the file to alert.am

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 ocsfe01.domain.com 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.

Thursday, January 28, 2010

UC@GMC - Exchange Unified Messaging

If Enterprise Voice is the most efficient way to achieve savings while increase productivity, Exchange Unified Messaging is the most beautiful part in the entire Unified Communications concept.

Georgia Military College currently employs Exchange 2007 as enterprise email solution. It have been said enough already of the advantages of the Exchange server – no need to repeat it here. There is, however, a role called Unified Messaging, which contributed a great deal to our Enterprise Voice solution. Remember the $3.00 per Voice Mail box with our former provider? Multiply this by the number of phone lines/users and a here where a good chunk of MRC goes in some cases.

With Exchange Unified messaging, a voice mail is no longer the simple registration if the fact someone called, said something and left a call back number. Now we have a visual representation of the call arriving via email. We can play it on our computer, listen it over a phone and once we upgrade to Exchange 2010, read it. That’s right; Exchange will email us a transcript of the voice mail. How about that!



Now, I don’t know about you, but I enjoy every bit of the ultimate visualization of the event. I can click to play the message on my PC speakers, to reply with email, or click to start IM session or… click to initiate a phone call. The common denominator here: “click”. No time wasted.

The other great feature of Unified Messaging role is Auto Attendant - voice recognition feature which can do wanders for your work flow in any area. It is still a running joke around the college what I said during the presentation of the Unified Communication concept – “English is my fourth language and if this system understands me – it is a darn good system!”

Here is one example:

EDU folks knows already how important is the communication between faculty and students in meaning of reachability. In typical scenario, the kid would know the name of the Faculties but not their direct numbers. They would call any number associated with GMC (typically the last number from which someone from GMC called) and the run around begins… frustrating for both sides. We Provisioned Auto Attendant to be a single point of reach for all faculty – one number is distributed in the beginning of the quarter to all students. The AA is “narrowed” to a list with Faculties only, and the caller can simply speak the name and be connected.

Another example is how we handled the K12 part of the school. The teachers do not have office, but rather the classroom is an “office” itself. During the planning phase we determined that having a phone in a classroom is not a good idea since it will disturb the learning process. However, while we were evaluating the current procedures, this is what we discovered:

A parent would call the school secretary and leave a message for a teacher, who in return would check several times throughout the day “Is there something for me?” and then handle it. Another, although insignificant for someone part, would be the missing indirect interaction with the caller, meaning of intonation and sometime anger etc. In our case, we decided to provision out K12 teachers with mailbox without actually participating actively in the call flow i.e. a phone or DID assignment. Now the school secretary forwards those calls immediately to the teacher’s voicemail, which in turn is delivered via email immediately to the user.

The possibilities are endless and UM role could handle wide variety of scenarios – it require good knowledge of the capabilities (and limitations) of it and patience. Patience to listen what your users need, not what “you think they need”.

Saturday, January 16, 2010

UC@GMC - The endpoints

Ah, the touchy subject… Let me tell you what I think.

Microsoft have the leverage to learn from the best when comes to VoIP. OCS EV proves every day to be a valuable alternative to the Big Boys (and big money) solutions. I know at least one place where Nortel slashed their yearly maintenance fees 60% in desperate attempt to “distract” the College from moving to Microsoft UM and… yet this same college uses Exchange as email solution, OCS as IM solution, SharePoint as collaboration solution and so on. What would be the logical choice for VoIP in this case?

OCS on its way to mature as complete solution and yet Microsoft repeated one more time a common in the past mistake – looked in the mirror and said “yeah, we are the biggest and we know better” when comes to the endpoints. It is so typical in the IT world when one programmer write piece of code and another programmer goes like “Man, this is beautiful!” while for the rest of the world this still looks like Sumerian. I have a feeling the hardware part of OCS never left the corporate presentations until hit the market. You see, EDU sector is different. Say, in Geico, you can give the employee a banana, tell him - “This is how you make a phone call from now on” and that’s it. In EDU, we will form a committee and two focus groups to discuss “Is this a phone and can we use it in our college?”

There are three main objectives during the planning phase:  
  • To reduce or offset completely the stress when pushing major changes in the work environment
  • To complete the deployment with the lowest TCO thus achieving fastest ROI
  • To achieve maximum savings of MRC
Back in the days, when I told my boss that we need to place a $500 phone on the desk of an entry clerk that makes less than a $20,000 per year, he sent me to take a drug test and began listen only when I introduced endpoint for less than $80. Besides, Snom 300 series looks like a phone, feels like a phone and works like a phone.
 
We did some ‘physiological” tests. Catalina devices were introduced to different categories in our college. Needless to say, IT folks absolutely love it; the CIS faculties were OK with it and the rest – “Take this thing away from my desk, now!” When Snom 300 was introduced, all we got is “Ah, I have new phone.” And of course, with Tanjay we got “Can I keep it” and the answer is “No! It is too expensive and you will never use even 10% of the features.”
 
All our executives have Tanjay not because it looks cool but because it introduces features unseen before. It is simply the ultimate collaboration tool one could have on its desk. Let say the CFO calls branch office Director to discuss a budget request from the Dean. At some point the Director will say – “You know, I see the Dean is available, let’s escalate this call to a conference…” and all this from a phone device. Beautiful!
 
Down on the floor, all we have is “Georgia Military College, Business Office. How may I help you?”

Friday, January 8, 2010

StartCom certificate- why it works

I decided to try StartCom UCC certificate for my test OCS 2007 R2 Edge server. For my big surprise - it works!!! Just found why: http://www.istartedsomething.com/20091010/microsoft-free-root-certificate-authority-windows One tricky part, though – your federation partner must have this update: http://www.microsoft.com/downloads/details.aspx?familyid=19C4AE49-1127-4537-9E91-35F81D20BCE6&displaylang=en

Happy Federation

Wednesday, January 6, 2010

UC@GMC - Connecting to PSTN

Next to come is the connection of your internal OCS environment to the world.


I am puzzled every time when see folks working hard to integrate existing VoIP platforms with OCS. For me this does not make sense – adding one complex system on top of another, thus doubling the chance of disruption the normal business operations big time if (or when) something goes wrong. Indeed, one cannot “pull the plug” of the old system at once since migration to new hardware (endpoints that is) for a big number of users can’t happen overnight, and yet… I see how some colleagues want to have 100% working test environment for demonstration and justification purposes (indeed full blown UC is a powerful convincing tool), but planning to run it in production is insane. Not that it will not work; just the overhead is too much…

Actually, if you have an existing hosted PBX (analog or digital incl. VoIP), by carefully planning the migration steps, you can move your users to Microsoft UC platform working your way from department to building to campus to DLC. As I mentioned before, GMC had PBX (sort of), hosted on our provider premise. You might find interesting the fact that due to the stubbornness of our provider, (refused to release the phone numbers for porting), we changed ALL phone numbers throughout the State of Georgia. You see, reducing the MRC up to 80% could be a very effective argument of otherwise No-No in the EDU sector.

Those familiar with OCS know already that the platform is very tight in meaning of what can and cannot connect to it. Plus, Microsoft adds many proprietary SIP messages (needed for different parts of UC) and so, we have native conflict(s) when comes to SIP protocol - not that MS does not comply, sometimes follows the RFC “too strict” I might say. Long story short, there is role called Mediation Server – a role necessary to make the connection between “standard” SIP (device, provider etc.) and the internal OCS roles. Careful examination if the traffic in and out of the “external” interface facing the gateway shows just a standard SIP and nothing else. This is how I got the idea about SIP Trunking with VoIP provider, BTW…

There are not so many options when comes to connecting OCS to PSTN. We can use Gateway or Trunk (although some use the term “trunk” to describe the physical connection between Mediation and Gateway). In any case, some sort of phone service – analog (POTS), BRI (ISDN), T1 (PRI), E1 (Euro PRI) and so on, must terminate on your premise to a gateway (analog or digital) and this gateway will convert it to SIP and RTP thus making it “understandable” for Mediation and further more OCS. Since we did not have any PBX or other device, GMC had the leverage to test and consider any scenario. So, I was playing with Audiocodes analog gateway and at some point I was like “Wait a second – this traffic looks a lot like my VoIP phone’s traffic at home”! Quick call to CallCentric (VoIP provider for my test account), revealed an ugly truth - that they do not support Sip over TCP. Took me about a week to find a US based provider who agreed to test SIP over TCP trunk with GMC – www.boadvox.com

Here I need to say something – I considered Microsoft certified partner first (no names) and even ran quick interop test which worked beautifully. One problem though – even they offered “local” DID’s i.e. Milledgeville numbering scheme, the billing Local Calling Area was Atlanta and so, when someone from Milledgeville calls (478) 387-xxxx (local number), the caller would be billed LONG DISTANCE charges because the termination of the trunk is actually Atlanta. Bad idea! The local phone companies fall from the band wagon right away - $1,300 for a single T1 PRI (23 voice channels) or $56.52. What were they thinking!!!

Back to Broadvox… a concurrent call (single trunk) cost ~ $13 - $15 (depends of the type of the contract), and so our Milledgeville campus trunk (40 concurrent calls) cost us now… a little over $500. Can’t beat this. Basically, we accept SIP and RTP traffic from set of IP addresses (a distributed failover) and send traffic to FQDN (load balancer). Of course, one might say “SIP trunk is a single point of failure” and this is correct. However, we presented the Pros and Cons of every option to the Boss and the ultimate decision was to achieve maximum savings while recognize the risks.