2.5.12 Initiate a Call from a Client
This use case, illustrated in the following diagram, describes how a protocol client makes a voice call to a remote user.
Figure 11: Steps for initiating a call from a protocol client
References
Preconditions
The protocol clients are signed in, as described in section 2.5.5.
Steps
-
-
Note: This use case assumes an A/V Edge Server is configured and both clients’ support [MS-ICE] or [MS-ICE2]. If an A/V Edge Server is not configured or one or both of the clients do not support [MS-ICE] or [MS-ICE2] the protocol exchange will differ; see the detailed protocol documents for those protocol exchanges.
-
Client A sends a request to allocate media ports on an edge protocol server for ICE candidates. For more information, see [MS-AVEDGEA], [MS-TURN], and [MS-TURNBWM].
The protocol server returns the allocated media ports to Client A. For more information, see [MS-TURN].
Client A sends a session invitation message with a media description offer and target address of Client B to the protocol server. For more information, see [MS-SIPRE], [MS-OCPSTN], and [MS-SDPEXT].
The protocol server routes the session invitation to Client B, or the protocol client’s protocol server. For more information, see [MS-SIPRE].
Client B sends a request to allocate media ports on an edge protocol server for ICE candidates. For more information, see [MS-AVEDGEA], [MS-TURN], and [MS-TURNBWM].
The protocol server returns the allocated media ports to Client B. For more information, see [MS-TURN].
Client B sends a call progress response with a media description answer to the protocol server. For more information, see [MS-SIPRE], [MS-OCPSTN], and [MS-SDPEXT].
The protocol server routes the call progress response to Client A. For more information, see [MS-SIPRE].
Client B sends an ICE connectivity test message to Client A. For more information, see [MS-ICE] or [MS-ICE2]<17> and [MS-ICE2BWM].<18>
Client A sends an ICE connectivity test message to Client B. For more information, see [MS-ICE] or [MS-ICE2]<19> and [MS-ICE2BWM].<20>
Client B responds to the ICE connectivity test message with an ICE connectivity response message. For more information, see [MS-ICE] or [MS-ICE2]<21> and [MS-ICE2BWM].<22>
Client A responds to the ICE connectivity test message with an ICE connectivity response message. For more information, see [MS-ICE] or [MS-ICE2]<23> and [MS-ICE2BWM].<24>
Client B answers the call. For more information, see [MS-SIPRE].
The protocol server forwards the answer to Client A.
Client B sends real-time voice packets to Client A. For more information, see [MS-RTP], [MS-RTPRADEX], [MS-SRTP], and [MS-SSRTP].
Client A sends real-time voice packets to Client B. For more information, see [MS-RTP], [MS-RTPRADEX], [MS-SRTP], and [MS-SSRTP].
Client A sends an updated media description offer to the protocol server that reflects the media ports that were selected. For more information, see [MS-SIPRE] and [MS-SDPEXT].
The protocol server forwards the updated media description offer to Client B. For more information, see [MS-SIPRE].
Client B sends a media description answer to the protocol server. For more information, see [MS-SIPRE] and [MS-SDPEXT].
The protocol server forwards the media description answer to Client A. For more information, see [MS-SIPRE].
Post-conditions
A session is established between Client A and Client B, and real-time voice packets are exchanged between Client A and Client B.