To send a signaling session INVITE request to the remote participant, an application calls the Participate or BeginParticipate method. The former is the synchronous form and the latter is the asynchronous form.
Sending a Session INVITE Synchronously
The following code example illustrates how to send a signaling session INVITE request to the remote participant.
Copy Code | |
---|---|
// Invite synchronously. // The inviter does not care which endpoint accepts. SignalingSession session = ...; try { session.Participate(); } catch (RealTimeException exp) { // Handle exception. Console.WriteLine("Invite Failure for {0}: {1}", session.RemoteParticipant.Uri, exp.ToString); } |
Sending a Session INVITE with Custom Headers
The following code example illustrates how to send a signaling session INVITE request with custom headers synchronously.
Copy Code | |
---|---|
// Invite synchronously. // The inviter wants to specify some custom headers List<SignalingHeader> signalingHeaders = new List<SignalingHeader>(); signalingHeaders.Add(new SignalingHeader( "Custom-Header-Name1", "Custom-Header-Value1" ) ); signalingHeaders.Add(new SignalingHeader( "Custom-Header-Name2", "Custom-Header-Value2" ) ); try { session.Participate( signalingHeaders ); } catch (RealTimeException exp) { // Handle exception. Console.WriteLine("Invite Failure for {0}: {1}", session.RemoteParticipant.Uri, exp.ToString); } |
Sending a Session INVITE Asynchronously
The following code example illustrates how to send a signaling session INVITE request asynchronously.
Copy Code | |
---|---|
// Invite a URI asynchronously. AsyncCallback inviteCallback = new AsyncCallback(Participate_Completed); try { session.BeginParticipate(inviteCallback, session); } catch (RealTimeException exp) { // Handle exception. Console.WriteLine("Invite Failure: {0}", exp); } void Participate_Completed(IAsyncResult asyncResult) { SignalingSession session = (SignalingSession) asyncResult.AsyncState; try { session.EndParticipate(asyncResult); } catch (FailureResponseException exp) { // Handle a failure response Console.WriteLine("Failure response for {0}: {1}", session.RemoteParticipant.Uri, exp.ToString()); } catch (OperationTimeoutException exp) { // Operation timed out Console.WriteLine("Operation timed out for {0}: {1}", session.RemoteParticipant.Uri, exp.ToString()); } catch (RealTimeException exp) { // Handle exception. Console.WriteLine("Invite Failure for {0}: {1}", session.RemoteParticipant.Uri, exp.ToString()); } } |