Escalate to a Conference Session

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

The ability to escalate a peer-to-peer session to a conference session depends on the facility of a client to create a globally unique string to be used as a conversation ID for each new session and share the conversation ID globally among every session participant. Microsoft Office Communicator accomplishes this by creating a globally unique identifier (GUID) for each session it establishes and passes that ID to each invited participant using a session property. When a peer-to-peer session is escalated to a conference session, each client must replace the local instance of the peer-to-peer session with a conference session. To replace the correct peer-to-peer session, the client uses the conversation ID of the receieved application session to identify the peer-to-peer session to terminate. Once the participant has joined the conference session and established a new IM session whose remote participant is the conference IM MCU, the original peer-to-peer session is terminated.

It is the responsibility of the client who is initiating a new session to generate a new conversation ID. The responsibility of remote client receiving a session invitation is to cache the conversation ID and provide it to any other remote client a session is transferred or forwarded to.

Whether you created a peer-to-peer session or received a session in an invitation, you must cache the associated session conversation ID. It is a good idea to have a public string conversation ID property on an application class you create to wrap an instance of IUccSession. This property must return the conversation ID associated with the session and is essential to implementing an escalation process. Your client application logic is responsible to execute the following tasks in handling the escalation of a peer-to-peer session to a conference session:

Your application should assign the conversation ID of the original peer-to-peer session to the new conference session. Doing so allows your application logic to maintain a conversation log that spans the original peer-to-peer session and the new conference session.

  • Escalate your peer-to-peer session.
    • Create a new conference session and join.
      For information about creating a new conference, see Creating Conferences.
    • Invite conference participants including the remote user from the original peer-to-peer session. For information about creating a conference invitation, see Invite Users to a Conference.
      You create an instance of IUccSession with the UCC_SESSION_TYPE of UCCST_APPLICATION to carry the conference invitation. You must set the conversation ID property of the new application session using the conversation ID of the original peer-to-peer session. For information about setting a conversation ID, see Performing Essential Session Tasks.
    • Monitor the conference roster of the new conference session. When the original peer-to-peer participant has joined the conference, terminate the original peer-to-peer session. For information about monitoring a conference roster, see List Conference Participants
      If your application uses a dialog to allow a user to interact in a session, you should update your dialog to use the new media session before terminating the original session.
  • Accept conference escalation.
    • Accept conference invitation. For information about accepting a conference invitation, see Accept a Conference Invitation

    • Obtain conversation ID from a session property on the application session carrying the conference invitation.

      conversationID = SomeSession.Context.get_Property(10000).StringValue;
      
    • Compare the conversation ID of the application session with your cache of peer-to-peer conversation IDs. If the application conversation ID matches a cached conversation ID, the new conference invitation is an escalated session.
      When you receive a conference invitation that contains the conversation ID of an existing peer-to-peer session, you must terminate the original peer-to-peer session and replace it with the new conference session and a new peer-to-peer session whose remote participant is a conference Focus Multipoint Control Unit (MCU). For information about getting a conversation ID from an incoming session, see Handling Session Invitations.

    • Locate original peer-to-peer session using the conversation ID obtained from the application session.

    • Terminate the original peer-to-peer session.
      If your application uses a dialog to allow a user to interact in a session, you should update your dialog to use the new media session before terminating the original session.

See Also

Tasks

Performing Essential Session Tasks

Concepts

Handling Session Invitations
Creating Conferences
Managing Remote Participants in a Conference