110 likes | 134 Views
SIP Call Package. Jonathan Rosenberg dynamicsoft. Three Separate Pieces. Call Leg State Package Conference Package To-Join/To-Replace. 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
E N D
SIP Call Package Jonathan Rosenberg dynamicsoft
Three Separate Pieces • Call Leg State Package • Conference Package • To-Join/To-Replace
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) Call Leg Package
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
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 Conferencing Package
Whats it useful for? • Initiating side-bars with conference members • RTCP id not sufficient • Web monitor of conference states
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 Join and Replace URL
INVITE and 2xx 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 To-Join and To-Replace INV To-Replace:X 2xx ACK Hands To-Replace URL INV X 200 ACK BYE 200
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 Some Benefits
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 Discussion Points
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 What do we want to do?