How to Interpret the SMPTE2110 SDP File Generated by EHX

The SDP file is an important part of setting up AES67 third party audio connections to Clear-Com matrix itnercoms. The following document explains in detail what each line of this file actually means.

 

Interpreting the SDP File

Here is a typical example of an SDP generated by an E-IPA card:

 v=0

o=- 202340601472 0 IN IP4 192.168.2.150

s=AESH2Tx

c=IN IP4 239.1.4.1/64

t=0 0

m=audio 5004 RTP/AVP 98

i=channel_0,channel_1,channel_2,channel_3

a=clock-domain:PTPv2 0

a=ts-refclk:ptp=IEEE1588-2008:00-0e-98-ff-fe-05-09-1a:0

a=mediaclk:direct=0

a=source-filter: incl IN IP4 239.1.4.1 192.168.2.150

a=rtpmap:98 L24/48000/4

a=framecount:6

a=ptime:0.1250

 

Unpacking this one line at a time per the SMPTE ST2110 spec:

 

v=0

Always 0

 

 

o=- 202340601472 0 IN IP4 192.168.2.150

Origin ("o=")

      o=<username> <sess-id> <sess-version> <nettype> <addrtype>

        <unicast-address>

 

   The "o=" field gives the originator of the session (her username and

   the address of the user's host) plus a session identifier and version

   number.

   <username> is the user's login on the originating host, or it is "-"

      if the originating host does not support the concept of user IDs.

      The <username> MUST NOT contain spaces.

 

202340601472

   <sess-id> is a numeric string such that the tuple of <username>,

      <sess-id>, <nettype>, <addrtype>, and <unicast-address> forms a

      globally unique identifier for the session.  The method of

      <sess-id> allocation is up to the creating tool, but it has been

      suggested that a Network Time Protocol (NTP) format timestamp be

      used to ensure uniqueness.

 

   0

<sess-version> is a version number for this session description.  Its

      usage is up to the creating tool, so long as <sess-version> is

      increased when a modification is made to the session data.  Again,

      it is RECOMMENDED that an NTP format timestamp is used.

 

IN

   <nettype> is a text string giving the type of network.  Initially

      "IN" is defined to have the meaning "Internet", but other values

      MAY be registered in the future.

IP4

   <addrtype> is a text string giving the type of the address that

      follows.  Initially "IP4" and "IP6" are defined, but other values

      MAY be registered in the future.

 

192.168.2.150

   <unicast-address> is the address of the machine from which the

      session was created.  For an address type of IP4, this is either

      the fully qualified domain name of the machine or the dotted-

      decimal representation of the IP version 4 address of the machine.

      For an address type of IP6, this is either the fully qualified

      domain name of the machine or the compressed textual

      representation of the IP version 6 address of the machine.  For

      both IP4 and IP6, the fully qualified domain name is the form that

      SHOULD be given unless this is unavailable, in which case the

      globally unique address MAY be substituted.  A local IP address

      MUST NOT be used in any context where the SDP description might

      leave the scope in which the address is meaningful (for example, a

      local address MUST NOT be included in an application-level

      referral that might leave the scope).

 

 

s=AESH2Tx

s= Session Name – Assigned by user in EHX

 

 

c=IN IP4 239.1.4.1/64

c= Connection information.

IN is Internet

IP4 is the protocol

239.1.4.1 is the multicast destination address

/64 is the TTL ( Time to Live)

 

 

t=0 0

t= Start and stop time of the session.  A value of 0 0 here means the session is permanent. ( No start or stop time is defined)

 

 

m=audio 5004 RTP/AVP 98

m= The media description. 

 

We use audio.  Other possible types are video, text, application or message.

5004 is the destination port to which the media stream is sent

RTP/AVP: denotes RTP used under the RTP Profile for Audio and Video Conferences with Minimal Control running over UDP.

 

Payload type 98 is part of the dynamic protocol range of 96-127.  Dynamic means it is not defined in the RTP spec and must be defined for the session by an attribute line ( a=) which appears lower in the SDP. There are static payload types, such as type 9, which is part of the RTP spec and specifies a G722 codec, 8k clock, 1 channel.  Our use of type 98 is defined below in the attributes section.

 

 

i=channel_0,channel_1,channel_2,channel_3

 

i= session description.  It is human readable information about the session that is not interpreted by the receiver.  It is used to provide some useful information about the session.  Here it is referring to a 4 channel stream.

 

 

 

The remaining lines are media-specific attributes ( in our case the media type is audio) and all start with a=

 

a=clock-domain:PTPv2 0

 

Uses PTP v2, and clock domain 0.  The PTP clock domain can be changed in EHX, for systems where more than 1 clock domain are in use.

 

 

a=ts-refclk:ptp=IEEE1588-2008:00-0e-98-ff-fe-05-09-1a:0

 

This line identifies the ptp clock source as an IEEE1588-2008 clock type, with a GMID ( Grandmaster ID) of 00-0e-98-ff-fe-05-09-1a.  (Note this is the MAC address of the clock with 2 extra bytes of ff-fe inserted in the middle)  The domain is 0.

 

 

a=mediaclk:direct=0

 

The relationship of media clock to RTP clock shall be described for each stream with an a=mediaclk:direct=<offset>   In this case there is 0 offset between the media clock and the RTP clock.

Our equipment always uses 0 offset.

 

 

 

a=source-filter: incl IN IP4 239.1.4.1 192.168.2.150

 

The purpose of a source-filter is to help protect receivers from  traffic sent from illegitimate source addresses.  The syntax here is as follows:

 

a=source-filter: <filter-mode> <filter-spec>

 

The filter mode is either incl (include) or excl(exclude)

The filter spec has 4 sub-components:

 

<nettype> <address-types> <dest-address> <src-list>

 

In our case, the net type is IN (Internet), IP4, the destination is the multicast address 239.1.4.1 and the source address is 192.168.2.150

 

 

a=rtpmap:98 L24/48000/4

 

As discussed above, RTP protocol is dynamic, and must be defined per session.  This line defines it as 24 bit, 48k sample rate, 4 channels.

 

 

 

a=framecount:6

 

The number of audio samples per frame. 

 

 

a=ptime:0.1250

 

Packet time.  EXH can select 125 uSec ( this case) or 1 mSec  ( would be shown as ptime:1)

 

 see ST2110-30 RX stream SDP rule: unique session ID , on possible SDP file errors