A lot of administrators out there using Nortel CS1K are experiencing the same issue that I am about to describe.
A few days ago a user complained that when someone phones him the call goes down after being diverted to voicemail. So, I decided to phone him and see if I could reproduce this issue. At first the user picked up and we had a normal conversation, no interruptions, good quality, everything as expected.
When I phoned him again, the call got diverted to voicemail (the user didn’t answer as per my request) and I received the usual “please leave a message for...” message. Approximately 5 seconds into my message I suddenly got the famous “are you still there?” message as if I wasn’t even speaking!
After some discussion with Nortel, they asked me to check the following registry key in our UM servers and report back my findings:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Speech Server\2.0\WireCodecList
Like probably most people on at least Exchange 2007 SP1, that key had the following codec’s list:
Nortel then asked me to change it to:
and restart the Microsoft Exchange Speech Engine service. So I did, and now it works fine!
My concern is why was it failing just to this user? Although there could have been more users affect that I simply wasn’t aware of...
According to Wikipedia, “G.711 defines two main compression algorithms, the µ-law algorithm (used in North America & Japan) and A-law algorithm (used in Europe and the rest of the world)”. Maybe the fact that our CS1K is in the UK caused this discrepancy and the problem we were experiencing. But still, why was it working for most people?! I am still working with Nortel to figure this out...
In Exchange UM, a codec (that converts an analog voice signal to a digitally encoded version for VoIP or to store it as an audio file) is used to store voicemails. But before that, another codec is used between the PBX and the UM server.
In Exchange 2007 SP1, UM servers can accept the following codecs from a PBX:
- RTAudio16KHz - Microsoft Real-Time audio codec that runs at 16 KHz and is used for wide bandwidth applications of Microsoft Unified Communications platforms;
- RTAudio8KHz - Microsoft Real-Time audio codec that runs at 8 KHz and is used for narrow bandwidth applications of Microsoft Unified Communications platforms;
- G711 µ-law - typically used for telephony in North America and Japan;
- G711 A-law - typically used for telephony in Europe and other parts of the world;
- G723.1 - typically used for VoIP telephony.
RTAudio is available only is UM is integrated with Office Communications Server 2007 (or superior), the UM dial plan configured as a SIP URI-type dial plan and the call answering codec on the dial plan to WMA. If OCS is not deployed, the dial plan is usually set to Telephone Extension and not SIP URI, which is my case.
G.711 is a well know standard developed for use with audio codecs. It uses two main algorithms, the µ-law algorithm (used in North America and Japan) and the A-law algorithm (used in Europe and other countries).
Normally, UM and PBX can offer both the G.711 and G.723.1 codec. However, UM will choose its preferred codec based on the WireCodecList key in the registry, mentioned above. Microsoft recommends to change the configuration on the PBX and not on this file as the UM server will determine the codec that is being used by the PBX and select the appropriate codec from the list.
Then, we have the codec used to store the voicemail message. Here, three codecs can be used:
- WMA – 16 bit compressed file
- GSM 06.10 – 16 bit no compressed file
- G.711 PCM – 8 bit compressed file
Each audio codec has its advantages and disadvantages. Just as a quick overview:
- WMA creates .wma audio files;
- GSM/G.711create .wav audio files;
- WMA is the default due to its sound quality and compression properties;
- GSM/ G.711 were included because of their ability to support other types of messaging systems.
As this wasn’t the issue, I will leave this for a later post. For more information, please check Size of Exchange Server 2007 UM (Unified Messaging) messages or the Microsoft UM documentation.
Hope this information helps!