At times I find it confusing to how an MCU dial-out (as triggered by methods like AudioVideoMcuSession.BeginDialOut in UCMA) differs from a conference invitation (ConferenceInvitation class in UCMA). In my previous post I described what happens behind the scenes when a conference invitation is sent to a Lync user, so I thought I would take this post to explain the very different process that occurs during an MCU dial-out. UCMA does a very good job of putting a layer of abstraction over the extensive SIP signaling that goes on at a lower level during both of these operations, which is a good thing overall, since it frees up developers to focus on solving business problems using the API. However, at times it is useful to know things like the underlying difference between a conference invitation and an MCU dial-out in order to solve complex technical questions.
The primary difference has to do with the direction of the call. With a conference invitation, the invitation itself goes from the inviter (such as a UCMA app) to the user being invited. When a Lync client receives a conference invitation, it initiates the connection to the conference (actually two connections: one to the focus and one to the MCU).
In an MCU dial-out, however, it’s reversed. The UCMA application sends a request to the MCU that essentially says “please invite this user to the conference.” The MCU itself then calls the new participant. This means that the UCMA application has no direct contact with the user who is being invited to the conference.
So, to rehash that in pictures, here’s the conference invitation process:
First, the inviter sends an invitation to the invitee. The invitee then joins the focus, followed by the MCU.
For contrast, here’s the process for an MCU dial-out:
In this case, the inviter asks the MCU to dial out to the invitee. The MCU initiates a call to the invitee. The invitee then joins the focus and accepts the call from the MCU.
Now, you might be asking what advantage there is in using an MCU dial-out instead of a plain old conference invitation.
First of all, there are some types of conference participants that can’t receive a conference invitation. For instance, inviting a PSTN participant to join a conference by sending it an XML document with the conference URI is not likely to be successful. So you can use a dial-out instead to directly call that participant.
Second, for call flow reasons it may be necessary to have an outbound call coming from the MCU instead of an inbound call to the MCU. If you are trying to set up a BackToBackCall between the MCU and a new conference participant, for instance, you can have the MCU dial out to your UCMA application, and then have the application create an outbound call to a user and stitch the two calls together with the BackToBackCall class.
Regardless, the end result of both processes is the same: you end up with a new participant in the conference.