This is an update to an update to a previous post with new ring back information. By far one of the most referenced posts I have done to date on interoperability with Cisco. I have come across a number of important settings that are a must know for this interoperability scenario. One thing to keep in mind is that while Cisco ISR’s are a supported gateway they do only provide basic functionalities. Behaviors for basic gateways can differ from that of an enhanced gateway. Support for SIP Refer is a good example.
Some of the information below has been taken from other posts on topics concerning this interoperability situation.
By far the most common issue with Lync to a Cisco ISR is ringback. With later releases of the Cisco IOS a lot of these issues have been addressed. Read on below to find out how.
How do I set comfort noise on the ISR for interoperability with Lync?
There are two ways to configure comfort noise on the gateway. First off you can disable Voice Activity Detection all together on the outbound dial peer. The second option is to change the payload type for comfort noise to the compatible format. It’s pretty common for people to turn VAD off by default so some people may not have realized this issues existed. Previous Cisco documentation for OCS R2 has VAD enabled which it is by default so people migrating to Lync hoping to take advantage of media bypass might be caught out.
Option 1
dial-peer voice 1999 voip
tone ringback alert-no-PI
description TO Lync
destination-pattern 55555
session protocol sipv2
session target ipv4:192.168.1.250:5068
session transport tcp
dtmf-relay rtp-nte
codec g711ulaw
fax protocol none
no vad
Option 2
dial-peer voice 1999 voip
tone ringback alert-no-PI
description TO Lync
destination-pattern 55555
session protocol sipv2
session target ipv4:192.168.1.250:5068
session transport tcp
dtmf-relay rtp-nte
codec g711ulaw
fax protocol none
rtp payload-type comfort-noise 13
How do I configure for ringback issues?
There is some really good info around on ringback issues with both CUCM and ISRs on both my own blog and others. But seeing as this is just a ISR post I am going to just focus on that for now.
For PRACK issues disable rel1xxx
voice service voip
sip
rel1xx disable
Ringback with or without 183 SDP?
The first option presented is typically the normal way to ignore session progress 183 coming from Lync. This will cause the gateway to ignore 183 messages and signal the caller system to play local ringback rather than create a early media session with Lync. Lync does not provide early media for remote ringing.
dial-peer voice 1999 voip
description TO Lync
voice-class sip block 183 sdp present
destination-pattern 55555
session protocol sipv2
session target ipv4:192.168.1.250:5068
session transport tcp
dtmf-relay rtp-nte
codec g711ulaw
fax protocol none
rtp payload-type comfort-noise 13
Here is a big “well” you might also want to try the following if you get limited ringback or just one ringback and the sdp present command doesn’t solve your issues. CCME in particular this command seems to work better as the 183 messages do not have SDP information coming from Lync because the initial invite from CCME does have SDP information. So there may be some variation depending on SDP initiation. A simple “debug ccsip message” on the router should point you in the right direction on which command to use.
dial-peer voice 1999 voip
description TO Lync
voice-class sip block 183 sdp absent
destination-pattern 55555
session protocol sipv2
session target ipv4:192.168.1.250:5068
session transport tcp
dtmf-relay rtp-nte
codec g711ulaw
fax protocol none
rtp payload-type comfort-noise 13
Update. I have another consideration and a new twist. What if you have a call forwarded back to the PSTN with no ringback. The below command should help solve that issue
dial-peer voice 1999 voip
description TO Lync
voice-class sip block 181 sdp absent
voice-class sip block 183 sdp absent
destination-pattern 55555
session protocol sipv2
session target ipv4:192.168.1.250:5068
session transport tcp
dtmf-relay rtp-nte
codec g711ulaw
fax protocol none
rtp payload-type comfort-noise 13
Similar to a 183 message a 181 message coming from Lync will not have SDP information. This command may solve this issue of forwarded calls not having ringback seeing as Lync wont generate ringback for remote endpoints.
SIP/2.0 181 Call Is Being Forwarded
FROM: "Norman, Christopher"<sip:+12065555555@10.10.10.46>;tag=3846A278-5CC
TO: <sip:12065555556@10.10.10.58>;epid=E9EAEE5866;tag=d9ed9a43f5
CSEQ: 101 INVITE
CALL-ID: 64096B15-29C211DD-840A9822-A319A9A1@130.42.18.46
VIA: SIP/2.0/TCP 10.10.10.46:5060;branch=z9hG4bK9721D8
CONTENT-LENGTH: 0
SERVER: RTCC/3.0.0.0 MediationServer
How do I disable SIP refer on a Cisco Router and in Lync for Media Bypass?
Cisco Router configuration to disable SIP refer -
Router(config)#voice service voip
Router(conf-voi-serv)#no supplementary-service sip refer
There are two options to disable SIP refer in Lync the first is through the Lync Control Panel and the second is in PowerShell. In this case disabling Refer in PowerShell is probably the easiest since you will need to do a few other things while you are there.
Disable Refer in Lync Control Panel:
Disable Refer in PowerShell:
Set-CsTrunkConfiguration –Idenity <Xds Identity> -EnableReferSupport $false
To find your trunk identity:
Get-CsTrunkConfiguration
Below is a screen shot of the full command parameters.
How do I disable RTCP and session timers in Lync?
Disabling RTCP and its timers are required for similar reasons as they were in OCS R2. I wrote a blog article outlining the reasons for disabling RTCP and session timers for OCS R2 a while ago and while the product has changed into Lync the reasons for disabling both of these are still the same.
http://voipnorm.blogspot.com/2010/07/kb-article-981218-rtcp-timer-confusion.html
Disabling both of these will remove 30 minute call drops due to RTCP incompatibilities between the two platforms. I am not going to go into a whole RFC thing of who’s right and wrong so just know this is something you have to do otherwise you will run into call drop issues.
Below is a screen shot of what the trunk will look like when you run the Get-CsTrunkConfiguration command before you change the required settings. By default both session timers and RTCP are enabled.
Below shows disabling the required settings:
The full command is:
Set-CsTrunkConfiguration –Identity <see example> -EnableSessionTimer $false –RTCPActiveCalls $false –RTCPCallsOnHold $false
Hopefully this will save someone from having to call support to set up this configuration.
VoIPNorm