280 likes | 396 Vues
This document explores the intricacies of SIP conferencing, detailing essential conference models, functions, and control mechanisms needed for effective communication. Topics include the creation and management of conferences, member control, media manipulation, and signaling. The focus is on centralized signaling combined with distributed media mixing, allowing for flexible participation through dial-in and dial-out options. The document also covers user roles, privacy concerns, and conference events management, providing insights into the critical components that facilitate collaborative online meetings.
E N D
SIP Conferencing Henning Schulzrinne SIP conferencing
Outline • Conference models • Conference functions needed: • create conferences • add and delete members • floor control • media control (freeze frame, update, camera control, ...) SIP conferencing
Conference Control • Focus on media-independent control • Conference models: • centrally-signaled = single conference URI • "focus" of conference • media mixer associated with conference server • central signaling + distributed mixing • third-party call control for multicast or multi-unicast • dial-in or dial-out • distributed signaling • anybody can invite new members • multicast data or • full mesh • Core property: single media “choke point” SIP conferencing
End system mixing INVITE B B • classical three-way calling • transparent to B, C • RTCP indicates parties (SDES) • departure of participant partition • users can join GUI issue A+C A RTP mixer A+B C SIP conferencing
Multicast conference C A • INVITE contains multicast group • pair-wise signaling relationships • no BYE is needed multicast group SIP conferencing
Dial-in conference B+C RTP mixer • Conferences identified by SIP URI • ad-hoc (new URI) and pre-arranged INVITE conf42 A B A conf42@example.com REFER D Refer-To: conf42 C D SIP conferencing
Dial-out conference B+C RTP mixer • Similar to dial-in conference A B INVITE A From: conf42 REFER conf42 Refer-To: D conf42@example.com A C D SIP conferencing
Centralized signaling, distributed media • uses third-party call control • can use multicast for media conf42 A A D D A D C B D D SIP conferencing
INV D 200 hold INV 3held 200 3recv INV +D1 200 +C3 INV +D2 Centralized signaling, distributed media A B C D E 200 +B3 INV +D3 200 +A3 INV A3,B3,C3 200 SIP conferencing
Full mesh B A • No central server • Need SIP extensions to convey membership view • Can work even if some members leave A C D E SIP conferencing
Scaling SIP conferencing
Properties SIP conferencing
Non-SIP open issues • device control for remote devices (cameras) • freeze frame SDP (like hold) • intraframe request RTCP? • SDPng for description • channel description • better capabilities SIP conferencing
Taxonomy of conference control functions • Needed throughout conference life cycle • Create new conference • properties: duration, media, user limit, ... • mass-invitation • but: is this needed beyond the current ad-hoc conference creation? • Invite users REFER • Admit users • similar to presence subscriber problem? • proactive policy (“don’t admit *.fbi.gov”) CPL? • individual decisions: “Alice wants to join” • Eject users (less important?) SIP conferencing
More requirements • Anonymity? • request that presence not be announced • requires trust in conference server • Get participant list • Notification of members joining and leaving • sidebars – listen to main conference in background SIP conferencing
Functions • Not every conference needs all functions • Web interface can be done, but hard to script • Don’t assume single person has multiple roles • bouncer (sergeant-at-arms) vs. moderator • Need to deal with moderator failure • distributed leader election problem is hard • may want to punt • Provide mechanisms, avoid guessing at policy • “only admit Joe if fewer than 4 participants and if 65% of participants agree” SIP conferencing
Conference events • SUBSCRIBE to conference, get NOTIFY'd • incremental or full state • user state: active, departed, booted, failed (dial-out) • dialog state • for each user, media status: media stream • sending: received-by-all, muted • receiving: receiving-all, anchor-only <conference-info version="0" state="full" entity="conf233@example.com"> <user uri="sip:jdrosen@dynamicsoft.com" display-name="Jonathan Rosenberg"> <status>active</status> <media-status> <media-stream media-type="audio"/> </media-status> </user> <user uri="sip:hgs@cs.columbia.edu" display-name="Henning Schulzrinne"> <status>active</status> </user> </conference-info> SIP conferencing
Floor control • General: management of shared resources • audio channel (right to talk; typically, one) • video (limited by bandwidth, screen) • pointer and input focus for whiteboard and shared applications (one, but also multiple pointers) • = safe and mutually exclusive input access to shared resource SIP conferencing
Floor control • Managed by • automated queuing • policy can be messy (“priority to speakers that have talked for less than 5 minutes”) • suggestion: punt on policy • one or more moderators • control at signaling level • mute participants • cooperative users • may also control media resources (mixer) SIP conferencing
Floor control requirements • Determine floor controlled sessions • floor may encompass more than one media session • restrict creation of floor • create and destroy floors dynamically • moderator-controlled policy • also automated policies (FCFS, random, least time held, ...) • multiple moderators • participants can claim and release floor • parameters such as time limits SIP conferencing
Floor control proposal • SDP for indication a=type:moderated a=group:FL 1 2 4 a=group:FL 3 5 m=audio 10000 RTP/AVP 0 a=mid:1 m=video 20000 RTP/AVP 31 a=mid:2 m=application 30000 udp wb a=mid:3 m=control 80 HTTP SOAP a=mid:4 m=control 5060 SIP SOAP a=mid:5 • SOAP for requests • SIP events for notification • floorCreated, floorRemoved, configChanged, floorChanged, queueChanged • Uploaded policy document for policy decisions and configuration SIP conferencing
Floor control operations SIP conferencing
Floor control requirements • Create a managed resource • zero, one or multiple media • Remove managed resource • Change resource configuration • moderator, users, concurrency • Request resource • Grant resource • Revoke resource • including pending requests • Release resource • Reorder resource claims SIP conferencing
Commonalities across functionalities • Functions are largely orthogonal • But share communication needs: • asynchronous events • “Bob joined conference” (sip-call-package) • “Carol has released floor” • “David has requested floor” • commands to conference • avoid commands directly to participants SIP conferencing
Suggested implementations • Floor and conference control commands SOAP • Events (floor control, join) SIP events • Merging and splitting conferences REFER SIP conferencing
Questions • How hostile is the conference? • If participants basically trust each other, moderator failure is much easier to deal with • Define trusted subgroup? • Panel discussion model: panel vs. mob audience • Scaling requirements? • Primarily notifications are issue • Centralized conference model imposes some limitations, but can still be hundreds • REFER can provide some functionality (invite, eject) SIP conferencing
Current Conferencing Internet Drafts • Conference models • draft-ietf-sipping-conferencing-models-01 • Event package • draft-ietf-sipping-conference-package-00 • Floor control • draft-wu-sipping-floor-control-01 • Requirements • draft-khartabil-sip-conferencing-00 • draft-koskelainen-sipping-conf-requirements-00 • draft-levin-sipping-conferencing-requirements-01 SIP conferencing
Summary • Conference control probably misnomer • Keep media stream control separate – may be needed for unicast just as much • Divide into components, possibly prioritize: • conference creation and deletion • user admission • resource management SIP conferencing