Trusted conferencing user conversation model API

Applies to: Skype for Business 2015

The Trusted Conferencing User (TCU) model was implemented in by the addition of several new types together with the addition of several new properties and overloaded methods on existing types. This topic provides the details of these changes.

AudioVideoCallEstablishOptions

For UCMA 3.0, the AudioVideoCallEstablishOptions class was 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()

AudioVideoMcuDialInOptions

Property. Gets the optional parameters to be used when dialing into an audio-video MCU.

AudioVideoMcuDialInOptions AudioVideoMcuDialInOptions {get; }

UseGeneratedIdentityForTrustedConference

Property. Gets or sets whether the call should use a generated identity during call establishment to a trusted conference.

bool UseGeneratedIdentityForTrustedConference {get; set;}

AudioVideoMcuRouting

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.

Incoming and outgoing audio routing

The following table lists the public methods on the AudioVideoMcuRouting class.

AudioVideoMcuRouting member

Description

BeginUpdateAudioRoutes(IEnumerable<OutgoingAudioRoute>, IEnumerable<IncomingAudioRoute>, AsyncCallback, Object)

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)

EndUpdateAudioRoutes(IAsyncResult)

Method. Waits for the pending asynchronous join operation to complete.

EndUpdateAudioRoutes(IAsyncResult)

IncomingAudioRoute, OutgoingAudioRoute, and RouteUpdateOperation

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)

RemoteSource

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)

RemoteSink

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

For UCMA 3.0, a new property was added to the [AudioVideoCall](/dotnet/api/microsoft.rtc.collaboration.audiovideo.audiovideocalladd &preserve-view=true) 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

For UCMA 3.0, two new overloaded methods were 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 was 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()

Headers

Property. Gets the list of custom headers to be included in the outgoing INFO message carrying the CCCP command.

Collection<SignalingHeaders> Headers {get;}

Issuer

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

AddToDefaultRoutingOptions

Options that an application can use to customize adding an endpoint to the MCU default routing.

MuteOptions

Options that an application can use to customize muting itself or other endpoints.

UnmuteOptions

Options that an application can use to customize unmuting itself or other endpoints.

EjectOptions

Options that an application can use to customize modifying how a participant is ejected.

LobbyAdmitOptions

Options that an application can use to customize admitting lobby participants into a conference.

LobbyDenyOptions

Options that an application can use to customize denying lobby participants admission into the conference.

LockConferenceOptions

Options that an application can use to customize locking a conference.

McuDialOutOptions

Options that an application can use to customize how the MCU dials out to participants.

McuTransferOptions

Options that an application can use to customize how the MCU transfers a call from one participant to another.

ModifyRoleOptions

Options that an application can use to customize modifying the role of another conference participant.

RemoveFromDefaultRoutingOptions

Options that an application can use to customize removing an endpoint from the MCU default routing.

UnlockConferenceOptions

Options that an application can use to customize unlocking a conference.

Overloaded methods on ConferenceSession, McuSession, and AudioVideoMcuSession

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 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