Lync Server 2010 & Mitel Direct SIP Connectivity

I recently performed a direct SIP trunk integration between a Mitel SX3300 PBX and Microsoft Lync Server 2010. Mitel have published a technical reference for direct SIP connectivity with Lync Server 2010, however this predominantly focuses on the configuration of the SIP trunk from the Mitel side as you would probably expect and the technical reference does not go into detail about what configuration is required in Lync Server 2010 in order to establish connectivity. The following information focuses on the Lync Server 2010 configuration for direct SIP connectivity and does not discuss the Mitel SIP or ASR rules required when placing calls through the 3300 gateways, this information focuses obtain the configuration of PSTN gateways in Lync Server 2010 for Mitel integration only.

1. Obtain Mitel technical reference SIPCoE 11-4940-00161 from the Mitel portal if you have an authorised account or from your PBX vendor. Alternatively you can view the configuration PDF file from here. Although this information is written specifically for MCD 4.2, the SIP trunk integration will work with lower software revisions, you will however notice some of the SIP configuration options detailed in the PDF will not be available in lower revisions.

2. Once the Mitel side of the SIP trunk has bee configured, connect to your Lync Server 2010 front end and open the topology builder. Once the topology builder has opened ensure that you have the mediation server role installed within your topology as this will be required when configuring Lync users for enterprise voice. If this feature is not installed, proceed and install the mediation server role before continuing onto step two.

3. Once the mediation server role is installed, navigate back to the topology builder and expand the “Mediation Pools” container. You should now see the FQDN of the server that holds the mediation role. Right click this object and select “Edit Properties” to invoke the properties window. Within the properties window check the “Enable TCP port” option and then continue to set the TCP listening port to 5060 as for the Mitel SIP trunk side the target TCP port for connectivity is 5060, so we need to ensure our mediation server is listening for requests on this port. An import thing to note here is that if you have any trusted applications, such as RCC integration or Cisco CUPS that already utilise port 5060 you will need to change the mediation server listening port and the destination TCP port of the Mitel SIP trunk to ensure the integration works correctly. If you are in this scenario I recommend setting the mediation server listening port to 5068 and also setting the target TCP port on the Mitel SIP trunk to 5068. The following screenshot illustrates the mediation server role configuration that is required.

Mediation Server Listening Ports 300x47 Lync Server 2010 & Mitel Direct SIP Connectivity

Once the port has been set, continue and publish the topology to the CMS. Once the publishing has completed, either restart your front end server or restart the mediation server service. This is required so that the new mediation server port is enabled and listening for connections on the front end server. To confirm this, open a new command prompt window and type “netstat /an” and press return and you should now see the server listening for connections on port 5060 or port 5068 depending on your scenario.

4. Once the mediation server is now listening on the correct port, the required PSTN gateway can be added to the topology. In the topology builder right click the “PSTN Gateways” container and select “New IP/PSTN Gateway”. In the gateway dialog box enter the IP address or FQDN of the Mitel PBX you are establishing the SIP trunk to and then proceed to set the listening port to 5060 and the transport protocol to TCP. For reference the Mitel side of the SIP trunk will only accept inbound connections on TCP port 5060. Once this has been completed, click OK and return to the topology builder and then publish the topology. The following screenshot details the PSTN gateway configuration.

New PSTN Gateway 300x186 Lync Server 2010 & Mitel Direct SIP Connectivity

5. In the topology builder window expand the “Mediation Pools” container, right click the FQDN of your mediation server and select “Edit Properties” to invoke the properties window. You should now see the IP address or FQDN of your Mitel PBX as a PSTN gateway that can be associated with the mediation server. Highlight the created PSTN gateway in the unassociated gateways field and then click “Add” and click OK. Following this, continue and publish the topology before continuing to the next step.

6. Open the Lync Control Panel and navigate to Voice Routing -> Trunk Configuration and then click New -> Pool Trunk, when prompted select the PSTN gateway you have just created. For the direct SIP connectivity to work with Mitel systems we need to disable RCTP and refer support as Mitel does not support this functionality, you will note this is detailed in the Mitel technical reference on the final page of the document. Mitel do recommend enabling media bypass, however in Lync Server 2010 to achieve media bypass enablement with refer support and RCTP functionality disabled we need to perform some specific steps. Proceed and uncheck the “Enable refer support” and “Enable Media Bypass” boxes in the pool trunk window and then click OK. When back in the main trunk configuration window click “Commit” and then select to commit all changes. The following screenshot illustrates the aforementioned configuration.

Media Bypass Configuration Lync Server 2010 & Mitel Direct SIP Connectivity

7. Once the gateway has been added in the trunk configuration open the Lync Server Management Shell and run the following PowerShell commands to disable RCTP functionality. In the below example my PSTN gateway is called mitel.domain.local, please replace this FQDN with your own Mitel system when running the following commands.

Set-CsTrunkConfiguration -Identity PstnGateway:mitel.domain.local -RCTPActiveCalls $false -RTCPCallsonHold $false

Set-CsTrunkConfiguration -Identity PstnGateway:mitel.domain.local -EnableSessionTimer $true

