Cisco Unified CallManager System Guide, Release 4.2(1)
Understanding Session Initiation Protocol (SIP)

Table Of Contents

Understanding Session Initiation Protocol (SIP)

SIP Networks

SIP and Cisco CallManager

Media Termination Point (MTP) Devices

SIP Functions Supported in Cisco CallManager

Basic Calls Between SIP Endpoints and Cisco CallManager

Basic Outgoing Call

Basic Incoming Call

Use of Early Media

DTMF Relay Calls Between SIP Endpoints and Cisco CallManager

Forwarding DTMF Digits from SIP Devices to Gateways or Interactive Voice Response (IVR) Systems

Generating DTMF Digits

Supplementary Services Initiated by SCCP Endpoint

Ringback Tone During Blind Transfer

Supplementary Services Initiated by SIP Endpoint

SIP-Initiated Call Transfer

Call Hold

Call Forward

Enhanced Call Identification Services

Calling Line and Name Identification Presentation

Calling Line and Name Identification Restriction

Connected Line and Name Identification Presentation

Connected Line and Name Identification Restriction

Redirecting Dial Number Identification Service (RDNIS)

SIP Service Parameters

SIP Timers and Counters

SIP Signaling/Trunk Interface Configuration Checklist

Where to Find More Information


Understanding Session Initiation Protocol (SIP)


Understanding Session Initiation Protocol (SIP) describes SIP and the interaction between SIP and Cisco CallManager.

This section covers the following topics:

SIP Networks

SIP and Cisco CallManager

SIP Functions Supported in Cisco CallManager

SIP Signaling/Trunk Interface Configuration Checklist

Where to Find More Information

SIP Networks

A SIP network uses the following components:

SIP Proxy Server—The proxy server works as an intermediate device that receives SIP requests from a client and then forwards the requests on the client's behalf. Proxy servers can provide functions such as authentication, authorization, network access control, routing, reliable request retransmission, and security.

Redirect Server—The redirect server provides the client with information about the next hop or hops that a message should take, and the client then contacts the next hop server or user agent server directly.

Registrar Server—The registrar server processes requests from user agent clients for registration of their current location. Redirect or proxy servers often contain registrar servers.

User Agent (UA)—A combination of user agent client (UAC) and user agent server (UAS) that initiates and receives calls. A UAC initiates a SIP request. A UAS is a server application that contacts the user when it receives a SIP request. The UAS then returns a response on behalf of the user. Cisco CallManager can act as both a server or client (a back-to-back user agent).

SIP uses a request/response method to establish communications between various components in the network and to ultimately establish a call or session between two or more endpoints. A single session may involve several clients and servers.

Identification of users in a SIP network works through

A unique phone or extension number.

A unique SIP address that appears similar to an e-mail address and uses the format sip:<userID>@<domain>. The user ID can be either a user name or an E.164 address. Cisco CallManager only supports E.164 addresses; it does not support email addresses.

Related Topics

SIP and Cisco CallManager

SIP Functions Supported in Cisco CallManager

SIP Signaling/Trunk Interface Configuration Checklist

SIP and Cisco CallManager

All protocols require that either a signaling interface (trunk) or a gateway be created to accept and originate calls. For SIP, the user must create a signaling interface. For more information, refer to the Trunk Configuration section in the Cisco CallManager Administration Guide.

SIP signaling interfaces connect Cisco CallManager networks and SIP networks that are served by a SIP proxy server. As with other protocols, SIP components fit under the device layer of Cisco CallManager architecture. As is true for the H.323 protocol, multiple logical SIP signaling interfaces can be configured in the Cisco CallManager database and associated with route groups, route lists, and route patterns. To provide redundancy, in the event of failure of one logical SIP interface, other logical SIP interfaces provide services in the same route group list. Redundancy can also be achieved by assigning multiple Cisco CallManager modes under SIP signaling interface device pools.

SIP signaling interfaces use port-based routing, with one SIP signaling interface connecting to a SIP network. Cisco CallManager accepts calls from any SIP device as long as the SIP messages arrive on the configured incoming port. When configuring multiple signaling interfaces, configure a unique incoming port for each SIP interface. Use of the same port as an incoming port for multiple signaling interfaces causes an alarm.

Figure 38-1 SIP and Cisco CallManager Interaction

Related Topics

SIP Networks

SIP Functions Supported in Cisco CallManager

Media Termination Point (MTP) Devices

