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 |
: |
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.