SIP
Guide
Exclusive reference
guide for Session Initiation
Protocol professionals
Session Initiation Protocol (SIP) is a signaling protocol used for creating, modifying, and terminating sessions with one or more participants in an IP network. SIP has been adopted by the telecommunications industry as its protocol of choice for signaling. SIP is an RFC standard (RFC3261) from the Internet Engineering Task Force (IETF), the body responsible for administering and developing the mechanisms that comprise the Internet.
Found at the heart of most global networks, Tekelec’s market-leading, carrier-grade network solutions enable the secure and instant delivery of calls and text messages for more than one billion mobile and fixed-line subscribers. The company’s session management solutions allow telecom operators to manage the diverse applications, devices, technologies and protocols, across existing and evolving networks, to meet the demands of today’s consumer. Tekelec uniquely ensures telecom operators have a clear migration path to SIP-based IP networks, and whatever comes next, with the flexibility to deploy solutions at a pace dictated by their business needs.
For more information please call
888.628.5521
or
+1.919.460.5500
Table of Contents SIP Methods . . . 4 Response Codes . . . 5 INVITE/200 . . . 7 INVITE/200 . . . 7 Header Fields . . . 8
Header Fields – Compact Forms. . . .11
Header Field Parameters and Parameter Values. . . .11
Security Mechanism Names . . . .15
Namespaces and Priority Values for the Resource Priority Header Field . . . .15
URI Purposes . . . .15
SIP/SIPS URI Parameters . . . .16
SIP’s Use of DNS . . . .17
Types of DNS Resource Records. . . .18
NAPTR Records . . . .18
SRV Records . . . .19
DNS Example . . . .19
Option Tags for SIP Extensions . . . .20
SIP Events . . . .26
Session Description Protocol (SDP) . . . .27
– Session Level Description . . . .27
– Time Description . . . .27
– SDP Media Description . . . .28
– SDP Media Attribute Lines (a=) . . . .28
Warning Codes . . . .29
Mapping Between the SIP SDP and SS7 USI/HLC (SIP Origination) . .30 Mapping Between SS7 USI and the SIP SDP (SS7 Origination) . . . .30
SIP Response to a Call Progress (CPG) Message . . . .32
Mapping ISUP Cause Codes to SIP-I/SIP-T Responses . . . .32
Mapping SIP-T Responses to ISUP Cause Codes. . . .36
Mapping SIP-I Responses to ISUP Cause Codes . . . .38
SIP Timers . . . .40
INVITE Client Transaction . . . .41
INVITE Server Transaction . . . .42
Non-INVITE Client Transaction. . . .43
Non-INVITE Server Transaction . . . .44
Elements and Architectures. . . .45
Mechanics: Registration . . . .45
Mechanics: Location . . . .46
Glossary of SIP Acronyms and Definitions . . . .47
SIP Methods
Methods Description RFC
ACK Acknowledgment sent in response to a
response to an INVITE request 3261
BYE Terminates a session 3261
CANCEL Cancels a pending transaction 3261 INFO Carries session-related control information 2976 INVITE Establishes a session between participants 3261
MESSAGE Transfers instant messages 3428
NOTIFY Informs a subscriber about the state of
a resource 3265
OPTIONS Queries a server about its capabilities 3261 PRACK Similar to ACK but for responding to
reliable provisional responses 3262 PUBLISH Publishes event state to a SIP events
server 3903
REFER Indicates that the recipient should contact a third party using contact information provided in the request
3515 REGISTER Registers contact information 3261 SUBSCRIBE Requests current state and state updates
from a remote node 3265
Response Codes
Note: All response codes below are defined by RFC3261 unless otherwise noted.
Response Codes continues on page 6
Response Code RFC
Provisional 1xx 100 Trying 180 Ringing
181 Call Is Being Forwarded 183 Session Progress Successful 2xx 200 OK 202 Accepted 3265 Redirection 3xx 300 Multiple Choices 301 Moved Permanently 302 Moved Temporarily 305 Use Proxy 380 Alternative Service Request Failure 4xx 400 Bad Request 401 Unauthorized 402 Payment Required 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable
407 Proxy Authentication Required 408 Request Timeout
410 Gone
412 Conditional Request Failed 3903 413 Request Entity Too Large
414 Request-URI Too Long 415 Unsupported Media Type 416 Unsupported URI Scheme
417 Unknown Resource-Priority 4412 420 Bad Extension
421 Extension Required
422 Session Interval Too Small 4028 423 Interval Too Brief
Response Code RFC 429 Provide Referrer Identity 3892 433 Anonymity Disallowed 5079 436 Bad Identity-Info 4474 437 Unsupported Certificate 4474 438 Invalid Identity Header 4474 470 Consent Needed 5360 480 Temporarily Unavailable
481 Call/Transaction Does Not Exist 482 Loop Detected
483 Too Many Hops 484 Address Incomplete 485 Ambiguous 486 Busy Here 487 Request Terminated 488 Not Acceptable Here
489 Bad Event 3265
493 Undecipherable
494 Security Agreement Required 3329 Server Failure 5xx
500 Server Internal Error 501 Not Implemented 502 Bad Gateway 503 Service Unavailable 504 Server Time-Out 505 Version Not Supported 513 Message Too Large
580 Precondition Failure 3312 Global Failures 6xx
600 Busy Everywhere 603 Decline
604 Does Not Exist Anywhere 606 Not Acceptable
INVITE/200
INVITE/200
Robert
Phil
INVITE (tid A) response (tid A) ACK (tid E) INVITE (tid B) response (tid B)P1
P2
INVITE (tid C) response (tid C)P3
INVITE (tid D) response (tid D)Robert
Phil
INVITE (tid A) response (tid A) ACK (tid E) INVITE (tid B) response (tid B) ACK (tid F)P1
P2
INVITE (tid C) response (tid C) ACK (tid G)P3
INVITE (tid D) response (tid D) ACK (tid H)• ACK/200 is an end-to-end message – it tells the other endpoint that its 2xx-class response has been received
• The messages at Phil’s UA are exactly the form as if it had talked directly to Robert’s UA
• Proxies can ask to see the ACK/200
• The messages at Phil’s UA are STILL exactly the form as if it had talked directly to Robert’s UA
Header Fields
Header Field Compact Used Where RFC
Accept Requests, 2xx, 415 3261 Accept-Contact a Requests 3841 Accept-Encoding Requests, 2xx, 415 3261 Accept-Language Requests, 2xx, 415 3261 Accept-Resource-Priority 200, 417 4412 Alert-Info Requests, 180 3261 Allow Requests, 2xx, Responses, 405 3261 Allow-Events u Requests, 2xx, 489 3265 Answer-Mode Requests, 200 5373 Authentication-Info 2xx 3261 Authorization Requests 3261 Call-ID i Copied 3261 Call-Info 3261 Contact m Requests, 1xx, 2xx, 3xx, 485 3261 Content-Disposition 3261 Content-Encoding e 3261 Content-Language 3261 Content-Length l 3261 Content-Type c 3261 CSeq Copied 3261 Date 3261 Encryption -Deprecated- 2543 Error-Info 300-699 3261 Event e Requests 3265 Expires 2xx 3261 From Copied 3261 Hide -Deprecated- 2543 History-Info 4244 Identity y Requests 4474 Identity-Info n Requests 4474 In-Reply-To Requests 3261 Join Requests 3911 Max-Forwards Requests 3261 MIME-Version 3261 Min-Expires 423 3261 Min-SE Requests, 422 4028 Organization 3261
Header Fields continued from page 8
Header Fields continues on page 10
Header Field Compact Used Where RFC
P-Access-Network- Info 3455 P-Answer-State Requests, 18x, 2xx 4964 P-Asserted-Identity 3325 P-Associated-URI 2xx 3455 P-Called-Party Requests 3455 P-Charging-Function Address 3455 P-Charging-Vector 3455 P-DCS-Trace-Party-ID Requests 3603 P-DCS-OSPS Requests 3603 P-DCS-Billing-Info 3603 P-DCS-LAES 3603 P-DCS-Redirect 3603 P-Early-Media Requests, 18x, 2xx 5009 P-Media-Authorization Requests, 101-199, 2xx 3313 P-Preferred-Identity 3325 P-Profile-Key 5002 P-User-Database 4457 P-Visited-Network-ID Requests 3455 Path Requests, 2xx 3327 Permission-Missing 5360 Permission-Missing 470 5360 Priority Requests 3261 Priv-Answer-Mode Requests, 200 5373 Privacy 3323 Proxy-Authenticate 407, 401 3261 Proxy-Authorization Requests 3261 Proxy-Require Requests 3261 RAck Requests 3262 Reason 3326 Record-Route Requests, 2xx, 18x 3261 Refer-Sub Requests, 2xx 4488 Refer-To r Requests 3515 Referred-By b Requests 3892 Reject-Contact j Requests 3841 Replaces Requests 3891 Reply-To 3261
Header Fields continued from page 9
The “where” column describes the request and response types in which the header field can be used. Values in this column are:
Requests: header field may only appear in requests Responses: header field may only appear in responses 2xx, 4xx, etc.: A numerical value or range indicates response codes with which the header field can be used;
Copied: header field is copied from the request to the response. An empty entry in the “where” column indicates that the header field may be present in all requests and responses.
Header Field Compact Used Where RFC
Request-Disposition d Requests 3841 Require 3261 Resource-Priority Requests 4412 Response-Key -Deprecated- 2543 Retry-After 404, 413, 480, 486, 500, 503, 600, 603 3261 Route Requests 3261 Rseq 1xx 3262 Security-Client Requests 3329 Security-Server 421, 494 3329 Security-Verify Requests 3329 Server Responses 3261 Service-Route 2xx 3608 Session-Expires x Requests, 2xx 4028 SIP-ETag 2xx 3903 SIP-If-Match Requests 3903 Subject s Requests 3261 Subscription-State Requests 3265 Supported k Requests, 2xx 3261 Target-Dialog Requests 4538 Timestamp 3261
To t Copied, tag added 3261
Trigger-Consent 5360
Unsupported 420 3261
User-Agent 3261
Via Requests, Responses,
Copied 3261
Warning Requests, Responses 3261
Header Fields – Compact Forms
Header Field Parameters and Parameter Values continues on page 12 Compact Header Field
a Accept-Contact b Referred-By c Content-Type d Request-Disposition e Content-Encoding i Call-ID j Reject-Contact k Supported l Content-Length m Contact n Identity-Info o Event r Refer-To s Subject t To u Allow-Events x Session-Expires y Identity
Header Field Reference Parameter
Name Predefined Values
Accept q No
Accept-Encoding q No
Accept-Language q No
Answer-Mode auto No
Answer-Mode auto; require No
Answer-Mode manual No
Answer-Mode manual; require No
Authorization (3310) algorithm Yes
Authorization (3310) auts No
Authorization cnonce No
Authorization nc No
Authorization nonce No
Authorization opaque No
Authorization qop Yes
Authorization realm No
Authorization response No
Header Field Parameters and Parameter Values
Reference is provided only if it is different from the original header field reference. See the Header Fields table.
Header Field Parameters and Parameter Values continues on page 13 Header Field Parameters and Parameter Values continued from page 11
Header Field Reference Parameter
Name Predefined Values
Authorization uri No
Authorization username No
Authentication-Info cnonce No
Authentication-Info nc No
Authentication-Info nextnonce No
Authentication-Info qop Yes
Authentication-Info rspauth No
Call-Info (5367) purpose Yes
Call-Info purpose Yes
Contact expires No
Contact q No
Contact draft-ietf-sip-gruu pub-gruu No Contact draft-ietf-sip-gruu temp-gru No
Content-Disposition handling Yes
Event (4235) call-id No Event (4235) from-tag No Event id No Event (4235) include-session description No Event (4235) to-tag No From tag No P-Access-Network-Info cgi-3gpp No P-Access-Network-Info utran-cell-id-3gpp No P-Charging-Function-Addresses ccf No P-Charging-Function-Addresses ecf No P-Charging-Vector icid-value No P-Charging-Vector icid-generated-at No P-Charging-Vector orig-ioi No P-Charging-Vector term-ioi No P-DCS-Billing-Info called No P-DCS-Billing-Info calling No P-DCS-Billing-Info charge No P-DCS-Billing-Info locroute No P-DCS-Billing-Info rksgroup No P-DCS-Billing-Info routing No P-DCS-LAES content No P-DCS-LAES key No P-DCS-Redirect count No P-DCS-Redirect redirector-uri No
Header Field Parameters and Parameter Values continues on page 14 Header Field Parameters and Parameter Values continued from page 12
Header Field Reference Parameter
Name Predefined Values
Priv-Answer-Mode auto No
Priv-Answer-Mode auto; require No
Priv-Answer-Mode manual No
Priv-Answer-Mode manual; require No
Proxy-Authenticate (3310) algorithm Yes
Proxy-Authenticate domain No
Proxy-Authenticate nonce No
Proxy-Authenticate opaque No
Proxy-Authenticate qop Yes
Proxy-Authenticate realm No
Proxy-Authenticate stale Yes
Proxy-Authorization (3310) algorithm Yes
Proxy-Authorization (3310) auts No
Proxy-Authorization cnonce No
Proxy-Authorization nc No
Proxy-Authorization nonce No
Proxy-Authorization opaque No
Proxy-Authorization qop Yes
Proxy-Authorization realm No
Proxy-Authorization uri No
Proxy-Authorization username No
Proxy-Authorization response No
Reason cause Yes
Reason text No
Retry-After duration No
Security-Client alg Yes
Security-Client ealg Yes
Security-Client d-alg Yes
Security-Client d-qop Yes
Security-Client d-ver No
Security-Client mod Yes
Security-Client port1 No
Security-Client port2 No
Security-Client prot Yes
Security-Client q No
Security-Client spi No
Security-Server alg Yes
Security-Server ealg Yes
Header Field Parameters and Parameter Values continued from page 13 Header Field Reference Parameter
Name Predefined Values
Security-Server d-qop Yes
Security-Server d-ver No
Security-Server mod Yes
Security-Server port1 No
Security-Server port2 No
Security-Server prot Yes
Security-Server q No
Security-Server spi No
Security-Verify alg Yes
Security-Verify ealg Yes
Security-Verify d-alg Yes
Security-Verify d-qop Yes
Security-Verify d-ver No
Security-Verify mod Yes
Security-Verify port1 No
Security-Verify port2 No
Security-Verify prot Yes
Security-Verify q No
Security-Verify spi No
Subscription-State expires No
Subscription-State reason Yes
Subscription-State retry-after No Target-Dialog local-tag No Target-Dialog remote-tag No To tag No Trigger-Consent target-uri No Via branch No
Via (3486) comp Yes
Via maddr No
Via received No
Via (3581) rport No
Via (5049) sigcomp-id No
Via ttl No
WWW-Authenticate (3310) algorithm Yes
WWW-Authenticate domain Yes
WWW-Authenticate nonce No
WWW-Authenticate opaque No
WWW-Authenticate qop Yes
WWW-Authenticate realm No
Namespaces and Priority Values for the
Resource Priority Header Field
Handling emergency calls according to DNS name space Namespace Intended
Algorithm Priority-Values (least to greatest)
drsn preemption “routine”, “priority”, “immediate”, “flash”, “flash-override”, “flash-override-override” dsn preemption “routine”, “priority”, “immediate”,
“flash”, “flash-override” q753 preemption “4”, “3”, “2”, “1”, “0” ets queue “4”, “3”, “2”, “1”, “0” wps queue “4”, “3”, “2”, “1”, “0” RFC4412
URI Purposes
Value Descriptionparticipation The URI can be used to join the conference. streaming The URI can be used to access the streamed
conference data.
event The URI can be used to subscribe to the conference event package.
recording The URI can be used to access the recorded conference data.
web-page The URI can be used to access a web page that contains additional information of the conference.
RFC4575 Mechanism Name Description
digest HTTP digest authentication
tls Transport Layer Security
ipsec-ike IPsec with Internet Key Exchange ipsec-man Manually keyed IPsec without IKE ipsec-3gpp IPsec with either MD5 or SHA-1, used in
3GPP IMS networks
SIP/SIPS URI Parameters
Parameter
Name Predefined Values RFC Description
cause Yes 4458 Voicemail (IVR)
comp Yes 3486 Ability to handle compressed SIP messages content-type No 4240 Service announcements
& conferencing delay No 4240 Service announcements
& conferencing duration No 4240 Service announcements
& conferencing locale No 4240 Service announcements
& conferencing
lr No 3261 Supports 3261-compliant
routing
maddr No 3261 Server address to be contacted for the user method Yes 3261 Specifies the method of the
SIP request constructed from the URI
param[n] No 4240 Service announcements & conferencing
play No 4240 Service announcements
& conferencing repeat No 4240 Service announcements
& conferencing sigcomp-id No 5049 URN of a SIP/SigComp
application
target No 4458 Indicates the address of the retargeting entity transport Yes 3261 Transport mechanism to
be used for sending SIP messages
ttl No 3261 Time-to-live value of the UDP multicast packet
user Yes 3261,
4967 Distinguishes telephone numbers from the usernames that look like telephone numbers
voicexml No 4240 Indicates the URI of the VoiceXML script to execute
gr No draft
ietf-sip- gruu
SIP’s Use of DNS
RFC3263 Is address explicit? Is port explicit? Is transport explicit? Yes No No No Yes Yes Use the discovered address, port & transport to contact the server Use 5060 Use given address Use given port Use UDP Use given transport Is port explicit? Is transport explicit? Yes Yes No No Yes Use given port Is transport explicit? No Use given transport Do NAPTR Lookup Use given transport Do A/AAAA Lookups Use UDP Do SRV Lookups Use 5060Types of DNS Resource Records
NAPTR Records
Type Description RFC
NAPTR Naming authority pointer record.
Provides the discovery of the server’s preferred transport protocol supported by the client. Returns a name to look up in SRV records for the server.
3403
SRV Server selection record.
Provides load balancing across SIP servers. Returns the IP ports, names of servers to lookup in A or AAAA records, and relative weights of each server.
2782
A Address record. Returns an IPv4 address.
1035 AAAA IPv6 address record.
Returns an IPv6 address.
3596
NAPTR Field Description
Order Specifies the order, from lowest to highest, in which to process multiple NAPTR records for a name. Processing stops once a suitable record is found. Preference The order, from lowest to highest, in which to
process multiple NAPTR records with the same order value. Higher numbered records can be tried if lower numbered records fail or aren’t acceptable in some other way.
Flags Always “s” for SIP, which means to do an SRV lookup on whatever is in the replacement field.
Service Specifies the service available by following this rule. For SIP:
• SIP+D2U: SIP over UDP • SIP+D2T: SIP over TCP • SIP+D2S: SIP over SCTP • SIPS+D2T: SIPS over TCP Regexp Always empty for SIP services.
Replacement For SIP, a DNS name to use in an SRV query. tekelec.com. 600 IN NAPTR 50 50 “s” SIP+D2U” “”_sip._udp.naptr-udp
order
flags regexp
DNS Example
_sip._udp.naptr-udp.tekelec.com. 600 IN SRV 10 1 5060 lt.tekelec.com weight protocol target service priority port SRV Field DescriptionService IANA-registered service name, always starts with an ‘_’ to avoid collisions with ordinary DNS names.
_sip for SIP Protocol Transport protocol.
Priority Order, from lowest to highest, to try reaching hosts. Weight Emphasis to put on this record when other records have
the same priority, used for load balancing. For example, in the records below, the weights total to 4:
• 1/4 of the traffic will go to huey. • 1/4 will go to dewey.
• 2/4 will go to louie.
_sip._udp.naptr-udp.tekelec.com. 600 IN SRV 10 1 5060 huey.tekelec.com. _sip._udp.naptr-udp.tekelec.com. 600 IN SRV 10 1 5060 dewey.tekelec.com. _sip._udp.naptr-udp.tekelec.com. 600 IN SRV 10 2 5060 louie.tekelec.com. Port The port to use if this record is selected.
Target A name to lookup using A or AAAA if this record is selected.
$ORIGIN tekelec.com.
10m NAPTR 50 50 “s” “SIP+D2U” “” _sip._udp.naptr-udp _sip._udp.naptr-udp 10m SRV 0 1 5060 llama _sip._udp.naptr-udp 10m SRV 10 1 5060 lt _sip._udp 10m SRV 0 1 5060 llama _sip._udp 10m SRV 10 1 5060 lt lt IN A 10.0.0.1 llama IN A 10.0.0.2
Notes: • This zone is set to prefer SIP over UDP • Normally llama is used, but traffic can failover to lt
• The bare SRV records are there for clients that don’t support NAPTR
Option Tags for SIP Extensions
Option Tag Supported Extension Used in the Following Header Fields RFC
100rel Reliability of provisional responses Supported – indicates that the UA can send or receive reliable provisional responses. Require in a request – indicates that the UAS must send all provisional responses reliably. Require in a reliable provisional response – indicates that the response is to be sent reliably.
3262
answermode Answer-Mode and Priv-Answer-Mode Supported – indicates the UA supports automatic or manual answering of a request.
Require – indicates that the UA has to
understand the extension when placed in an INVITE. Accept-Contact – the extension parameter “answermode” is placed in this header field when the Require header field is used.
5373
early-session Early-session content disposition Supported – indicates that a UA understands the early-session content-disposition type.
Require – indicates that a UA requires the early- session disposition type.
3959
eventlist Subscriptions to lists of resources Supported in a SUBSCRIBE – indicates that the UA is willing to process a list.
Require in responses to a SUBSCRIBE and in all NOTIFYs within that subscription – indicates that the UA has subscribed to an event list.
4662
from-change Connected identity Supported – indicates that a UA supports
changes to URIs in From and To header fields during a dialog.
4916 gruu Globally Routable User Agent URI
(GRUU) Supported – indicates that a UA understands the extension. Require in a REGISTER request – indicates that the registrar is not expected to process the registration unless it supports the GRUU extension.
draft-ietf- sip-gruu
histinfo History-Info header field Supported – indicates support for the History Information to be captured for requests and returned in subsequent responses.
4244 ice Interactive Connectivity Establishment
(ICE) Require – indicates that ICE is required by an agent. Support is indicated by placing a media feature tag in the Contact header field.
ietf-sip-ice-option-tag
join Join header field Supported – indicates that the UA supports the
Join header field.
Require – indicates that the UA wants explicit failure notification if Join is not supported.
Option Tag Supported Extension Used in the Following Header Fields RFC 100rel Reliability of provisional responses Supported – indicates that the UA can send or
receive reliable provisional responses. Require in a request – indicates that the UAS must send all provisional responses reliably. Require in a reliable provisional response – indicates that the response is to be sent reliably.
3262
answermode Answer-Mode and Priv-Answer-Mode Supported – indicates the UA supports automatic or manual answering of a request.
Require – indicates that the UA has to
understand the extension when placed in an INVITE. Accept-Contact – the extension parameter “answermode” is placed in this header field when the Require header field is used.
5373
early-session Early-session content disposition Supported – indicates that a UA understands the early-session content-disposition type.
Require – indicates that a UA requires the early- session disposition type.
3959
eventlist Subscriptions to lists of resources Supported in a SUBSCRIBE – indicates that the UA is willing to process a list.
Require in responses to a SUBSCRIBE and in all NOTIFYs within that subscription – indicates that the UA has subscribed to an event list.
4662
from-change Connected identity Supported – indicates that a UA supports
changes to URIs in From and To header fields during a dialog.
4916 gruu Globally Routable User Agent URI
(GRUU) Supported – indicates that a UA understands the extension. Require in a REGISTER request – indicates that the registrar is not expected to process the registration unless it supports the GRUU extension.
draft-ietf- sip-gruu
histinfo History-Info header field Supported – indicates support for the History Information to be captured for requests and returned in subsequent responses.
4244 ice Interactive Connectivity Establishment
(ICE) Require – indicates that ICE is required by an agent. Support is indicated by placing a media feature tag in the Contact header field.
ietf-sip-ice-option-tag
join Join header field Supported – indicates that the UA supports the
Join header field.
Require – indicates that the UA wants explicit failure notification if Join is not supported.
3911
Option Tags for SIP Extensions continued from page 20
Option Tag Supported Extension Used in the Following Header Fields RFC
multiple-refer REFER method refers to multiple
resources in a single request Supported – the UA can handle multiple resources in a REFER request. Require – indicates the REFER request contains a pointer to a URI list in the Refer-To header field and the body contains a resource list document describing multiple REFER targets.
5368
norefersub Suppression of implicit subscriptions Supported – indicates that a UA can accept a REFER request without establishing an implicit subscription. Require – can be present with the Refer-Sub: false header field.
4488
path Path header field Supported – UA supports the Path header field.
If found in a REGISTER request, intermediate proxies can determine whether to offer Path service for that request.
Require – added if an intermediate proxy requires that the registrar support Path for a request.
3327
precondition Preconditions for session establishment Supported – indicates that the offer contains only “optional” or “none” strength-tags.
Require – indicates that the offer contains one or more “mandatory” strength-tags, or only “optional” or “none” strength-tags.
3312
pref Caller preferences Require of a REGISTER – ensures that the registrar
supports caller preferences extensions. 3840
privacy Privacy mechanism Proxy-Require – indicates that proxy servers do
not forward the request unless they can provide the requested privacy service. Proxies remove this option tag before forwarding the request if the desired privacy function has been performed.
3323
recipient-list-invite Conference establishment using
request-contained lists Supported – added to the response to an OPTIONs request when the conference server can handle INVITEs with a ‘recipient-list’ body. Require – added to an INVITE when the UAC includes the set of participants in the body of its request to create an ad-hoc conference.
5366
recipient-list-message Multiple recipient MESSAGE requests Supported – added to the response to an OPTIONs request when the UA can handle MESSAGEs with a ‘recipient-list’ body.
Require – added to a MESSAGE when the UAC includes the set of recipients in the body.
Option Tag Supported Extension Used in the Following Header Fields RFC multiple-refer REFER method refers to multiple
resources in a single request Supported – the UA can handle multiple resources in a REFER request. Require – indicates the REFER request contains a pointer to a URI list in the Refer-To header field and the body contains a resource list document describing multiple REFER targets.
5368
norefersub Suppression of implicit subscriptions Supported – indicates that a UA can accept a REFER request without establishing an implicit subscription. Require – can be present with the Refer-Sub: false header field.
4488
path Path header field Supported – UA supports the Path header field.
If found in a REGISTER request, intermediate proxies can determine whether to offer Path service for that request.
Require – added if an intermediate proxy requires that the registrar support Path for a request.
3327
precondition Preconditions for session establishment Supported – indicates that the offer contains only “optional” or “none” strength-tags.
Require – indicates that the offer contains one or more “mandatory” strength-tags, or only “optional” or “none” strength-tags.
3312
pref Caller preferences Require of a REGISTER – ensures that the registrar
supports caller preferences extensions. 3840
privacy Privacy mechanism Proxy-Require – indicates that proxy servers do
not forward the request unless they can provide the requested privacy service. Proxies remove this option tag before forwarding the request if the desired privacy function has been performed.
3323
recipient-list-invite Conference establishment using
request-contained lists Supported – added to the response to an OPTIONs request when the conference server can handle INVITEs with a ‘recipient-list’ body. Require – added to an INVITE when the UAC includes the set of participants in the body of its request to create an ad-hoc conference.
5366
recipient-list-message Multiple recipient MESSAGE requests Supported – added to the response to an OPTIONs request when the UA can handle MESSAGEs with a ‘recipient-list’ body.
Require – added to a MESSAGE when the UAC includes the set of recipients in the body.
5365
Option Tag Supported Extension Used in the Following Header Fields RFC recipient-list-subscribe Subscriptions to request-contained
resource lists Supported – added to the response to an OPTIONs request when the server can handle SUBSCRIBEs with a ‘recipient-list’ body.
Require – added to a SUBSCRIBE when the UAC creates a resource list that it wants to subscribe to and includes the set of recipients in the body.
5367
replaces Replaces header field Supported – indicates the UA supports the Replaces header field.
Require – indicates the UA wants explicit failure notification when the Replaces header field is not supported.
3891
resource-priority Resource-Priority and Accept-
Resource-Priority header fields Supported in OPTIONS – indicates the UA supports the resource-priority mechanism for emergency communications.
Require – indicates that the UA wants explicit failure notification if resource priority is not supported.
4412
sdp-anat Alternative network address types of
the SDP grouping framework Supported – indicates that the UA understands the ANAT semantics as defined in RFC4091. Require – indicates that the UA has generated an offer that uses ANAT semantics.
4092
sec-agree Security agreement mechanism Supported – indicates that the UAC supports the security agreement mechanism.
Require or Proxy-Require – indicates that proxy servers are required to use the security agreement mechanism.
Require in 494 or 421 responses – indicates that the UAC must use the security agreement mechanism.
3329
tdialog Target-Dialog header field Supported – indicates the UA supports Target-Dialog header field.
Require – indicates the UA needs to support the Target-Dialog header field.
4538
timer Session timers Supported – indicates that the UA can perform
refreshes according to 4028.
Require in a request – means that the UAS must understand the session timer extension to process the request.
Require in a response – indicates that the UAC must look for the Session-Expires header field in the response, and process accordingly.
4028 Option Tags for SIP Extensions continued from page 22
Option Tag Supported Extension Used in the Following Header Fields RFC recipient-list-subscribe Subscriptions to request-contained
resource lists Supported – added to the response to an OPTIONs request when the server can handle SUBSCRIBEs with a ‘recipient-list’ body.
Require – added to a SUBSCRIBE when the UAC creates a resource list that it wants to subscribe to and includes the set of recipients in the body.
5367
replaces Replaces header field Supported – indicates the UA supports the Replaces header field.
Require – indicates the UA wants explicit failure notification when the Replaces header field is not supported.
3891
resource-priority Resource-Priority and Accept-
Resource-Priority header fields Supported in OPTIONS – indicates the UA supports the resource-priority mechanism for emergency communications.
Require – indicates that the UA wants explicit failure notification if resource priority is not supported.
4412
sdp-anat Alternative network address types of
the SDP grouping framework Supported – indicates that the UA understands the ANAT semantics as defined in RFC4091. Require – indicates that the UA has generated an offer that uses ANAT semantics.
4092
sec-agree Security agreement mechanism Supported – indicates that the UAC supports the security agreement mechanism.
Require or Proxy-Require – indicates that proxy servers are required to use the security agreement mechanism.
Require in 494 or 421 responses – indicates that the UAC must use the security agreement mechanism.
3329
tdialog Target-Dialog header field Supported – indicates the UA supports Target-Dialog header field.
Require – indicates the UA needs to support the Target-Dialog header field.
4538
timer Session timers Supported – indicates that the UA can perform
refreshes according to 4028.
Require in a request – means that the UAS must understand the session timer extension to process the request.
Require in a response – indicates that the UAC must look for the Session-Expires header field in the response, and process accordingly.
SIP Events
Package
Name Subscription RFC
conference URI for a conference to learn about other
members and conference components 4575 dialog Users and their changes of state of
INVITE-initiated dialog usages in which they are involved
4235 kpml Dual Tone Multi-Frequency (DTMF) signals
for supplemental or mid-call key presses (triggers) entered at the UA. The Key Press Markup Language (KPML) documents (XML) sent in the SUBSCRIBE define and describe filter specifications for capturing key presses. The KPML documents sent in the NOTIFYs report the captured key presses that match the filter criteria to an application server.
4730
message-summary Message waiting status and message summaries from a messaging system 3842 poc-settings Capabilities required by the Push-to-Talk
over Cellular (PoC) service. 4354 presence Users’ availability and willingness to
communicate with other users on the network
3856
reg UA’s registration state 3680
refer Status of a REFER request 3515
winfo Set of watchers subscribed to the UA’s
Session Description Protocol (SDP)
RFC4566
The session description protocol is what describes the session being requested. The SDP is carried in the message body of a SIP request/ response. Each attribute line consists of an attribute identified by a single letter, followed by a value. The attributes defined for SDP are: Session Level Description
• v=protocol version: This is the version of SDP being used to create the SDP.
• o=owner/creator and session identifier: The identity of the session initiator.
• s=session name: Optional name that can be given to the session.
• i=session information: Additional information that the creator of the session wishes to share with participants.
• u=URI of description: This contains the URI of a Web site that may contain additional information about the session.
• e=email address: This usually contains the e-mail address of the creator, where participants can acquire more information.
• p=phone number: The contact phone number where more information can be provided about the session.
• c=connection information: Additional information about the connection for the session.
• b=bandwidth information: The amount of bandwidth to be provided for the session.
• z=time zone adjustments: Any time zone adjustments to be considered.
• k=encryption keys: The encryption keys for the session.
• a=zero or more session attribute lines: The number of attribute lines in the SDP.
Time Description
• t=time the session is active: What time does the session start, for example.
• r=zero or more repeat times: How many times the session repeats.
SDP Media Description RFC4566
• m=media name and transport address: Name of the media, if applicable.
• i=media title: Title of the media.
• c=connection information: Additional connection information.
• b=bandwidth information: Bandwidth required to support the media.
• k=encryption key: Encryption keys required.
• a=zero or more attribute lines: Number of attribute lines provided.
SDP Media Attribute Lines (a=) RFC4566
• cat = category
• keywds = keywords
• tool = name and version of tool
• ptime = packet time
• maxptime = maximum packet time
• recvonly = receive-only mode
• sendrecv = send and receive mode
• orient = whiteboard orientation
• type = conference type
• charset = character set
• sdplang = language tag
• lang = language tag
• framerate = frame rate
• quality = quality
• fmtp = format-specific parameters
• rtpmap = rtpmap attribute
• curr = current status attribute
• des = desired-status attribute
• conf = confirm-status attribute
• mid = media stream identification attribute
• group = group attribute
Warning Codes
RFC3261 Section 27.2
Note: Warning codes provide information supplemental to the status code in SIP response messages when the failure of the transaction results from a Session Description Protocol (SDP) problem.
Code Description
300 Incompatible network protocol: One or more network protocols contained in the session description are not available.
301 Incompatible network address formats: One or more network address formats contained in the session description are not available.
302 Incompatible transport protocol: One or more transport protocols described in the session description are not available.
303 Incompatible bandwidth units: One or more bandwidth measurement units contained in the session description were not understood.
304 Media type not available: One or more media types contained in the session description are not available. 305 Incompatible media format: One or more media formats
contained in the session description are not available. 306 Attribute not understood: One or more of the media
attributes in the session description are not supported. 307 Session description parameter not understood:
A parameter other than those listed above was not understood.
330 Multicast not available: The site where the user is located does not support multicast.
331 Unicast is not available: The site where the user is located does not support unicast communication (usually due to the presence of a firewall).
370 Insufficient bandwidth: The bandwidth specified in the session description or defined by the media exceeds that known to be available.
399 Miscellaneous warning: The warning text can include arbitrary information to be presented to a human user or logged. A system receiving this warning MUST NOT take any automated action.
Mapping Between the SIP SDP and SS7 USI/HLC
(SIP Origination)
Mapping Between SS7 USI and the SIP SDP
(SS7 Origination)
SIP SDP SS7 User Service Information High-Layer
Characteristics Media Line (m=) Bandwidth Line (b=) Access Line (a=) Info Transfer
Rate Info Transport Capability User Info Layer 1 Protocol Indicator
High-Layer Characteristics Identification
audio RTP/AVP 0 Nothing or 64 Kbps 64 Kbps 3.1 KHz audio G.711 μ-law
audio RTP/AVP 64 Kbps rtpmap PCMU/8000 64 Kbps 3.1 KHz audio G.711 μ-law
audio RTP/AVP 9 AS: 64 Kbps rtpmap: 9
G. 722/8000 64 Kbps Unrestricted digital info with tones and announcements audio RTP/AVP AS: 64 Kbps rtpmap
CLEARMODE/8000 64 Kbps Unrestricted digital info
image udptl t38 Up to 64 Kbps 64 Kbps 3.1 KHz audio Facsimile Group
2/3
image tcptl t38 Up to 64 Kbps 64 Kbps 3.1 KHz audio Facsimile Group
2/3
audio RTP/AVP 384Kbps rtpmap
CLEARMODE/8000 384 Kbps Unrestricted digital info
audio RTP/AVP 1472 Kbps rtpmap
CLEARMODE/8000 1472 Kbps Unrestricted digital info
audio RTP/AVP 1536 Kbps rtpmap
CLEARMODE/8000 1536 Kbps Unrestricted digital info
SS7 User Service Information SIP SDP
Info Transfer
Rate Info Transport Capability User Info Layer 1 Protocol Indicator
High-Layer Characteristics Identification
Media Line (m=) Bandwidth (b=) Access Line (a=)
Speech Speech G.711 μ-law audio RTP/AVP 0 AS : 64 rtpmap: 0
PCMU/8000
Speech Speech G.711 μ-law audio RTP/AVP 0 AS : 64 rtpmap:
PCMU/8000 3.1 KHz audio 3.1 KHz audio G.711 μ-law Telephony
(or no HLC) audio RTP/AVP 0 AS : 64 rtpmap: 0 PCMU/8000 3.1 KHz audio 3.1 KHz audio Facsimile
Group 2/3 image udptl t38 AS : 64
3.1 KHz audio 3.1 KHz audio Facsimile
Group 2/3 image tcptl t38 AS : 64
64 Kbps
unrestricted Unrestricted digital info with tone announcement
audio RTP/AVP 9 AS : 64 rtpmap: 9
G. 722/8000 64 Kbps
SIP SDP SS7 User Service Information High-Layer Characteristics Media Line (m=) Bandwidth Line (b=) Access Line (a=) Info Transfer
Rate Info Transport Capability User Info Layer 1 Protocol Indicator
High-Layer Characteristics Identification
audio RTP/AVP 0 Nothing or 64 Kbps 64 Kbps 3.1 KHz audio G.711 μ-law
audio RTP/AVP 64 Kbps rtpmap PCMU/8000 64 Kbps 3.1 KHz audio G.711 μ-law
audio RTP/AVP 9 AS: 64 Kbps rtpmap: 9
G. 722/8000 64 Kbps Unrestricted digital info with tones and announcements audio RTP/AVP AS: 64 Kbps rtpmap
CLEARMODE/8000 64 Kbps Unrestricted digital info
image udptl t38 Up to 64 Kbps 64 Kbps 3.1 KHz audio Facsimile Group
2/3
image tcptl t38 Up to 64 Kbps 64 Kbps 3.1 KHz audio Facsimile Group
2/3
audio RTP/AVP 384Kbps rtpmap
CLEARMODE/8000 384 Kbps Unrestricted digital info
audio RTP/AVP 1472 Kbps rtpmap
CLEARMODE/8000 1472 Kbps Unrestricted digital info
audio RTP/AVP 1536 Kbps rtpmap
CLEARMODE/8000 1536 Kbps Unrestricted digital info
SS7 User Service Information SIP SDP
Info Transfer
Rate Info Transport Capability User Info Layer 1 Protocol Indicator
High-Layer Characteristics Identification
Media Line (m=) Bandwidth (b=) Access Line (a=)
Speech Speech G.711 μ-law audio RTP/AVP 0 AS : 64 rtpmap: 0
PCMU/8000
Speech Speech G.711 μ-law audio RTP/AVP 0 AS : 64 rtpmap:
PCMU/8000 3.1 KHz audio 3.1 KHz audio G.711 μ-law Telephony
(or no HLC) audio RTP/AVP 0 AS : 64 rtpmap: 0 PCMU/8000 3.1 KHz audio 3.1 KHz audio Facsimile
Group 2/3 image udptl t38 AS : 64
3.1 KHz audio 3.1 KHz audio Facsimile
Group 2/3 image tcptl t38 AS : 64
64 Kbps
unrestricted Unrestricted digital info with tone announcement
audio RTP/AVP 9 AS : 64 rtpmap: 9
G. 722/8000 64 Kbps
SIP Response to a Call Progress (CPG) Message
Event Information/
Event Indicator Parameters SIP Response
000 0001 Alerting 180 Ringing
000 0010 Progress 183 Session Progress 000 0011 In-band info 183 Session Progress
Mapping ISUP Cause Codes
to SIP-I/SIP-T Responses
ITU-T Q.1912.5 RFC3398
ISUP Cause Code SIP-I Response SIP-T Response
1 Unallocated number 404 Not Found 404 Not Found
2 No route to network 500 Server Internal Error 404 Not Found
3 No route to destination 500 Server Internal Error 404 Not Found
4 Send special information tone 500 Server Internal Error
5 Misdialed trunk prefix 404 Not Found
8 Preemption 500 Server Internal Error (SIP-I Only)
9 Preemption circuit reserved for re-use 500 Server Internal Error (SIP-I Only)
16 Normal call clearing --- (*)
17 User busy 486 Busy Here 486 Busy Here
18 No user responding 480 Temporarily Unavailable 408 Request Timeout
19 No answer from the user 480 Temporarily Unavailable 480 Temporarily Unavailable
20 Subscriber absent 480 Temporarily Unavailable 480 Temporarily Unavailable
21 Call rejected 480 Temporarily Unavailable 403 Forbidden (+)
22 Number changed (w/o diagnostic) 410 Gone 410 Gone
22 Number changed (w/ diagnostic) 301 Moved Permanently
23 Redirection to new destination No Mapping 410 Gone
25 Exchange routing error 480 Temporarily Unavailable
26 Non-selected user clearing 404 Not Found (=)
27 Destination out of order 502 Bad Gateway 502 Bad Gateway
28 Invalid number format (address incomplete) 484 Address Incomplete 484 Address Incomplete
29 Facility rejected 500 Server Internal Error 501 Not Implemented
31 Normal unspecified 480 Temporarily Unavailable 480 Temporarily Unavailable
34 Resource unavailable 480 Temporarily Unavailable
34 No circuit available 503 Service Unavailable
38 Resource unavailable 500 Server Internal Error
38 Network out of order 503 Service Unavailable
41 Resource unavailable 500 Server Internal Error
Mapping ISUP Cause Codes to SIP-I/SIP-T Responses continues on page 34
Mapping ISUP Cause Codes
to SIP-I/SIP-T Responses
ITU-T Q.1912.5 RFC3398
ISUP Cause Code SIP-I Response SIP-T Response
1 Unallocated number 404 Not Found 404 Not Found
2 No route to network 500 Server Internal Error 404 Not Found
3 No route to destination 500 Server Internal Error 404 Not Found
4 Send special information tone 500 Server Internal Error
5 Misdialed trunk prefix 404 Not Found
8 Preemption 500 Server Internal Error (SIP-I Only)
9 Preemption circuit reserved for re-use 500 Server Internal Error (SIP-I Only)
16 Normal call clearing --- (*)
17 User busy 486 Busy Here 486 Busy Here
18 No user responding 480 Temporarily Unavailable 408 Request Timeout
19 No answer from the user 480 Temporarily Unavailable 480 Temporarily Unavailable
20 Subscriber absent 480 Temporarily Unavailable 480 Temporarily Unavailable
21 Call rejected 480 Temporarily Unavailable 403 Forbidden (+)
22 Number changed (w/o diagnostic) 410 Gone 410 Gone
22 Number changed (w/ diagnostic) 301 Moved Permanently
23 Redirection to new destination No Mapping 410 Gone
25 Exchange routing error 480 Temporarily Unavailable
26 Non-selected user clearing 404 Not Found (=)
27 Destination out of order 502 Bad Gateway 502 Bad Gateway
28 Invalid number format (address incomplete) 484 Address Incomplete 484 Address Incomplete
29 Facility rejected 500 Server Internal Error 501 Not Implemented
31 Normal unspecified 480 Temporarily Unavailable 480 Temporarily Unavailable
34 Resource unavailable 480 Temporarily Unavailable
34 No circuit available 503 Service Unavailable
38 Resource unavailable 500 Server Internal Error
38 Network out of order 503 Service Unavailable
41 Resource unavailable 500 Server Internal Error
ISUP Cause Code SIP-I Response SIP-T Response
42 Resource unavailable 500 Server Internal Error
42 Switching equipment congestion 503 Service Unavailable
43 Resource unavailable 500 Server Internal Error
44 Resource unavailable 500 Server Internal Error
46 Resource unavailable 500 Server Internal Error
47 Resource unavailable 500 Server Internal Error 503 Service Unavailable
50 Requested facility not subscribed 500 Server Internal Error
55 Incoming calls barred with CUG 500 Server Internal Error (SIP-I Only) 403 Forbidden
57 Bearer capability not authorized 500 Server Internal Error 403 Forbidden
58 Bearer capability not presently available 500 Server Internal Error 503 Service Unavailable 63 Service option not available, unspecified 500 Server Internal Error
65 Service or option not implemented 500 Server Internal Error
65 Bearer capability not implemented 488 Not Acceptable Here
69 Service or option not implemented 500 Server Internal Error
70 Service or option not implemented 500 Server Internal Error
70 Only restricted digital avail 488 Not Acceptable Here
79 Service or option not implemented 500 Server Internal Error 501 Not Implemented
87 User not member of CUG 500 Server Internal Error (SIP-I Only) 403 Forbidden
88 Incompatible destination 500 Server Internal Error 503 Service Unavailable
90 Non-existent CUG 500 Server Internal Error (SIP-I Only)
91 Invalid transit network selection 404 Not Found
95 Invalid message, unspecified 500 Server Internal Error
97 Message type non-existent or not implemented 500 Server Internal Error 99 Info element/parameter non-existent or not implemented 500 Server Internal Error
102 Recovery on timer expiry 480 Temporarily Unavailable 504 Gateway Timeout
103 Parameter non-existent or not implemented, passed on 500 Server Internal Error 110 Message with unrecognized parameter, discarded 500 Server Internal Error
111 Protocol error, unspecified 500 Server Internal Error 500 Server Internal Error
127 Interworking, unspecified 480 Temporarily Unavailable 500 Server Internal Error
ISUP Cause Code SIP-I Response SIP-T Response
42 Resource unavailable 500 Server Internal Error
42 Switching equipment congestion 503 Service Unavailable
43 Resource unavailable 500 Server Internal Error
44 Resource unavailable 500 Server Internal Error
46 Resource unavailable 500 Server Internal Error
47 Resource unavailable 500 Server Internal Error 503 Service Unavailable
50 Requested facility not subscribed 500 Server Internal Error
55 Incoming calls barred with CUG 500 Server Internal Error (SIP-I Only) 403 Forbidden
57 Bearer capability not authorized 500 Server Internal Error 403 Forbidden
58 Bearer capability not presently available 500 Server Internal Error 503 Service Unavailable 63 Service option not available, unspecified 500 Server Internal Error
65 Service or option not implemented 500 Server Internal Error
65 Bearer capability not implemented 488 Not Acceptable Here
69 Service or option not implemented 500 Server Internal Error
70 Service or option not implemented 500 Server Internal Error
70 Only restricted digital avail 488 Not Acceptable Here
79 Service or option not implemented 500 Server Internal Error 501 Not Implemented
87 User not member of CUG 500 Server Internal Error (SIP-I Only) 403 Forbidden
88 Incompatible destination 500 Server Internal Error 503 Service Unavailable
90 Non-existent CUG 500 Server Internal Error (SIP-I Only)
91 Invalid transit network selection 404 Not Found
95 Invalid message, unspecified 500 Server Internal Error
97 Message type non-existent or not implemented 500 Server Internal Error 99 Info element/parameter non-existent or not implemented 500 Server Internal Error
102 Recovery on timer expiry 480 Temporarily Unavailable 504 Gateway Timeout
103 Parameter non-existent or not implemented, passed on 500 Server Internal Error 110 Message with unrecognized parameter, discarded 500 Server Internal Error
111 Protocol error, unspecified 500 Server Internal Error 500 Server Internal Error
127 Interworking, unspecified 480 Temporarily Unavailable 500 Server Internal Error
(*) ISDN Cause 16 will usually result in a BYE or CANCEL (+) If the cause location is ‘user’ then the 6xx code could be given
rather than the 4xx code (i.e., 403 becomes 603)
(=) ANSI procedure – in ANSI networks, 26 is overloaded to signify ‘misrouted ported number’. Presumably, a number portability dip should have been performed by a prior network. Otherwise cause 26 is usually not used in ISUP procedures.
Mapping SIP-T Responses to ISUP Cause Codes continues on page 37 Response Received Cause Value in the REL 400 Bad request 41 Temporary failure 401 Unauthorized 21 Call rejected (*) 402 Payment required 21 Call rejected
403 Forbidden 21 Call rejected
404 Not found 1 Unallocated number
405 Method not allowed 63 Service or option unavailable
406 Not acceptable 79 Service/option not implemented (+) 407 Proxy authentication required 21 Call rejected (*) 408 Request timeout 102 Recovery on timer expiry 410 Gone 22 Number changed
(w/o diagnostic) 413 Request entity too long 127 Interworking (+) 414 Request-URI too long 127 Interworking (+) 415 Unsupported media type 79 Service/option not
implemented (+) 416 Unsupported URI scheme 127 Interworking (+) 420 Bad extension 127 Interworking (+) 421 Extension required 127 Interworking (+) 423 Interval too brief 127 Interworking (+) 480 Temporarily unavailable 18 No user responding 481 Call/transaction does not exist 41 Temporary failure 482 Loop detected 25 Exchange - routing error 483 Too many hops 25 Exchange - routing error 484 Address incomplete 28 Invalid number format (+)
485 Ambiguous 1 Unallocated number
486 Busy here 17 User busy
487 Request terminated --- (no mapping) 488 Not acceptable here --- by Warning header 500 Server internal error 41 Temporary failure 501 Not implemented 79 Not implemented,
unspecified 502 Bad gateway 38 Network out of order 503 Service unavailable 41 Temporary failure 504 Server time-out 102 Recovery on timer expiry 504 Version not supported 127 Interworking (+) 513 Message too large 127 Interworking (+) 600 Busy everywhere 17 User busy
Mapping SIP-T Responses to ISUP Cause Codes
Mapping SIP-T Responses to ISUP Cause Codes continued from page 36
(*) In some cases, it may be possible for a SIP gateway to provide credentials to the SIP UAS that is rejecting an INVITE due to authorization failure. If the gateway can authenticate itself, then obviously it SHOULD do so and proceed with the call; only if the gateway cannot authenticate itself should cause code 21 be sent. (+) If at all possible, a SIP gateway SHOULD respond to these
protocol errors by remedying unacceptable behavior and attempting to re-originate the session. Only if this proves impossible should the SIP gateway fail the ISUP half of the call. When the Warning header is present in a SIP 606 or 488 message, there may be specific ISDN cause code mappings appropriate to the Warning code. This document recommends that ‘31 Normal, unspecified’ SHOULD by default be used for most currently assigned Warning codes. If the Warning code speaks to an unavailable bearer capability, cause code ‘65 Bearer Capability Not Implemented’ is a RECOMMENDED mapping.
Response Received Cause Value in the REL
603 Decline 21 Call rejected
604 Does not exist anywhere 1 Unallocated number 606 Not acceptable --- by Warning header
Mapping SIP-I Responses to ISUP Cause Codes continues on page 39
Mapping SIP-I Responses to ISUP Cause Codes
ITU-T Q.1912.5
SIP-I Response ISUP Cause Code Remarks
400 Bad Request 127 Interworking
401 Unauthorized 127 Interworking Note 1 402 Payment Required 127 Interworking
403 Forbidden 127 Interworking 404 Not Found 1 Unallocated number 405 Method Not Allowed 127 Interworking 406 Not Acceptable 127 Interworking 407 Proxy Authentication
Required 127 Interworking Note 1 408 Request Timeout 127 Interworking
410 Gone 22 Number changed
(without diagnostic) 413 Request Entity Too Long 127 Interworking Note 1 414 Request-URI Too Long 127 Interworking Note 1 415 Unsupported Media Type 127 Interworking Note 1 416 Unsupported URI Scheme 127 Interworking Note 1 420 Bad Extension 127 Interworking Note 1 421 Extension Required 127 Interworking Note 1 423 Interval Too Brief 127 Interworking
480 Temporarily Unavailable 20 Subscriber absent 481 Call/Transaction Does
Not Exist 127 Interworking
482 Loop Detected 127 Interworking 483 Too Many Hops 127 Interworking 484 Address Incomplete 28 Invalid number
format Note 1
485 Ambiguous 127 Interworking
486 Busy Here 17 User busy
487 Request Terminated 127 Interworking or no mapping (Note 3) Note 2 488 Not Acceptable Here 127 Interworking
491 Request Pending No Mapping Note 2
493 Undecipherable 127 Interworking 500 Server Internal Error 127 Interworking 501 Not Implemented 127 Interworking 502 Bad Gateway 127 Interworking
503 Service Unavailable 127 Interworking Note 1 504 Server Timeout 127 Interworking
NOTE 1 – This response may be handled entirely on the SIP side; if so, it is not interworked.
NOTE 2 – This response does not terminate a SIP dialog, but only a specific transaction within it.
NOTE 3 – No mapping if the O-IWU previously issued a CANCEL request for the INVITE.
Mapping SIP-I Responses to ISUP Cause Codes continued from page 38
SIP-I Response ISUP Cause Code Remarks
505 Version Not Supported 127 Interworking Note 1 513 Message Too Large 127 Interworking
580 Precondition Failure 127 Interworking Note 1 600 Busy Everywhere 17 User busy
603 Decline 21 Call rejected
604 Does Not Exist Anywhere 1 Unallocated number 606 Not Acceptable 127 Interworking
SIP Timers
RFC3261
Timer Value Section Meaning
T1 500ms default Section 17.1.1.1 RTT Estimate T2 4s Section 17.1.2.2 The maximum
retransmit interval for non-INVITE requests and INVITE responses T4 5s Section 17.1.2.2 Maximum duration a
message will remain in the network Timer A initially T1 Section 17.1.1.2 INVITE request
retransmit interval, for UDP only Timer B 64*T1 Section 17.1.1.2 INVITE transaction
timeout timer Timer C > 3min Section 16.6 Proxy INVITE
transaction timeout Timer D > 32s for UDP Section 17.1.1.2 Wait time for response
retransmits Timer E initially T1 Section 17.1.2.2 Non-INVITE request
retransmit interval, UDP only
Timer F 64*T1 Section 17.1.2.2 Non-INVITE transaction timeout timer Timer G initially T1 Section 17.2.1 INVITE response
retransmit interval Timer H 64*T1 Section 17.2.1 Wait time for ACK
receipt
Timer I T4 for UDP Section 17.2.1 Wait time for ACK retransmits Timer J 64*T1 for UDP Section 17.2.2 Wait time for
non-INVITE request retransmits Timer K T4 for UDP
0s for TCP/SCTPSection 17.1.2.2 Wait time for response retransmits Timer L 64*T1 draft-sparks-
sip-invfix Wait time for INVITE retransmissions Timer M 64*T1 draft-sparks-
sip-infix Wait time for 2xx response retransmissions and any additional 2xx responses from other branches of the INVITE if it forked downstream
INVITE Client Transaction
draft-sparks-sip-invfix-02.txt
Note: Transitions labeled with the event over the action to take
Calling Proceeding Completed Accepted Terminated INVITE from TU INVITE sent Timer A fires Reset A, INVITE sent 2xx 2xx to TU 2xx 2xx to TU 2xx 2xx to TU 1xx 1xx to TU 1xx 1xx to TU 300-699 ACK sent response to TU 300-699 ACK sent response to TU 300-699 ACK sent Timer B fires or Transport Error inform TU Transport Error inform TU
INVITE Server Transaction
draft-sparks-sip-invfix-02.txt Proceeding Completed Confirmed Accepted Terminated INVITE pass INV to TU send 100 if TU won’t in 200msTransport Error inform TU 2xx from TU send response ACK 101-199 from TU send response Timer I fires INVITE send response 300-699 from TU send response Timer G fires send response Timer H fires or Transport Error Inform TU INVITE send response 2xx from TU send response Timer L fires INVITE
Note: Transitions labeled with the event over the action to take
Non-INVITE Client Transaction
RFC3261 Trying Proceeding Completed Terminated Request from TU send request Timer F or Transport Error inform TU 1xx response to TU Timer E send request 200-699 response to TU Timer F or Transport Error inform TU Timer K 1xx response to TU Timer E send request 200-699 response to TU
Non-INVITE Server Transaction
RFC3261 Trying Proceeding Completed Terminated Request received pass to TU 1xx from TU send response 1xx from TU send response 200-699 from TU send response Request send response Request send response Transport Error Inform TU Transport Error Inform TU 200-699 from TU send responseNote: Transitions labeled with the event over the action to take
Elements and Architectures
SIP
Proxy
Proxy
SIP
Phil
MEDIARobert
example.com
tekelec.com
SIP BEARERTrapezoid Model
Mechanics: Registration
Phil
Robert
INVITE sip:[email protected]Address of Record (AoR) INVITE sip:[email protected]
A Binding in Action
SIP
Proxy/Registrar
REGISTER sip:tekelec.com To: sip:[email protected] Contact: sip:[email protected]Mechanics: Location
Phil
Robert’s
Desk
[
example.com
] [
telco.com
]
3261
rules
Routes
Static
[
tekelec.com
]
Registered
Bindings
sip:55512 12@ telco .com sip:RjS@ tekelec.com sip:R jS@ tekele c.com sip:[email protected] sip:[email protected]. 1 sip:[email protected][
gateway
]
Robert’s
Cell
Glossary of SIP Acronyms and Definitions
AoR Address of record B2BUA Back-to-back user agent
Binding Association between an address of record with one or more contact addresses
Dialog A peer-to-peer relationship between two user agents that persists for some time
IETF Internet Engineering Task Force
lr A URI parameter that indicates that RFC3261 procedures for handling the Route header field are being followed
Reliability Recovery from message delivery failure RFC IETF request for comments
RTP Real-time transport protocol SDP Session description protocol
Session An exchange of data between an association of participants
SIP Session Initiation Protocol TU Transaction user UA User agent UAC User agent client UAS User agent server URI Uniform resource identifier URL Uniform resource locator
SIP References
draft-ietf-sip-gruu-15.txt “Obtaining and Using Globally Routable User Agent (UA) URIs (GRUU) in the Session Initiation Protocol (SIP)” draft-ietf-sip-ice-option-tag-02.txt “Indicating Support for Interactive Connectivity Establishment (ICE) in the Session Initiation Protocol (SIP)” draft-sparks-sip-invfix-02.txt “Correct transaction handling for 200 responses to Session Initiation Protocol INVITE requests” Internet Assigned Numbers Authority, http://www.iana.org The Internet Engineering Task Force, http://www.ietf.org
ITU-T Q.1912.5 “Interworking between Session Initiation Protocol (SIP) and Bearer Independent Call Control Protocol or ISDN User Part” RFC1035 “Domain Names - Implementation and Specification” RFC2543 “SIP: Session Initiation Protocol”
RFC2782 “A DNS RR for Specifying the Location of Services (DNS SRV)” RFC2976 “The SIP INFO Method”
RFC3261 “SIP: Session Initiation Protocol”
RFC3262 “Reliability of Provisional Responses in the Session Initiation Protocol (SIP)”
RFC3263 “Session Initiation Protocol (SIP): Locating SIP Servers” RFC3311 “The Session Initiation Protocol (SIP) UPDATE Method” RFC3312 “Integration of Resource Management and Session
Initiation Protocol (SIP)”
RFC3313 “Private Session Initiation Protocol (SIP) Extensions for Media Authorization”
RFC3323 “A Privacy Mechanism for the Session Initiation Protocol (SIP)” RFC3325 “Private Extensions to the Session Initiation Protocol
(SIP) for Asserted Identity within Trusted Networks” RFC3326 “The Reason Header Field for the Session Initiation Protocol
(SIP)”
RFC3327 “Session Initiation Protocol (SIP) Extension Header Field for Registering Non-Adjacent Contacts”
RFC3329 “Security Mechanism Agreement for the Session Initiation Protocol (SIP)”
RFC3403 “Dynamic Delegation Discovery System (DDDS) Part Three: The Domain Name System (DNS) Database”
RFC3428 “Session Initiation Protocol (SIP) Extension for Instant Messaging”
RFC3455 “Private Header (P-Header) Extensions to the Session Initiation Protocol (SIP) for the 3rd-Generation Partnership Project (3GPP)”