AudioVideoCall
An AudioVideoCall object represents an SDP-based audio/video session between a local participant and a remote participant. An AudioVideoCall object cannot exist on its own and must be associated with a Conversation object.
The AudioVideoCall class handles the "audio" and "video" media types.
AudioVideoCall State Transitions - Outbound Calls
The AudioVideoCall state transitions for an outbound call are shown in the following illustration.
The transition from Idle to Establishing occurs when the application calls BeginEstablish() on the call.
The transition from Establishing to Establishing occurs when the application receives the first ringing notification from the remote side while the call is in the Establishing state.
The transition from Establishing to Terminating occurs when BeginEstablish fails, or when the application calls BeginTerminate on the call, or when the application calls BeginTerminate on the conversation that contains this call.
The transition from Establishing to Established occurs when EndEstablish completes successfully.
The transition from Established to Transferring occurs when the application calls BeginTransfer on the AudioVideoCall instance.
The transition from Transferring to Established occurs when BeginTransfer is unsuccessful.
The transition from Established to Terminating occurs when the application calls BeginTerminate on the call, or when the remote side terminates the call, or when the application calls BeginTerminate on the conversation that contains this call.
The transition from Idle to Terminating occurs when the application calls BeginTerminate on the call, or when the application calls BeginTerminate on the conversation that contains this call.
The transition from Transferring to Terminating occurs when the transfer operation completes successfully, or when the application calls BeginTerminate on the call, or when the application calls BeginTerminate on the conversation that contains this call.
The transition from Established to Parking occurs when the application requests that a call be parked on a call park server using the BeginPark(CallParkOptions, AsyncCallback, Object) method on the AudioVideoCall instance.
The transition from Parking to Established occurs when the park operation fails.
The transition from Parking to Terminating occurs when a park operation completes successfully. Additionally, this can occur when the application calls BeginTerminate on the call, or when the application calls BeginTerminate on the conversation that contains this call, during a park operation.
The transition from Terminating to Terminated occurs when EndTerminate completes.
AudioVideoCall State Transitions - Inbound Calls
The AudioVideoCall state transitions for an inbound call are shown in the following illustration.
The transition from Incoming to Establishing occurs when the application calls BeginAccept on the call.
The transition from Establishing to Terminating occurs when the call is not accepted, or when the application calls BeginTerminate, or when the application calls BeginTerminate on the conversation that contains this call.
The transition from Establishing to Established occurs when the call is accepted (when BeginAccept returns successfully).
The transition from Established to Transferring occurs when the application calls BeginTransfer() on the call.
The transition from Transferring to Established occurs when BeginTransfer is unsuccessful.
The transition from Established to Terminating occurs when the application calls BeginTerminate on the call, or when the remote side terminates the call, or when the application calls BeginTerminate on the conversation that contains this call.
The transition from Incoming to Terminating occurs when the application calls Decline, Forward, or BeginTerminate on the call, or when the application calls BeginTerminate on the conversation that contains this call, or when the remote side cancels its call request.
The transition from Transferring to Terminating occurs when a transfer operation completes successfully. Additionally, this can occur when the application calls BeginTerminate on the call, or when the application calls BeginTerminate on the conversation that contains this call, during a transfer operation.
The transition from Established to Parking occurs when the application requests that a call be parked on a call server, using the BeginPark(CallParkOptions, AsyncCallback, Object) method on the AudioVideoCall instance.
The transition from Parking to Established occurs when the park operation fails.
The transition from Parking to Terminating occurs when a park operation completes successfully. Additionally, this can occur when the application calls BeginTerminate on the call, or when the application calls BeginTerminate on the conversation that contains this call, during a park operation.
The transition from Terminating to Terminated occurs when EndTerminate completes.