Toolpack:Profile SDP Description
Contents |
Toolpack: Profile SDP Description
You can specify the Profile SDP Description to define which codecs are supported in the NAP using this Profile.
Here is the default Profile SDP Description.
- m=audio 0 RTP/AVP 0 8 4 96 97 18 98 13
- a=rtpmap:96 iLBC/8000
- a=rtpmap:97 iLBC/8000
- a=fmtp:97 mode=20
- a=rtpmap:98 telephone-event/8000
Each line of the Profile SDP Description consists of text of the form <type>=<value>. <type> is always exactly one character and is case-significant. <value> is a structured text string whose format depends on <type>. It also will be case-significant unless a specific field defines otherwise. Whitespace is not permitted either side of the `=' sign. In general <value> is either a number of fields delimited by a single space character or a free format string.
In our Profile SDP Description, only 2 <type> are used.
Media Announcement
The format of media announcement is as follows.
- m=<media> <port> <transport> <fmt list>
- The first sub-field is the media type. Currently defined media for TMedia is "audio".
- The second sub-field is the transport port to which the media stream will be sent. In Toolpack, it is not specified in Profile SDP Description and therefore you should specify "0".
- The third sub-field is the transport protocol. For most of the application, you may specify it as "RTP/AVP" - the IETF's Realtime Transport Protocol using the Audio/Video profile carried over UDP.
- The fourth and subsequent sub-fields are media formats. For audio and video, these will normally be media payload types as defined in the RTP Audio/Video Profile. When a list of payload formats is given, this implies that all of these formats may be used in the session, but the first of these formats is the default format for the session. When the transport protocol is specified as "RTP/AVP", the payload format can be specified as either
- the payload type number for static payload types
- the payload type number along with additional encoding information for dynamically allocated payload types.
Here are a few examples of the payload type numbers.
PT | encoding name |
---|---|
0 | PCMU |
4 | G.723 |
8 | PCMA |
13 | Comfort Noise |
18 | G.729 |
96-127 | Dynamic |
When you use dynamic payload types, you need to specify the additional encoding information using the attribute for media announcement.
Attribute for Media Announcement
A media description may have any number of attributes ("a=" fields) which are media specific. The format of attribute is as follows.
- a=<attribute>
- or
- a=<attribute>:<value>
Here are some examples of attributes.
Dynamic payload type
You specify the additional encoding information for dynamic payload type in the following format:
a=rtpmap:<payload type> <encoding name>/<clock rate>[/<encoding parameters>]
For audio streams, <encoding parameters> may specify the number of audio channels. This parameter may be omitted if the number of channels is one provided no additional parameters are needed.
Other media specific attribute
The use of other media specific attributes depends on the specification of the RTP payload format for the specific media type. Here are some example of attributes.
- a=fmtp:<format> <format specific parameters>
This attribute allows parameters that are specific to a particular format to be conveyed in a way that SDP doesn't have to understand them. The format must be one of the formats specified for the media. Format-specific parameters may be any set of parameters required to be conveyed by SDP and given unchanged to the media tool that will use this format.
- a=ptime:<packet time>
This gives the length of time in milliseconds represented by the media in a packet. This is probably only meaningful for audio data. It should not be necessary to know ptime to decode RTP or vat audio, and it is intended as a recommendation for the encoding/packetisation of audio. It is a media attribute, and is not dependent on charset.
Examples
Here are 2 examples of the attributes found in the default profile SDP description.
- a=rtpmap:97 iLBC/8000
- a=fmtp:97 mode=20
The above defines iLBC codec of 8000/sec sample rate with 20ms frame size.
- a=rtpmap:98 telephone-event/8000
The above defines the dtmf relay using rfc2833.
References
- rfc2327 - SDP: Session Description Protocol
- rfc3551 - RTP Profile for Audio and Video Conferences with Minimal Control
- rfc3952 - Real-time Transport Protocol (RTP) Payload Format for internet Low Bit Rate Codec (iLBC) Speech
- rfc2833 - RTP Payload for DTMF Digits, Telephony Tones and Telephony Signals