SIP Header Fields
Troubleshooting Tips for Call Flow Scenarios
This document shows the debug ccsip messages command traces the SIP messages exchanges between the SIP User Agent client and the gateway in the Cisco IOS Release 12.2(2)XB and Cisco IOS Release 12.2(8)T, including examples and explanations of the output generated.
SIP Header Fields
| Header Field
|
Definition
|
Call-ID
|
The Call-ID general-header field uniquely identifies a specific invitation or all registrations of a specific client. Note that a single multimedia conference can give rise to several calls with different Call-IDs. For example, if a user invites a single individual several times to the same (long-running) conference.
|
Contact
|
The Contact general-header field can appear in INVITE, ACK, and REGISTER requests, and in 1xx, 2xx, 3xx, and 485 responses. In general, it provides a URL where the user can be reached for further communications.
|
Content-Length
|
The Content-Length entity-header field indicates the size of the message-body, in decimal number of octets, sent to the recipient.
|
Content-Type
|
The Content-Type entity-header field indicates the media type of the message-body sent to the recipient.
|
Cseq
|
Users MUST add the CSeq (command sequence) general-header field to every request. A CSeq header field in a request contains the request method and a single decimal sequence number chosen by the requesting client, unique within a single value of Call-ID. The sequence number MUST be expressed as a 32-bit unsigned integer. The initial value of the sequence number is arbitrary, but MUST be less than 2**31. Consecutive requests that differ in request method, headers, or body, but have the same Call-ID MUST contain strictly monotonically increasing and contiguous sequence numbers; sequence numbers do not wrap around. Retransmissions of the same request carry the same sequence number, but an INVITE with a different message body or different header fields (a "re-invitation") acquires a new, higher sequence number. A server MUST echo the CSeq value from the request in its response. If the Method value is missing in the received CSeq header field, the server fills it in appropriately.
|
Date
|
Date is a general-header field. Its syntax is:
SIP-date = rfc1123-date
Note that unlike HTTP/1.1, SIP only supports the most recent RFC 1123 [29] formatting for dates.
|
Diversion
|
Note Note: Currently the CC-Diversion header is used but it will change to just Diversion. Values will not change though.
|
Expires
|
The Expires entity-header field gives the date and time after which the message content expires.
This header field is currently defined only for the REGISTER and INVITE methods. For REGISTER, it is a request and response-header field. In a REGISTER request, the client indicates how long it wants the registration to be valid. In the response, the server indicates the earliest expiration time of all registrations. The server MAYchoose a shorter time interval than that requested by the client, but SHOULD NOT choose a longer one.
|
From
|
Requests and responses MUST contain a From general-header field, indicating the initiator of the request. The From field MAY contain the "tag" parameter. The server copies the From header field from the request to the response. The optional "display-name" is meant to be rendered by a human-user interface. A system SHOULD use the display name "Anonymous" if the identity of the client is to remain hidden.
The SIP-URL MUST NOT contain the "transport-param", "maddr-param", "ttl-param", or "headers"elements. A server that receives a SIP-URL with these elements removes them before further processing.
|
Max-Forwards
|
The Max-Forwards request-header field may be used with any SIP method to limit the number of proxies or gateways that can forward the request to the next downstream server. This can also be useful when the client is attempting to trace a request chain which appears to be failing or looping in mid chain.
The Max-Forwards value is a decimal integer indicating the remaining number of times this request message is allowed to be forwarded.
Each proxy or gateway recipient of a request containing a Max-Forwards header field MUST check and update its value before forwarding the request. If the received value is zero (0), the recipient MUST NOT forward the request. Instead, for the OPTIONS and REGISTER methods, it MUST respond as the final recipient. For all other methods, the server returns 483 (too many hops).
If the received Max-Forwards value is greater than zero, then the forwarded message MUST contain an updated Max-Forwards field with a value decremented by one (1).
|
Require
|
The Require request-header field is used by clients to tell useragent servers about options that the client expects the server to support in order to properly process the request. If a server does not understand the option, it MUST respond by returning status code 420 (bad extension) and list those options it does not understand in the Unsupported header.
|
Server
|
The Server response-header field contains information about the software used by the user agent server to handle the request.
|
Timestamp
|
The timestamp general-header field describes when the client sent the request to the server. The value of the timestamp is of significance only to the client and it MAY use any time scale. The server MUST echo the exact same value and MAY, if it has accurate information about this, add a floating point number indicating the number of seconds that have elapsed since receiving the request. The timestamp is used by the client to compute the round-trip time to the server so that it can adjust the time out value for retransmissions.
|
To
|
The To general-header field specifies recipient of the request, with the same SIP URL syntax as the From field.
Requests and responses MUST contain a To general-header field, indicating the desired recipient of the request. The optional "display-name"is meant to be rendered by a human-user interface. The UAS or redirect server copies the To header field into its response, and MUST add a "tag" parameter if the request contained more than one Via header field.
|
User-Agent
|
The User-Agent general-header field contains information about the client user agent originating the request.
|
Via
|
The Via field indicates the path taken by the request so far. This prevents request looping and ensures replies take the same path as the requests, which assists in firewall traversal and other unusual routing situations.
|
SIP Call with Diversion Header Added for Call-Diversion Output from GW1 Side
RS = Redirect Server
GW1 ---INVITE---> RS (F1)
GW1 <----302----- RS (F2)
GW1 -----ACK----> RS (F3)
GW1 ---INVITE---> GW2(F4)
GW1 <----100----- GW2(F5)
GW1 <----183----- GW2(F6)
GW1 <---200OK---- GW2(F7)
GW1 -----ACK----> GW2(F8)
GW1 <----BYE----- GW2(F9)
GW1 ---200OK----> GW2(F10)
In this call the originator gets redirected to the terminator by a proxy. The proxy attaches the 'Diversion:' headers to the 3xx response that it sends to the originator. The 3xx response also has the contact header with the address of the terminator. This header is defined in IETF draft 'draft-levy-sip-diversion-02.txt', although the syntax is slightly different because of an implementation in IOS software before the draft being recognized by the IETF.
INVITE sip:3111100@64.102.17.80:5060;user=phone SIP/2.0
Via: SIP/2.0/UDP 172.18.193.98:5060
From: "36601"<sip:36601@172.18.193.98>
To: <sip:3111100@64.102.17.80;user=phone>
Date: Mon, 01 Mar 1993 00:40:08 GMT65
Call-ID: 232226D2-14F411CC-80279792-19DC655A@172.18.193.98
Cisco-Guid: 557120379-351539660-2149947282-433874266
User-Agent: Cisco-SIPGateway/IOS-12.x
Contact: <sip:36601@172.18.193.98:5060;user=phone>
Content-Type: application/sdp
o=CiscoSystemsSIP-GW-UserAgent 4075 3837 IN IP4 172.18.193.98
SIP/2.0 302 Moved Temporarily
Via: SIP/2.0/UDP 172.18.193.98:5060
From: "36601"<sip:36601@172.18.193.98>
To: <sip:3111100@64.102.17.80;user=phone>
Date: Mon, 01 Mar 1993 00:40:08 GMT
Call-ID: 232226D2-14F411CC-80279792-19DC655A@172.18.193.98
Cisco-Guid: 557120379-351539660-2149947282-433874266
User-Agent: Cisco-SIPGateway/IOS-12.x
CC-Diversion: <sip:36602@172.18.193.120>;reason=unconditional
CC-Diversion: <sip:33456@172.18.193.121>;reason=user-busy
CC-Diversion: <sip:36342@172.18.193.122>;reason=unconditional
CC-Diversion: <sip:23222@172.18.193.123>;reason=no-answer
Contact: Anonymous <sip:36602@172.18.193.120>
Contact: Anonymous <sip:36601@172.18.193.98>
 |
