Introduction to TLVs

In Call Control, the TLV is used to send data to, and receive data from, the CSP within API messages.

A TLV is an internal data structure consisting of the following elements:

Tag - a label identifying the format of the TLV

Length - the length of the data to follow

Value - the data

Generic TLV Format

The generic format of a TLV is shown below:

Byte

Description

1

Tag (MSB)

2

Tag (LSB)

3

Length (MSB)

4

Length (LSB)

5

Value[0] (Data)

:

:

:

Value[n]

Nested TLVs

The Call Agent feature and the DSP/RTP feature use nested TLVs. The following provides an overview and example of nested TLVs. An API message can contain nested TLVs. These TLVs are nested into the value field of another TLV in order to capture multiple properties of a call within one TLV.

The following applies to these nested TLVs.

The TLV Count fields in the API message accounts for the top level TLVs but not the nested TLVs.

The same TLV can be used multiple times within the same message depending on the context of the nested TLVs.

The Length field in any "parent" TLV counts the bytes in all of its nested TLVs.

Example:

Interworking TLVs

This chapter contains TLVs used for Interworking and are indicated as such. Some of these Interworking TLVs can also be used in Standard environments and that is indicated as well.

Refer to Interworking in the Developer’s Guide: Internet Protocol.

Interworking TLVs are used in the following API messages:

Host to CSP

Outseize Control

Route Control

Inseize Control

Connect with Data

Release Channel with Data

Outpulse Digits

PPL Event Request

CSP to Host

Request for Service with Data

Channel Released with Data

PPL Event Indication

Channel Release Request