SIP Call Package
Document Sample


SIP Call Package Jonathan Rosenberg dynamicsoft Three Separate Pieces • Call Leg State Package • Conference Package • To-Join/To-Replace Call Leg Package • Allows a user to subscribe to the call leg state of another user – R-URI is user to subscribe to – Get back notifications on all active call legs at that user • Notification data includes – Status of the leg (in terms of response codes) – Optional leg params – Join/Replace URLs (later) • Notifications sent on messages that change state – Provisional/final responses – BYE Whats it useful for? • Single Line Extension – Phones in the group can know whether the calls answered by other phones are still active or not • ACD – Trainer can find out whether trainees are in a call, to join it • Automatic Callback Conferencing Package • Assumes a centralized manager for conferences – 3-way calling (end system) – Dial-in, dial-out • Notification data includes: – List of users and their status – Replaces URL (later) – Floor control state • SUBSCRIBE to the “conference URL” • Notifications on – Joins/departures – Floor control changes – Failed dialouts Whats it useful for? • Initiating side-bars with conference members – RTCP id not sufficient • Web monitor of conference states Join and Replace URL • There is an asymmetry in joining and replacing legs – Join is implicit, based on the URL someone has handed you (or you can construct) – Replace is explicit, based on a header • First idea – Unify join/replaces by using the same mechanism for both – Follow idea that interpretation of URL is conveyed separate from URL, interpreted by server that sent it – URL syntax at discretion of server • To transition from 2-party call to conference – Allocate conference URL – REFER everyone to it – BUT – how do you know second party isn’t ALREADY a conference URL? To-Join and To-Replace • INVITE and 2xx both contain To-Join and ToReplace headers • To-Join contains a URL, which if used, joins to that call leg – At discretion of UA how that’s done – REFER into bridge, local mix.. INV To-Replace:X 2xx ACK Hands To-Replace URL INV X 200 ACK BYE • To-Replace contains a URL, which if used, replaces that call leg 200 Some Benefits • URL can encode arbitrary data of use to server – Timestamps, authorization data, etc. • URL can point to somewhere besides UA – Join URL goes to conference server, which actively pulls user in – Can be directly routable to THAT UA (solves consultation transfer problem) • Solves problem of knowing whether you need to get a conference server or not Discussion Points • Clearly Replace URL is an alternate to replaces header • To-Join makes more sense than To-Replace – You’re not really joining a leg, you’re joining a “conversation space” which is broader than a leg • But you replace a leg – Sending Join requests to a different host makes more sense than replace • URL in To-Join is what you would SUBSCRIBE to for conference package • Main benefit of ToReplace is being able to use a URL that routes to UA What do we want to do? • Seems a key part of call control framework • Completes the picture • Picture of call control is: – Finding out about calls and conferences – Joining, replacing, creating, moving call legs and conferences • We now have all of these pieces • Proposal is to keep Replaces header, drop To-Replace, but consider To-Join
Get documents about "