Did you know?This SDK was used to build:
Ozeki Phone System XE - VoIP PBX Software for Developers Which is a high performance PBX system supporting Mobile and Desktop phones.
It was also used to create Ozeki 3D VoIP softphone. A cool SIP client that allows 3D Video calls.
Session Description Protocol (SDP)
The Session Description Protocol (SDP) conveys information on media streams in multimedia sessions in order to allow recipients of a session description to participate in the session. It is mainly used in inter-network but it can also describe conferences in other network environments.
Multimedia sessions are defined as a set of media streams existing only for some duration of time. They can be various while the time duration (when the session is active) does not need to be continuous. SDP has two main purposes: Once it is a mean to communicate if the session exists, and it also conveys information for allowing participation in the session.
Terminology for SDP
|Conference:||It is related to two or more users who are communicating along with a software|
|Session:||It includes the multimedia sender and receiver, and the streaming media|
|Session Announcement:||It is a mechanism that makes session description be conveyed to users in a proactive way|
|Session Advertisement:||It is similar to Session Announcement|
|Session Description:||It is a clear format that conveys adequate information in order to make participation possible in a multimedia session.|
- Name and purpose of the session
- Time(s) when the session is active
- The media included in the session
- Information in order to receive those media
Some further information can also be included if necessary resources for the participation are limited:
- Information about the bandwidth to be used by the conference
- Contact information for the person responsible for the session
Moreover, SDP is applied for negotiating between endpoints of media type, format, and all associated properties. It can be extended to be able to support new media types and formats.
SDP includes the media type (video, audio, etc), the transport protocol (RTP/UDP/IP, etc), and media format (video, MPEG video, etc). In case of IP multicast session the follows are also conveyed: multicast address (destination address of the multicast stream) and transport port (destination port of the multicast stream) for media. For IP unicast sessions remote address for the media and transport port for contact address are also conveyed. They depend on the media and transport protocol defined.
Sessions can be bounded or unbounded in time and can be active only at specific times. In this way SDP can include the start and stop times that bound the session and for each bound, SDP can convey repeat times. This information is globally consistent.
With SDP you can create public sessions and private sessions, as well. Private sessions can be created by encrypting the session description. The method of encryption depends on the mechanism that is used for conveying SDP. These private sessions can be used for conveying encryption keys required to decode the media in a conference.
Further Information about a Session
Further information about sessions can be gained from session descriptions. This information then allows to decide if the participation in a session is required or not. SDP can contain further pointers in Universal Resources Identifiers (URIs).
SDP supports a categorization mechanism for sessions that can be automated.
The SDP specification recommends to use ISO 10646 character sets in the UTF-8 encoding therefore many languages are allowed to be represented. SDP can also allow other character sets such as ISO 8859-1 to be used when desired.
Figure 1 - Example SDP communication
A series of attribute/value pairs describes a session in a way that there is one per line. Values can be ASCII string or sequences of types separated by spaces. Optional fields has an "*".
v= (protocol version)
o= (owner/creator and session identifier)
s= (session name)
i=* (session information)
u=* (URI of description)
e=* (email address)
p=* (phone number)
c=* (connection information - not required if included in all media)
b=* (bandwidth information)
z=* (time zone adjustments)
k=* (encryption key)
a=* (zero or more session attribute lines)
Zero or more media descriptions
t= (time the session is active)
r=* (zero or more repeat times)
m= (media name and transport address)
i=* (media title)
c=* (connection information - optional if included at session-level)
b=* (bandwidth information)
k=* (encryption key)
a=* (zero or more media attribute lines)
An example SDP description is (Figure 1):
c=IN IP4 220.127.116.11
m=video 51372 RTP/SAVP 31
c=IN IP4 18.104.22.168
m=video 51761 RTP/SAVP 31
Cookies are enabled You are browsing the optimized version of this website. For more information read this website.