Trusted Conferencing User Conversation Model API
The Trusted Conferencing User (TCU) model is implemented in Microsoft Unified Communications Managed API (UCMA) 3.0 by the addition of several new types together with the addition of several new properties and overloaded methods on existing Microsoft Unified Communications Managed API (UCMA) 2.0 types. This topic provides the details of these changes.
AudioVideoCallEstablishOptions (new type)
For UCMA 3.0, the AudioVideoCallEstablishOptions class has been added. An instance of this class can be used to contain the parameters for establishing an audio-video call. The public members of this class are shown in the following table.
AudioVideoCallEstablishOptions member |
Description |
---|---|
AudioVideoCallEstablishOptions() |
Constructor. Creates a new instance of the AudioVideoCallEstablishOptions class. AudioVideoCallEstablishOptions() |
Property. Gets the optional parameters to be used when dialing into an audio-video MCU. AudioVideoMcuDialInOptions AudioVideoMcuDialInOptions {get; } |
|
Property. Gets or sets whether the call should use a generated identity during call establishment to a trusted conference. bool UseGeneratedIdentityForTrustedConference {get; set;} |
AudioVideoMcuRouting (new type)
The AudioVideoMcuRouting class represents audio routing operations that can be performed on a call. A call can specify the incoming audio route (the remote source of incoming media controlled by the call) and the outgoing audio routes (the remote sinks, or recipients, of outgoing media controlled by the call).
The following illustration shows incoming and outgoing audio routing. In this illustration, User C is the source of incoming audio to the Trusted Conferencing User (TCU) call; users A and B are the destinations of outgoing audio from the TCU call.
The following table lists the public methods on the AudioVideoMcuRouting class.
AudioVideoMcuRouting member |
Description |
---|---|
Method. Updates routing of outgoing audio to and incoming audio from other endpoints that are connected to the audio-video MCU. BeginUpdateAudioRoutes(IEnumerable<OutgoingAudioRoute>, IEnumerable<IncomingAudioRoute>, AsyncCallback, object) |
|
Method. Waits for the pending asynchronous join operation to complete. EndUpdateAudioRoutes(IAsyncResult) |
IncomingAudioRoute, OutgoingAudioRoute, and RouteUpdateOperation (new types)
The IncomingAudioRoute and OutgoingAudioRoute classes define, respectively, the remote endpoint that is the source of incoming audio, and the remote endpoint that is the destination of outgoing audio.
The following table lists the members of the IncomingAudioRoute class.
IncomingAudioRoute member |
Description |
---|---|
IncomingAudioRoute(ParticipantEndpoint) |
Constructor. Creates a new instance of the IncomingAudioRoute class. IncomingAudioRoute(ParticipantEndpoint) |
Property. Gets the remote source of the incoming audio. ParticipantEndpoint RemoteSource {get;} |
The following table lists the members of the OutgoingAudioRoute class.
OutgoingAudioRoute member |
Description |
---|---|
OutgoingAudioRoute(ParticipantEndpoint) |
Constructor. Creates a new instance of the OutgoingAudioRoute class. OutgoingAudioRoute(ParticipantEndpoint) |
Property. Gets the remote sink (recipient) of the outgoing audio. ParticipantEndpoint RemoteSink {get;} |
The RouteUpdateOperation enumerated type indicates the type of operation to be performed on a route. The valid values are None, Add, and Remove.
AudioVideoMcuRouting (new property on existing class)
For UCMA 3.0, a new property has been added to the AudioVideoCall class-the AudioVideoMcuRouting property. This property returns a reference to the AudioVideoMcuRouting instance associated with a given AudioVideoCall instance. This property is never null, but if the AudioVideoMcuRouting methods are called with invalid arguments (such as empty audio routes), these methods throw exceptions.
BeginEstablish (new methods on existing AudioVideoCall class)
For UCMA 3.0, two new overloaded methods have been added to the AudioVideoCall class. These methods are BeginEstablish(AudioVideoCallEstablishOptions, AsyncCallback, Object) and BeginEstablish(CallOrbit, AudioVideoCallEstablishOptions, AsyncCallback, Object). Each of these methods has a parameter of type AudioVideoCallEstablishOptions.
ConferenceCommandOptions and Derived Classes (new types)
The ConferenceCommandOptions abstract base class has been added in UCMA 3.0. This class enables a TCU conversation to process commands in the context of another user, by the use of a set of options defined in derived classes. The members of the ConferenceCommandOptions class are shown in the following table.
Member |
Description |
---|---|
ConferenceCommandOptions() |
Constructor. Creates a new instance of the ConferenceCommandOptions class. ConferenceCommandOptions() |
Property. Gets the list of custom headers to be included in the outgoing INFO message carrying the CCCP command. Collection<SignalingHeaders> Headers {get;} |
|
Property. Gets or sets the issuer of the command. Trusted applications can issue commands in the context of other conference participants. ConversationParticipant Issuer {get; set;} |
The classes derived from the ConferenceCommandOptions class can be used for a variety of conference operations. The following table lists the classes that are derived from the ConferenceCommandOptions class.
Derived class |
Description |
---|---|
Options that an application can use to customize adding an endpoint to the MCU default routing. |
|
Options that an application can use to customize muting itself or other endpoints. |
|
Options that an application can use to customize unmuting itself or other endpoints. |
|
Options that an application can use to customize modifying how a participant is ejected. |
|
Options that an application can use to customize admitting lobby participants into a conference. |
|
Options that an application can use to customize denying lobby participants admission into the conference. |
|
Options that an application can use to customize locking a conference. |
|
Options that an application can use to customize how the MCU dials out to participants. |
|
Options that an application can use to customize how the MCU transfers a call from one participant to another. |
|
Options that an application can use to customize modifying the role of another conference participant. |
|
Options that an application can use to customize removing an endpoint from the MCU default routing. |
|
Options that an application can use to customize unlocking a conference. |
Overloaded Methods on ConferenceSession, McuSession, and AudioVideoMcuSession (new methods on existing classes)
The methods shown in the following table use the classes listed in the previous section. Some of the methods in the next table are overloaded methods added in Microsoft Unified Communications Managed API (UCMA) 3.0 Core SDK on the existing ConferenceSession, McuSession, and AudioVideoMcuSession classes. The remaining methods are on the LobbyManager class, which is new in UCMA 3.0 Core SDK. For a given overloaded method, the containing class and associated ConferenceCommandOptions subclass are shown.
Method (class) |
Options class |
---|---|
BeginAddToDefaultRouting (AudioVideoMcuSession) |
AddToDefaultRoutingOptions |
BeginAdmitLobbyParticipants (LobbyManager) |
LobbyAdmitOptions |
BeginDenyLobbyParticipants (LobbyManager) |
LobbyDenyOptions |
BeginDialOut (McuSession and AudioVideoMcuSession) |
McuDialOutOptions |
BeginEject (McuSession and ConferenceSession) |
EjectOptions |
BeginLockConference (ConferenceSession) |
LockConferenceOptions |
BeginModifyAccessLevel (LobbyManager) |
ModifyAccessLevelOptions |
BeginModifyAutomaticLeaderAssignment (ConferenceSession) |
ModifyAutomaticLeaderAssignmentOptions |
BeginModifyLobbyBypass (LobbyManager) |
ModifyLobbyBypassOptions |
BeginModifyRole (ConferenceSession) |
ModifyRoleOptions |
BeginMute (AudioVideoMcuSession) |
MuteOptions |
BeginRemoveFromDefaultRouting (ConferenceSession) |
RemoveFromDefaultRoutingOptions |
BeginTransfer (McuSession and AudioVideoMcuSession) |
McuTransferOptions |
BeginUnlockConference (ConferenceSession) |
UnlockConferenceOptions |
BeginUnmute (AudioVideoMcuSession) |
UnmuteOptions |