One document matched: draft-kaplan-sip-info-events-00.txt



SIP Working Group                                             H. Kaplan 
Internet Draft                                              Acme Packet 
Intended status: Standards Track                            C. Holmberg 
Expires: May 8, 2008                                           Ericsson 
                                                       November 8, 2007 
    
    
                         SIP INFO Event Framework 
                      draft-kaplan-sip-info-events-00 
    
    
Status of this Memo 
    
   By submitting this Internet-Draft, each author represents that any 
   applicable patent or other IPR claims of which he or she is aware 
   have been or will be disclosed, and any of which he or she becomes 
   aware will be disclosed, in accordance with Section 6 of BCP 79.  
    
   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF), its areas, and its working groups. Note that 
   other groups may also distribute working documents as Internet-
   Drafts.  
    
   Internet-Drafts are draft documents valid for a maximum of six 
   months and may be updated, replaced, or obsoleted by other documents 
   at any time. It is inappropriate to use Internet-Drafts as reference 
   material or to cite them other than as "work in progress".  
    
   The list of current Internet-Drafts can be accessed at 
   http://www.ietf.org/1id-abstracts.txt.  
    
   The list of Internet-Draft Shadow Directories can be accessed at 
   http://www.ietf.org/shadow.html 
    
   This Internet-Draft will expire on May 8, 2008.  
    
Copyright Notice 
    
   Copyright (C) The IETF Trust (2007). 
    
Abstract 
    
   This document defines a proposed solution for defining, negotiating 
   and exchanging info-event notifications in INFO messages, within SIP 
   invite-created dialogs, for applications which need to exchange 
   session-related information inside the invite-created dialog.  This 
   draft addresses issues and open items from RFC 2976, and updates it. 



 
 
Kaplan                   Expires May 8, 2007                 [Page 1] 




                      SIP INFO Events Framework         November 2007 
 
 
    
Table of Contents 
    
   1.    Introduction................................................2 
   2.    Terminology.................................................3 
   3.    Applicability...............................................3 
   4.    Overview of Operation.......................................3 
   5.    Event Negotiation...........................................4 
      5.1.   UAC Behavior...........................................4 
      5.2.   UAS Behavior...........................................5 
   6.    INFO Method.................................................6 
   7.    Re-Invites and usages and forks, oh my!.....................7 
   8.    New Headers.................................................7 
   9.    Example Exchange............................................8 
   10.   Security Considerations.....................................9 
   11.   IANA Considerations........................................10 
   12.   References.................................................10 
      12.1.  Normative References..................................10 
      12.2.  Informative References................................10 
   Author's Address.................................................10 
   Intellectual Property Statement..................................11 
   Full Copyright Statement.........................................11 
   Acknowledgment...................................................11 
    
    
1. Introduction 
    
   The SIP INFO method was defined in [RFC2976] to convey session 
   related control information inside an Invite-created dialog.  While 
   it has been widely adopted for specific application use cases, such 
   as ISUP and DTMF exchange, the original RFC did not define a 
   negotiation mechanism nor a means by which to explicitly indicate 
   the type of application information contained in the INFO.  This led 
   to problems associated with static configuration, and potential 
   interoperability problems due to undefined content syntax and 
   semantics.  This draft aims at addressing those deficiencies, to 
   provide a framework for explicit negotiation of capabilities and 
   content context using info-event packages.  This draft is meant to 
   update [RFC2976] SIP INFO. 
    
   The INFO method as defined in [RFC2976] does not provide any context 
   for the information which it carries.  While it may sometimes be 
   clear what the content is, based on the Content-Type, such is only 
   true while only one contextual usage of the content-type is ever 
   employed.  For example, if the Content-Type were "image/jpeg", it 
   would be clear that the MIME-attached content was a JPEG image, but 
   not what its purpose was.  It could be being sent as a caller-id 
   picture, or as a contact-icon, or whatever.  The sender is not sure 
   which JPEG to give the receiver if it supports a JPEG content-type, 
 
 