8. Once the PowerShell commands have been executed return to the Lync Control Panel and navigate to Voice Routing -> Trunk Configuration. Select to edit your pool trunk PSTN gateway and in the configuration window check “Enable Media Bypass” and then click OK.  When back in the main trunk configuration window click “Commit” and then select to commit all changes.

The configuration of the SIP trunk is now complete, once a dial plan, voice policy, PSTN usage and route have been configured you should now be able to call between Mitel and Lync users and also pass calls to the PSTN once the Mitel ASR rules have been configured.

AudioCodes Mediant 1000 MSBG – Audio Quality Issue

So it’s been a long time since I last posted an article on the site, Microsoft Lync Server 2010 has been keeping me busy to say the least. During a recent deployment I experienced an issue with audio quality for both inbound and outbound calls when utilising an AudioCodes Mediant 1000 MSBG gateway running firmware version 6.2. The best way I can describe the problem was that when the call was answered it sounded like the person on the other end was stood next to a jet engine, there was a lost of noise and loss on the connection. When running  a syslog on the mediant, in debug level five, and reproducing the issue I could see the following events:

SRTP Error – failed decrypting RTCP packet: authentication failure (2) [Code:3700e] [CID:30]
SRTP Error – failed decrypting RTCP packet: wrong SSRC (11)
SRTP_PCK_DROP_AUTH:1  [Code:5004] [CID:30]
ErrMgs=9 Invalid RTP version (= 0)

When initially looking at these errors I was thinking either a coders or certificate issue could be causing the problem. This was actually incorrect, after some investigation it turned out that my TDM Bus Settings were not configured with the correct LAW attributes. To resolve the issue I performed the following:

1. Log in to the AudioCodes Mediant 1000 MSBG device.

2. On the left hand side of the screen select the “Full” radio button.

3. Ensure you have select the configuration tab and expand the “VoIP” container.

4. Expand the “TDM” container and then select “TDM Bus Settings”.

5. In the TDM Bus Settings page, if you are located in Europe set the “PCM LAW Select” value to “ALaw”. If you are based in the United States this should be set to “ULaw”.

6. Set the TDM Bus Clock Source value to “Network” and click submit in the bottom right hand corner of the screen.

7. At the top of the screen click the “Burn” button to save the configuration to flash and then reset the gateway.

That’s it, your poor quality audio issue should now be resolved.

Lync Server 2010 – Audio Test Service Issue

I recently experienced an issue when attempting to check the audio quality from a Lync 2010 client. When clicking the “Check” button under the enterprise voice tab of the client, I was greeted with a “Call has not completed or has ended” error. After some investigation it turned out this had occurred due to the primary SIP domain being renamed after the Lync Server installation had been performed and as a result the Test Call auto attendant still had the old SIP domain appended to it. To resolve this issue the following actions were performed:

1. Log on to your Lync server and open the Lync Server Management Shell. When the Management Shell opens type in the following command without quotations, “Get-CSAudioTestServiceApplication” and press return. You should now be presented with a service output and the key part we are looking for is the following:

OwnerUrn: urn:application:testbot
SipAddress: sip:RtcApplication-0e0e407a-6283-4c93-99fa-c0e252b8af09@contoso.local

In my case, my primary SIP domain was no longer contoso.local, this was not even a secondary SIP domain. This ment that when attempting to perform a test call, the SIP address associated with the test bot could not be reached.

2. Now that you have confirmed the SIP address being used for the test call is incorrect, we can now look at a second section of the Get-CSAudioTestServiceApplication output in order to identify exactly what Active Directory attribute we need to modify. Under the identity section of the output you should see a similar string to the following:

Identity: CN={46577062-9cae-404b-b89c-a3d39511e4cc},CN=Application Contacts,CN=RTC Service,CN=Services,CN=Configuration,DC=contoso,DC=local

The CN={46577062-9cae-404b-b89c-a3d39511e4cc} attribute is the one which holds the SIP information for the test call bot. Now we know what attribute we need to modify, you can perform the following actions:

3. Logon to domain controller. From the Run dialog box type adsiedit.msc and click ok to open the ADSI Editor.

4. Right click ADSI Edit and then choose Connect To, and then select Configuration from the “Select a well known Naming Context list” and click ok.

5. Click on node CN={46577062-9cae-404b-b89c-a3d39511e4cc}, CN=Application Contacts, CN=RTC Service, CN=Service, CN=Configuration, DC=yourdomain, DC=local, and then right click this node and then select properties.

Note: Replace the “CN=46577062-9cae-404b-b89c-a3d39511e4cc” attribute that was identified in the Get-CSAudioTestServiceApplication output with the GUID for your organisation. The GUID’s specified are unquie to my Active Directory domain.

6. Choose the msRTCSIP-PrimaryUserAddress attributes, and change the domain part of value to sip:RtcApplication-0e0e407a-6283-4c93-99fa-c0e252b8af09@yourdomain.co.uk, opposed to your domain.local. Essentially the domain part of the attribute must match what ever your primary SIP domain is.

7. Log on to your Lync 2010 front end server and restart Audio Test Service. Once the service has been restarted, attempt a test call from Lync 2010 client.

That’s it, you should now be able to make test audio calls from Lync clients.