This document describes how the Session Initiation Protocol (SIP) reliable provisional response feature works and how to confiugred it on Cisco Unified Border Element (CUBE) and Cisco Unified Communications Manager (CUCM).
Cisco recommends that you have knowledge of these topics:
The information in this document is based on these software and hardware versions:
Cisco IOS Release 15.1(4)M4 on Cisco Integrated Services Routers (ISR): Series 2800, 3800, 2900, 3900
Cisco IOS Release 15.1(3)S4 on Cisco ASR 1000 Series Aggregation Services Routers
Note: This configuration example is not limited to the software versions and hardware platforms listed above; this configuration also works with Cisco IOS Release 12.4(24)T5 on Cisco AS5400XM Universal Gateway.
SIP reliable provisional response was introduced in order to better integrate with a public switched telephone network (PSTN). The most common scenario is to establish the voice/audio path before completion of the call; therefore, the caller hears the announcement or music generated by the PSTN.
For example, in below topology, the IP phone calls a PSTN conference bridge or some toll free numbers, and the callee plays a prompt before it answers the call. If the CUCM initiates the call with a delay offer (INVITE does not contain Session Description Protocol (SDP)), the caller will not hear the prompt.
In other cases, the PSTN side generates a ringback tone. If media is not cut through before the call connects, the caller might not hear the ringback tone.
SIP reliable provisional response can be used to resolve the above issue without involving extra media resources (such as Media Transfer Protocol (MTP)), as these provisional responses and PRACK messages provide additional opportunities for offer/answer exchanges.
By default, CUBE supports reliable response with this configuration:
voice service voip sip rel1xx supported 100rel
This means, as a User Agent Client (UAC), if it receives 180/183 messages with header Require: 100rel, it will respond with PRACK; however, as a User Agent Server (UAS), it will not send out 180/183 with the header Require: 100rel.
In order to force CUBE to send 18X with Require: 100rel (so that it will wait for PRACK from UAC), here is the configuration example:
voice service voip sip rel1xx require 100rel
dial-peer voice 1000 voip voice-class sip rel1xx require 100rel
Note: The dial-peer setting takes precedence over the global setting.
By default, CUCM does not support reliable response. However, you can change the SIP trunk profile in order to configure it:
In the CUCM Administration interface, go to Device > Device Setting > SIP Profile.
Open the SIP profile used by a given SIP trunk.
Choose Send PRACK for all 1xx Messages from the SIP Rel1XX Options drop-down list.
Reset the SIP trunk profile for the given SIP trunk.
Note: If the given SIP trunk uses the default SIP trunk profile (Standard SIP Profile), it is best to copy to a new profile and apply to the SIP trunk; otherwise, the default SIP trunk profile will affect all SIP trunks.
Note: Even if you make the above change, CUCM can support reliable responses only by sending PRACK as a UAC; however, for now, it cannot send 180/183 with the Require: 100rel header as a UAS.
Typical SIP Messages
If reliable repsonse is configured in the incoming dial-peer on CUBE, a typical call will be similar to this: