For our Lync 2013 infrastructure at UWR, we are using bandwidth.com SIP trunks, an inGate SIParator, and a single Lync 2013 Front End.
We are using the Lync 2013 call conferencing feature, and when an inbound call is re-directed to the Lync 2013 infrastructure (via the SIParator), the call connects just fine. However, after the caller types in their conference ID and are about the be transferred into the conference, the call goes silent for a little, then a friendly message states “Sorry, I cannot connect you to the conference at this time”, then hangs up. Nice.
Looking at the SIP trace, the Lync 2013 is initiating a SIP reINVITE to point to some new media ports on the FrontEnd server, presumably because they correspond to the conference destination.
The reINVITE is forwarded out to bandwidth.com and the bandwidth.com returns a 200 OK, with all of the remaining SIP and SDP headers you’d expect. The SIParator forwards this to the Lync 2013 mediation server on the FE, and….. no ACK. From there bandwidth.com retries to send the 200 OK, and the SIParator tries to resend it to the Lync 2013 server as well, but eventually, the call is disconnected with a 481 Call Leg Doesn’t Exist.
For the sake of testing, I set up the following call flow for inbound conference bridge calls:
- bandwidth.com > inGate SIParator
- inGate SIParator -> ShoreTel PBX
- ShoreTel PBX -> SIParator
- SIParator -> Lync 2013 FE
To my surprise, everything worked perfectly. The trace followed this path as you’d expect, although the SIParator was smart enough to act as the b2bua and relay the audio directly between the Lync 2013 server and bandwidth.com (all with only taking up 1 session license). Clearly there is some difference between the way the reINVITE is handled between the ShoreTel PBX and Lync, vs. bandwidth.com and Lync…
So, for now I am using this “hairpin” topology to get things working. This is not ideal because I am consuming two ShoreTel SIP Trunk licenses per conference call, instead of the much better alternative of zero ShoreTel SIP Trunk licenses per call
My next step to resolve this is upgrade the SIParator to the latest build to see if that fixes the issue (running 4.9.2, latest is 4.10.2). If that doesn’t do it, I’m going to evaluate the diffs between the reINVITE dialog between the the Lync Server and ShoreTel vs. the Lync Server and bandwidth.com and see if there are any significant differences.
I’ll update this post with what I find!