Kaplan                    Expires - May 2007                  [Page 2] 




                      SIP INFO Events Framework         November 2007 
 
 
   and the receiver does not know which JPEG is being sent if it 
   supports receiving more than one.  Thus there needs to be a well-
   defined and documented statement of what the information sent is 
   for.  Event packages, as defined in [RFC3265] perform that role for 
   Subscription-based events, whereas this document provides a similar 
   framework for Invite-based events.   
    
   Unlike [RFC3265], the mechanism defined in this draft is not based 
   on the usage of the SUBSCRIBE and NOTIFY methods, and does not 
   create a separate subscription dialog or a subscription usage within 
   an existing dialog.  Instead, it uses the INVITE method and its 
   responses to indicate and negotiate supported Event packages, and 
   the INFO method to convey the events.  This mechanism is not 
   appropriate for all IANA-registered Subscribe Event package types, 
   and support for this mechanism should be explicitly indicated in 
   future Info-Event package definitions and registrations. 
    
   When the invite-created dialog is terminated the lifetime of the 
   negotiated invite-events is also terminated. 
    
2. Terminology 
    
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
   document are to be interpreted as described in RFC 2119.  The 
   terminology in this document conforms to RFC 2828, "Internet 
   Security Glossary". 
    
    
3. Applicability 
    
   This draft proposes updating the [RFC2976] SIP INFO method to 
   include explicit negotiation of supported info-event packages in the 
   INVITE transaction, and indication of the indicated event using a 
   new header in the INFO request. 
    
4. Overview of Operation 
    
   The general concept is that the UAC generating an INVITE request 
   includes the Event packages it supports sending and receiving, in 
   two new headers: Send-Event and Recv-Event.  If the UAS supports 
   this mechanism, it responds with the info-event packages it wishes 
   to actually receive and send in the same named headers (in reverse), 
   in the provisional and final responses.  When either side has 
   indication of what the far-end supports, it may send the information 
   defined by the info-event package in an INFO request, following the 
   same INVITE-created dialog and usage, as per [RFC2976].  The INFO 
   request indicates the specific info-event package it is associated 

 
 
Kaplan                    Expires - May 2007                  [Page 3] 




                      SIP INFO Events Framework         November 2007 
 
 
   with, using an Event header with the package name, and any 
   associated MIME-attached body defined for that Event package.  
 
    
5. Event Negotiation  
    
   The UAC and UAS MUST negotiate which event packages are supported 
   and will be used in which direction, before sending an INFO message 
   for any specific event package.  Negotiation always starts with the 
   UAC indicating which event packages it supports and wishes to send 
   or receive, using the two new headers "Send-Event" and "Recv-Event", 
   in the INVITE request.  The UAS always indicates which events, of 
   those offered by the UAC, it wishes to accept for sending and 
   receiving to/from the UAC in its responses. 
    
    
5.1. UAC Behavior 
    
   A UAC supporting this draft MAY indicate one or more event packages 
   it wishes to support sending during the Invite dialog, by including 
   their package names in the "Send-Event" header in the INVITE 
   request.  Not including the Send-Event header in the INVITE means 
   the UAC does not have an intention, and MUST NOT, send any invite-
   events during the dialog. 
 
   The UAC MAY indicate one or more event packages it wishes to support 
   receiving during the Invite-created dialog, by including their 
   package names in the "Recv-Event" header in the INVITE request. Not 
   including the Recv-Event header in the INVITE means the UAC will not 
   accept info-events during the dialog. 
    
   When the UAC receives a Recv-Event header in any provisional 1xx or 
   2xx response, it is an indication from the far-end UAS that it (the 
   UAS) supports receiving the indicated event indications.  Any 
   indicated Recv-Events from the UAS which were not offered by the UAC 
   in a Send-Event MUST be ignored, and MUST NOT constitute a protocol 
   failure. 












 
 
Kaplan                    Expires - May 2007                  [Page 4] 




                      SIP INFO Events Framework         November 2007 
 
 
   When the UAC receives a Send-Event header in any provisional 1xx or 
   2xx final response, it is an indication from the far-end UAS that it 
   (the UAS)_supports sending the indicated event indications.  Any 
   indicated Send-Events from the UAS which were not offered by the UAC 
   in a Recv-Event MUST be ignored, and MUST NOT constitute a protocol 
   failure. 
    
   Once an early dialog is established, through a 1xx provisional 
   response with To-tags, and the UAC has received a Recv-Event header 
   from the UAS in the response, the UAC MAY send any event indications 
   supported by the UAS.  The 2xx final response updates the state of 
   the event packages, such that the 2xx contains the full and final 
   list of Send-Event and Recv-Event packages.  If the 2xx does not 
   contain a Send-Event header, the UAS is indicating it will not send 
   any, and if it does not contain a Recv-Event header, the UAS will 
   not accept any, regardless of what a previous 1xx response might 
   have indicated.  At this point negotiation is considered complete. 
    
