You are here: CSP Developer’s Guide: Internet Protocol > 5 Session-Initiation Protocol (SIP) Software > PRACK Support

PRACK Support

Overview

The CSP supports four provisional responses:

• 100 Trying

• 180 Ringing

• 182 Queued Message

• 183 Session Progress

You can enable the CSP to support the Provisional Response ACK (PRACK) method to send non 100 provisional responses more reliably over User Datagram Protocol (UDP). This feature is disabled by default.

Pertinent Specification

RFC 3262

Description

The following are the details of this feature:

• The Offer/Answer model for PRACK (section 5 of RFC 3262) is not supported.

• The Support/Require mode for PRACK is at the stack level and not on a call-by-call basis.

• The CSP now supports the Provisional Response method to send non 100 provisional over User Datagram Protocol (UDP)

• There is not indication about the presence/absence of "100rel" tag in the "Supported/Require" header to the host in the RFS, PPL EI for 180Ringing or PPL EI for 183 Session progress for the following respectively:

• Received INVITE

• 180 Ringing

• 183 Session Progress

• The RFC 3262 states the following: "The UAS sending the response reliably should send provisional responses once every two and a half minutes." The SIP stack supports this standard for the 182 Queued message.

Enabling the CSP to Report Supported and Required Header Fields

The NPDI SIP Extensions (0x294A) TLV indicates to the host the option tags present in the Supported and Required headers in the inbound INVITE, 180 Ringing, and 183 Session Progress within the Request for Service or PPL Event Indication as follows:

• 180 Ringing and 183 Session Progress - reporting in PPL Event Indication

• INVITE - reporting in Request for Service and possibly PPL Event Indication depending on the length

API Messages Used

The following messages are used by this feature. Refer to the API Reference for the formats.

• Request for Service

• PPL Event Indication

Configuring

Reporting SIP Supported and Required Option Tags

Prior to this feature the CSP already supported Timer option tag and with this feature CSP also supports 100rel (PRACK) tag.

The reporting is disabled by default. To enable the reporting, set bit 14 of the data part in the SIP Message Information Mask (0x027F) TLV.

PRACK Mode

The functionality in the CSP SIP stack will operate in three modes:

• Disabled (Default)

• Support

• Require

The 100rel is a SIP option tag used to indicate support for reliability of provisional responses. The CSP supports 100rel in the following headers:

• Supported

• Required

You use Reliable Provisional Response Mode (0x011B) TLV with the VoIP Protocol Configure message. The configuration is at the stack level.

Refer to SIP Stack in PRACK Disabled Mode and SIP Stack in PRACK Required Mode for a detailed explanation of the behavior of the CSP SIP stack in support and require modes.

Querying

You can query the current configuration with the VoIP Protocol Query (0x00EF) message by including the 0x011B TLV.

CSP to Report Inbound PRACK

The receipt of PRACK is reported to the host using the PPL Event Indication message with the event type (0x002A). Reporting is enabled by default.

The host controls the reporting by toggling bit 5 of the data part of PPL Event Notification Mask (0x0282) TLV.

Call Flows

SIP Stack in PRACK Disabled Mode

The CSP SIP works in disabled mode - where it does not support PRACK. This mode accommodates backward compatibility.

In the call flow below, the CSP1 sends INVITE with "Require: 100rel" to CSP1 in disabled mode. CSP2 shall respond with 420 Bad Extension containing a header "Unsupported: 100reli."

SIP Stack in PRACK Supported Mode

The call flow below assumes that the reporting of option tags in Supported and Require header are enabled.

The following are the behaviors of CSP SIP stack (CSP2) in supported mode:

• For an inbound call (INVITE) from UAC that supports non-100 provisional response being sent reliably (if there is a ‘Supported’ header with ‘100rel’ tag), the CSP accepts the call and sends non-100 provisional response(s), if any, reliably.

• For an inbound call (INVITE) from UAC that requires non-100 provisional response to be sent reliably (if there is a ‘Require’ header with ‘100rel’ tag), the CSP accepts the call and sends all non-100 provisional response(s), if any, reliably.

• For an inbound call (INVITE) from UAC that does not support non-100 provisional response being sent reliably (if there is neither ‘Supported’ nor ‘Require’ header with ‘100rel’ tag), then the CSP will accept the call but does not send non-100 provisional response(s), if any, reliably.

• All outbound calls (INVITE) from the CSP will contain ‘Supported’ header with ‘100rel’ tag. Refer to CSP1 in first call flow above.

SIP Stack in PRACK Required Mode

This section provides examples of the CSP SIP stack behavior in require mode.

The CSP accepts the call and send all non-100 provisional response(s), if any, reliably:

• Inbound call (INVITE) from UAC that supports non-100 provisional response sent reliably - if there is a "Supported" header with 100rel tag.

The CSP accepts the following call and sends all non-100 provisional response(s), if any, reliably:

• Inbound call (INVITE) from UAC that requires non-100 provisional response to be sent reliably - if there is a "Require" header with 100rel tag.

The CSP accepts the following call but does not send non-100 provisional response(s), if any, reliably:

• Inbound call (INVITE) from UAC that does not support non-100 provisional response being sent reliably - if there is neither "Supported" nor "Required" header with 1000rel tag.

All outbound calls (INVITE) from the CSP have "Required" header with "100rel" tag. See call flow above.

In case the CSP is configured for the PRACK method in require mode and if a call is made to a remote UA that does not support 100rel tag, the UA is expected to respond with 420 Bad Extension message.

If a PRACK request received by the CSP does not match any unacknowledged reliable provisional response, the CSP responds to the PRACK with a 481 response.

If a reliable provisional response is retransmitted for 64*T1 (T1=500ms) seconds without reception of a corresponding PRACK, the CSP rejects the original INVITE request with a 500 internal server response.

Positive acknowledgment to a message
UPD. User Datagram Protocol. Unreliable networking layer that sits at the same level of networking stack as TCP. Part of the TCP/IP protocol suit, UDP is used for transferring IP datagrams between host computers, where each datagram is routed through the Internet based on the destination IP address.
See Request For Service.
See Programmable Protocol Language.
Session-Initiation Protocol. A signaling protocol used for establishing sessions in an IP network. A session could be a simple, two-way telephone call, or it could be a collaborative multi-media conference session.
Network Protocol Data Intelligence. Also called “Interworking,” it is a software product that operates within Excel’s Call Control (Layer 4) and Services (Layer 5) call processing layers. NPDI is meant to enhance Excel’s call processing product offering by allowing call processing layers (specifically Layers 4 and 5) to perform advanced analysis, generation, and conversion of Network Signaling (NS) Layer 3 information.
Tag-Length-Value block. A standardized block that allows data to inserted in a standard way into API messages.
A condition that, when met, drives a state machine from one state to another. A condition that drives a Component out of its current state by invoking an associated primitive.
Voice over Internet Protocol. The delivery of voice information in digital form in discrete packets rather than in the traditional circuit-committed protocols of the public-switched telephone network (PSTN).
In PPL, a condition that, when met, drives a state machine (PPL Component) from one state to another, by invoking an associated Primitive. In PPL files, an Event is marked by an arrow and text.
Digital communications link - voice, data, and video at a 1.544 Mbps rate (24 64 Kbps channels)