Cisco CallManager requires an RFC 2833 dual tone multifrequency (DTMF) compliant MTP device to make SIP calls. The current standard for SIP uses in-band Real-Time Transport Protocol (RTP) payload types to indicate DTMF tones. Cisco components such as SCCP IP phones, support only out-of-band DTMF payload types. Thus, an RFC 2833 compliant MTP device acts as a translator between inband and out-of-band DTMF.

Related Topics

SIP and Cisco CallManager

SIP Functions Supported in Cisco CallManager

SIP Functions Supported in Cisco CallManager

Cisco CallManager supports the following functions and features for SIP calls:

Basic Calls Between SIP Endpoints and Cisco CallManager

DTMF Relay Calls Between SIP Endpoints and Cisco CallManager

Supplementary Services Initiated by SCCP Endpoint

Supplementary Services Initiated by SIP Endpoint

Enhanced Call Identification Services

Redirecting Dial Number Identification Service (RDNIS)

SIP Service Parameters

Basic Calls Between SIP Endpoints and Cisco CallManager

This section includes three basic calling scenarios. Two describe incoming and outgoing calls, while the other one describes the use of early media - a media connection prior to the connection or answer of a call.

Basic Outgoing Call

Basic Incoming Call

Use of Early Media

Basic Outgoing Call

You can initiate outgoing calls to a SIP device from any Cisco CallManager device. A Cisco CallManager device includes SCCP IP Phones or fax devices that are connected to Foreign Exchange Station (FXS) gateways. For example, an SCCP IP Phone can place a call to a SIP endpoint. The SIP device answering the call triggers media establishment.

Basic Incoming Call

Any device on the SIP network, including SIP IP Phones or fax devices that are connected to FXS gateways can initiate incoming calls. For example, a SIP endpoint can initiate a call to an SCCP IP Phone. The SCCP IP Phone answering the call triggers media establishment.

Use of Early Media

While the PSTN provides inband progress information to signal early media (such as a ring tone or a busy signal), the same does not hold true for SIP. The originating party includes Session Description Protocol (SDP) information, such as codec usage, IP address, and port number, in the outgoing INVITE message. In response, the terminating party sends its codec, IP address, and port number in a 183 Session Progress message to indicate possible early media.

The 183 Session Progress response indicates that the message body contains information about the media session. Both 180 Alerting and 183 Session Progress messages may contain SDP, which allows an early media session to be established prior to the call being answered.

When early media needs to be delivered to SIP endpoints prior to connection, Cisco CallManager always sends a 183 Session Progress message with SDP. While Cisco CallManager does not generate a 180 Alerting message with SDP, it does support the 180 Alerting message with SDP when it receives one.

Related Topics

SIP Functions Supported in Cisco CallManager

SIP and Cisco CallManager

DTMF Relay Calls Between SIP Endpoints and Cisco CallManager

Based on RFC 2833, the current standard for SIP uses in-band payload types to indicate DTMF tones. Cisco components such as SCCP IP phones do not support in-band payload types. An RFC 2833 compliant MTP device monitors for payload type and translates between inband and out-of-band payload types.

The following call flows show how Cisco CallManager processes DTMF digits:

DTMF Relay Calls Between SIP Endpoints and Cisco CallManager

Generating DTMF Digits

Forwarding DTMF Digits from SIP Devices to Gateways or Interactive Voice Response (IVR) Systems

The following example shows the MTP software device processing inband DTMF digits from the SIP Phone to communicate with the Primary Rate Interface (PRI) gateway. The RTP stream carries RFC 2833 DTMF, as indicated by a dynamic payload type.

Figure 38-2 Forwarding DTMF Digits

Figure 38-2 begins with media streaming, and the MTP device has been informed of the DTMF dynamic payload type.

1. The SIP Phone initiates a payload type response when the user enters a number on the keypad. The SIP Phone transfers the DTMF in-band digit (per RFC 2833) to the MTP device.

2. The MTP device extracts the in-band DTMF digit and passes the digit out of band to Cisco CallManager.

3. Cisco CallManager then relays the DTMF digit out of band to the gateway or IVR system.

Generating DTMF Digits

As discussed in DTMF Relay Calls Between SIP Endpoints and Cisco CallManager, SIP sends DTMF in-band digits, while Cisco CallManager only supports out-of-band digits. The software MTP device receives the DTMF out-of-band tones and generates DTMF inband tones to the SIP client.

Figure 38-3 Generating DTMF Digits

Figure 38-3 begins with media streaming, and the MTP device has been informed of the dynamic DTMF payload type.

1. The SCCP IP Phone user presses buttons on the keypad. Cisco CallManager collects the out-of-band digits from the SCCP IP phone.

2. Cisco CallManager passes the out-of-band digits to the MTP device.

3. The MTP device converts the digits to RFC 2833 RTP compliant inband digits and forwards them to the SIP client.

Related Topics

SIP Functions Supported in Cisco CallManager

SIP and Cisco CallManager

Supplementary Services Initiated by SCCP Endpoint

All supplementary services initiated by an SCCP endpoint during a SIP call are supported. SCCP endpoints are internally managed by Cisco CallManager without affecting the connecting SIP device. Any changes to the original connecting information are updated with re-INVITE messages that use the Remote-Party-ID header. Refer to SIP Extensions for Caller Identity and Privacy for more information on the Remote-Party-ID header.

The following section, Ringback Tone During Blind Transfer, describes a blind transfer, which is unique as a supplementary service because it requires Cisco CallManager to provide a media announcement.

Ringback Tone During Blind Transfer

For SCCP-initiated blind transfers, Cisco CallManager needs to generate tones or ringback after a call has already connected. In other words, Cisco CallManager provides a media announcement for blind transfers.

A blind transfer works when the transferring phone connects the caller to a destination line before the target of the transfer enters the call. A blind transfer differs from a consultative, or attended, transfer in which one transferring party either connects the caller to a ringing phone (ringback received) or speaks with the third party before connecting the caller to the third party

Blind transfers that are initiated from an SCCP IP Phone allow ringback to the original, connected SIP device user. To accomplish ringback, Cisco CallManager uses an annunciator software device that is often located with an MTP device.

With an annunciator, Cisco CallManager can play predefined tones and announcements to SCCP IP Phones, gateways, and other IP telephony devices. These predefined tones and announcements provide users with specific information on the status of the call.

Related Topics

SIP Functions Supported in Cisco CallManager

SIP and Cisco CallManager

Supplementary Services Initiated by SIP Endpoint

The following sections describe supplementary services initiated by a SIP endpoint.

SIP-Initiated Call Transfer

Call Hold

Call Forward

SIP-Initiated Call Transfer

Cisco CallManager does not support SIP-initiated call transfer and does not accept receiving REFER requests or INVITE messages that include a Replaces header. When Cisco CallManager receives a REFER request, it returns a 501 Not Implemented message. When Cisco CallManager receives an INVITE message with a Replaces header, it processes the call and ignores the Replaces header.

Call Hold

Cisco CallManager supports call hold and retrieve that a SIP device initiates or that a Cisco CallManager device initiates. For example, when a SCCP IP Phone user retrieves a call that was placed on hold by another user, Cisco CallManager sends a re-INVITE message to the SIP proxy. The re-INVITE message contains updated Remote-Party-ID information to reflect the current connected party. If Cisco CallManager originally initiated the call, the Party field in the Remote-Party-ID header gets set to calling; otherwise, it gets set to called. For more information on the Party field parameter, refer to Enhanced Call Identification Services.

Call Forward

Cisco CallManager supports call forward that a SIP device initiates or that a Cisco CallManager device initiates. With call forwarding redirection requests from SIP devices, Cisco CallManager processes the requests. For call forwarding initiated by Cisco CallManager, no SIP redirection messages are used. Cisco CallManager handles redirection internally then conveys the connected party information to the originating SIP endpoint through the Remote-Party-Id header.

Related Topics

SIP Functions Supported in Cisco CallManager

SIP and Cisco CallManager

Enhanced Call Identification Services

This section describes the following SIP identification services in Cisco CallManager and how Cisco CallManager conveys these identification services in the SIP:

Line Identification Services

Calling Line Presentation (CLIP) and Restriction (CLIR)

Connected Line Presentation (COLP) and Restriction (COLR)

Name Identification Services

Calling Name Presentation (CNIP) and Restriction (CNIR)

Connected Name Presentation (CONP) and Restriction (CONR)

Cisco CallManager provides flexible configuration options to provide these identification services either on a call-by-call basis or statically preconfigured for each SIP signaling interface.

Calling Line and Name Identification Presentation

