Internet Communications Using SIP : Delivering VoIP and Multimedia Services With Session Initiation Protocol {2Nd Ed.}

(Steven Felgate) #1

A user agent receiving a CANCELreplies with a 200 OKif a final response has
not yet been sent, or a 481 Transaction Unknown response if a final
response has been sent. The latter corresponds to the “race” condition, where
the CANCELand final response “cross on the wire.” In this condition, the user
agent may have to send a BYEto cancel the call [6].
In the example of Figure 6.6, a user agent sends an INVITErequest, and then
a CANCELrequest. The INVITEis forwarded through two proxies to reach the
destination user agent. Notice that the CANCELrequest sent to the first proxy
results in a 200 OKresponse to the CANCEL, and the CANCELbeing forwarded
to the next proxy. The second proxy immediately sends a 200 OKto the first
proxy and forwards the CANCELto the destination user agent. Finally, the user
agent responds with a 200 OKto the CANCELand a 487 Request Cancelled
response to the INVITE. The 487 response is acknowledged by the second
proxy with an ACK, and then forwards the 487 to the first proxy, which eventu-
ally is received by the calling user agent, which then knows that the pending
session was successfully cancelled. (Non-success final responses such as 3xx,
4xx, 5xx, or 6xxare always acknowledged on a hop-by-hop basis. Only a 200
OKreceives an end-to-end ACK.) The user agent then has completed two trans-
actions: a CANCEL/ 200 and an INVITE/ 487 /ACKtransaction.
Since it is possible that a CANCELmay be sent at the same time as a 200 OK
response, the user agent must be prepared to send an ACKand a BYEto the 200
OKeven after sending the CANCEL.
Note that a CANCELrequest is unique in that it can not be challenged for
authentication as all other SIP requests can be, as described later in this chapter.


Mid-Call Signaling

Mid-call signalingis a signaling message exchange between two user agents
that does not change the session parameters between them. If a mid-call sig-
naling event did change the session parameters (that is, the SDP), then a re-
INVITEwould be used. Otherwise, the SIPINFOmethod [14] is used to
transport the information between the two user agents. The information is car-
ried in the message body of the INFOrequest. For example, mid-call signaling
information contained in an ISDN USR (User to User Message) message can be
transported using the INFOmethod in a network where ISDN User Part
(ISUP) encapsulation is being used. An example of this is shown in Figure 6.7,
where basic SIP-to-ISUP mapping is performed by two gateways. Following
are the ISDN messages in Figure 6.7:


■■ IAM—Initial address message
■■ ANM—Answer message
■■ USR—User to user message

SIP Overview 117
Free download pdf