• 沒有找到結果。

Outgoing Call Setup Procedure

Chapter 5 A Client-Side Design for PoC Service

5.3 PoC Message Flow

5.3.1 Outgoing Call Setup Procedure

When the user requests to make a PoC call, the Outgoing Call Setup procedure is executed as illustrated in Figure 5-7.

Figure 5-7. Outgoing Call Setup Procedure

Steps 1-3: Based on the PoC group SIP URI specified by the user, the User Interface module requests the Call Control module to initiate a PoC call. The Call Control module instructs the SIP Core module to issue a SIP INVITE, and the call control FSM moves from Standby to SendInvite (transition 2 in Figure 5-5). The SIP INVITE is delivered to the PoC server where the PoC group’s SIP URI is registered.

Steps 4-6: The PoC server queries the member data of the designated PoC group from the GLMS and dispatches the SIP INVITE to each of the group members.

If an error occurs during the PoC call invitation, the PoC server returns a SIP 4xx, 5xx, or 6xx error message to the calling PoC client. Then the call control FSM of the calling PoC client moves from SendInvite to Rejected (transition 6 in Figure 5-5), and the calling PoC client replies a SIP ACK to the PoC server. Finally, the call control FSM moves to the Standby state (through transition 9 and 18 in Figure 5-5), and the PoC client waits for next user instruction or incoming call. Suppose that no error occurs. Step 7 and the subsequent steps are executed.

Steps 7-9: If a called PoC client receives the call invitation, this client plays the ringing tone and replies a SIP 180 RINGING to the calling PoC client through the PoC server.

The Multimedia Control module of the calling PoC client plays the ringback tone to indicate the user that the Outgoing Call Setup procedure is in progress, and the call control FSM moves from SendInvite to RingBack (transition 3 in Figure 5-5).

Steps 10-12: If any of the called PoC group members picks up the phone (accepts the call invitation), the member replies a SIP 200 OK to the PoC Server. The PoC server chooses the audio codec used in the RTP session between the calling PoC client and the RTP proxy. The PoC Server forwards the codec information to the RTP proxy, and also instructs the RTP proxy to reserve ports for the RTP session (Steps 11 and 12).

Steps 13 and 14: The PoC server sends a SIP 200 OK to the calling PoC client, which includes the audio codec information, the IP address of the RTP proxy, and the reserved ports in the RTP proxy. These parameters are used in establishing the RTP session at Step 22. The calling PoC client call control FSM moves from RingBack to Accepted (transition 4 in Figure 5-5).

Steps 15-17: The SIP Core module responds a SIP ACK, and the call control FSM moves from Accepted to CallEstablished (transition 5 in Figure 5-5).The PoC server forwards the SIP ACK to the called PoC group members who have accepted the call.

Step 18: The Call Control module of the calling PoC client instructs the Floor Control

module to enable the floor control function. The floor control FSM moves to Init (transition 1 in Figure 5-6).

Step 19: The User Interface module shows the PoC group information on the Call page of the Main dialog. Note that the user is only allowed to participate in one PoC or VoIP call.

Steps 20-22: The calling PoC client creates the RTP connection to the RTP proxy.

Specifically, the Call Control module inquires the SIP Core module about the negotiated audio codec and the IP address/port number of the remote endpoint of RTP session (i.e., the RTP proxy), which are obtained from the PoC server at Step 13. The information is passed to the RTP Core module to create the RTP session following the standard RTP protocol.

Step 23: The Multimedia Control module activates the audio device and generates two processes for recording and playing the voice data.

Steps 24-26: The calling PoC client is the first call party who is permitted to speak. The PoC server sends a PoCInit message carried by the SIP INFO method to the calling PoC client. The floor control FSM moves from Init to ReqPending (transition 2 in Figure 5-6). The Floor Reservation procedure is invoked, and the message flow is described in Section 5.3.3.

Step 27: At this point, the conversion begins. The calling PoC client sends the voice to the RTP proxy through the Multimedia Control module and the RTP Core module (Step 27.2 and Step 27.3). During the call, the voices from other group members are forwarded to the Multimedia Control module (Step 27.3 and Step 27.2), and are played through the audio device. The volume of the currently played voice is reported to the User Interface module and shown on the Call page of the Main dialog (Step 27.1).

Note that when other called PoC clients receive the call invitation at Step 6 of Figure 5-7, they may automatically accept the call invitation without playing the ringing tone. If so, Steps 7-9 are skipped, and the PoC group members directly reply a SIP 200 OK to the

calling PoC client through the PoC Server. Then the call control FSM of the calling PoC client moves from SendInvite to Accepted (transition 8 in Figure 5-5).

When the called PoC clients receive the call invitation, and the ringing tone is played at Step 7 of Figure 5-7, two other situations may occur.

(1) All PoC group members reject the call invitation. The PoC server replies a SIP 603 DECLINE to the calling PoC client and the Outgoing Call Setup procedure exits. The call control FSM of the calling PoC client moves from RingBack to Rejected (transition 7 in Figure 5-5).

(2) The calling party presses the cancel button to cancel the outgoing call before any of the PoC group members replies a message. The call control FSM of the calling PoC client moves from RingBack to CancelCall (transition 24 in Figure 5-5), and waits for the PoC server to reply a SIP 200 OK. Upon receipt of the SIP 200 OK, the call control FSM moves from CancelCall to CallNotEstablished (transition 25 in Figure 5-5).