session description protocol (sdp) session description
Post on 12-Feb-2022
11 Views
Preview:
TRANSCRIPT
Session Description
Session Description Protocol (SDP)Session Description Protocol next generation
(SDPng)
SDP, background
On Internet multicast backbone (Mbone), a session directory tool is needed to advertise multicast conferencesSDP was defined to convey that kind of informationSince that the use of SDP has extended to cover also SIP and RTSP session descriptions
SDP, general information
SDP is a RFC defined and examined by IETF MMUSIC working groupRFC is available (RFC 2327) and work continues as draftsSDP is designed just to define information needed to participate a multimedia session –it has no capabilities in session parameters negotiation.
SDP includes...
Session name and purposeTime(s) when the session is activeMedia which comprises the sessionInformation how to receive the mediaContact information for the person responsible for the session
SDP must include...
Enough information about the session to allow possible participants to decide whether or not they participate in this sessionAll the necessary information and guides how to participate into session if desired
SDP, Media information
SDP includes the following info about mediaType of media (audio, video, etc.)Transport protocolFormat of the media (H.261, MPEG, etc.)Multicast address for mediaTransport port for media
SDP, Headers
Some headers are required, some others are just optional Headers must appear exactly in the specified order (compared to SIP, in which the same order of headers is not necessary – only exception is Via-headers, which must come after first line)
SDP, Headersv= (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) * 1)b= (bandwidth information)
SDP, Headers(One or more time descriptions)
z= (time zone adjustments) * k= (encryption keys) *a= (one or more session attribute lines) *
(Zero or more media descriptions)
SDP, Headers
Time descriptiont= (Time when the session is active)r= (zero or more repetat times) *
SDP, Headers
Media descriptionm = (media name and transport address)i= (media title) * c= (connection information) * 1)b= (bandwidth information)k= (encryption key)a= (zero or more media attributes)
SDP, version and origin
v=0Version number, currently v=0
o=<username> <session id> <version> <network type> <address type> <address><username> is user's login<session id> is a numeric string, NTP timestamp for example<version> is a numeric string, increased when modifications take place in session, NTP timestamp recommended<network type> is IN for Internet
SDP, origin (cont.) and session name
<address type> is a text string, currently IP4 and IP6 defined<address> is a globally unique address from originating machineexample: o=athamala 2890844526 2890844526 IN IP4 157.24.25.147
s=<session name>string, there must be exactly one s= field in descriptionexample: s=SDP lecture or s=- (no name)
SDP, session information, URI
i=<session description>0/1 per description, 0/1 per mediai=A Lecture about session description protocoli=An audio stream explaining slides (for media)
u=<URI>optional pointer to additional information about sessionu=http://www.it.lut.fi/opetus/01-02/010675000/sche.html
SDP, email and phone
e=<email address>p=<phone number>
Contact information for person responsible of session, optionalp=+358-50-5427854e=athamala@lut.fi (Arto Hamalainen)e=Arto Hamalainen <athamala@lut.fi>
SDP, connection data
c=<network type> <address type> <connection address>SDP must contain a c= field in session level or c= for each media descriptions<network type> is IN for Internet, <address type> is IP4/IP6 (only values defined currently)<connection address> is a address for data source/sinkc=IN IP4 157.24.25.147 (unicast)c=IN IP4 224.2.1.1/127 (multicast, TTL=127)
SDP, bandwidth, Times
b=<modifier>:<bandwidth-value><modifier> is CT (conference total for all media at all sites) or AS (application specific for single media at single site)<bandwidth-value> is specific bandwidth in kilobytes
t=<start time> <stop time>decimal representation of NTP time valuesif stop time is zero, then session is not bounnded, and if both are zero, session is permanentt=0 0 , t=3034423619 3034423659
SDP, repeat, time zone adjustment
r=<repeat interval> <active duration> <list of offsets from start-time>r=604800 3600 0 90000r=7d 1h 0 25h
z=<adjustment time> <offset> <adjustment time> <offset>...<adjustment time> is a NTP time, when adjustment of <offset> takes place in repeated session<offset> is defined like -3600 / -1h
SDP, encryption keys
k=<method>k=<method>:<encryption key>
k=clear:<e k> , k=base64:<encoded e k>, k=uri:<uri to obtain key>, k=prompt (no key but indicates that session or media is encrypted)Before first media description for the session, after each media description for that particular media
SDP, Media announcements
m=<media> <port> <transport> <format list><media> is media type, currently defined: “audio”, “video”, “application”, “data”, “control”<port> is transport port<transport> is protocol, currently “RTP/AVP” or “udp”<format list> is a list of formats for the media defined in <media> field . For audio and video, should be MIME subtype. For RTP/AVP (audio video profile) the format is profile name for that format.
SDP, attributes
Attributes are primary means to extend SDPSession or media level
a=<attribute> (property attribute)a=<attribute>:<value> (value attribute)
a=recvonly, a=sendrecv , a=lang:fi, a=charset:ISO-8859-15
SDP, media attributesa=rtpmap:<payload type> <encoding name>/
<clockrate>[/<enc param>]For audio, encoding parameter may specify number of channels (/2 for stereo)Example - two media: Linear encoded mono sampled at 8000Hz + Linear encoded stereo audio sampled at 16Khz, dynamic RTP/AVP payload type 97+98, sent to port 49232m=audio 49232 RTP/AVP 96 97a=rtpmap:96 L8/8000a=rtpmap:97 L16/16000/2
SDP, media attributes
Whiteboard, transport UDP and orientation landscapem=application 45000 udp wba=orient:landscape
SDP in SIPSDP carried in SIP message body / payloadCaller lists his/her media capabilities in INVITE or ACK, called party in 200 OK responseSDP was developed for scheduled multicast use -> Many SDP fields have no meaning in SIP session establishment
• session name is usually s=-• time is t=0 0
• media is usually defined using m= field and a=rtpmap: -attribute – RTP/AVP profiles are in use
SDP in SIP
Call holdingOne party can put other party temporary in hold, sending new INVITE with 0.0.0.0 IP address in SDP c= -field – and back active by sending another INVITE with correct IP.
SIP+SDP example
Callers media properties in INVITE or ACKv=0o=UserA 2890844526 2890844526 IN IP4 here.coms=Session SDPc=IN IP4 100.101.102.103t=0 0m=audio 49172 RTP/AVP 0a=rtpmap:0 PCMU/8000
Media properties of a called party in 200 OKv=0o=UserB 2890844527 2890844527 IN IP4 there.coms=Session SDPc=IN IP4 110.111.112.113t=0 0m=audio 3456 RTP/AVP 0a=rtpmap:0 PCMU/8000
SDPng (next generation)SDP was designed to describe multicast sessions, but it is used by SIP and Real time streaming protocol (RTSP) and with Media gateway control protocolThese put new requirements to description, and need for richer session description and capability negotiation raised.SDPng (SDP and capability negotiation or simply SDP next generation) provides reasonable level of functionality within a reasonable level of complexity.XML mechanisms are used to define SDPng definitions and configurations
SDPng requirements
SimplicityExtensibilityFirewall friendlynessAuthentication, Authorization, Media keysText encodingSession vs. Media descriptionsMapping to SDP
SDPng structure
Base specificationoverall structure of SDPng documents
Profile definitionshow to express commonly used parameters (codecs, payload type definitions)
Library definitionsReusable and referable concrete configurations derived from profile definitions
SDPng Conceptual outline
DefinitionsPotentional and actual configurationsConstraintsSession attributes
SDPng Conceptual outline
• Definitions– Basic abstractions which can be referenced to
avoid repetitions.– Can be elementary or compound (refers to other
definitions)– <audio:codec name="audio-L16-mono" encoding="L16" sampling="44100" channels="1"/>
– <audio:codec name="audio-L16-stereo" ref="audio-L16-mono" channels="2"/>
SDPng Conceptual outline
• Potential and Actual Configurations– all the components that constitute the
multimedia application, for example VoIP call– Potential configurations are used in capability
negotiation, actual configurations to configure media after negotiation
– Actual configuration is chosen from number of potential configurations
SDPng configurations example<cfg>
<component name="interactive-audio" media="audio"><alt name="AVP-audio-0">
<rtp:session format="rtp-avp-0"><rtp:udp addr="224.2.0.53" rtp-port="7800"
rtcp-port="7801"/></rtp:session>
</alt><alt name= AVP-audio-11">
<rtp:session format="rtp-avp-11"><rtp:udp addr="224.2.0.53" rtp-port="7800”
rtcp-port="7801"/></rtp:session>
</alt></component>
</cfg>
SDPng Conceptual outline
• Constraints– limit the number of instantions and allow only
certain combinations– for example: limit number of instantions to 5
(audio) and 1 (video) when used together<constraints><par>
<use-alt ref="AVP-audio-11" max="5"><use-alt ref="AVP-video-32" max="1">
</par></constraints>
SDPng Conceptual outline
• Session attributes– attributes defined by SDP, like owner, session
name, …<owner user=”athamala" session-id=”SDP lecture”
version="version” nettype="IN" addrtype="IP4”addr=”157.24.25.147"/>
Syntax definition
SDPng relies on SGML/XML –technologues, which allow creation of Document type Definitions (DTDs) – documents can be formally validated against given DTDNeed for mechanism which allows extensions to be added to basic specification without name collisions. Applications must be able to distinguish extensions from base definitionsUse of XML Namespace and Schema
XML Schema and Namespace<xsd:schema targetNamespace=http://www.iana.org/sdpng
xmlns:sdpng=http://www.iana.org/sdpngxmlns:xsd=http://www.w3.org/2001/XMLSchema... <xsd:element name="desc">
<xsd:complexType mixed="false"><xsd:sequence>
<xsd:element ref="sdpng:def" minOccurs="0"/><xsd:element ref="sdpng:cfg"/><xsd:element ref="sdpng:constraints"
minOccurs="0"/><xsd:element ref="sdpng:conf" minOccurs="0"/>
</xsd:sequence></xsd:complexType>
</xsd:element>...
</xsd:schema>
SDPng external defintions
Profile definitions define rules for specifying parameters outside the SDPng specification, for example RTP profile which defines how to specify RTP parametersLibrary definitions are a set of concrete definitions which conform one or more profile definitions and can be referred by SDPng documents
SDPng for the caller<def><audio:codec name="audio-basic" encoding="PCMU“
sampling="8000" channels="1"/><rtp:pt name="rtp-avp-0" pt="0" format="audio-basic"/>
</def>
<cfg><component name="interactive-audio" media="audio"><alt name="AVP-audio-0">
<rtp:session format="rtp-avp-0"><rtp:udp role="receive" endpoint="A" addr="192.168.1.1“
rtp-port="7800"/></rtp:session>
</alt></component>
</cfg>
<conf><owner user="A@example.com" id="98765432" version="1" nettype="IN“
addrtype="IP4" addr="192.168.1.1"/><session name="SDPng questions"></session>
<info name="interactive-audio" function="voice">Telephony media stream
<info></conf>
SDPng for the called party
<def><audio:codec name="audio-basic" encoding="PCMU“
sampling="8000" channels="1"/><rtp:pt name="rtp-avp-0" pt="0" format="audio-basic"/>
</def>
<cfg><component name="interactive-audio" media="audio"><alt name="AVP-audio-0">
<rtp:session format="rtp-avp-0"><rtp:udp role="receive" endpoint="A" addr="192.168.1.1“
rtp-port="7800"/><rtp:udp role="receive" endpoint="B" addr="192.168.1.2“
rtp-port="9410"/></rtp:session>
</alt></component>
</cfg>
SDPng summary
• Not just a ”more difficult way to express SDP information”
• Extinsibility and way to validate by using XML Schema
• Conceptual outline: Definitions, configurations, constraints and session attributes
• Profiles (how to define for example a codec) and Libraries (concrete definitions derived from profiles)
top related