5.2. UAS Behavior 
    
   When a UAS receives an INVITE request, it checks for a Send-Event 
   and Recv-Event headers.  One or both may exist.  For each event 
   package name in the received Send-Event header, the UAS decides if 
   it wishes to accept receiving such events from the UAC.  If so, it 
   MUST copy the name(s) of those acceptable events into a Recv-Event 
   header in any, and all subsequent, provisional 1xx and final 2xx 
   responses.   
    
   For each event package name listed in the received Recv-Event 
   header, the UAS decides if it wishes to send such events to the UAC.  
   If so, it MUST copy the name(s) of those events it wishes to 
   generate into a Send-Event header in any, and all subsequent, 
   provisional 1xx and final 2xx responses. 
    
   Note that "any, and all subsequent," means that the UAS may decide 
   not to indicate any events in early 1xx responses; but once it 
   indicates such in a 1xx, it must continue to do so in subsequent 
   responses including the final 2xx response in order to keep the 
   event indication support state the same. 
    
   The UAS MUST NOT send any INFO messages with info-events until it 
   has received an acknowledgement (e.g. PRACK for a provisional 
   response, or an ACK for a final response it sent) that the UAC has 
   received the SIP response sent by the UAS, indicating that the UAC 
   has received the Send-Event header from the UAS.  This assures the 
   UAC can perform any necessary logic it needs to in order to receive 
   the event, and can associate the INFO with the proper dialog. 
    

 
 
Kaplan                    Expires - May 2007                  [Page 5] 




                      SIP INFO Events Framework         November 2007 
 
 
   NOTE: Unlike the NOTIFY method, the INFO method CAN NOT be used to 
   establish a dialog. 
    
    
6. INFO Method 
    
   The INFO method as defined in [RFC2976] is update by this draft with 
   a new "Event" header, which is identical to the header by the same 
   name for SUBSCRIBE and NOTIFY methods. As in those methods, the 
   "Event" header in an INFO request will contain a single info-event 
   package name for which a notification is being signaled by the INFO 
   request.  The package name in the "Event" header MUST match one of 
   the event packages received in the "Recv-Event" header in the 
   received INVITE for the UAS, or response for the UAC.  In other 
   words one can only send what the other end is willing to receive. 
    
   Event packages may define semantics associated with the body of 
   their INFO requests; if they do so, those semantics apply.  INFO 
   bodies are expected to provide additional details about the nature 
   of the event which has occurred and the resultant resource state. 
    
      [NOTE: do we need to support the "id" concept as well?  Is there 
   a use case?] 
    
   As per [RFC2976], the INFO method can only be used within an INVITE-
   generated dialog (early or full) and usage.  It has no lifetime or 
   usage of its own, as it is inexorably linked to that of the INVITE.  
   The dialog identifiers defined in [RFC3261] must match those of the 
   provisional or final responses to the INVITE, and as a result INFO 
   requests do not fork.  INFO requests may be sent in either 
   direction, once the UAC or UAS has received the Send-Event/Recv-
   Event indications of what the far-end supports.  For the UAS, it 
   must receive the ACK for the INVITE's 200-ok, or the PRACK for a 
   provisional response, before sending an INFO request.  In other 
   words it must know the far-end has received its indication of what 
   events it is willing to send before it sends them. 
    












 
 
Kaplan                    Expires - May 2007                  [Page 6] 




                      SIP INFO Events Framework         November 2007 
 
 
7. Re-Invites and usages and forks, oh my! 
    
   A Re-INVITE or UPDATE request MUST NOT contain any Send-Event or 
   Recv-Event headers, and such headers MUST be ignored on reception.  
   The info-event package negotiation is performed during the initial 
   INVITE transaction, and there is no re-negotiation. 
    
   [Is that ok?  Is there a need to have re-negotiation? (is there a 
   use case?)  It sure makes it simple not to have things change in the 
   middle of a session] 
    
   There is no separate "usage" for the INFO request, as defined by 
   [RFC5057].  The INFO is related to but not integral to the Invite 
   usage, such that some failure responses to an INFO request do not 
   affect the Invite usage whatsoever, as described in [RFC5057].  
   Other failures may terminate the usage or dialog completely.  The 
   lifetime of info-events and thus is exactly the same as that of the 
   Invite.  If an Invite usage fails or is terminated, the Info-based 
   event state no longer exists, and an INFO request MUST NOT be sent. 
    
   The original INVITE request may be forked along the path, resulting 
   in multiple 1xx provisional responses, each with a separate set of 
   send/receive info-event packages supported.  It is typically up to 
   local-policy to determine how to handle such situations, however it 
   should be clear that an INFO request does not itself fork, since it 
   uses the dialog identifiers and thus follows the path to a specific 
   fork. 
    
    
