session description protocol (sdp) session description

41
Session Description Session Description Protocol (SDP) Session Description Protocol next generation (SDPng)

Upload: others

Post on 12-Feb-2022

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Session Description Protocol (SDP) Session Description

Session Description

Session Description Protocol (SDP)Session Description Protocol next generation

(SDPng)

Page 2: Session Description Protocol (SDP) Session Description

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

Page 3: Session Description Protocol (SDP) Session Description

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.

Page 4: Session Description Protocol (SDP) Session Description

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

Page 5: Session Description Protocol (SDP) Session Description

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

Page 6: Session Description Protocol (SDP) Session Description

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

Page 7: Session Description Protocol (SDP) Session Description

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)

Page 8: Session Description Protocol (SDP) Session Description

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)

Page 9: Session Description Protocol (SDP) Session Description

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)

Page 10: Session Description Protocol (SDP) Session Description

SDP, Headers

Time descriptiont= (Time when the session is active)r= (zero or more repetat times) *

Page 11: Session Description Protocol (SDP) Session Description

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)

Page 12: Session Description Protocol (SDP) Session Description

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

Page 13: Session Description Protocol (SDP) Session Description

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)

Page 14: Session Description Protocol (SDP) Session Description

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

Page 15: Session Description Protocol (SDP) Session Description

SDP, email and phone

e=<email address>p=<phone number>

Contact information for person responsible of session, [email protected] (Arto Hamalainen)e=Arto Hamalainen <[email protected]>

Page 16: Session Description Protocol (SDP) Session Description

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)

Page 17: Session Description Protocol (SDP) Session Description

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

Page 18: Session Description Protocol (SDP) Session Description

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

Page 19: Session Description Protocol (SDP) Session Description

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

Page 20: Session Description Protocol (SDP) Session Description

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.

Page 21: Session Description Protocol (SDP) Session Description

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

Page 22: Session Description Protocol (SDP) Session Description

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

Page 23: Session Description Protocol (SDP) Session Description

SDP, media attributes

Whiteboard, transport UDP and orientation landscapem=application 45000 udp wba=orient:landscape

Page 24: Session Description Protocol (SDP) Session Description

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

Page 25: Session Description Protocol (SDP) Session Description

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.

Page 26: Session Description Protocol (SDP) Session Description

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

Page 27: Session Description Protocol (SDP) Session Description

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

Page 28: Session Description Protocol (SDP) Session Description

SDPng requirements

SimplicityExtensibilityFirewall friendlynessAuthentication, Authorization, Media keysText encodingSession vs. Media descriptionsMapping to SDP

Page 29: Session Description Protocol (SDP) Session Description

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

Page 30: Session Description Protocol (SDP) Session Description

SDPng Conceptual outline

DefinitionsPotentional and actual configurationsConstraintsSession attributes

Page 31: Session Description Protocol (SDP) Session Description

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"/>

Page 32: Session Description Protocol (SDP) Session Description

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

Page 33: Session Description Protocol (SDP) Session Description

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>

Page 34: Session Description Protocol (SDP) Session Description

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>

Page 35: Session Description Protocol (SDP) Session Description

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"/>

Page 36: Session Description Protocol (SDP) Session Description

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

Page 37: Session Description Protocol (SDP) Session Description

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>

Page 38: Session Description Protocol (SDP) Session Description

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

Page 39: Session Description Protocol (SDP) Session Description

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="[email protected]" 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>

Page 40: Session Description Protocol (SDP) Session Description

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>

Page 41: Session Description Protocol (SDP) Session Description

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)