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

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)

Configuring

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

Internet Protocol. Part of the TCP/IP family of protocols used to route messages and tracks the addresses of nodes.
The point in the Excel platform where a DS0 connects to a network. Also known as a "socket."
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.
Tag-Length-Value block. A standardized block that allows data to inserted in a standard way into API messages.
See Request For Service.
American Standard Code for Information Interchange
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.
See Programmable Protocol Language.
See Information Control Block.
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.
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).
Real-Time Transport Protocol. Supports transport of real-time data like interactive voice and video over packet-switched networks.
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.
Positive acknowledgment to a message