The AudioVideoMcuSessionclass represents the Audio-Video specific implementation of the media-agnostic McuSession. The class encapsulates operations and events relevant to the Audio-Video

Multipoint Control Unit (MCU).

AudioVideoMcuSession State Transitions

The AudioVideoMcuSessionstate transitions are shown in the following illustration.

  1. The transition from Idleto Activeoccurs after ConferenceSessionhas joined a conference. An AudioVideoMcuSessioninstance can become active either before or after the callback passed to BeginJoinis called, depending on when the MCU is activated on the server.

  2. The transition from Idleto Terminatedoccurs when the parent ConferenceSessionobject joins a conference that does not support the same MCU type (for example, when an attempt is made to join an IM-only conference to an AudioVideoMcuSessioninstance).

  3. The transition from Activeto Retryingoccurs when the Focus detects that the MCU is failing over. In this case, Unified Communications Managed API 2.0 Core SDK terminates the call with that MCU, provided that the call already exists. This transition also occurs when the ConferenceSessionobject reconnects to the Focus Because the MCU is not known to be failing over, the call is not terminated in this case.

  4. The transition from Retryingto Activeoccurs when the failover process is complete, or when the ConferenceSessionhas reconnected to the Focus and the MCU is active. It is possible for the ConferenceSessionto reconnect to the Focus but the AudioVideoMcuSessionstate does not change to Activeif the MCU has not been activated on the server.

AudioVideoMcuSession Constructors

The AudioVideoMcuSessionclass has no public constructors.

AudioVideoMcuSession Properties

The following are the public properties on the AudioVideoMcuSessionclass.

Copy Code
// Gets information about audio support.
public bool IsAudioSupported {get;}

// Gets information about video support.
public bool IsVideoSupported {get;}

// Gets the media types supported by the MCU.
public override IEnumerable<string> SupportedMediaTypes
{get;}

AudioVideoMcuSession Methods

The following are the public methods on the AudioVideoMcuSessionclass.

Copy Code
// Transfers an established two-party Audio-Video call to the MCU.
public new IAsyncResult BeginTransfer(
	AudioVideoCall call,
	McuTransferOptions mcuTransferOptions,
	AsyncCallback userCallback,
	object state);

// Waits for the pending operation to complete.
public new void EndTransfer(IAsyncResult result);

// Requests that the MCU initiate a call to the entity.
public new IAsyncResult BeginDialOut(
	string destinationUri,
	McuDialOutOptions mcuDialOutOptions,
	AsyncCallback userCallback,
	object state);

// Waits for the pending operation to complete.
public new void EndDialOut(
	IAsyncResult result);

// Enables participant endpoints communicating with the Audio-Video
MCU to receive audio announcements in the conference.
// An endpoint supporting privileged operations is required for
this operation..
public IAsyncResult BeginEnableAnnouncements(
	IEnumerable<ParticipantEndpoint>
subscribingParticipantEndpoints,
	AsyncCallback userCallback,
	object state);

// Gets the results from the BeginEnableAnnouncements method.
public void EndEnableAnnouncements(
	IAsyncResult result);

// Gets the properties of the participant endpoint in this MCU.
public bool TryGetParticipantEndpointProperties(
	ParticipantEndpoint endpoint,
	out AudioVideoMcuParticipantEndpointProperties properties);

// Prevents endpoint audio from being sent to the conference.
public IAsyncResult BeginMute(
	ParticipantEndpoint endpoint,
	AsyncCallback userCallback,
	object state);

// Waits for the pending operation to complete.
// The operation times out if no response was received within three
minutes.
// If a pending response was received, the wait period is reset
back to three minutes.
public void EndMute(IAsyncResult result);

// Enables a user’s audio to be sent to the conference.
public IAsyncResult BeginUnmute(
	ParticipantEndpoint endpoint,
	AsyncCallback userCallback,
	object state);

// Waits for the pending operation to complete.
// The operation times out if no response was received within three
minutes.
// If a pending response was received, the wait period is reset
back to three minutes.
public void EndUnmute(IAsyncResult result);

AudioVideoMcuSession Events

The following are the public events on the AudioVideoMcuSessionclass.

Copy Code
// Raised when a participant endpointjoins or leaves the MCU.
public event
EventHandler<ParticipantEndpointAttendanceChangedEventArgs<AudioVideoMcuParticipantProperties>>
ParticipantEndpointAttendanceChanged;

// Raised when a session property changed.
public event
EventHandler<PropertiesChangedEventArgs<AudioVideoMcuSessionProperties>>
PropertiesChanged;

// Raised when a participant property changes.
public event
EventHandler<ParticipantEndpointPropertiesChangedEventArgs<AudioVideoMcuParticipantEndpointProperties>>
ParticipantEndpointPropertiesChanged;