STRAW | R. Ravindranath |
Internet-Draft | T. Reddy |
Intended status: Standards Track | G. Salgueiro |
Expires: January 7, 2016 | Cisco |
July 6, 2015 |
A Session Initiation Protocol (SIP) Feature Tag for Back-to-Back User Agents (B2BUAs)
draft-ram-straw-b2bua-feature-tag-00
The User Agent capabilities specification allows Session Initiation Protocol (SIP) User Agents to convey their capabilities and characteristics to other User Agents and to the registrar for its domain. This information is conveyed as parameters of the Contact header field. Amongst those capabilities are the type of User Agent that is available at a SIP Uniform Resource Identifier (URI). This document extends the User Agent capabilities specification to allow indication of Back-to-Back User Agent (B2BUA) types.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on January 7, 2016.
Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
In current Session Initiation Protocol (SIP)[RFC3261] deployments, there are numerous forms of Back-to-Back User Agents (B2BUAs), operating at various levels of transparency and for many differing purposes, and with widely varying behaviors. Some act as pure SIP proxies and only change to the role of B2BUA in order to generate BYEs to terminate dead sessions. Some are full User Agent (UA) stacks with only high-level event and application logic binding the User Agent Server (UAS) and User Agent Client (UAC) sides. Some B2BUAs operate only in the SIP signaling plane, while others participate in the media plane as well. [RFC7092] provides a taxonomy of several common B2BUA roles.
As more SIP domains are deployed and interconnected, the probability of a single SIP session crossing multiple B2BUAs at both the signaling and media planes increases significantly. B2BUAs, as described in [RFC7092], modify SIP and Session Description Protocol (SDP) [RFC4566] bodies and are also likely to be on the media path. Such entities, when present in the signaling and/or media path, are likely to take several actions of varying intrusiveness. For example, some B2BUAs modify parts of the SDP body (like IP address, port) and subsequently modify the Real-time Transport Protocol (RTP) [RFC3550] headers as well. Given that a B2BUA can perform such a wide variety of operations, a SIP UA originating a call may wish to know that it is communicating with a B2BUA. The B2BUA type can be used by a SIP UA to selectively disable identity validation procedure. For B2BUAs functioning in the media termination mode or media aware mode modifying the RTP/RTCP headers, the UA can disable peer identity validation procedure.
There are specifications like [RFC3840] that allow a SIP User Agent to convey its capabilities and characteristics to other User Agents and to the registrar for its domain. This information is conveyed as parameters in the Contact header field. Amongst those capabilities is the type of UA that is available at a SIP URI. For example, [RFC3840] has the isFocus indicator that is used in SIP signaling for conference servers, a special case of B2BUA. There are also other specifications that allow a B2BUA to indicate its capabilities, such as in Session Recording Protocol [I-D.ietf-siprec-protocol]. However, there may be more types of B2BUAs, as defined in [RFC7092]. Prior to this document there is no support for allowing a UA to indicate its type as a B2BUA. This document extends the User Agent capabilities specification, defined in [RFC3840], to allow a UA to indicate that it is a B2BUA as well as identify the specific type of B2BUA.
The goal of this document is not to ensure end-to-end security of SIP calls. The intent of this memo is, if a middlebox (like a B2BUA) declares its existence, then that transparency is likely to improve communication and operation overall. At a minimum, this will provide indication to the caller and callee that it is talking to a B2BUA, which can then decide on what to do with that information.
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 [RFC2119].
The following generalized terms are defined in [RFC3261], Section 6.
All of the pertinent B2BUA terminology and taxonomy used in this document is based on [RFC7092].
It is assumed the reader is already familiar with the SIP User Agent capabilities specification defined in [RFC3840].
This section describes how a B2BUA, as defined in [RFC7092], can convey its capabilities and characteristics to other User Agents and to the registrar for its domain by leveraging and extending the semantics of [RFC3840].
A B2BUA is essentially comprised of two UAs, one acting as a UAC and other a UAS. So, each side of a B2BUA, when it registers, can indicate a subset of capabilities in a REGISTER message, as described in [RFC3840], or in response to an OPTION message or in-dialog messages. Along with those capabilities, the B2BUA MUST also indicate its B2BUA type. This type will be indicated in a REGISTER message to the registrar in the B2BUA domain. It can also be indicated in response to an OPTION message. The B2BUA MUST also indicate the type as part of in-dialog messaging (INVITE, UPDATE, etc.).
The syntax of the B2BUA type MUST follow the [RFC3840] syntax, which requires all new feature tags to have "+" followed by "sip.tag_name". The Contact header of SIP messages from the B2BUA MUST have this new feature tag. The tag MUST contain one or more of the below values:
Below is example REGISTER message with the Contact header showing B2BUA type feature tag. In this example, the B2BUA registering is a media aware relay B2BUA.
REGISTER sip:example.com SIP/2.0 From: sip:user@example.com;tag=asd98 To: sip:user@example.com Call-ID: hh89as0d-asd88jkk@host.example.com CSeq: 1 REGISTER Max-Forwards: 70 Via: SIP/2.0/UDP host.example.com;branch=z9hG4bKnashds8 Contact: <sip:b2bua1@host.example.com>;audio;video; methods="INVITE,BYE,OPTIONS,ACK,CANCEL"; +sip.isMediaAwareRelayB2BUA Content-Length: 0
Note that in the above example the B2BUA, apart from indicating other capabilities it has, also indicates that it is a B2BUA that acts as media aware relay.
[[NEEDS WG DISCUSSION: Do we need a separate feature tag for each B2BUA type? It is feasible to do so, however the issue is a B2BUA may likely play multiple roles described in [RFC7092], depending upon call scenario. For example, for one scenario the B2BUA may be simple media relay, for some other scenario, the same B2BUA may play a media aware relay. So its tricky to indicate one specific type. Perhaps should such a B2BUA indicate multiple feature tags?]]
When present in a REGISTER request, this media feature tag gives information on the set of supported application media streams. It is possible that this information is sensitive, providing insight into the capabilities of a product. These considerations are already discussed in [RFC3840], and those considerations apply here as well.
Applications that utilize this media feature tag MUST provide a means for ensuring its integrity. Similarly, the media feature tag should only be trusted as valid when it comes from the user or User Agent described by the feature tag. As a result, mechanisms for conveying the feature tag MUST provide a mechanism for guaranteeing authenticity. If B2BUA advertises any type other than sip.isMediaTerminationB2BUA and sip.isMediaAwareHeaderModification and the identity validation procedure [I-D.ietf-stir-rfc4474bis] by the UA fails then it is an indication that the B2BUA or devices on the other side are misbehaving or have malicious intents.
This section registers new media feature tags in the SIP tree, defined in Section 12.1 of [RFC3840]. The following feature tags are defined by this specification.
Values appropriate for use with all the above feature tags: Boolean.
Special thanks to Stephen Farrel, whose IESG review (and subsequent discussion) of [I-D.ietf-straw-b2bua-stun] led to the formulation of this draft. Additionally, the authors would like to thanks all the members of the STRAW WG for their comments and discussion that helped improve this document.
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. |
[RFC3840] | Rosenberg, J., Schulzrinne, H. and P. Kyzivat, "Indicating User Agent Capabilities in the Session Initiation Protocol (SIP)", RFC 3840, August 2004. |