You are here: CSP Developer’s Guide: Internet Protocol > 5 Session-Initiation Protocol (SIP) Software > Via Heading Reporting
Overview
This feature reports to the host application the IP address and Port Number of the top most Via header field of the inbound SIP sessions.
Pertinent Specification
RFC 2543/3261
Description
The information in the Via header could be of the last gateway or router to handle the call.
• The host application can route the outbound SIP session based on the reported Via headers.
• The Via head is reported for the session-establishing the INVITE. It is not reported for session-modifying INVITEs
(Re-INVITES).
• Only hostnames with length up to 80 bytes are reported. If an INVITE message with hostname length greater than 80 bytes is obtained then the SIP Header Field TLV (0x299C) itself will not be reported. But the other TLVs, SIP Header Field Container and SIP Header Field will be reported.
• If port number is absent or if it is NULL then the SIP Port Number TLV will not be reported.
• If port number is equal to or greater than 2147483647 then it will be reported as 7f ff ff ff.
SIP INVITE RFS with Data
The reporting of the Via header field is within the context of the SIP INVITE and corresponding Request for Service with Data (0x002D) messages to the host application as follows:
• The SIP stack reports the Hostname in the Via header field present in the inbound SIP INVITE message in raw null-terminated ASCII format and the Port Number as a variable.
• The NPDI TLV, SIP Header Field Container (0x299A) is used in the Request for Service with Data message or in the Subsequent Data PPL Event Indication (0x0043) for reporting purposes.
The SIP Header Field Container TLV is used with the NPDI Universal ICB (0x0033).
The NPDI TLV, SIP Header Field ID (0x299B) is used within the Header Field Container TLV and indicates which Header Field is reported - in this case the Via header (0x0034).
Another NPDI TLV, SIP Header Field (0x299C) is also used within the Header Field Container TLV will contain the reported data.
The following two NPDI TLVs are used within the SIP Header Field TLV to report the Via Parameters:
• SIP Host Name 0x295E
• SIP Port Number 0x295F
Example
The following example shows how the TLVs contain the Via header data:
29 9A 00 21
- ID -
29 9B 00 02 00 34
29 9C 00 17
----------------Hostname-------
29 5E 00 0B 31 30 2E 31 30 2E 31 2E 31 34 00
--Port Num--
29 5f 00 04 00 00 13 C4
Process
The Via header is reported as follows:
1. Enable Via header reporting as described in the Configuring section.
2. When the CSP receives a SIP INVITE message, it sends a SIP Header Field Container TLV (0x299A) to the host application in the Request for Service with Data (0x002D) message.
3. If this message exceeds 320 bytes, the TLV goes in subsequent PPL Event Indications.
API Messages Used
• Request for Service with Data (0x002D)
• PPL Event Indication (0x0043)
SIP Stack Configuration
Reporting the Via header field is disabled by default. To enable, set a bit mask during the SIP stack configuration.
The existing SIP Message Information Mask TLV (0x027F) is used in the VoIP Protocol Configure (0x00EE) message. Set bit 10.
Call Flow
The Request for Service with Data (0x002D) message or the PPL Event Indication in the diagram below report the Via Header Field to the host application.
Sample Messages
API Messages
X->H
[00 e0 00 2d 00 0d 11 00 01 0d 03 00 36 0e 00 33 01 03 00 33
00 cc 00 13 27 4e 00 02 00 05 27 7e 00 03 08 00 00 29
19 00 08 54 65 73 74 69 6e 67 00 29 1b 00 0c 31 30 2e
31 30 2e 31 2e 31 33 33 00 29 1c 00 04 00 00 13 c4 29
23 00 06 33 35 37 35 31 00 29 25 00 0b 31 30 2e 31 30
2e 31 2e 31 34 00 29 26 00 04 00 00 13 c5 29 2d 00 06
33 35 37 35 31 00 29 2f 00 0b 31 30 2e 31 30 2e 31 2e
31 34 00 29 30 00 04 00 00 13 c5 29 33 00 01 01 27 18
00 08 02 00 00 00 05 35 75 10 27 94 00 04 0a 0a 01 0e
27 95 00 04 00 00 1f 40 27 b0 00 02 00 02 27 b1 00 02
00 01 29 16 00 01 01 29 9a 00 21 29 9b 00 02 00 22 29
9c 00 17 29 5e 00 0b 31 30 2e 31 30 2e 31 2e 31 34 00
29 5f 00 04 00 00 13 c5]
H->X
[00 0c 00 2d 00 0d 11 00 01 0d 03 00 36 0e]
H->X
[00 0d 00 ba 00 00 11 00 01 0d 03 00 36 0e 01]
X->H
[00 07 00 ba 00 00 11 00 10]
H->X
[00 11 00 08 00 00 11 00 02 0d 03 00 36 0e 0d 03 00 36
0e]
X->H
[00 07 00 08 00 00 11 00 10]
X->H
[00 57 00 69 00 00 11 00 01 0d 03 00 36 0e 02 02 1e 2a 00 05
01 04 00 04 00 00 00 00 01 05 00 04 00 00 00 00 01 11
00 04 00 00 00 00 01 10 00 04 00 00 00 00 01 12 00 04
00 00 00 00 03 00 33 00 18 00 03 27 4e 00 02 00 10 27
92 00 04 0a 0a 01 7c 27 93 00 04 00 00 2a 9c]
H->X
[00 05 00 69 00 00 11]
SIP Messages
14-RECEIVED From 10.10.1.14:5061 at 4014
INVITE sip:Testing@10.10.1.133 SIP/2.0
Via: SIP/2.0/UDP 10.10.1.14:5061;rport;branch=z9hG4bK93EC4CE485054D949195EB8C0F6
9D88A
From: Naina <sip:35751@10.10.1.14:5061>;tag=4130294919
To: <sip:Testing@10.10.1.133>
Contact: <sip:35751@10.10.1.14:5061>
Call-ID: AC811980-1464-41EB-A437-6376C80AEC79@10.10.1.14
CSeq: 57304 INVITE
Max-Forwards: 70
Content-Type: application/sdp
User-Agent: X-Lite release 1103m
Content-Length: 288
v=0
o=35751 5679296 5679312 IN IP4 10.10.1.14
s=X-Lite
c=IN IP4 10.10.1.14
t=0 0
m=audio 8000 RTP/AVP 0 8 3 98 97 101
a=rtpmap:0 pcmu/8000
a=rtpmap:8 pcma/8000
a=rtpmap:3 gsm/8000
a=rtpmap:98 iLBC/8000
a=rtpmap:97 speex/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
15-SENT To 10.10.1.14:5061 at 4014
SIP/2.0 100 Trying
To: <sip:Testing@10.10.1.133>;tag=6716fae
From: Naina <sip:35751@10.10.1.14:5061>;tag=4130294919
Call-ID: AC811980-1464-41EB-A437-6376C80AEC79@10.10.1.14
CSeq: 57304 INVITE
Contact: Testing<sip:Testing@10.10.1.133:5060>
Via: SIP/2.0/UDP 10.10.1.14:5061;rport;branch=z9hG4bK93EC4CE485054D949195EB8C0F6
9D88A
User-Agent: Excel_CSP/83.10.161
Content-Length: 0
16-SENT To 10.10.1.14:5061 at 4015
SIP/2.0 180 Ringing
To: <sip:Testing@10.10.1.133>;tag=6716fae
From: Naina <sip:35751@10.10.1.14:5061>;tag=4130294919
Call-ID: AC811980-1464-41EB-A437-6376C80AEC79@10.10.1.14
CSeq: 57304 INVITE
Contact: Testing<sip:Testing@10.10.1.133:5060>
Via: SIP/2.0/UDP 10.10.1.14:5061;rport;branch=z9hG4bK93EC4CE485054D949195EB8C0F6
9D88A
User-Agent: Excel_CSP/83.10.161
Content-Length: 0
17-SENT To 10.10.1.14:5061 at 4015
SIP/2.0 200 OK
To: <sip:Testing@10.10.1.133>;tag=6716fae
From: Naina <sip:35751@10.10.1.14:5061>;tag=4130294919
Call-ID: AC811980-1464-41EB-A437-6376C80AEC79@10.10.1.14
CSeq: 57304 INVITE
Contact: Testing<sip:Testing@10.10.1.133:5060>
Supported: timer
Session-Expires: 1800; refresher=uas
Via: SIP/2.0/UDP 10.10.1.14:5061;rport;branch=z9hG4bK93EC4CE485054D949195EB8C0F6
9D88A
User-Agent: Excel_CSP/83.10.161
Content-Type: application/sdp
Content-Length: 140
v=0
o=sip 0 0 IN IP4 10.10.1.133
s=SIP_Call
c=IN IP4 10.10.1.124
t=0 0
m=audio 10908 RTP/AVP 0 101
a=rtpmap:101 telephone-event/8000
18-RECEIVED From 10.10.1.14:5061 at 4015
ACK sip:Testing@10.10.1.133:5060 SIP/2.0
Via: SIP/2.0/UDP 10.10.1.14:5061;rport;branch=z9hG4bK85AFB31A086E4612B6C99389623
9CF01
From: Naina <sip:35751@10.10.1.14:5061>;tag=4130294919
To: <sip:Testing@10.10.1.133>;tag=6716fae
Contact: <sip:35751@10.10.1.14:5061>
Call-ID: AC811980-1464-41EB-A437-6376C80AEC79@10.10.1.14
CSeq: 57304 ACK
Max-Forwards: 70
Content-Length: 0
19-RECEIVED From 10.10.1.14:5061 at 4018
20-SENT To 10.10.1.14:5061 at 4021
BYE sip:35751@10.10.1.14:5061 SIP/2.0
Via: SIP/2.0/UDP 10.10.1.133
To: Naina <sip:35751@10.10.1.14:5061>;tag=4130294919
From: <sip:Testing@10.10.1.133>;tag=6716fae
Call-ID: AC811980-1464-41EB-A437-6376C80AEC79@10.10.1.14
CSeq: 57305 BYE
User-Agent: Excel_CSP/83.10.161
Content-Length: 0
21-RECEIVED From 10.10.1.14:5061 at 4021
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 10.10.1.133
From: <sip:Testing@10.10.1.133>;tag=6716fae
To: Naina <sip:35751@10.10.1.14:5061>;tag=4130294919
Contact: <sip:35751@10.10.1.14:5061>
Call-ID: AC811980-1464-41EB-A437-6376C80AEC79@10.10.1.14
CSeq: 57305 BYE
Server: X-Lite release 1103m
Content-Length: 0