Cisco CallManager includes the calling line (or number) and name presentation information in the From and Remote-Party-ID headers of the initial INVITE message from Cisco CallManager. The From header field indicates the initiator of the request. Cisco CallManager uses Remote-Party-ID headers in 18x, 200 and re-INVITE messages to convey connected name and identification information. The Remote-Party-ID header also gives detailed descriptions of caller identity and privacy. Cisco CallManager sets the Party field of the Remote-Party-ID header to calling for calling ID services.


Note Refer to the Cisco IOS SIP Configuration Guide for more general information on Remote-Party-ID header.


Example:

Bob Jones (with external phone number=8005550100) dials out to a SIP signaling interface; the From and Remote-Party-ID headers contain

From: "Bob Jones" <sip:8005550100@localhost>
Remote-Party-ID: "Bob Jones"<8005550100@localhost; user=phone>; 
party=calling;screen=no;privacy=off

Calling Line and Name Identification Restriction

Calling line (or number) and name restrictions configuration occurs on the SIP signaling interface level or on a call-by-call basis. The SIP trunk level configuration takes precedence over the call-by-call configuration. To configure on a call-by-call basis, refer to the Route Group Configuration in the Cisco CallManager Administration Guide.

Calling line and name restrictions configuration also occurs independently of each other. For example, you may choose to restrict only numbers and allow names to be presented.

Example 1

With a restricted calling name, Cisco CallManager sets the calling name in the From header to a configurable string. Cisco CallManager sets the display field in the Remote-Party-ID header to include the actual name but sets the Privacy field to name:

From: "Anonymous" <sip:8005550100@localhost>
Remote-Party-ID: "Bob Jones"<9728135001@localhost; user=phone>; 
party=calling;screen=no;privacy=name

Example 2

With a restricted calling number, Cisco CallManager leaves out the calling line in the From header; however, Cisco CallManager still includes the calling line in the Remote-Party-ID header but sets the Privacy field to privacy=uri:

From: "Bob Jones" <sip:@localhost>
Remote-Party-ID: "Bob Jones"<8005550100@localhost; user=phone>; 
party=calling;screen=no;privacy=uri

Example 3

With a restricted calling name and number, Cisco CallManager sets the Privacy field to privacy=full in the Remote-Party-ID header:

From: "Anonymous" <sip:localhost>
Remote-Party-ID: "Bob Jones"<8005550100@localhost; user=phone>; 
party=calling;screen=no;privacy=full

Connected Line and Name Identification Presentation

Cisco CallManager uses connected line and name identification as a supplementary service to provide the calling party with the connected party's number and name. The From header field indicates the initiator of the request. Cisco CallManager uses Remote-Party-ID headers in 18x, 200 and re-INVITE messages to convey connected information. Cisco CallManager sets the Party field of Remote-Party-ID header to called.

Example 1

Cisco CallManager receives an INVITE message with a destination address of 800555. Cisco CallManager includes the connected party name in 18x and 200 messages as follows:

Remote-Party-ID: "Bob Jones"<98005550100@localhost; user=phone>; 
party=called;screen=no;privacy=off

Connected Line and Name Identification Restriction

You can configure connected line (or number) and name restrictions on the SIP trunk level or on a call-by-call basis. The SIP trunk level configuration takes precedence over the call-by-call configuration. To configure on a call-by-call basis, refer to the Route Group Configuration in the Cisco CallManager Administration Guide.

Similar to Calling ID services, users can restrict connected number and name independently of each other.

Example 1

Cisco CallManager sets the display field in the Remote-Party-ID header to include the actual name, but sets the Privacy field to privacy=name:

Remote-Party-ID: "Bob Jones"<8005550100@localhost; user=phone>; 
party=called;screen=no;privacy=name

Example 2

With a restricted connected number, Cisco CallManager still includes the connected number in the Remote-Party-ID header but sets the Privacy field to privacy=uri:

Remote-Party-ID: "Bob Jones"<8005550100@localhost; user=phone>; 
party=called;screen=no;privacy=uri

Example 3

With a restricted connected name and number, Cisco CallManager sets the Privacy field to privacy=full in the Remote-Party-ID header:

Remote-Party-ID: "Bob Jones"<8005550100@localhost; user=phone>; 
party=called;screen=no;privacy=full

Related Topics

SIP Functions Supported in Cisco CallManager

SIP and Cisco CallManager

Redirecting Dial Number Identification Service (RDNIS)

