Session Level Advances
(SDP – RFC 2327, SAP, SIP – RFC 2543)
Shahab Baqai LUMS
CS 584 / CMPE 584
Multimedia Communications
Spring 2006-07
Multimedia Communications Spring 2006-07 Session Level Advances - - PowerPoint PPT Presentation
CS 584 / CMPE 584 Multimedia Communications Spring 2006-07 Session Level Advances (SDP RFC 2327, SAP, SIP RFC 2543) Shahab Baqai LUMS SDP In the context of a multimedia multicast Internet, a session directory tool is used to:
(SDP – RFC 2327, SAP, SIP – RFC 2543)
CS 584 / CMPE 584
Spring 2006-07
2
– advertise multimedia conferences – communicate the conference addresses – Conference tool-specific information necessary for participation
– Does not incorporate a transport protocol but uses different transport protocols as appropriate including:
SAP (Session Announcement Protocol) Email using MIME extensions www (HTTP – HyperText Transport Protocol)
3
– Two or more communicating users along with the software they are using to communicate
– a set of multimedia senders & receivers and the data streams flowing from the senders to receivers
E.g. a multimedia conference
– a mechanism by which a session description is conveyed to users in a pro-active fashion
i.e. session description is sent without being explicitly requested by users
– a well defined format for conveying sufficient information to users for them to discover and participate in a multimedia session
4
– using Session Announcement Protocol (SAP)
– containing a header & text payload
– described in the SAP draft document
– should not exceed 1 Kbytes in length – Only one session description is allowed per SAP packet
5
– “application/sdp” – The www client or mail reader automatically launches the appropriate application for participation in the session
– do not guarantee that the user is able to receive the session as the scope of the session may be more limited than email reception or www access
6
– Session name & purpose – Time(s) the session is active
Session is defined as a set of multimedia streams that exist for some duration of time
– The media comprised in the stream – Information to receive these media:
Addresses, ports, formats, etc
– Additional information that might be useful such as:
Information about the bandwidth used by the conference Contact information for the person responsible for the conference
7
– An arbitrary list of start & stop times bounding the session active time – For each bound, repeat times are indicated such as “every Tue 6:45”
8
– Type (audio, video, …) – Transport protocol (RTP, UDP, IP, H.320, …) – Format (H.261, MPEG1, G.711, …) – For IP multicast sessions the following is specified:
Destination multicast address for stream Destination transport port of stream
– For IP unicast sessions the following is specified:
Remote address Transport port for contact address Semantics of the address & port depend on the type of media & transport protocol defined. Default is remote port & remote address to send data, and Remote address & local port for receiving data
establish a control channel for the actual media transfer
9
– Encrypt the session description before distributing it – Private session announcements may convey encryption keys for decoding of the different media types that constitute the session including indication of encryption scheme used for each media type
– Allows filtering of session announcements according to user interests
10
– Allows the use of a variety of transport methods & of flexible text-based toolkits
– Allow detection of errors which result in mal-formatting of announcements
11
– No space between the = sign & other fields is allowed – Type field is one character & case significant – Value is a free-format text string or a series of text strings separated by a single space character – The session-level description starts with a “v=“ line & ends at the first media-level section encountered – The media-level description starts with a “m=“ line & ends at the next media level section encountered or at the end of the whole session description
A value at the media -evel overrides that at the equivalent session- level value for the particular media type
12
– The “v=“ line that starts a session description ends the previous one
– An “*” next to an item indicates that it is optional
13
– v= protocol version – o=
– s= session name – i=* session information – u=* URI of description – e=* email address – p=* phone number – c=* connection information – optional 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
14
– t= time the session is active – r=* zero or more repeat times
– m= media name & transport address – i=* media title – c=* connection info – optional if included at session-level – b=* zero or more repeat times – k=* encryption key – a=* zero or more session attribute lines
– SDP parser must ignore any announcement type that they do not recognize
15
– some attributes are specified n the document & have a defined meaning, but others may be added on an application-, media-, or session-specific basis. – session directory must ignore any attribute value it does not understand
– 0x0A is used as end of record – 0x0D is forbidden
16
– v=0 – o=baqai 2890844526 2890842807 IN IPv4 203.128.1.240 – s=SDP Lecture – i=A lecture on SDP – u=http://suraj.lums.edu.pk/~cs584s05/sdp.03.pdf – e=baqai@lums.edu.pk (Shahab Baqai) – c=IN IP4 224.2.17.12/127 – t=2873397496 2873404696 – a=recvonly – m=audio 3456 RTP/AVP 0 – m=video 2232 RTP/AVP 31 – m=whiteboard 32416 udp wb – a=orient.portrait
17
– v: version number – o: originator information
<username> <sessionid> <version> <network type> <address type> <address>
– s: must have one & only one per announcement
<session name>
– i: labeling information, no more than one for session-level, a single I field can also be used for every media-level description
<session description>
– u: URI as used by www clients. No more than one per session description
<URI>
– e: email address of person responsible
<email address>
18
– p: phone number of person responsible for the conference
<phone number>
– c: connection data
<network type> <address type> <connection address>
– b: bandwidth, modifier value is CT (conference total) or AS (application specific maximum) or a experimental modifier (should start with X-)
<modifier>:<bandwidth-value>
– t: start & stop time of conference session
<start time> <stop time>
– r: repeat times of a session
<repeat interval> <active duration> <list of offsets from start time>
– z: list of time zone & daylight saving adjustments
<adjustment time> <offset> <adjustment time> <offset> …
19
– k: encryption keys
<method>:<encryption keys>
– a: attributes
<attribute>:<value>
– m: media announcements
<media> <port> <transport protocol> <media format list>
20
– session addresses (multicast or unicast) – conference-tool specific information
– distribution mechanism – packet format
21
– important for the scalability of the protocol
– scope – number of sessions being announced by other session directory clients – goal: keep total bandwidth below predefined level
22
TTL Bandwidth 1-15 2 kbps 16-63 1 kbps 64-127 1 kbps 128-255 200 bps
23
– Session announcement – Session deletion – Session modification
– Session description (may be encrypted) – Authentication header
24
– Explicit timeout
Session description contains start & end times for each session announcement
– Implicit timeout
SA message should arrive periodically. Period may be predicted by the received from the set of sessions currently being announced Lack of SA message after max(10 intervals, 30 minutes)
– Explicit deletion
Session deletion packet specifying the version of the session to be deleted Same IP source address as that from which the session announcement was
If authentication header is cached, the deletion packet must have a signature with the same key
25
– By announcing modified description – Version hash in SAP header could be changed to indicate packet must be parsed – Session itself is uniquely identified by the SDP origin field in the payload and not by the version hash in the SDP header – Same rules as for session deletion regarding authentication & source address information
If not satisfied, modified announcement is displayed in addition to the preexisting announcement
26
– One well known address & port used for all TTL-scoped announcements
– One well known address (within corresponding scope zone) & port used for each administrative scope zone
27
– Listen to multiple multicast addresses – Normally only need to send a particular announcement to the single multicast address corresponding to the scope of the session being described
– Assumed that each instance of the session directory within a particular scope zone is aware of that scope zone address, port, TTL, & session addresses allocated
28
– E.g. audio TTL = 127, video TTL = 63 – Announce bioth sessions at TTL = 63, only announce audio at TTL = 127 – Up to the receiving station to parse both announcements as same (identified by SDP origin field)
29
– Multicast address to be used for announcement – Highest multicast address in the relevant administrative scope
E.g. range [239.16.32.0. 239.16.33.255] Choose 239.16.33.255
– UDP port – TTL (large enough to reach all sites in administrative domain) – Address range to be used (contiguous range) – Total bandwidth to be used by the session directory
Recommended default = 500 bps
30
– Encrypting announcements – Decrypting announcements
31
– Not tied to a specific conference control scheme – Supports loosely coupled or tightly controlled sessions – Enables user mobility by relaying and redirecting invitations to a user’s current location
32
– Internet telephone calls – Internet multimedia conferences – Internet multimedia distribution
– Multicast – Mesh of unicast “relations” – A combination of the above
33
34
– Requesting client tries to ascertain the address where should it contact the remote user
– Implement request-response protocol – Session description is sent with an invitation to join
– Informational – request received, continuing process – Success – action successfully received, understood, & accepted – Redirection – further action must be taken in order to complete the request – Client error – request contains bad syntax – Server error – server failed to complete an apparently valid request
35
36
– user: username or telephone number – host: domain name or numeric IP address
– sip:baqai@lums.edu.pk:5067 – sip:765-497-9858@gateway
– Check for DNS SRV records – Then check for MX records – Finally, use an A record
37
– End systems – Send SIP requests – Usually contain SIP user agent server (UAS)
Listen for call requests Prompts user or executes program to determine response
– Poxies request to another server – Possibly translates & rewrites request – Can “fork” request to multiple servers, creating a search tree
38
– Redirects user to try another server
user agent may act as redirect server
– Used by SIP redirect or proxy server to obtain information about a user’s possible location(s) – May be co-located with a SIP server but the manner in which a SIP server request location services is beyond the scope of SIP – May be anything
LDAP, whois Local file Result of program execution
39
– A server that accepts REGISTER requests – Typically co-located with a proxy or redirect server – Allows a client to let the proxy or redirect server know at which address(es) it can be reached
40
– Invite
Invites a participant to a conference Conference can be unicast, multicast, new or in existence
– Bye
Ends a client participation in a call
– Cancel
Terminates a search
– Options
Queries a participant about their media capabilities, and finds them, but does not invite
– Ack
Call acceptance Reliability
– Register
Informs a SIP server about the location of a user
41
– 1xx informational
Request received, continuing to process request E.g.: 100 trying, 180 ringing, 181 call is being forwarded, 182 queued
– 2xx success
Action successfully received, understood, & accepted E.g.: 200 OK
– 3xx redirection
Further action must be taken in order to complete the request E.g.: 300 multiple choices, 301 moved permanently, 302 moved temporarily, 305 use proxy
42
– 4xx client error
Request contains bad syntax E.g.: 400 bad request, 401 unauthorized, 402 payment required
– 5xx server error
Server failed to fulfill an apparently valid request E.g.: 500 internal server error, 501 not implemented, 502 bad gateway
– 6xx global failure
The request cannot be fulfilled at any server E.g.: 600 busy everywhere, 604 does not exist anywhere, 606 not acceptable
43
– also – replaces – via
– Typically uses SDP
INVITE sip:baqai@lums.edu.pk SIP/2.0 From: sip:zartash@lums.edu.pk To: baqai@lums.edu.pk Call-ID: 20060321@sheranwala.lums Cseq: 10 INVITE v=0
s=Multimedia Communications i=Presentation Multimedia Comm. e=baqai@multimedia.lums.edu.pk c=IN IP4 224.2.0.1/127 t=0 0 m=audio 3456 RTP:AVP 0
44
– Initiator sends an INVITE request – Invited party answers (agrees) – Initiator receives OK indication – Initiator sends an ACK request
45
46
47
– Client control – Client selection – Multiparty conferencing
– Group invitation – Reach first
– Encryption authentication end-to-end – Uses existing mechanisms
– Stateful to stateless transition at any time – Robust & scalibility – Flexibility
– Several simple mechanisms
48
– Blind – With notification – Operator assisted
49
– Fast operation, supports UDP based transactions – Single RTT needed for call setup, teardown or state change
– Hierarchical feature – DNS based addressing – Multicast signaling – Big servers may be stateless, call state maybe stored in end systems
– Many services possible – Provides basic primitives with well defined behavior