RFC 5367
Subscriptions to Request-Contained Resource Lists in the Session Initiation Protocol (SIP)
RFC 5367 π (Part 1 of 2)
Okay bestie, here's the title block. This is a Standards Track doc from the Network Working Group, written by G. Camarillo (Ericsson), A.B. Roach (Tekelec), and O. Levin (Microsoft Corporation). It's dated October 2008, and it updates RFC 3265. The title is "Subscriptions to Request-Contained Resource Lists in the Session Initiation Protocol (SIP)" β¨
Status of This Memo π
This document specifies an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements. Check the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited π
Abstract π¦
This doc is all about making a subscription to a list of resources in SIP. The trick is putting the list of resources in the body of a SUBSCRIBE request. Instead of sending a SUBSCRIBE for every single resource one by one (so exhausting π), the subscriber defines the resource list, subscribes to it, and gets notifications about changes in the resources' states, all using one single SUBSCRIBE dialog. Iconic π
Table of Contents π§
1. Introduction ....................................................2
2. Terminology .....................................................2
3. User Agent Client Procedures ....................................2
3.1. Response Handling ..........................................2
3.2. Subsequent SUBSCRIBE Requests ..............................3
4. URI-List Document Format ........................................3
5. Resource List Server Behavior ...................................4
5.1. Subsequent SUBSCRIBE Requests ..............................4
6. Providing a URI to Manipulate a Resource List ...................4
7. Example .........................................................5
8. Security Considerations .........................................6
9. IANA Considerations .............................................6
9.1. List-Management Purpose Parameter Value ....................6
9.2. recipient-list-subscribe Option-Tag ........................7
10. Acknowledgments ................................................7
11. Normative References ...........................................7
1. Introduction π
[RFC4662] explains how to set up subscriptions to a homogeneous resource list in SIP (SIP itself is specified in [RFC3261]), and how to get notified when the states of those resources change. But list creation? Not in [RFC4662]'s scope, sorry bestie π
So this doc gives you a way to create a list with a set of resources and subscribe to it using a single SIP request. The secret sauce is including the list of resources (as defined in [RFC5363]) in the body of the SUBSCRIBE request π«Ά
2. Terminology π₯
Okay so, the capital-letter key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document mean exactly what RFC 2119 [RFC2119] says they mean. No vibes-based interpretations allowed π
3. User Agent Client Procedures π
A UAC (User Agent Client) that wants to create a resource list and subscribe to it using this mechanism builds a SUBSCRIBE request with at least one body. That body's disposition is type "recipient-list" as defined in [RFC5363], and it contains the URI list. On top of that, the UAC MUST include the 'recipient-list-subscribe' option-tag (which IANA registers in Section 9) in a Require header field. The UAC MUST build the rest of the SUBSCRIBE request following the rules in [RFC3265] π
The UAC MUST support the "rlmi+xml" format defined in [RFC4662], and it signals that by putting "rlmi+xml" in the Accept header. The UAC MAY support additional formats too, and it can include them in the Accept header field of the SUBSCRIBE request πΈ
3.1. Response Handling π
The status code in the response to the SUBSCRIBE request doesn't tell you whether the resource list server managed to subscribe to the URIs in the URI list. The UAC finds that out from the notifications the server sends. π
3.2. Subsequent SUBSCRIBE Requests π¦
The earlier sections covered how to put a URI list in an initial SUBSCRIBE request to a resource list server, so you can subscribe to the state of a whole set of resources. Once that subscription exists and a dialog between the UAC and the resource list server is set up, the UAC can send subsequent SUBSCRIBE requests. For example, it can extend how long the subscription lasts β¨
Right now there are no semantics attached to resource-list bodies in subsequent SUBSCRIBE requests (future extensions can define them though). So UACs SHOULD NOT include resource-list bodies in subsequent SUBSCRIBE requests to a resource list server π
Note that there's a difference between an initial SUBSCRIBE request and the later ones. The initial request goes to the public URI of the resource list, but subsequent ones go to the URI the server gives you when the dialog is established. So from the UAC's point of view, the resource at the former URI supports recipient-list bodies, while the resource at the latter one does not.
4. URI-List Document Format π
[RFC5363] requires that each URI-list service specification (like the subscription service defined here) specifies the default format for the recipient-list bodies used within that particular service π
For the subscription service in this document, the default format for recipient-list bodies is the resource list format defined in [RFC4826]. UAs (User Agents) that generate recipient-list bodies MUST support this format and MAY support other formats. Resource list servers that can handle recipient-list bodies MUST support this format and MAY support other formats π
The Extensible Markup Language (XML) Configuration Access Protocol (XCAP) resource list document has features like hierarchical lists, and the ability to include entries by reference relative to the XCAP root URI. The subscription service here doesn't need any of that, since it only has to move a flat list of URIs between a UA and the resource list server. So when using the default resource list document, UAs SHOULD use flat lists (that's, no hierarchical lists) and SHOULD NOT use <entry-ref> elements. A resource list server that receives a URI list with more information than that MAY discard all the extra information π§Ή
Figure 1 is an example of a flat list that follows the resource list document π¦
<?xml version="1.0" encoding="UTF-8"?>
<resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<list>
<entry uri="sip:bill@example.com" />
<entry uri="sip:joe@example.org" />
<entry uri="sip:ted@example.net" />
</list>
</resource-lists>
Figure 1: URI list
5. Resource List Server Behavior π₯
Resource list servers that can receive and process SUBSCRIBE requests with a recipient-list body SHOULD include a 'recipient-list-subscribe' option-tag in a Supported header field when they respond to OPTIONS requests π
When a SUBSCRIBE request with a URI list arrives, a resource list server that chooses to accept the "rlmi+xml" format MUST comply with [RFC4662] for creating the subscription and reporting the changes in the resources within the created dialog. Main character energy π
5.1. Subsequent SUBSCRIBE Requests πΈ
There are still no semantics for resource-list bodies in subsequent SUBSCRIBE requests (though future extensions may define them). So if a resource list server gets a subsequent SUBSCRIBE request with a resource-list body, following standard SIP procedures, it rejects that request with a 415 (Unsupported Media Type) response π«
6. Providing a URI to Manipulate a Resource List π§
A UAC can manipulate a resource list at a resource list server. The resource list server MAY provide a URI to manipulate the resource list associated with a subscription, using the Call-Info header field in the NOTIFY request that establishes the subscription. The "purpose" parameter of the Call-Info header field MUST have a value of 'list-management', which we register with IANA in Section 9. Here's what that header field looks like:
Call-Info: <http://xcap.example.com/your-list.xml>
;purpose=list-management
The lifetime of a resource list that gets manipulated through the URI the server provides is bundled to the lifetime of the subscription. In other words, the resource list SHOULD be destroyed when the subscription expires or is otherwise terminated π«§
Section 7.1 of [RFC3265] doesn't list the Call-Info header field in its table of header fields that NOTIFY requests can carry. This document updates that table so the Call-Info header field can be optionally included in NOTIFY requests π
9.1. List-Management Purpose Parameter Value π
okay so this bit is about the list-management value for the purpose parameter of the Call-Info header field π this document defines it, and a reference to this RFC (in double brackets) got added to the existing purpose Call-Info parameter entry in the SIP Parameters registry π here's how that entry currently looks:
Predefined
Header Field Parameter Name Values Reference
---------------------------- --------------- --------- ---------
Call-Info purpose Yes [RFC3261]
9.2. recipient-list-subscribe Option-Tag β¨
so this document defines the SIP option tag recipient-list-subscribe π¦ and a new row got added to the "Option Tags" section of the SIP Parameter Registry, and it looks like this:
+--------------------------+----------------------------+-----------+
| Name | Description | Reference |
+--------------------------+----------------------------+-----------+
| recipient-list-subscribe | This option tag is used to | [RFC5367] |
| | ensure that a server can | |
| | process the recipient-list | |
| | body used in a SUBSCRIBE | |
| | request. | |
+-------------------------------------------------------+-----------+
10. Acknowledgments π«Ά
Cullen Jennings and Jonathan Rosenberg gave useful comments on this document, so big thanks to them π
11. Normative References π
these are the references the spec leans on, bestie, and I've kept every detail exactly as written πΈ
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[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.
[RFC3265] Roach, A.B., "Session Initiation Protocol (SIP)-Specific
Event Notification", RFC 3265, June 2002.
[RFC4662] Roach, A.B., Campbell, B., and J. Rosenberg, "A Session
Initiation Protocol (SIP) Event Notification Extension for
Resource Lists", RFC 4662, August 2006.
[RFC4826] Rosenberg, J., "Extensible Markup Language (XML) Formats
for Representing Resource Lists", RFC 4826, May 2007.
[RFC5363] Camarillo, G. and A.B. Roach, "Framework and Security
Considerations for Session Initiation Protocol (SIP) URI-
List Services", RFC 5363, October 2008.
Authors' Addresses π§
here are the authors and how to reach them, iykyk π
Gonzalo Camarillo
Ericsson
Hirsalantie 11
Jorvas 02420
Finland
EMail: Gonzalo.Camarillo@ericsson.com
Adam Roach
Tekelec
17210 Campbell Rd Ste 250
Dallas, TX 75252
USA
EMail: Adam.Roach@tekelec.com
Orit Levin
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052
EMail: oritl@microsoft.com
Full Copyright Statement βοΈ
so the IETF Trust holds the copyright on this document (2008) π
this document is covered by the rights, licenses and restrictions in BCP 78, and except as that says, the authors keep all their rights π
the document and the info in it are provided "AS IS", 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. π
Intellectual Property π₯
the IETF doesn't take a side on whether any intellectual property rights claimed over the tech in this doc are valid or in scope, or whether you can get a license for them π it also doesn't claim it has searched for any such rights
info on how rights work for RFC documents is in BCP 78 and BCP 79 π
copies of IPR disclosures sent to the IETF Secretariat, any licence assurances, and the results of any attempt to get a general licence or permission for implementers or users are all available from the IETF's online IPR repository at http://www.ietf.org/ipr π
and the IETF invites anyone to flag any copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard. send that info to ietf-ipr@ietf.org πβ¨
π¦ where this page comes from
- ietf: rfc5367 2008-10
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms