You are here: CSP Developer’s Guide: Internet Protocol > 6 Call Agent > Support REFER Request in Call Agent

Support REFER Request in Call Agent

Purpose

This feature allows the CSP to process an inbound REFER request and to generate an outbound REFER request in Call Agent Mode.

This section contains the following:

• Description of the feature

• Sample calls flows

• API and PPL changes to support the feature

Description

Whenever there is an incoming REFER request, the REFER-TO header is reported to the host in the PPL Event Indication (Event 0x0021; Component 0x00A7). The host can propagate the REFER request to the outbound leg using the PPL Event Request message (Event 0x0027; Component 0x00A7).

The status of the reference is reported to the SIP component in the NOTIFY messages. This status is reported to the host in the PPL Event Indication (Event 0x0028; Component 0x00A7).

Call Flows

The following call flows show three scenarios:

• Success REFER request and NOTIFY message in Call Agent Mode (Includes sample API and SIP message traces.)

• REFER Request Failure in Call Agent Mode

• Reference Failure in Call Agent Mode

Successful REFER and NOTIFY in Call Agent Mode

This call flow assumes that the Referrer and Referee are in the answered state. The second PPL Event Request (0x0020) to generate the NOTIFY message is not supported as of now, but will be supported in a future release.

API Messages

X->H

[00 35 00 43 00 27 04 00 01 0d 03 00 64 08 00 a7 00 21 01 03

00 33 00 1f 00 02 29 19 00 0b 39 39 39 39 39 39 39 39

30 31 00 29 1b 00 0a 31 30 2e 31 30 2e 31 2e 32 00]

H->X

[00 05 00 43 00 27 04]

H->X

[00 05 00 43 00 27 04]

H->X

[00 3d 00 44 00 01 04 00 01 0d 03 00 64 09 00 a7 00 27

01 03 00 33 00 27 00 03 29 1e 00 0b 39 39 39 39 39 39

39 39 30 31 00 29 20 00 0a 31 30 2e 31 30 2e 31 2e 32

00 29 21 00 04 00 00 13 ff]

X->H

[00 07 00 44 00 01 04 00 10]

X->H

[00 1e 00 43 00 28 04 00 01 0d 03 00 64 09 00 a7 00 27 01 03

00 33 00 08 00 01 29 15 00 02 00 ca]

H->X

[00 05 00 43 00 28 04]

H->X

[00 05 00 43 00 28 04]

X->H

[00 1e 00 43 00 29 04 00 01 0d 03 00 64 09 00 a7 00 28 01 03

00 33 00 08 00 01 29 15 00 02 00 64]

H->X

[00 05 00 43 00 29 04]

H->X

[00 05 00 43 00 29 04]

H->X

[00 1e 00 44 00 01 04 00 01 0d 03 00 64 08 00 a7 00 20

01 03 00 33 00 08 00 01 29 4b 00 02 00 64]

X->H

[00 07 00 44 00 01 04 00 10]

SIP Trace

1 -RECEIVED From 10.10.1.2:5060 at 12425

2 -RECEIVED From 10.10.1.47:1024 at 12432

REFER sip:12345@10.10.1.133:5060 SIP/2.0

Via: SIP/2.0/UDP 10.10.1.47

From: 12345<sip:12345@10.10.1.47:5060>;tag=719188306d

To: 12345<sip:12345@10.10.1.133:5060>;tag=91883079

Call-ID: EXCEL-CSP27.47.12397.140@10.10.1.47

CSeq: 2 REFER

Max-Forwards: 70

Contact: 12345<sip:12345@10.10.1.47:5060>

Refer-To: sip:9999999901@10.10.1.2:5119

User-Agent: Excel_CSP/83.10.69

Content-Length: 0

3 -SENT To 10.10.1.47:5060 at 12432

SIP/2.0 202 Accepted

To: 12345<sip:12345@10.10.1.133:5060>;tag=91883079

From: 12345<sip:12345@10.10.1.47:5060>;tag=719188306d

Call-ID: EXCEL-CSP27.47.12397.140@10.10.1.47

CSeq: 2 REFER

Contact: 12345<sip:12345@10.10.1.65:5060>

Via: SIP/2.0/UDP 10.10.1.47

User-Agent: Excel_CSP/83.10.69

Content-Length: 0

4 -RECEIVED From 10.10.1.2:5060 at 12436

5 -SENT To 10.10.1.133:5060 at 12436

REFER sip:12345@10.10.1.133:5060 SIP/2.0

Via: SIP/2.0/UDP 10.10.1.65

From: 12345<sip:12345@10.10.1.47:5060>;tag=410511353079

To: 12345<sip:12345@10.10.1.133:5060>;tag=113559f

Call-ID: EXCEL-CSP4.1009.12409.900@10.10.1.65

CSeq: 2 REFER

Max-Forwards: 70

Contact: 12345<sip:12345@10.10.1.65:5060>

Refer-To: sip:9999999901@10.10.1.2:5119

User-Agent: Excel_CSP/83.10.69

Content-Length: 0

6 -RECEIVED From 10.10.1.133:1024 at 12436

SIP/2.0 202 Accepted

To: 12345<sip:12345@10.10.1.133:5060>;tag=113559f

From: 12345<sip:12345@10.10.1.47:5060>;tag=410511353079

Call-ID: EXCEL-CSP4.1009.12409.900@10.10.1.65

CSeq: 2 REFER

Contact: 12345<sip:12345@10.10.1.133:5060>

Via: SIP/2.0/UDP 10.10.1.65

User-Agent: Excel_CSP/83.10.69

Content-Length: 0

7 -RECEIVED From 10.10.1.133:1024 at 12442

NOTIFY sip:12345@10.10.1.65:5060 SIP/2.0

Via: SIP/2.0/UDP 10.10.1.133

To: 12345<sip:12345@10.10.1.47:5060>;tag=410511353079

From: 12345<sip:12345@10.10.1.133:5060>;tag=113559f

Call-ID: EXCEL-CSP4.1009.12409.900@10.10.1.65

CSeq: 3 NOTIFY

Event: refer

Contact: 12345<sip:12345@10.10.1.133:5060>

Content-Type: message/sipfrag;version=2.0

Content-Length: 20

SIP/2.0 100 Trying

8 -SENT To 10.10.1.133:5060 at 12442

SIP/2.0 200 OK

To: 12345<sip:12345@10.10.1.47:5060>;tag=410511353079

From: 12345<sip:12345@10.10.1.133:5060>;tag=113559f

Call-ID: EXCEL-CSP4.1009.12409.900@10.10.1.65

CSeq: 3 NOTIFY

Via: SIP/2.0/UDP 10.10.1.133

User-Agent: Excel_CSP/83.10.69

Content-Length: 0

9 -RECEIVED From 10.10.1.2:5060 at 12446

10-RECEIVED From 10.10.1.2:5060 at 12456

11-RECEIVED From 10.10.1.2:5060 at 12466

12-RECEIVED From 10.10.1.2:5060 at 12477

13-SENT To 10.10.1.47:5060 at 12478

NOTIFY sip:12345@10.10.1.47:5060 SIP/2.0

Via: SIP/2.0/UDP 10.10.1.65

To: 12345<sip:12345@10.10.1.47:5060>;tag=719188306d

From: 12345<sip:12345@10.10.1.133:5060>;tag=91883079

Call-ID: EXCEL-CSP27.47.12397.140@10.10.1.47

CSeq: 3 NOTIFY

Event: refer

Contact: 12345<sip:12345@10.10.1.65:5060>

Content-Type: message/sipfrag;version=2.0

Content-Length: 20

SIP/2.0 100 Trying

14-RECEIVED From 10.10.1.47:1024 at 12478

SIP/2.0 200 OK

To: 12345<sip:12345@10.10.1.47:5060>;tag=719188306d

From: 12345<sip:12345@10.10.1.133:5060>;tag=91883079

Call-ID: EXCEL-CSP27.47.12397.140@10.10.1.47

CSeq: 3 NOTIFY

Via: SIP/2.0/UDP 10.10.1.65

User-Agent: Excel_CSP/83.10.69

Content-Length: 0

15-RECEIVED From 10.10.1.2:5060 at 12487

REFER Failure in Call Agent Mode

Reference Failure in Call Agent Mode

API Changes

The section provides the API changes that support this feature.

The PPL Event Request (0x0044) message can include the following four new TLVs:

• 0x291E NPDI SIP Refer to Username

• 0x291F NPDI SIP Refer to Password (optional)

• 0x2920 NPDI SIP Refer to Host Name

• 0x2921 NPDI SIP Refer to Port (optional)

The PPL Event Indication (0x0043) message includes the NPDI SIP Response Code TLV - 0x2915 as follows:

PPL Event Indication (0x0043)

MESSAGE (White) | RESPONSE (Gray)
Byte | Field Description | Byte | Field Description
0 | Frame (0xFE) | 0 | Frame (0xFE)
1, 2 | Length (0x00NN) | 1, 2 | Length (0x0005)
3, 4 | Message Type (0x0043) | 3, 4 | Message Type (0x0043)
5 | Reserved (0x00) | 5 | Reserved (0x00)
6 | Sequence Number | 6 | Same Sequence Number
7 | Logical Node ID | 7 | Logical Node ID
: | AIB Channel (0x0D) | 8 | Checksum
: | PPL Component ID - 0x00A7
: | PPL Event 0x0027/0x0028
: | Number of ICBs to follow - 0x01
: | ICB Type (0x03) - Extended Data ICB
: | ICB ID - NPDI Universal ICB - 0x0033)
: | Data Length - 0x0008
: | Number of TLVs - 0x0001
: | NPDI SIP Response Code TLV -0x2915 (See format below.)
: | Checksum

0x2915 NPDI SIP Response Code

The PPL Event Indications now supports this existing TLV within the NPDI Universal ICB (0x0033).

This TLV provides the response code received for any SIP message generated by the CSP.

Used in:
0x0033 NPDI Universal ICB in:
Channel Released with Data message
Release Channel with Data message
PPL Event Indication message
Request for Service with Data message

Byte | Description
0, 1 | Tag 0x2915
2, 3 | Length 0x0002
4, 5 | Value SIP Response Code (2 Bytes) This TLV, when reported in the PPL Event Indication for Event (0x0027/0x0028), will have any valid SIP Response value. The response code to be interpreted for event 0x0027 is as follows: 202 - Accepted (The REFER request is successful) 405 – Method Not Allowed (REFER request failed) 408 – Request Timed Out (REFER request failed) The response code to be interpreted for event 0x0028 is as follows: 100 – Trying 200 - OK (The reference is successful) 503 - Service Unavailable (The reference failed) 603 - Decline (The reference failed)

PPL Changes

New Events

The following new PPL Events for the SIP UA PPL Component (0x00A7).

Event Request

0x0027 - Allows the CSP to generate an outbound REFER request with the refer target URL filling in the TLV.

Event Indications

0x0027 - Informs the host about the result of the sent REFER request (Success - 2xx or Failure - 4xx-6xx).

0x0028 - Informs the host that sent the REFER request about the status of the reference (Trying, Success, or Failure). The value in the SIP Response Code TLV (0x2915) reports the exact response code.

See Programmable Protocol Language.
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.
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.
A computer, attached to the Excel platform through an RS-232 or Ethernet link, from which you run the telecommunications application that controls the Excel platform.
The point in the Excel platform where a DS0 connects to a network. Also known as a "socket."
Tag-Length-Value block. A standardized block that allows data to inserted in a standard way into API messages.
A group of data bits in a specific format, with a flag at each end to indicate the beginning and the end of the frame.
See Address Information Block.
A programmable software component that uses PPL state machines that can be modified with the PPL Tool.
See Information Control Block.
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.