Table Of Contents
SIP—Core SIP Technology Enhancements
Information About SIP—Core SIP Technology Enhancements
Prerequisites for SIP—Core SIP Technology Enhancements
How to Configure SIP—Core SIP Technology Enhancements
Configuration Examples for SIP—Core SIP Technology Enhancements
SIP—Core SIP Technology Enhancements
This feature contains the following sections:
•Information About SIP—Core SIP Technology Enhancements
•Prerequisites for SIP—Core SIP Technology Enhancements
•How to Configure SIP—Core SIP Technology Enhancements
•Configuration Examples for SIP—Core SIP Technology Enhancements
Information About SIP—Core SIP Technology Enhancements
The SIP—Core SIP Technology Enhancements feature updates Cisco SIP VoIP gateways with the latest changes in RFC 2543-bis-04. All changes are compatible with older RFC versions. Compliance to RFC 2543-bis-04 adds enhanced SIP support and ensures smooth interoperability and compatibility with multiple vendors.
The enhanced areas are as follows:
•Flexibility of Content-Type Header
•Allow Header Addition to INVITEs and 2xx Responses
•Simultaneous Cancel and 2xx Class Response
SIP URL Comparison
When a URL is received, the URLs are compared for equality. URL comparison can be done between two From SIP URLs, or it can be done between two To SIP URLs. For two URLs to be equal, the user, password, host, and port parameters must match. The order of the parameters does not to match.
The SIP—Core SIP Technology Enhancements feature changes the parameters allowed in SIP URLs. The maddr parameter and the transport parameter are not allowed in Cisco SIP gateway implementations. The user-param parameter is now the parameter for comparison.
If a compared parameter is omitted or not present, it is matched on the basis of its default value. Table 1 shows a list of SIP URL compared parameters and their default values.
Table 1 SIP URL Parameter Comparison
SIP URL Compared Parameter Defaulthost
mandatory
password
—
port
5060
user
—
user-param
ip
The following is an example of equivalent URLs:
Original URL:
sip:36602@172.18.193.120
Equivalent URLs:
sip:36602@172.18.193.120:
sip:36602@172.18.193.120;tag=499270-A62;pname=pvalue
sip:36602@172.18.193.120;user=ip
sip:36602@172.18.193.120:5060
487 Sent for BYE Requests
RFC 2543-bis-04 requires that a user agent server (UAS) that receives a BYE request first send a response to any pending requests for that call before disconnecting. The SIP—Core SIP Technology Enhancements feature recommends that after receiving a BYE request the UAS respond with a 487 (Request Cancelled) status message.
3xx Redirection Responses
The processing of 3xx redirection responses was updated in the SIP—Core SIP Technology Enhancements feature as follows:
•The Uniform Resource Identifier (URI) of the redirected INVITE is updated to contain the new contact information provided by the 3xx redirect message.
•The transmitted CSeq number found in the CSeq header is increased by one. The new INVITE includes the updated CSeq.
•The To, From, and Call ID headers that identify the call leg remain the same. The same Call ID gives consistency when capturing billing history.
•The user agent client (UAC) retries the request at the new address given by the 3xx Contact header field.
See the "Examples" section for a sample call flow that shows the updated CSeq numbers.
DNS SRV Query Procedure
When a Request URI or the session target in the dial peer contains a fully qualified domain name (FQDN), the UAC needs to determine the protocol, port, and IP address of the endpoint before it forwards the request. SIP on Cisco gateways uses a Domain Name System Server (DNS SRV) query to determine the protocol, port, and IP address of the user endpoint.
Before the SIP—Core SIP Technology Enhancements feature, the DNS query procedure did not take into account the destination port.
CANCEL Request Route Header
The SIP—Core SIP Technology Enhancements feature does not allow a CANCEL message sent by a UAC on an initial INVITE request to have a Route header. Route headers cannot appear in a CANCEL message because they take the same path as INVITE requests, and INVITE requests cannot contain Route headers.
Interpret User Parameters
Telephone-subscriber or user parameters in an incoming INVITE message may contain extra characters to incorporate space, control characters, quotation marks, hash marks, and other characters. The SIP—Core SIP Technology Enhancements feature allows, the telephone-subscriber or user parameter to be interpreted before dial-peer matching is done. For example, the telephone number in an incoming INVITE message may appear as:
-%32%32%32
Although 222 is a valid telephone number, it requires interpretation. If the interpretation is not done, the call attempt fails when the user parameter is matched with the dial-peer destination pattern.
user=phone Parameter
A SIP URL identifies a user's address, whose appearance is similar to that of an e-mail address. The form of the user's address is user@host where user is the user identification and host is either a domain name or a numeric network address. For example, the request line of an outgoing INVITE request might appear as:
INVITE sip:5550002@companyb.com
With the SIP—Core SIP Technology Enhancements feature.The user=phone parameter formerly required in a SIP URL is no longer necessary. However, if an incoming SIP message has a SIP URL with user=phone, user=phone is parsed and used in the subsequent messages of the transaction.
303 and 411 SIP Cause Codes
The SIP—Core SIP Technology Enhancements feature obsoletes the SIP cause codes 303 Redirection: See Other and 411 Client Error: Length required.
Flexibility of Content-Type Header
The SIP—Core SIP Technology Enhancements feature allows the Content-Type header, which specifies the media type of the message body, to have an empty Session Description Protocol (SDP) body.
Optional SDP "s=" Line
The SIP—Core SIP Technology Enhancements feature accepts the "s=" line in SDP as optional. The "s=" line describes the reason or subject for SDP information. Cisco SIP gateways can create messages with an "s=" line in SDP bodies and can accept messages that have no "s=" line.
Allow Header Addition to INVITEs and 2xx Responses
The SIP—Core SIP Technology Enhancements feature enables the use of the Allow header in an initial or re-INVITE request or in any 2xx class response to an INVITE. The Allow header lists the set of methods supported by the user agent that is generating the message. Because it advertises what methods should be invoked on the user agent sending the message, it avoids congesting the message traffic unnecessarily. The Allow header can contain any or all of the following: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, COMET, REFER, NOTIFY, INFO, SUBSCRIBE.
Simultaneous Cancel and 2xx Class Response
According to RFC 2543-bis-04, if the UAC desires to end the call before a response is received to an INVITE, the UAC sends a CANCEL. However, if the CANCEL and a 2xx class response to the INVITE "pass on the wire", the UAC also receives a 2xx to the INVITE. The SIP—Core SIP Technology Enhancements feature ensures that when the two messages pass, the UAC terminate the call by sending a BYE request.
Prerequisites for SIP—Core SIP Technology Enhancements
•Ensure that your Cisco router has the minimum memory requirements necessary for voice capabilities.
•Establish a working IP network.
•Configure VoIP.
Cisco Unified Border Element
•Cisco IOS Release 12.2(13)T or a later release must be installed and running on your Cisco Unified Border Element.
Cisco Unified Border Element (Enterprise)
•Cisco IOS XE Release 2.5 or a later release must be installed and running on your Cisco ASR 1000 Series Router.
Restrictions
•Via handling for TCP was not implemented in the Cisco SIP—Core SIP Technology Enhancements feature.
How to Configure SIP—Core SIP Technology Enhancements
The SIP— Core SIP Technology Enhancements features are all enabled by default, and no special configurations is necessary. However, several of these features can be monitored through the use of various commands. See the following sections for monitoring tasks for the SIP—Core SIP Technology Enhancements feature. Each task in the list is optional:
•Monitoring 487 Sent for BYE Requests (optional)
•Monitoring 3xx Redirection Responses (optional)
•Monitoring the Deletion of 303 and 411 Cause Codes (optional)
Monitoring 487 Sent for BYE Requests
When a UAS responds with a 487 after receiving a BYE request, the Client Error: Request Cancelled counter increments in the show sip-ua statistics command.
SUMMARY STEPS
1. enable
2. show sip-ua statistics
DETAILED STEPSExamples
The following sample output from the show sip-ua statistics command with the Client Error: Request Cancelled counter incremented:
Router# show sip-ua statisticsSIP Response Statistics (Inbound/Outbound)Informational:Trying 0/0, Ringing 0/0,Forwarded 0/0, Queued 0/0,SessionProgress 0/0Success:OkInvite 0/0, OkBye 0/0,OkCancel 0/0, OkOptions 0/0,OkPrack 0/0, OkPreconditionMet 0/0,OKSubscribe 0/0, OkNotify 0/0,202Accepted 0/0Redirection (Inbound only):MultipleChoice 0, MovedPermanently 0,MovedTemporarily 0, UseProxy 0,AlternateService 0Client Error:BadRequest 0/0, Unauthorized 0/0,PaymentRequired 0/0, Forbidden 0/0,NotFound 0/0, MethodNotAllowed 0/0,NotAcceptable 0/0, ProxyAuthReqd 0/0,ReqTimeout 0/0, Conflict 0/0, Gone 0/0,ReqEntityTooLarge 0/0, ReqURITooLarge 0/0,UnsupportedMediaType 0/0, BadExtension 0/0,TempNotAvailable 0/0, CallLegNonExistent 0/0,LoopDetected 0/0, TooManyHops 0/0,AddrIncomplete 0/0, Ambiguous 0/0,BusyHere 0/0, RequestCancel 0/1NotAcceptableMedia 0/0, BadEvent 0/0Server Error:InternalError 0/0, NotImplemented 0/0,BadGateway 0/0, ServiceUnavail 0/0,GatewayTimeout 0/0, BadSipVer 0/0,PreCondFailure 0/0Global Failure:BusyEverywhere 0/0, Decline 0/0,NotExistAnywhere 0/0, NotAcceptable 0/0SIP Total Traffic Statistics (Inbound/Outbound)Invite 0/0, Ack 0/0, Bye 0/0,Cancel 0/0, Options 0/0,Prack 0/0, Comet 0/0,Subscribe 0/0, Notify 0/0,Refer 0/0Retry StatisticsInvite 0, Bye 0, Cancel 0, Response 0,Prack 0, Comet 0, Reliable1xx 0, Notify 0SDP application statistics:Parses: 0, Builds 0Invalid token order: 0, Invalid param: 0Not SDP desc: 0, No resource: 0Monitoring 3xx Redirection Responses
The processing for 3xx redirection responses was updated in the SIP—Core SIP Technology Enhancements feature. The new implementation can be monitored with the debug ccsip messages command.
SUMMARY STEPS
1. enable
2. debug ccsip message
DETAILED STEPSExamples
The following is debug ccsip message output from an originating gateway. The output shows message transactions including the new INVITE message for the redirected address. The output has been updated as follows:
•The URI of the redirected INVITE is updated to contain new contact information provided by the 3xx redirect message.
•The transmitted CSeq number found in the CSeq header is increased by one. The new INVITE includes the updated CSeq.
•The To, From, and Call ID headers that identify the call leg remain the same.
•The UAC retries the request at the new address given by the 3xx Contact header field.
Sent:INVITE sip:3111100@64.102.17.80:5060; SIP/2.0Via: SIP/2.0/UDP 172.18.193.98:5060From: "36601" <sip:36601@172.18.193.98> //This header remains consistent throughout the call.To: <sip:3111100@64.102.17.80> //This header remains consistent throughout the call.Date: Mon, 01 Mar 2002 00:50:50 GMTCall-ID: A22F0DC8-14F511CC-80329792-19DC655A@172.18.193.98 // Header remains consistent.Cisco-Guid: 2682312529-351605196-2150668178-433874266User-Agent: Cisco-SIPGateway/IOS-12.xCSeq: 101 INVITEMax-Forwards: 6Timestamp: 730947050Contact: <sip:36601@172.18.193.98:5060>Expires: 180Content-Type: application/sdpContent-Length: 160v=0o=CiscoSystemsSIP-GW-UserAgent 2378 4662 IN IP4 172.18.193.98s=SIP Callc=IN IP4 172.18.193.98t=0 0m=audio 19202 RTP/AVP 18a=rtpmap:18 G729/8000Received:SIP/2.0 302 Moved TemporarilyVia: SIP/2.0/UDP 172.18.193.98:5060From: "36601" <sip:36601@172.18.193.98> //This header remains consistent throughout the call.To: <sip:3111100@64.102.17.80> //This header remains consistent throughout the call.Date: Mon, 01 Mar 2002 00:50:50 GMTCall-ID: A22F0DC8-14F511CC-80329792-19DC655A@172.18.193.98 //Header remains consistent.Cisco-Guid: 2682312529-351605196-2150668178-433874266User-Agent: Cisco-SIPGateway/IOS-12.xCSeq: 101 INVITEContact: Anonymous <sip:36602@172.18.193.120 //Provides Request URI with the new contact address.Contact: Anonymous <sip:36601@172.18.193.98>Sent:ACK sip:3111100@64.102.17.80:5060; SIP/2.0Via: SIP/2.0/UDP 172.18.193.98:5060From: "36601" <sip:36601@172.18.193.98> //This header remains consistent throughout the call.To: <sip:3111100@64.102.17.80> //This header remains consistent throughout the call.Date: Mon, 01 Mar 2002 00:50:50 GMTCall-ID: A22F0DC8-14F511CC-80329792-19DC655A@172.18.193.98 // Header remains consistent.Max-Forwards: 6Content-Length: 0CSeq: 101 ACKSent:INVITE sip:36602@172.18.193.120:5060 SIP/2.0 //URI updated with new contact/redirect address.Via: SIP/2.0/UDP 172.18.193.98:5060From: "36601" <sip:36601@172.18.193.98> //This header remains consistent throughout the call.To: <sip:3111100@64.102.17.80> //This header remains consistent throughout the call.Date: Mon, 01 Mar 2002 00:50:50 GMTCall-ID: A22F0DC8-14F511CC-80329792-19DC655A@172.18.193.98 // Header remains consistent.Cisco-Guid: 2682312529-351605196-2150668178-433874266User-Agent: Cisco-SIPGateway/IOS-12.xCSeq: 102 INVITE //Transmitted CSeq is increased by one.Max-Forwards: 6Timestamp: 730947050Contact: <sip:36601@172.18.193.98:5060>Expires: 180Content-Type: application/sdpContent-Length: 159v=0o=CiscoSystemsSIP-GW-UserAgent 5957 524 IN IP4 172.18.193.98s=SIP Callc=IN IP4 172.18.193.98t=0 0m=audio 17018 RTP/AVP 18a=rtpmap:18 G729/8000Monitoring the Deletion of 303 and 411 Cause Codes
The processing for Monitoring the Deletion of 303 and 411 Cause Codes was updated in the SIP—Core SIP Technology Enhancements feature. The new implementation can be monitored with the show sip-ua statistics and show sip-ua map commands.
SUMMARY STEPS
1. enable
2. show sip-ua statistics
3. show sip-ua map
DETAILED STEPSExamples
The following examples provide different ways to monitor the deletion of the 303 and 411 cause codes.
•show sip-ua statistics Command command
•show sip-ua map command
show sip-ua statistics Command
The following is sample output of the show sip-ua statistics command that includes the SeeOther (303) and LengthRequired (411) fields is from the Cisco IOS version before the SIP—Core SIP Technology Enhancements feature:
Router# show sip-ua statistics
SIP Response Statistics (Inbound/Outbound)Informational:Trying 0/4, Ringing 0/0,Forwarded 0/0, Queued 0/0,SessionProgress 0/5Success:OkInvite 0/2, OkBye 1/1,OkCancel 0/2, OkOptions 0/0,OkPrack 0/0, OkPreconditionMet 0/0,OkNotify 0/0, 202Accepted 0/0Redirection (Inbound only):MultipleChoice 0, MovedPermanently 0,MovedTemporarily 0, SeeOther 0,UseProxy 0, AlternateService 0Client Error:BadRequest 0/0, Unauthorized 0/0,PaymentRequired 0/0, Forbidden 0/0,NotFound 0/0, MethodNotAllowed 0/0,NotAcceptable 0/0, ProxyAuthReqd 0/0,ReqTimeout 0/0, Conflict 0/0, Gone 0/0,LengthRequired 0/0, ReqEntityTooLarge 0/0,ReqURITooLarge 0/0, UnsupportedMediaType 0/0,BadExtension 0/0, TempNotAvailable 0/0,CallLegNonExistent 0/0, LoopDetected 0/0,TooManyHops 0/0, AddrIncomplete 0/0,Ambiguous 0/0, BusyHere 0/0RequestCancel 0/2, NotAcceptableMedia 0/0Server Error:InternalError 0/0, NotImplemented 0/0,BadGateway 0/0, ServiceUnavail 0/0,GatewayTimeout 0/0, BadSipVer 0/0,PreCondFailure 0/0Global Failure:BusyEverywhere 0/0, Decline 0/0,NotExistAnywhere 0/0, NotAcceptable 0/0SIP Total Traffic Statistics (Inbound/Outbound)Invite 5/0, Ack 4/0, Bye 1/1,Cancel 2/0, Options 0/0,Prack 0/0, Comet 0/0,Notify 0/0, Refer 0/0Retry StatisticsInvite 0, Bye 0, Cancel 0, Response 0,Prack 0, Comet 0, Reliable1xx 0, Notify 0The following is sample output of the show sip-ua statistics command from a Cisco IOS version after implementing the SIP—Core SIP Technology Enhancements feature and shows that the SeeOther and LengthRequired fields are now omitted is from fields:
Router# show sip-ua statistics
SIP Response Statistics (Inbound/Outbound)Informational:Trying 0/0, Ringing 0/0,Forwarded 0/0, Queued 0/0,SessionProgress 0/0Success:OkInvite 0/0, OkBye 0/0,OkCancel 0/0, OkOptions 0/0,OkPrack 0/0, OkPreconditionMet 0/0,OKSubscribe 0/0, OkNotify 0/0,202Accepted 0/0Redirection (Inbound only):MultipleChoice 0, MovedPermanently 0,MovedTemporarily 0, UseProxy 0,AlternateService 0Client Error:BadRequest 0/0, Unauthorized 0/0,PaymentRequired 0/0, Forbidden 0/0,NotFound 0/0, MethodNotAllowed 0/0,NotAcceptable 0/0, ProxyAuthReqd 0/0,ReqTimeout 0/0, Conflict 0/0, Gone 0/0,ReqEntityTooLarge 0/0, ReqURITooLarge 0/0,UnsupportedMediaType 0/0, BadExtension 0/0,TempNotAvailable 0/0, CallLegNonExistent 0/0,LoopDetected 0/0, TooManyHops 0/0,AddrIncomplete 0/0, Ambiguous 0/0,BusyHere 0/0, RequestCancel 0/0NotAcceptableMedia 0/0, BadEvent 0/0Server Error:InternalError 0/0, NotImplemented 0/0,BadGateway 0/0, ServiceUnavail 0/0,GatewayTimeout 0/0, BadSipVer 0/0,PreCondFailure 0/0Global Failure:BusyEverywhere 0/0, Decline 0/0,NotExistAnywhere 0/0, NotAcceptable 0/0SIP Total Traffic Statistics (Inbound/Outbound)Invite 0/0, Ack 0/0, Bye 0/0,Cancel 0/0, Options 0/0,Prack 0/0, Comet 0/0,Subscribe 0/0, Notify 0/0,Refer 0/0Retry StatisticsInvite 0, Bye 0, Cancel 0, Response 0,Prack 0, Comet 0, Reliable1xx 0, Notify 0SDP application statistics:Parses: 0, Builds 0Invalid token order: 0, Invalid param: 0Not SDP desc: 0, No resource: 0show sip-ua map
The following example is sample output from the show sip-ua map command and shows that SIP cause code 411 is omitted from the group of cause codes.
Router# show sip-ua map sip-pstnSIP-Status Configured DefaultPSTN-Cause PSTN-Cause400 127 127401 57 57402 21 21403 57 57404 1 1405 127 127406 127 127407 21 21408 102 102409 41 41410 1 1413 127 127414 127 127415 79 79420 127 127480 18 18481 127 127482 127 127483 127 1Configuration Examples for SIP—Core SIP Technology Enhancements
This section provides a general SIP configuration example:
•SIP—Core SIP Technology Enhancements: Example
SIP—Core SIP Technology Enhancements: Example
This example contains output from the show running-config command.
Router# show running-configBuilding configuration...Current configuration : 2791 bytes!version 12.2service configno service single-slot-reload-enableno service padservice timestamps debug uptimeservice timestamps log uptimeno service password-encryptionservice internalservice udp-small-servers!interface FastEthernet2/0ip address 172.18.200.24 255.255.255.0duplex autono shutspeed 10ip rsvp bandwidth 7500 7500!voice-port 1/1/1no supervisory disconnect lcfo!dial-peer voice 1 potsapplication sessiondestination-pattern 5550111port 1/1/1!dial-peer voice 3 voipapplication sessiondestination-pattern 5550112session protocol sipv2session target ipv4:172.18.200.36codec g711ulaw!dial-peer voice 4 voipapplication sessiondestination-pattern 5550133session protocol sipv2session target ipv4:172.18.200.33codec g711ulaw!gateway!sip-uaretry invite 1retry bye 1!line con 0line aux 0line vty 0 4login!end