Friday, June 14, 2013

Fixing Call Issues in a Mitel 3300 - Lync 2013 Deployment

We recently deployed Lync Server 2013 Enterprise Voice for a customer who at the same time replaced their old Mitel PBX with a newer Mitel 3300. The customer wasn't ready to make a full commitment to Lync for voice traffic, but probably 80% of the customer's users are using Lync exclusively for voice.

The Lync infrastructure was connected to the PSTN via the Mitel 3300 PBX using direct SIP.  While things initially seemed to be fine, we were getting numerous reports of sporadic failed calls throughout each day.

Digging through the monitoring server reports (deploying monitoring server reports should be considered ESSENTIAL for any Lync Enterprise Voice deployment), we could see a clear trend for the call failures: Looking at the Failure Distribution Report, we could see the top failed call reason was Gateway side Media negotiation failed.

Clicking on the sessions number hyperlink brought us to the list of calls that failed due to that cause.  Selecting one shows the session detail report for that call:

At the bottom is the Diagnostic Report.  Clicking the Detail link on the server side finally shows the exact reason for the call failure:
10010; source="LyncFE.contoso.com"; reason="Gateway side Media negotiation failed"; component="MediationServer"; ValidationError="SDP Exchange already failed before SetAnswer: Session c line = 0.0.0.0 or ::, call hold not allowed for initial INVITE offer"; GatewayFqdn="10.1.1.2; trunk=NA-OH-Dayton-Mitel"
I did a search through my normal channels and didn't come up with much.  I saw a few references to clients who set the Lync client audio port range to 3, rather than the recommended 20-40 which caused their particular issue, but we were already using 40 as a client port range.

It seemed as though the issue was coming from the Mitel side.  I tried a few things like setting the trunk's RTCPActiveCalls and RTCPCallsonHold values to FALSE on the Lync side, but that had no effect.

We tried to contact the Mitel partner who put in the Mitel system, but they were of very little help.  I asked if I could poke around the Mitel web console to look for a potential fix. Surprisingly, the client said "Sure".  Having never seen a Mitel before, I thought that things were about to go very wrong, or at least we wouldn't get any closer to a solution.

Since the error was related to SDP, we focussed on the SDP Options tab under SIP Peer Profile on the Mitel.  The most promising option was Avoid Signalling Hold to the Peer.  It was promising because the error message from the Lync monitoring reports mentioned both SDP and hold, so.......we set it to Yes, and at the same time we set Enable Mitel Proprietary SDP to No.  Everything else we left alone.

Almost immediately, our problems came to an end. Calls to numbers that would fail every 2nd or 3rd attempt suddenly worked without error every single time. Another side benefit was that we were now getting music on hold when transferring to Mitel call queues, where we weren't before.

I was amazed that we had brought up the issues around both music on hold and the failed calls on numerous occasions, and the Mitel partner could not find a solution, while someone with zero experience with Mitel was able to find a solution in under 10 minutes of poking around.

I was feeling pretty good about fixing that issue, so I tried to solve the other remaining issue where outbound calls would only show the main office number rather than the individual Lync user's DID. However, my beginners luck ran out and I couldn't find a solution.

So, if you're having similar issues with a Mitel - Lync deployment, hopefully this will steer you in the right direction.

11 comments:

  1. Thank you
    I have issues with a Mitel 3300 and Exchange 2010 UM where the Mitel PBX will drop the SIP channel after 2 minutes. I will work this with my Mitel vendor next week and within another 3 weeks I should have a SIP trunk in place between Mitel and Lync 2013 - I will updated you when I have made some headway
    jmadsen@datalinknetworks.net

    ReplyDelete
  2. Ken,
    Nice posting on this Mitel issue. However, I got my hands on the Mitel 3300 MCD config for Lync 2010 (they do not have one for Lync 2013 yet) and these settings in the SDP Options are in there already.

    ReplyDelete
    Replies
    1. I haven't seen the Mitel 3300 config doc, and apparently, neither did the people who did the Mitel side of the Lync configuration. Simply stunning. Thanks for the info.

      Ken

      Delete
  3. Ken,

    Nice post, I have added the info to my MCD to Lync integration troubleshooting.
    That said, sounds like the techs from the channel partner were too lazy to even read the help files built into the ESM of the MCD.

    1. Avoid Signaling Hold to the Peer
    If this option is enabled, when a user places a call on hold the 3300 ICP suspends the call but does not send a Hold indication to the peer. SIP-SDP renegotiation is performed using "sendrecv" attributes, and services such as Music on Hold are provided by the 3300 ICP itself.

    2. Enable Mitel Proprietary SDP
    Select 'No' to disable sending Mitel proprietary information within the SDP. It is recommended this option be set to 'No' unless you are communicating with other MCDs on this trunk. Mitel proprietary SDP information is only of value when SDP from one MCD is delivered to another MCD. The other benefit of selecting 'No' is that it reduces the SDP size.

    Cheers,
    Rob

    ReplyDelete
  4. With this integration, what is the feature set for the lync device? Besides grabbing dial-tone from the Mitel, what should an end-user expect?

    ReplyDelete
  5. Direct SIP has very few user features when looking at it from a Lync environment. In this instance Lync is using the Mitel as a gateway to get connected to the PSTN (outside world). It's just a means to be able to dial externally.

    However there is a different Lync integration that gives a WHOLE lot of features. Simply put, your Communicator client software is just as aware of the Mitel phones and numbers as it is aware of other Lync users. Click to dial, call identification, presence even call control to the phone is possible. The scenarios are plenty and very useful.

    ReplyDelete
  6. how have you handled integration to a Mitel network when a F5 load balancing device and clustered MS is in place? Anyone ever done this successfully?

    ReplyDelete
    Replies
    1. I wouldn't try passing media through the F5. Its better to use DNS load balancing for connections. Its simpler and more reliable and easier to troubleshoot.

      Ken

      Delete
    2. You are awesome, thank you for taking time to respond!

      Delete
    3. Ken,
      Have you had any problems in general configuring Mitel in a clustered MS 2013 environment for Lync integration and/or MS UM?
      Thanks again,

      Delete
    4. The only problems we came across was the one mentioned in this blog post. Other than that, it was smooth sailing.

      Ken

      Delete