8. New Headers 
 
   [Should the new headers be optional for OPTIONS and REGISTER?] 
    
   Header field      where proxy ACK BYE CAN INV OPT REG PRA 
   --------------------------------------------------------- 
   Send-Event          R          -   -   -   o   -   o   - 
   Send-Event          2xx        -   -   -   -   o   o   - 
   Recv-Event          R          -   -   -   -   -   o   - 
   Recv-Event          2xx        -   -   -   o   o   o   - 
   Recv-Event          18x        -   -   -   o   o   -   - 
    
    
   8.1 "Send-Event" header  
    
    
   [Todo: Insert text] 
    
    

 
 
Kaplan                    Expires - May 2007                  [Page 7] 




                      SIP INFO Events Framework         November 2007 
 
 
   8.2 "Recv-Event" header 
    
    
   [Todo: Insert text] 
    
    
   8.3 Augmented BNF Definitions 
    
   Send-Event           =  "Send-Event" HCOLON 1*(invite-event-package 
                           *( SEMI invite-event-param )) 
   Recv-Event           =  "Send-Event" HCOLON 1*(invite-event-package 
                           *( SEMI invite-event-param )) 
   invite-event-package =  token-nodot 
   token-nodot          =  1*( alphanum / "-"  / "!" / "%" / "*" 
                               / "_" / "+" / "`" / "'" / "~" ) 
   Invite-event-param   =  generic-param / ( "id" EQUAL token ) 
    
    
9. Example Exchange 
 
   In the following example, Alice initiates a call to Bob.  Alice can 
   support sending or receiving "foo" events, and sending "bar" events. 
    
   Alice generates the following: (note: much has been left out for 
   simplicity) 
      INVITE sip:bob@example.com SIP/2.0 
      Via: SIP/2.0/UDP 192.0.2.1:5060;branch=z9hG4bKnashds10 
      From: Alice <sip:alice@example.net>;tag=1234567 
      To: Bob <sip:bob@example.com> 
      Call-Id: 123456mcmxcix 
      CSeq: 1 INVITE 
      Contact: <sip:alice@192.0.2.1> 
      Send-Event: foo, bar 
      Recv-Event: foo 
    
   Bob checks the headers, can support sending but not receiving "foo", 
   and sending but not receiving "bar".  Note that since Bob does not 
   support receiving anything Alice can send, the response does not 
   list any Recv-Event events. 
    
      SIP/2.0 180 Ringing 
      Via: SIP/2.0/UDP 192.0.2.1:5060;branch=z9hG4bKnashds10 
      From: Alice <sip:alice@example.net>;tag=1234567 
      To: Bob <sip:bob@example.com>;tag=abcdefg 
      Call-Id: 123456mcmxcix 
      CSeq: 1 INVITE 
      Send-Event: foo 
    

 
 
Kaplan                    Expires - May 2007                  [Page 8] 




                      SIP INFO Events Framework         November 2007 
 
 
   Since he sent the Send-Event header in the 180, Bob also sends it in 
   the 200. 
    
      SIP/2.0 200 OK 
      Via: SIP/2.0/UDP 192.0.2.1:5060;branch=z9hG4bKnashds10 
      From: Alice <sip:alice@example.net>;tag=1234567 
      To: Bob <sip:bob@example.com>;tag=abcdefg 
      Call-Id: 123456mcmxcix 
      CSeq: 1 INVITE 
      Contact: <sip:bob@192.0.2.2> 
      Send-Event: foo 
    
   Alice can send an info-event as soon as she received the 180, but in 
   this example she would not have been able to since Bob didn't say he 
   could receive any Info-based events in his 180 response.  Bob must 
   wait to receive the ACK before sending any "foo" events (ACK not 
   shown), at which point he sends the following: 
    
      INFO sip:alice@192.0.2.1 SIP/2.0 
      Via: SIP/2.0/UDP 192.0.2.2:5060;branch=z9hG4bKnabcdef 
      To: Alice <sip:alice@example.net>;tag=1234567 
      From: Bob <sip:bob@example.com>;tag=abcdefg 
      Call-Id: 123456mcmxcix 
      CSeq: 2 INFO 
      Contact: <sip:bob@192.0.2.2> 
      Event: foo 
    
    
