You are here: CSP Developer’s Guide: Internet Protocol > 5 Session-Initiation Protocol (SIP) Software > SIP Remote Party ID and RPID Privacy for Outbound Calls
SIP Remote Party ID and RPID Privacy for Outbound Calls
Overview
Important! This feature contains information for the SIP Remote Party ID and RPID Privacy for both inbound and outbound calls.
The SIP Remote Party ID and SIP RPID Privacy header fields allow certain telephony services as well as some regulatory and public safety requirements.
These services include the following:
• calling identity delivery
• calling identity delivery blocking
• tracing originator of call
Baseline SIP supports each of these services independently, but cannot support all combinations. For example, a caller that wants to maintain privacy and consequently provides unintelligible information in the SIP From header field will not be identifiable by intermediaries. However, since SIP does not allow the contents of the From header field to be modified by intermediaries, the intermediaries that do not directly perform cannot perform certain services.
API Messages
• VoIP Protocol Configure (0x00EE)
• Request for Service with Data (0x002D)
• PPL Event Indication (0x0043)
• PPL Event Request (0x0044)
• Route Control (0x00E8)
• Outseize Control (0x002C)
Configuring with API
You configure the SIP stack on the CSP to report Remote Party ID and RPID Privacy to host applications. The stack disables this functionality by default.
Follow the information below to configure this feature with the API. Otherwise, refer to Configuring with CSA.
To enable this functionality, set bits 7and 8 in the SIP Message Information Task (0x027F) TLV when you configure the SIP stack with the VoIP Protocol Configure message (0x00EE).
Example
Follow the steps below and the references to the Trace and API Message that follow:
1. When the CSP receives a SIP INVITE message that includes the Remote Party ID header and RPID Privacy header.
Important! The SIP stack reports the Remote Party ID and RPID Privacy headers in raw, null-terminated ASCII format.
2. The CSP sends the SIP Remote Party ID TLV (0x2959) to the host application in the Request for Service with Data (0x002D) or PPL Event Indication (0x0043) message.
3. The CSP sends the SIP RPID Privacy TLV (0x295A) to the host application in the Request for Service with Data (0x002D) or PPL Event Indication (0x0043) message.
4. Since there can be more than one occurrence of Remote Party ID and RPID Privacy headers, the CSP SIP stack will report more than one occurrence of the corresponding SIP Remote Party ID (0x2959) and SIP RPID Privacy (0x295A) TLVs (up to 250 bytes per TLV) in the Request for Service with Data (0x002D) or PPL Event Indication (0x0043) message.
5. If the contents of the TLV in the Request for Service with Data (0x002D) message exceeds 1024 bytes, the remainder of the data will be sent in one or more subsequent PPL Event Indication messages.
6. The host shall insert any number of Remote Party ID and RPID Privacy headers, and the total length of the API that will be supported restricts the number.
7. For write access, the SIP Remote Party ID (0x2959) and SIP RPID Privacy (0x295A) TLVs only support a maximum of 250 bytes per TLV, including the null-terminator. This maximum length of 250 bytes is applicable for each occurrence of the TLV in the API and is not the cumulative length.
8. If the TLV exceeds the maximum length or is not terminated by the null-terminator, the CSP returns a 0x1304 NACK.
Important! The maximum recommended NPDI size is 780 bytes for the Route Control (0x00E8) message that includes the NPDI Universal (0x0033) ICB size. The maximum recommended NPDI size is 820 bytes for the Outseize Control (0x002C) message and the subsequent PPL Event Request (0x0044) message that includes the NPDI Universal (0x0033) ICB size. The maximum byte size supported per SIP message is 1500 bytes.
Trace
INVITE sip:service@10.10.1.32:5060 SIP/2.0
Via: SIP/2.0/UDP 10.10.1.2:5060
From: sipp <sip:sipp@10.10.1.2:5060>;tag=1
To: sut <sip:service@10.10.1.32:5060>
Call-ID: 1.8524.10.10.1.2@sipp.call.id
CSeq: 1 INVITE
Contact: sip:sipp@10.10.1.2:5060
Max-Forwards: 70
Subject: Performance Test
Remote-Party-ID: "John Doe" <sip:jdoe@foo.com>;party=calling;id-type=subscriber;privacy=full;screen=yes
RPID-Privacy: full
Content-Type: application/sdp
Content-Length: 136
v=0
o=user1 53655765 2353687637 IN IP4 127.0.0.1
s=-
c=IN IP4 127.0.0.1
t=0 0
m=audio 10000 RTP/AVP 0
API Message
[00 f3 00 2d 00 04 ff 00 01 0d 03 00 07 02 00 33 01 03 00 33
00 df 00 0f 27 4e 00 02 00 05 27 7e 00 03 08 00 00 29
19 00 08 73 65 72 76 69 63 65 00 29 1b 00 0b 31 30 2e
31 30 2e 31 2e 33 32 00 29 1c 00 04 00 00 13 c4 29 23
00 05 73 69 70 70 00 29 25 00 0a 31 30 2e 31 30 2e 31
2e 32 00 29 26 00 04 00 00 13 c4 29 2d 00 05 73 69 70
70 00 29 2f 00 0a 31 30 2e 31 30 2e 31 2e 32 00 29 30
00 04 00 00 13 c4 29 33 00 01 01 29 16 00 01 01 29 59
00 58 22 4a 6f 68 6e 20 44 6f 65 22 20 3c 73 69 70 3a
6a 64 6f 65 40 66 6f 6f 2e 63 6f 6d 3e 3b 70 61 72 74
79 3d 63 61 6c 6c 69 6e 67 3b 69 64 2d 74 79 70 65 3d
73 75 62 73 63 72 69 62 65 72 3b 70 72 69 76 61 63 79
3d 66 75 6c 6c 3b 73 63 72 65 65 6e 3d 79 65 73 20 00
29 5a 00 05 66 75 6c 6c 00]
An example for write access:
H->X
[01 2e 00 2c 00 00 01 00 01 0d 03 00 00 00 02 03 00 1e
00 0f 00 02 01 16 00 02 00 00 01 1a 00 03 00 00 00 03
00 33 01 08 00 10 27 7e 00 03 08 00 00 29 19 00 06 32
32 32 32 32 00 29 1b 00 0c 31 30 2e 31 30 2e 31 2e 32
35 32 00 29 1c 00 04 00 00 13 c4 29 23 00 06 31 31 31
31 31 00 29 25 00 0c 31 30 2e 31 30 2e 31 2e 32 35 30
00 29 26 00 04 00 00 13 c4 27 92 00 04 0a 0a 01 bf 27
93 00 04 00 00 10 7c 29 17 00 01 01 29 5a 00 2e 70 72
69 76 61 63 79 3d 66 75 6c 6c 3b 70 61 72 74 79 3d 63
61 6c 6c 69 6e 67 3b 69 64 2d 74 79 70 65 3d 73 75 62
73 63 72 69 62 65 72 00 29 59 00 0c 61 62 63 40 78 79
7a 2e 63 6f 6d 00 29 5a 00 1e 70 61 72 74 79 3d 63 61
6c 6c 69 6e 67 3b 72 70 69 2d 70 72 69 76 61 63 79 3d
6f 66 66 00 29 59 00 0c 62 61 63 40 78 79 7a 2e 63 6f
6d 00 29 5a 00 1e 70 61 72 74 79 3d 63 61 6c 6c 69 6e
67 3b 72 70 69 2d 70 72 69 76 61 63 79 3d 75 72 69 00
29 59 00 0c 62 63 61 40 78 79 7a 2e 63 6f 6d 00]
Trace
1 -SENT To 10.10.1.252:5060 at 256
INVITE sip:22222@10.10.1.252:5060 SIP/2.0
Via: SIP/2.0/UDP 10.10.1.250
To: 22222<sip:22222@10.10.1.252:5060>
From: 11111<sip:11111@10.10.1.250:5060>;tag=19276987100
Call-ID: EXCEL-CSP1.787.256.550@10.10.1.250
Contact: 11111<sip:11111@10.10.1.250:5060>
User-Agent: Excel_CSP/83.10.62
Supported: timer
Session-Expires: 1800
Min-SE: 300
CSeq: 1 INVITE
RPID-Privacy: privacy=full;party=calling;id-type=subscriber
RPID-Privacy: party=calling;rpi-privacy=off
RPID-Privacy: party=calling;rpi-privacy=uri
Remote-Party-ID: abc@xyz.com
Remote-Party-ID: bac@xyz.com
Remote-Party-ID: bca@xyz.com
Content-Type: application/sdp
Content-Length: 100
v=0
o=sip 0 0 IN IP4 10.10.1.250
s=SIP_Call
c=IN IP4 10.10.1.191
t=0 0
m=audio 4220 RTP/AVP 0
To provide SIP Remote Party ID for outbound calls, the CSP SIP stack allows the host to insert Remote-Party-ID and RPID-Privacy headers within the SIP INVITE message.
Configuring with CSA
Refer to Configuring SIP in the Converged Services Administrator User’s Guide to configure with SwitchKit CSA.
TLV Modifications
The following TLVs have been modified to support this feature. The change bars indicate the modifications.
0x2959 SIP Remote Party ID
Used in:
Request for Service with Data (0x002D)
PPL Event Indication (0x0043)
PPL Event Request (0x0044)
Route Control (0x00E8)
Outseize Control (0x002C)
Byte |
Description |
0, 1 |
Tag 0x2959 |
2, 3 |
Length Variable (Maximum of 250 bytes when used in Outseize or Route Control or subsequent PPL Event Request messages) |
4-n |
Value Contains the value of the Remote Party ID header |
0x295A SIP RPID Privacy
Used in:
Request for Service with Data (0x002D)
PPL Event Indication (0x0043)
PPL Event Request (0x0044)
Route Control (0x00E8)
Outseize Control (0x002C)
Byte |
Description |
0, 1 |
Tag 0x295A |
2, 3 |
Length Variable (Maximum of 250 bytes when used in Outseize or Route Control or subsequent PPL Event Request messages) |
4-n |
Value Contains the value of the RPID Privacy header as |