Share via


Session Call Control

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.

An audio session involving two Unified Communications enabled telephones, two public switched telephone network (PSTN) telephones, or one of each can be controlled in the manner of a traditional PBX unit. That is, audio session participants can place remote participants on hold, transfer participants, terminate participants, and remove participants from hold status. Holding and unholding functionality is available using the IUccMediaChannel interface. To accomplish a function involving two or more remote participants (such as a transfer), the IUccSessionCallControl interface is required.

To create an audio session, the local client must have an enabled SIP endpoint. If a PSTN telephone is used in the audio session, a proxy endpoint must also be enabled. From the endpoint or proxy endpoint, the client must cast a session manager. It is the session manager's job to create the actual audio session.

For PBX-like functionality, the IUccSessionCallControl call control interface is used. The IUccSessionCallControl interface is cast from the IUccSession interface regardless of which endpoint type originated the session. PSTN telephone call sessions require that the Unified Communications server use a gateway to an organization PBX to perform control operations. This type of connection is called a remote call. Control of this type of call is known as remote call control. At the client level, the coding patterns are the same as used with Unified Communications enabled telephone handsets after the proxy endpoint is created. For information about creating a proxy endpoint, see Create and Enable a Proxy Endpoint.

IUccSessionCallControl is a type derived from IUccSession. To get the session call control interface, you cast the session interface to IUccSessionCallControl for C# or call QueryInterface on IUccSession for C++. As a derived type, the session call control interface has its own set of events that must be handled. Some of the events indicate the success of a locally originated operation. Other events provide accept-reject functionality for hold and unhold requests originated by a remote endpoint.

Call Control Operations

Session call control includes the following operations:

  • Transfer an ongoing media session to another participant. This can be done as a blind transfer where the connection to the local participant is terminated as the existing remote participant is connected to a new remote participant. The other type of transfer is the consultative transfer. That is, the local participant puts a remote participant on hold and connects to a second remote participant. After an audio consultation with the new remote participant, the local participant simultaneously disconnects from the first remote participant and the second participant. The two remote participants are connected to each other, accomplishing the consultative transfer.
  • Alternate a call between two sets of participants. This amounts to placing one remote participant on hold while simultaneously taking the other remote participant off hold.
  • Reconnect a call. This amounts to terminating one remote participant while simultaneously taking the other remote participant off hold.

Such features are encapsulated by the IUccSessionCallControl interface. An application can obtain this interface by performing a QueryInterface on an IUccAudioVideoSession object.

See Also

Concepts

Managing Telephone Calls
Providing Session Call Control