SIP Call Package Jonathan Rosenberg dynamicsoft Three Separate
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 • Notifications sent on messages that change state – Provisional/final responses – BYE • Notification data includes – Status of the leg (in terms of response codes) – Optional leg params – Join/Replace URLs (later)
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 • SUBSCRIBE to the “conference URL” • Notifications on – Joins/departures – Floor control changes – Failed dialouts • Notification data includes: – List of users and their status – Replaces URL (later) – Floor control state
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 • 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? • 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-Join and To-Replace • INVITE and 2 xx both contain To-Join and To. Replace 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. . • To-Replace contains a URL, which if used, replaces that call leg INV To-Replace: X 2 xx ACK Hands To-Replace URL INV X 200 BYE 200 ACK
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 To. Replace 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
- Slides: 11