Updated Again: Important Settings to Know When Integrating Lync Server 2010/2013 with Cisco ISR’s

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

Update: It’s a new day and a new ringback scenario. What if you have H.323 configured on a gateway to CUCM and CUCM has a SIP trunk to Lync. All inbound calls from the PSTN to Lync come in through your H323 gateway and CUCM. Although calls from CUCM to Lync receive ringback calls inbound from the PSTN do not. Below are two viable solutions that I have seen used. This info is straight from Cisco so I have reprinted here as is with links.

Complete one of these solutions:

  1. Configure the progress_ind setup enable 3 Cisco IOS command under the voice dial-peer # VoIP configuration in the Cisco gateway/router.

    This command forces the gateway/router to treat the inbound ISDN Setup message as if it came in with a PI equal to 3 and to generate an in-band ringback tone towards the calling party if the H.225 Alert message does not contain a PI of 1, 2 or 8.

    Refer to Cisco IOS Voice, Video, and Fax Command Reference, Release 12.2 for more information on this command.

    Note: The progress_ind alert and the progress_ind setup commands are hidden in some versions of Cisco IOS Software and are not visible within the help parser. However, if the progress_ind progress command is available in the help parser, these commands are also available and are entered into the dial peer in their entirety. These commands subsequently appear in the running configuration.

  2. An alternate to the progress_ind setup command is the dial-peer voice # voip subcommand tone ringback alert-no-pi .

    This causes the gateway to generate ringback towards the calling party if an alert is received on the IP call leg with no PI present. It differs from the progress_ind setup command in that the outbound H.225 setup message does not contain a PI of 3 with the tone ringback command. It is possible that some devices do not accept setup messages when a PI is included.

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:

image

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.

image

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.

image

Below shows disabling the required settings:

image

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

6 comments:

  1. You blog has saved me a few times...so I wanted to say thanks and share another thing I just learned.

    Using Lync 2013 and 2911 ISR I was having issues with ringback on inbound calls. For me the voice-class sip block 183 sdp absent
    fixed it. However it did not fix ringback for calls forwarded back to PSTN. I took your advice and used debug ccsip message and discovered i was getting a 181. So I added voice-class sip block 181 sdp absent, which corrected this.

    Thanks!!

    ReplyDelete
    Replies
    1. Thanks for the tip. I will update this blog post with the info.

      Delete
  2. i always have intermittent one way audio issue in my lync infrastructure. its also connected to a cisco isr gateway router any tips or ideas?

    ReplyDelete
  3. Hey Chris,
    You're blog is awesome and has been saving my behind on installs since 2009 (we use Cisco gateways whenever TLS isn’t a requirement).

    Recently we found a ringback issue that we’ve either never noticed before or maybe is something due to newer IOS versions/Lync 2013. Ringback works for all scenarios, except when a user is completely logged out and has simultaneous ring enabled. In that case it just goes silent until voicemail finally picks up.

    We spent a couple of weeks working with Cisco TAC, but they finally said they were unable to fix the issue via the gateway. We could get it to work using various adjustments to the 181/183 SDP settings…but in those cases it would break other more critical scenarios (like logged in, signed out/no call forward, or even all calling).

    Any chance you have any ideas?

    We used the following settings (based on the 2013 MSFT/Cisco integration document and your blog):

    sip
    min-se 600 session-expires 600
    asserted-id pai
    midcall-signaling passthru
    privacy-policy passthru
    privacy-policy send-always
    block 181
    *******
    dial-peer voice 410 voip
    description DIDs going to Lync
    huntstop
    destination-pattern
    rtp payload-type comfort-noise 13
    session protocol sipv2
    session target ipv4:
    session transport tcp
    incoming called-number
    voice-class sip localhost dns:
    no voice-class sip early-offer forced
    voice-class sip block 183 sdp present
    no voice-class sip block 181
    voice-class sip options-keepalive
    dtmf-relay rtp-nte
    codec g711ulaw
    no vad

    ******
    dial-peer voice 104 pots
    description NANP Outbound
    preference 2
    destination-pattern 1[2-9]..[2-9]......
    progress_ind alert enable 8
    port 0/0/0:23
    forward-digits all

    Thanks!!

    ReplyDelete
  4. Funny you should mention 2009, this issues sounds similar to an issue i covered in 2009. Doug Lawty came up for the fix. This may still work even for 2013 might be worth taking a look.

    http://blogs.technet.com/b/dougl/archive/2009/07/30/ring-back-workaround-for-ocs.aspx

    ReplyDelete
    Replies
    1. Thanks for the quick response Chris, you rock! I'll give it a try and let you know of the results.

      Delete