Cisco CallManager uses the SIP Diversion header in the initial INVITE message to carry available RDNIS information.

Related Topics

SIP Functions Supported in Cisco CallManager

SIP and Cisco CallManager

SIP Service Parameters

SIP timers and counters can be individually configured for functionality on different servers. Refer to the Service Parameter Configuration chapter in the Cisco CallManager Administration Guide for full information on how to configure service parameters.

SIP Timers and Counters

SIP timers and counters are configurable service parameters. The following tables describe the various SIP timers and counters and give their default values and range values:

Table 38-1 SIP Timers that are Supported in Cisco CallManager 

Timer
Default Value
Default Range
Definition

Trying

500 milliseconds

100 to 1000

Time that Cisco CallManager should wait for a 100 response before retransmitting the INVITE.

Connect

500 milliseconds

100 to 1000

Time that Cisco CallManager should wait for an ACK before retransmitting the 2xx response to the INVITE.

Disconnect

500 milliseconds

100 to 1000

Time that Cisco CallManager should wait for a 2xx response before retransmitting the BYE request.

Expires

180000 milliseconds

60000 to 300000

Valid time that is allowed for an INVITE request.

rel1xx

500 milliseconds

100 to 1000

Time that Cisco CallManager should wait before retransmitting the reliable1xx responses.

PRACK

500 milliseconds

100 to 1000

Time that Cisco CallManager should wait before retransmitting the PRACK request.



Note When using TCP transport and a timer times out, the SIP device does not retransmit. The device relies on TCP to retry.


Table 38-2 SIP Retry Counters that are Supported in Cisco CallManager 

Retry Counter
Default Value
Default Range
Definition

INVITE

5

1 to 10

Number of INVITE retries

Response

6

1 to 10

Number of RESPONSE retries

BYE

10

1 to 10

Number of BYE retries

Cancel

10

1 to 10

Number of Cancel retries

PRACK

6

1 to 10

Number of PRACK retries

Rel1xx

10

1 to 10

Number of Reliable 1xx response retries


Related Topics

SIP Functions Supported in Cisco CallManager

SIP and Cisco CallManager

SIP Signaling/Trunk Interface Configuration Checklist

Table 38-3 provides an overview of the steps that are required to configure SIP signaling/trunk interfaces in Cisco CallManager, along with references to related procedures and topics.

Table 38-3 Trunk Configuration Checklist 

Configuration Steps
Procedures and Related Topics

Step 1 

Create a SIP trunk.

For outgoing calls, configure the destination address (the address of the SIP Proxy Server).

Configure the destination port.

Configure a unique incoming port for each SIP interface.

Adding a Trunk, Cisco CallManager Administration Guide

Trunk Configuration Settings, Cisco CallManager Administration Guide

Step 2 

Verify the RFC 2833 compliant MTP device is configured.

Trunk Configuration Settings, Cisco CallManager Administration Guide

In the trunk configuration, the MTP field is always checked. SIP requires an RFC 2833 compliant MTP device. For more information on MTP, see Media Termination Point Configuration, Cisco CallManager Administration Guide.

Step 3 

Assign to a Route Pattern, Route Group, or Route List, if needed.

Route Pattern Configuration,Cisco CallManager Administration Guide

Route Group Configuration, Cisco CallManager Administration Guide

Route List Configuration, Cisco CallManager Administration Guide

Step 4 

Configure SIP timers, counters, and service parameters, if necessary.

Service Parameters Configuration, Cisco CallManager Administration Guide.

For specific configurable values, see SIP Service Parameters.

Step 5 

Verify the Annunciator is active, if necessary.

Annunciator Configuration, Cisco CallManager Administration Guide.

Step 6 

If a SIP Proxy server is used as the destination address, configure static routes to point to all IP addresses or domain names of the SIP interface Call Manager Group.

Trunk Configuration Settings, Cisco CallManager Administration Guide

The device pool field can be an IP address, fully-qualified domain name (FQDN), or DNS SRV name.

Related Topics

SIP Networks

SIP and Cisco CallManager

SIP Functions Supported in Cisco CallManager

SIP Signaling/Trunk Interface Configuration Checklist

Where to Find More Information

Related Topics

Understanding Cisco CallManager Trunk Types

Trunk Configuration, Cisco CallManager Administration Guide

Understanding IP Telephony Protocols

Caller Identification and Restriction

Additional Cisco Documentation

Cisco  IP Telephony Solution Reference Network Design