10.  Security Considerations 
    
   There are no specific security issues for this mechanism, beyond 
   those already applicable to SIP-based session signaling.  
    
   One interesting property of Info-based event indication is that the 
   same digest-challenge mechanism used for Invite-based authentication 
   can be reused for the INFO request.  However this assumes the device 
   which knows the credentials in order to perform the Invite challenge 
   is still in the path for the INFO, or that the far-end UAS knows 
   such credentials. 
    









 
 
Kaplan                    Expires - May 2007                  [Page 9] 




                      SIP INFO Events Framework         November 2007 
 
 
11.  IANA Considerations 
    
   This document will define an info-event-type namespace, the 
   specifics of which are TBD. 
    
12.  References 
    
12.1.     Normative References 
 
   [RFC2976]  Donovan, S., "The SIP INFO Method", RFC 2976, October 
   2000. 
    
   [RFC3261]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 
   A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:  
   Session Initiation Protocol", RFC 3261, June 2002. 
     
    
12.2.     Informative References 
 
   [RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific 
   Event Notification", RFC 3265, June 2002 
    
   [RFC5057] Sparks, R., "Multiple Dialog Usages in the Session 
   Initiation Protocol", RFC 5057, February 2007 
    
    
 
Author's Address 
    
   Hadriel Kaplan 
   Acme Packet 
   71 Third Ave. 
   Burlington, MA 01803, USA 
    
   Email: hkaplan@acmepacket.com 
    
    
   Christer Holmberg 
   Ericsson 
   Hirsalantie 11 
   Jorvas  02420 
   Finland 
    
   Email: christer.holmberg@ericsson.com 
    




 
 
Kaplan                    Expires - May 2007                 [Page 10] 




                      SIP INFO Events Framework         November 2007 
 
 
 
Intellectual Property Statement 
    
   The IETF takes no position regarding the validity or scope of any 
   Intellectual Property Rights or other rights that might be claimed 
   to pertain to the implementation or use of the technology described 
   in this document or the extent to which any license under such 
   rights might or might not be available; nor does it represent that 
   it has made any independent effort to identify any such rights.  
   Information on the procedures with respect to rights in RFC 
   documents can be found in BCP 78 and BCP 79. 
    
   Copies of IPR disclosures made to the IETF Secretariat and any 
   assurances of licenses to be made available, or the result of an 
   attempt made to obtain a general license or permission for the use 
   of such proprietary rights by implementers or users of this 
   specification can be obtained from the IETF on-line IPR repository 
   at http://www.ietf.org/ipr. 
    
   The IETF invites any interested party to bring to its attention any 
   copyrights, patents or patent applications, or other proprietary 
   rights that may cover technology that may be required to implement 
   this standard.  Please address the information to the IETF at ietf-
   ipr@ietf.org. 
    
 
Full Copyright Statement 
    
   Copyright (C) The IETF Trust (2007). 
    
   This document is subject to the rights, licenses and restrictions 
   contained in BCP 78, and except as set forth therein, the authors 
   retain all their rights. 
    
   This document and the information contained herein are provided on 
   an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE 
   REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE 
   IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL 
   WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY 
   WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE 
   ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS 
   FOR A PARTICULAR PURPOSE. 
    
Acknowledgment 
    
   Funding for the RFC Editor function is provided by the IETF 
   Administrative Support Activity (IASA). 
    

 
 
Kaplan                    Expires - May 2007                 [Page 11] 




                      SIP INFO Events Framework         November 2007 
 
 
   The authors wish to thank Brian Stucker, Francois Audet, Paul 
   Kyzivat, Adam Roach, Eric Burger, Robert Sparks for their 
   suggestions and comments; and for Dean Willis, who was ahead of his 
   time, having submitted a similar draft 5 years ago. 
    












































 
 
Kaplan                    Expires - May 2007                 [Page 12] 

PAFTECH AB 2003-20262026-04-24 02:49:39