BLISS Problem Statement and Motivation


Published on

Presentation by Jonathan Rosenberg at the IETF 68 meeting in Prague in March 2007 about the need for the creation of the BLISS (Basic Level of Interoperability for SIP Services) - Original presentation located here:

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

BLISS Problem Statement and Motivation

  1. 1. @ IETF 68
  2. 2. Note Well <ul><li>Any submission to the IETF intended by the Contributor for publication as all or part of an IETF Internet-Draft or RFC and any statement made within the context of an IETF activity is considered an &quot;IETF Contribution&quot;. Such statements include oral statements in IETF sessions, as well as written and electronic communications made at any time or place, which are addressed to: </li></ul><ul><li>the IETF plenary session, </li></ul><ul><li>any IETF working group or portion thereof, </li></ul><ul><li>the IESG, or any member thereof on behalf of the IESG, </li></ul><ul><li>the IAB or any member thereof on behalf of the IAB, </li></ul><ul><li>any IETF mailing list, including the IETF list itself, any working group or design team list, or any other list functioning under IETF auspices, </li></ul><ul><li>the RFC Editor or the Internet-Drafts function </li></ul><ul><li>All IETF Contributions are subject to the rules of RFC 3978 (updated by RFC 4878) and RFC 3979. Statements made outside of an IETF session, mailing list or other function, that are clearly not intended to be input to an IETF activity, group or function, are not IETF Contributions in the context of this notice. </li></ul><ul><li>Please consult RFC 3978 (updated by RFC 4878) for details. </li></ul>
  3. 3. Administrative <ul><li>Volunteers for Note Takers? </li></ul><ul><li>Jabber Scribe Volunteer? </li></ul><ul><li>Please disable ad-hoc wireless </li></ul><ul><li>For more information on BLISS: </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul>
  4. 4. Agenda <ul><li>Agenda Bashing [5m] – Chairs </li></ul><ul><li>Problem Statement and Motivation [30m] – Rosenberg </li></ul><ul><li>Charter Review [45m] – Schubert </li></ul><ul><li>Shared Line [30m] - Johnston </li></ul>
  5. 5. BLISS Problem Statement and Motivation Jonathan Rosenberg Cisco
  6. 6. What is the Problem? <ul><li>Interoperability for more advanced ‘call’ features is fairly poor today </li></ul><ul><ul><li>Shared Line Appearances </li></ul></ul><ul><ul><li>Do-Not-Disturb </li></ul></ul><ul><ul><li>Call Park, Pickup, Retrieve </li></ul></ul><ul><ul><li>More complex transfer cases </li></ul></ul><ul><ul><li>Divert to voicemail </li></ul></ul><ul><ul><li>Call completion to Busy Subscriber </li></ul></ul><ul><ul><li>Etc. </li></ul></ul>
  7. 7. Why? <ul><li>Purposeful </li></ul><ul><ul><li>Traditional PBXs require phones to be made by same vendor of PBX </li></ul></ul><ul><ul><li>Translated into similar behavior for IP PBX vendors </li></ul></ul><ul><li>Poor Implementations </li></ul><ul><ul><li>Bugs </li></ul></ul><ul><ul><li>Incomplete Specs </li></ul></ul><ul><li>SIP does too much and not enough </li></ul><ul><ul><li>Too many ways to implement a feature </li></ul></ul><ul><ul><ul><li>Different approach selected by UA than servers </li></ul></ul></ul><ul><ul><ul><li>Different approach selected by different UAs </li></ul></ul></ul><ul><ul><li>Specific capabilities are missing </li></ul></ul><ul><ul><ul><li>Line indications in SLA </li></ul></ul></ul>
  8. 8. The “Too Many Choices” Variations <ul><li>Processing of the feature could occur in UA or in the network </li></ul><ul><ul><li>UA vendor assumed it was in the UA and network vendor assumed in network </li></ul></ul><ul><ul><li>UA vendor assumed it was in the network and network vendor in the UA </li></ul></ul><ul><li>Feature provided in network and invoked by the UA </li></ul><ul><ul><li>Through a new SIP method </li></ul></ul><ul><ul><li>Through a header </li></ul></ul><ul><ul><li>Through an INFO or REFER body </li></ul></ul><ul><ul><li>Through XCAP or HTTP </li></ul></ul>
  9. 9. Example: Call Park <ul><li>Park allows a user to place a call on hold, ‘store’ it somewhere, go to another phone, and request to ‘retrieve’ it so that call continues on new phone </li></ul><ul><li>Dialog moves from </li></ul><ul><ul><li>Caller to UA 1 </li></ul></ul><ul><ul><li>Caller to park function </li></ul></ul><ul><ul><li>Caller to UA 2 </li></ul></ul><ul><li>Lets consider just the initial park request </li></ul>Park Server UA 1 Caller UA 2 1 2 3
  10. 10. Approach 1: REFER to Caller <ul><li>UA 1 sends REFER to caller (message 1) </li></ul><ul><ul><li>Refer-To URI resides on park server </li></ul></ul><ul><li>Caller automatically follows REFER and sends INVITE to park server (message 2) which plays MoH </li></ul>Park Server UA 1 Caller UA 2 1 2
  11. 11. Approach 2: REFER to Park Server <ul><li>UA 1 sends REFER to its park server (message 1) </li></ul><ul><li>Refer-To URI is GRUU of caller, contains embedded Replaces </li></ul><ul><li>Park server sends INVITE with Replaces to Caller (message 2) </li></ul>Park Server UA 1 Caller UA 2 1 2
  12. 12. Approach 3: KPML App <ul><li>Caller sends call through “park server” which is a proxy (msg 1) </li></ul><ul><li>Park server delivers INVITE to UA 1 (msg 2) </li></ul><ul><li>Park server uses KPML and subscribes to DTMF events at UA 1 (msg 3) </li></ul><ul><li>User enters digit sequence for park, reported to park server in NOTIFY (msg 4) </li></ul><ul><li>Park server performs REFER (not shown) </li></ul>Park Server UA 1 Caller UA 2 1 2 3 4
  13. 13. The Mix-N-Match Problem <ul><li>All three approaches are </li></ul><ul><ul><li>known to exist </li></ul></ul><ul><ul><li>use IETF specs in a reasonably compliant way (approach 3 is questionable from a SIP philosophy perspective…) </li></ul></ul><ul><li>What happens if each of the components implements a different approach? </li></ul>
  14. 14. Mix 1 <ul><li>Mix 1: </li></ul><ul><ul><li>UA 1 uses REFER to caller (approach 1) </li></ul></ul><ul><ul><li>Caller uses REFER to park (approach 2) </li></ul></ul><ul><ul><li>Doesn’t even matter what park server does </li></ul></ul><ul><li>UA 1 sends REFER to caller </li></ul><ul><ul><li>Caller doesn’t need to support receipt of REFER in approach 2, so it fails REFER </li></ul></ul><ul><ul><li>OR – caller supports REFER but just for transfer, so it informs the user the call is being transferred </li></ul></ul><ul><ul><ul><li>UI failure – the ‘unknown semantic’ for authorization and display </li></ul></ul></ul>Park Server UA 1 Caller UA 2 1
  15. 15. Mix 2 <ul><li>Mix 2: </li></ul><ul><ul><li>Caller is supporting approach 1 (REFER to caller) </li></ul></ul><ul><ul><li>UA 1 is supporting approach 2 (REFER to park server) </li></ul></ul><ul><ul><li>Park server is supporting approach 3 (KPML) </li></ul></ul><ul><li>Subscribe (message 3) gets rejected by UA 1 since it doesn’t support KPML </li></ul><ul><li>UA 1 tries to REFER to park server on its own, but this is rejected by park server since it wasn’t expecting to receive REFER </li></ul>Park Server UA 1 Caller 1 2 3 4
  16. 16. How do we fix this? <ul><li>Need to define a set of minimum implementation requirements on each component of the system </li></ul><ul><ul><li>What UA vendors need to provide </li></ul></ul><ul><ul><li>What server vendors need to provide </li></ul></ul><ul><li>This guarantees that there is sufficient capabilities to support at least one approach </li></ul><ul><li>Need to define required capability declarations and queries so that implementations can detect when other approaches work too </li></ul>
  17. 17. Example: Park <ul><li>All phones MUST support </li></ul><ul><ul><li>Receipt of REFER </li></ul></ul><ul><ul><li>The REFER feature tags (RFC 4508) mechanism </li></ul></ul><ul><ul><li>A specific feature tag which somehow identifies that this is a park (for UI and authorization) </li></ul></ul><ul><ul><li>Generation of REFER to remote party towards park server </li></ul></ul><ul><ul><li>Obtain park URI through config package </li></ul></ul><ul><li>All phones must indicate </li></ul><ul><ul><li>In REGISTER, if they do KPML this must be signaled with a media feature tag </li></ul></ul><ul><li>This would ensure that at least one case (approach 1) works for any combination of phones </li></ul><ul><li>Allows park server to know if phone can do something different </li></ul>
  18. 18. Challenge 1: Vendor Variation <ul><li>Need to still enable vendor variation in how a feature works </li></ul><ul><ul><li>MUST allow multiple vendors to do their own thing when they are the only components in the network </li></ul></ul><ul><ul><li>MUST detect when a vendor preferred technique cannot work since one component doesn’t support </li></ul></ul><ul><ul><li>MUST make sure all components are sufficiently agreed what to do in each particular case </li></ul></ul><ul><li>We don’t want to kill the innovation in SIP by MANDATING one and only one way to ever do this </li></ul><ul><ul><li>We specify only MINIMUM INTEROPERABILITY REQUIREMENTS to ensure at least one way works </li></ul></ul>
  19. 19. Challenge 2: Feature Variation <ul><li>SIP’s strength has been to allow many variations on a feature with a common set of tools </li></ul><ul><li>We do not want to kill innovation by defining exactly what each service is and exactly how it works </li></ul><ul><li>Want to identify the </li></ul><ul><ul><li>Minimum requirements that EVERY combination of implementations should support </li></ul></ul><ul><ul><li>Purposefully exclude ones that are advanced and we are not trying to make those work in every single deployment </li></ul></ul><ul><li>Specifically look for places where vendor variation can occur without interoperability loss </li></ul>
  20. 20. Example: DND Treatment <ul><li>Do-Not-Disturb is largely non-interoperable since there are many ways to signal it from the phone to the server </li></ul><ul><ul><li>Set a presence status </li></ul></ul><ul><ul><li>XCAP </li></ul></ul><ul><ul><li>Automatically reject calls with some 6xx or 4xx code </li></ul></ul><ul><li>Many possible treatments of a call that is DND </li></ul><ul><ul><li>Send to voicemail </li></ul></ul><ul><ul><li>Custom IVR </li></ul></ul><ul><ul><li>Redirect to email </li></ul></ul><ul><li>Phone to server interoperability not dependent on selection of treatment, only on signaling it on/off </li></ul><ul><li>So: don’t standardize what a server does on DND, just how to signal it, allowing for local innovations </li></ul>
  21. 21. How do we do this? <ul><li>Pick a feature at a time </li></ul><ul><li>For each feature </li></ul><ul><ul><li>Identify a MINIMUM set of requirements that define the behavior we want to standardize </li></ul></ul><ul><ul><li>Document the many ways it can be implemented and how they don’t interop </li></ul></ul><ul><ul><li>Document missing requirements from SIP for specific feature requirements </li></ul></ul><ul><ul><li>Recommend a minimum set of specifications to support and behaviors to exhibit for each component of the system </li></ul></ul><ul><li>Output is typically a BCP </li></ul><ul><li>Individual mechanism documents for new SIP functions passed to SIP </li></ul>
  22. 22. What is a ‘component’? <ul><li>Do we need to explicitly recognize phones, IP PBXs, Application Servers, etc. in our specifications? </li></ul><ul><li>We do not! </li></ul><ul><ul><li>Refer to generic components like UA and ‘servers’ </li></ul></ul><ul><ul><li>Servers would be a role, that can be filled by one or more components that would come from the same vendor </li></ul></ul><ul><ul><ul><li>IP PBX + App Server </li></ul></ul></ul><ul><ul><ul><li>B2BUA + Park Function </li></ul></ul></ul>
  23. 23. Design Constraints <ul><li>Should consider PSTN endpoints as participants and PSTN interworking as a consideration, but this is not about replication of PSTN services </li></ul><ul><li>As with all SIP, it needs to work with multimedia </li></ul><ul><li>Heterogeneous endpoints </li></ul>
  24. 24. Proposed Deliverables <ul><li>Shared Line Appearance </li></ul><ul><li>Do-Not-Disturb </li></ul><ul><li>Call Park and Retrieve </li></ul><ul><li>Call Completion Busy Subscriber </li></ul>
  25. 25. Questions?