Note The Redirect Server sends back a 302 message, with a new Contact: address, and a
Diversion: header added. The GW will now copy those headers into the new INVITE,
|
Courier New, Courier, mono; font-size: 9.5pt; font-style: normal; font-variant: normal; font-weight: normal; margin-bottom: 0pt; margin-right: 0pt; margin-top: 0pt; text-align: left; text-decoration: none; text-indent: 0pt; text-transform: none">
(F3)
ACK sip:3111100@64.102.17.80:5060;user=phone SIP/2.0
Via: SIP/2.0/UDP 172.18.193.98:5060
From: "36601"<sip:36601@172.18.193.98>
To: <sip:3111100@64.102.17.80;user=phone>
Date: Mon, 01 Mar 1993 00:40:08 GMTCall-ID: 232226D2-14F411CC-80279792-19DC655A@172.18.193.98
INVITE sip:36602@172.18.193.120:5060 SIP/2.0
Via: SIP/2.0/UDP 172.18.193.98:5060
From: "36601"<sip:36601@172.18.193.98>
To: <sip:3111100@64.102.17.80;user=phone>
Date: Mon, 01 Mar 1993 00:40:08 GMT
Call-ID: 23704587-14F411CC-80289792-19DC655A@172.18.193.98
Cisco-Guid: 557120379-351539660-2149947282-433874266
User-Agent: Cisco-SIPGateway/IOS-12.x
Contact: <sip:36601@172.18.193.98:5060;user=phone>
CC-Diversion: <sip:36602@172.18.193.120>;reason=unconditional
CC-Diversion: <sip:33456@172.18.193.121>;reason=user-busy
CC-Diversion: <sip:36342@172.18.193.122>;reason=unconditional
CC-Diversion: <sip:23222@172.18.193.123>;reason=no-answer
Content-Type: application/sdp
o=CiscoSystemsSIP-GW-UserAgent 9443 2845 IN IP4 172.18.193.98
s=SIP Callc=IN IP4 172.18.193.98
t=0 0m=audio 18116 RTP/AVP 18
Via: SIP/2.0/UDP 172.18.193.98:5060
From: "36601"<sip:36601@172.18.193.98>
To: <sip:3111100@64.102.17.80;user=phone>
Date: Mon, 01 Mar 1993 00:40:09 GMT
Call-ID: 23704587-14F411CC-80289792-19DC655A@172.18.193.98
Server: Cisco-SIPGateway/IOS-12.x
CSeq: 101 INVITEContent-Length: 0
SIP/2.0 183 Session Progress
Via: SIP/2.0/UDP 172.18.193.98:5060
From: "36601"<sip:36601@172.18.193.98>
To: <sip:3111100@64.102.17.80;user=phone>
Date: Mon, 01 Mar 1993 00:40:09 GMT
Call-ID: 23704587-14F411CC-80289792-19DC655A@172.18.193.98
Server: Cisco-SIPGateway/IOS-12.x
Content-Type: application/sdp
o=CiscoSystemsSIP-GW-UserAgent 2626 2857 IN IP4 172.18.193.120
Via: SIP/2.0/UDP 172.18.193.98:5060
From: "36601"<sip:36601@172.18.193.98>
To: <sip:3111100@64.102.17.80;user=phone>;tag=24DE3C-1EBF
Date: Mon, 01 Mar 1993 00:40:09 GMT
Call-ID: 23704587-14F411CC-80289792-19DC655A@172.18.193.98
Server: Cisco-SIPGateway/IOS-12.x
Contact: <sip:36602@172.18.193.120:5060;user=phone>
Content-Type: application/sdp
o=CiscoSystemsSIP-GW-UserAgent 2626 2857 IN IP4 172.18.193.120
ACK sip:36602@172.18.193.120:5060;user=phone SIP/2.0
Via: SIP/2.0/UDP 172.18.193.98:5060
From: "36601"<sip:36601@172.18.193.98>
To: <sip:3111100@64.102.17.80;user=phone>;tag=24DE3C-1EBF
Date: Mon, 01 Mar 1993 00:40:08 GMT
Call-ID: 23704587-14F411CC-80289792-19DC655A@172.18.193.98
Content-Length: 0CSeq: 101 ACK
BYE sip:36601@172.18.193.98:5060;user=phone SIP/2.0
Via: SIP/2.0/UDP 172.18.193.120:5060
From: <sip:3111100@64.102.17.80;user=phone>;tag=24DE3C-1EBF
To: "36601"<sip:36601@172.18.193.98>
Date: Mon, 01 Mar 1993 00:40:16 GMT
Call-ID: 23704587-14F411CC-80289792-19DC655A@172.18.193.98
User-Agent: Cisco-SIPGateway/IOS-12.x
Via: SIP/2.0/UDP 172.18.193.120:5060
From: <sip:3111100@64.102.17.80;user=phone>;tag=24DE3C-1EBF
To: "36601"<sip:36601@172.18.193.98>
Date: Mon, 01 Mar 1993 00:40:15 GMT
Call-ID: 23704587-14F411CC-80289792-19DC655A@172.18.193.98
Server: Cisco-SIPGateway/IOS-12.x
Figure C-1 SIP Gateway to SIP Gateway Call Redirection with Diversion