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.

Steps for initiating a call from a protocol client

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.

  1. 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].

  2. The protocol server returns the allocated media ports to Client A. For more information, see [MS-TURN].

  3. 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].

  4. The protocol server routes the session invitation to Client B, or the protocol client’s protocol server. For more information, see [MS-SIPRE].

  5. 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].

  6. The protocol server returns the allocated media ports to Client B. For more information, see [MS-TURN].

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

  8. The protocol server routes the call progress response to Client A. For more information, see [MS-SIPRE].

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

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

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

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

  13. Client B answers the call. For more information, see [MS-SIPRE].

  14. The protocol server forwards the answer to Client A.

  15. Client B sends real-time voice packets to Client A. For more information, see [MS-RTP], [MS-RTPRADEX], [MS-SRTP], and [MS-SSRTP].

  16. Client A sends real-time voice packets to Client B. For more information, see [MS-RTP], [MS-RTPRADEX], [MS-SRTP], and [MS-SSRTP].

  17. 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].

  18. The protocol server forwards the updated media description offer to Client B. For more information, see [MS-SIPRE].

  19. Client B sends a media description answer to the protocol server. For more information, see [MS-SIPRE] and [MS-SDPEXT].

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