summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc7355.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc7355.txt')
-rw-r--r--doc/rfc/rfc7355.txt507
1 files changed, 507 insertions, 0 deletions
diff --git a/doc/rfc/rfc7355.txt b/doc/rfc/rfc7355.txt
new file mode 100644
index 0000000..39f1169
--- /dev/null
+++ b/doc/rfc/rfc7355.txt
@@ -0,0 +1,507 @@
+
+
+
+
+
+
+Internet Engineering Task Force (IETF) G. Salgueiro
+Request for Comments: 7355 Cisco
+Updates: 6873 V. Pascual
+Category: Informational A. Roman
+ISSN: 2070-1721 S. Garcia
+ Quobis
+ September 2014
+
+
+ Indicating WebSocket Protocol as a Transport
+ in the Session Initiation Protocol (SIP) Common Log Format (CLF)
+
+Abstract
+
+ RFC 7118 specifies a WebSocket subprotocol as a reliable real-time
+ transport mechanism between Session Initiation Protocol (SIP)
+ entities to enable usage of SIP in web-oriented deployments. This
+ document updates the SIP Common Log Format (CLF), defined in RFC
+ 6873, with a new "Transport Flag" for such SIP WebSocket transport.
+
+Status of This Memo
+
+ This document is not an Internet Standards Track specification; it is
+ published for informational purposes.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Not all documents
+ approved by the IESG are a candidate for any level of Internet
+ Standard; see Section 2 of RFC 5741.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ http://www.rfc-editor.org/info/rfc7355.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Salgueiro, et al. Informational [Page 1]
+
+RFC 7355 WebSocket Transport in SIP CLF September 2014
+
+
+Copyright Notice
+
+ Copyright (c) 2014 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.
+
+Table of Contents
+
+ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
+ 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
+ 3. Document Conventions . . . . . . . . . . . . . . . . . . . . 3
+ 4. Usage of the WebSocket Transport Flag . . . . . . . . . . . . 3
+ 5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 4
+ 5.1. SIP over WebSocket (WS) . . . . . . . . . . . . . . . . . 4
+ 5.2. SIP over Secure WebSocket (WSS) . . . . . . . . . . . . . 6
+ 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7
+ 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
+ 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7
+ 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 8
+ 9.1. Normative References . . . . . . . . . . . . . . . . . . 8
+ 9.2. Informative References . . . . . . . . . . . . . . . . . 8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Salgueiro, et al. Informational [Page 2]
+
+RFC 7355 WebSocket Transport in SIP CLF September 2014
+
+
+1. Introduction
+
+ The WebSocket protocol [RFC6455] enables bidirectional message
+ exchange between clients and servers on top of a persistent TCP
+ connection (optionally secured with TLS [RFC5246]). The initial
+ protocol handshake makes use of HTTP [RFC7230] semantics, allowing
+ the WebSocket protocol to reuse existing transport connections.
+
+ RFC 7118 [RFC7118] defines a WebSocket subprotocol for transporting
+ SIP messages between a WebSocket client and server.
+
+ SIP messages can be logged using the Common Log Format defined in RFC
+ 6873 [RFC6873]. In order to make such SIP CLF logging possible for
+ SIP messages transported over the WebSocket protocol, a new WebSocket
+ "Transport Flag" ('W') must be added to the "Transport Flags" already
+ defined in RFC 6873 [RFC6873] (i.e., UDP, TCP, and SCTP).
+
+ This document updates RFC 6873 [RFC6873] by defining a new SIP CLF
+ "Transport Flag" value for WebSocket.
+
+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 [RFC2119].
+
+3. Document Conventions
+
+ This document contains several examples of SIP CLF records showing
+ messages over plain and secure WebSocket connections. The formatting
+ described in this document does not permit the examples to be
+ unambiguously rendered due to the constraints imposed by the
+ formatting rules for RFCs. To avoid ambiguity and to meet the RFC
+ layout requirements, this document uses the <allOneLine/> markup
+ convention established in [RFC4475]. This markup convention is
+ described in detail in Section 3 of RFC 6873 [RFC6873] and used
+ throughout that document for representing the syntax of SIP CLF
+ records.
+
+4. Usage of the WebSocket Transport Flag
+
+ Section 4.2 of RFC6873 [RFC6873] specifies the mandatory fields in a
+ SIP CLF record. The fourth and fifth bytes of the five-byte "Flags
+ Field" are the "Transport Flag" and the "Encryption Flag",
+ respectively. SIP messages transported over both a plain and secure
+ WebSocket connection can be clearly distinguished by appropriately
+ setting these two flag fields.
+
+
+
+
+Salgueiro, et al. Informational [Page 3]
+
+RFC 7355 WebSocket Transport in SIP CLF September 2014
+
+
+ The currently registered values of the "Transport Flag" (Section 9.2
+ of RFC 6873) are UDP ('U'), TCP ('T'), and SCTP ('S'). This document
+ defines and registers a new "Transport Flag" value 'W' for WebSocket
+ transport of SIP messages and consequently updates RFC 6873 [RFC6873]
+ and the IANA "SIP CLF Transport Flag Values" registry.
+
+ SIP CLF records of messages transported over a plain WebSocket
+ connection (WS) MUST set the "Transport Flag" to this new 'W' value
+ and the "Encryption Flag" value to 'U' (Unencrypted). SIP CLF
+ records of messages transported over a secure WebSocket (WSS)
+ connection (i.e., WS over TLS) MUST set the "Transport Flag" to this
+ new 'W' value and the "Encryption Flag" value to 'E' (Encrypted).
+
+5. Examples
+
+ The following examples show sample SIP CLF records logged for SIP
+ messages transported over both plain and secure WebSocket
+ connections.
+
+5.1. SIP over WebSocket (WS)
+
+ The following example represents a SIP INVITE request sent over a
+ plain WebSocket connection. For the sake of brevity, the Session
+ Description Protocol (SDP) [RFC4566] body is omitted.
+
+ INVITE sip:bob@example.com SIP/2.0
+ Via: SIP/2.0/WS df7jal23ls0d.invalid;branch=z9hG4bK56sdasks
+ From: sip:alice@example.com;tag=asdyka899
+ To: sip:bob@example.com
+ Call-ID: asidkj3ss
+ CSeq: 1 INVITE
+ Max-Forwards: 70
+ Date: Thu, 6 Feb 2014 15:02:03 GMT
+ Supported: path, outbound, gruu
+ Route: <sip:proxy.example.com:80;transport=ws;lr>
+ Contact: <sip:alice@example.com;gr=urn:uuid:f81-7dec-14a06cf1;ob>
+ Content-Type: application/sdp
+ Content-Length: 418
+
+ Shown below is approximately how this message would appear as a
+ single record in a SIP CLF logging file if encoded according to the
+ syntax described in [RFC6873]. Due to RFC conventions, this log
+ entry has been split into five lines, instead of the two lines that
+ actually appear in a log file; and the tab characters have been
+ padded out using spaces to simulate their appearance in a text
+ terminal.
+
+
+
+
+
+Salgueiro, et al. Informational [Page 4]
+
+RFC 7355 WebSocket Transport in SIP CLF September 2014
+
+
+ A0000E7,0053005C005E00720080009200A600A800BE00C800D200DE00E7
+ <allOneLine>
+ 1328821153.010 RORWU 1 INVITE - sip:bob@example.com
+ 192.0.2.10:80 192.0.2.200:56485 sip:bob@example.com -
+ sip:alice@example.com asdyka899 asidkj3ss S1781761-88
+ C67651-11
+ </allOneLine>
+
+ A bit-exact version of the actual log entry is provided here, Base64
+ encoded [RFC4648], using the uuencode utility.
+
+ begin-base64 644 clf_ws_record
+ QTAwMDBFNywwMDUzMDA1QzAwNUUwMDcyMDA4MDAwOTIwMEE2MDBBODAwQkUwMEM4MDBE
+ MjAwREUwMEU3CjEzMjg4MjExNTMuMDEwCVJPUldVCTEgSU5WSVRFCS0Jc2lwOmJvYkBl
+ eGFtcGxlLmNvbQkxOTIuMC4yLjEwOjgwCTE5Mi4wLjIuMjAwOjU2NDg1CXNpcDpib2JA
+ ZXhhbXBsZS5jb20JLQlzaXA6YWxpY2VAZXhhbXBsZS5jb20JYXNkeWthODk5CWFzaWRr
+ ajNzcwlTMTc4MTc2MS04OAlDNjc2NTEtMTEKCg==
+ ====
+
+ The original SIP CLF format can be obtained by reversing the effects
+ of uuencode by simply applying the uudecode transform. Additionally,
+ to recover the unencoded file, the Base64 text above may be passed as
+ input to the following perl script (the output should be redirected
+ to a file).
+
+ <CODE BEGINS>
+
+ #!/usr/bin/perl
+ use strict;
+ my $bdata = "";
+ use MIME::Base64;
+ while(<>)
+ {
+ if (/begin-base64 644 clf_ws_record/ .. /-- ==== --/)
+ {
+ if ( m/^\s*[^\s]+\s*$/)
+ {
+ $bdata = $bdata . $_;
+ }
+ }
+ }
+ print decode_base64($bdata);
+
+ <CODE ENDS>
+
+
+
+
+
+
+
+Salgueiro, et al. Informational [Page 5]
+
+RFC 7355 WebSocket Transport in SIP CLF September 2014
+
+
+5.2. SIP over Secure WebSocket (WSS)
+
+ The following example represents a SIP INVITE request sent over a
+ secure WebSocket connection (i.e., WebSocket over TLS [RFC5246]).
+ For the sake of brevity, the SDP body is omitted.
+
+ INVITE sip:bob@example.com SIP/2.0
+ Via: SIP/2.0/WSS df7jal23ls0d.invalid;branch=z9hG4bK56sdasks
+ From: sip:alice@example.com;tag=asdyka899
+ To: sip:bob@example.com
+ Call-ID: asidkj3ss
+ CSeq: 1 INVITE
+ Max-Forwards: 70
+ Date: Thu, 6 Feb 2014 15:02:03 GMT
+ Supported: path, outbound, gruu
+ Route: <sip:proxy.example.com:443;transport=ws;lr>
+ Contact: <sip:alice@example.com;gr=urn:uuid:f81-7dec-14a06cf1;ob>
+ Content-Type: application/sdp
+ Content-Length: 439
+
+ Shown below is approximately how this message would appear as a
+ single record in a SIP CLF logging file if encoded according to the
+ syntax described in [RFC6873]. Due to RFC conventions, this log
+ entry has been split into five lines, instead of the two lines that
+ actually appear in a log file; and the tab characters have been
+ padded out using spaces to simulate their appearance in a text
+ terminal.
+
+ A0000E8,0053005C005E00720081009300A700A900BF00C900D300DF00E8
+ <allOneLine>
+ 1328821153.010 RORWE 1 INVITE - sip:bob@example.com
+ 192.0.2.10:443 192.0.2.200:56485 sip:bob@example.com -
+ sip:alice@example.com:5060 asdyka899 asidkj3ss S1781761-88
+ C67651-11
+ </allOneLine>
+
+ A bit-exact version of the actual log entry is provided here, Base64
+ encoded.
+
+ begin-base64 644 clf_ws_record
+ QTAwMDBFOCwwMDUzMDA1QzAwNUUwMDcyMDA4MTAwOTMwMEE3MDBBOTAwQkYwMEM5MDBE
+ MzAwREYwMEU4CjEzMjg4MjExNTMuMDEwCVJPUldVCTEgSU5WSVRFCS0Jc2lwOmJvYkBl
+ eGFtcGxlLmNvbQkxOTIuMC4yLjEwOjQ0MwkxOTIuMC4yLjIwMDo1NjQ4NQlzaXA6Ym9i
+ QGV4YW1wbGUuY29tCS0Jc2lwOmFsaWNlQGV4YW1wbGUuY29tCWFzZHlrYTg5OQlhc2lk
+ a2ozc3MJUzE3ODE3NjEtODgJQzY3NjUxLTExCgo=
+ ====
+
+
+
+
+
+Salgueiro, et al. Informational [Page 6]
+
+RFC 7355 WebSocket Transport in SIP CLF September 2014
+
+
+6. Security Considerations
+
+ This document merely adds a new "Transport Flag" value for the
+ WebSocket protocol. This value may be set in a SIP CLF record, but
+ its use does not intrinsically introduce any new security
+ considerations. When logging protocol information, such as with SIP
+ CLF, there are a myriad of security, privacy, and data protection
+ issues to consider. These are exhaustively described in RFC 6872
+ [RFC6872] and RFC 6873 [RFC6873].
+
+ Any security considerations specific to the WebSocket protocol or its
+ application as a transport for SIP are detailed in the relevant
+ specifications (the WebSocket protocol [RFC6455] and SIP over
+ WebSockets [RFC7118]) and are considered outside the scope of this
+ document.
+
+7. IANA Considerations
+
+ This document defines a new value ('W') for SIP CLF "Transport Flag".
+ IANA has registered this value in the "SIP CLF Transport Flag Values"
+ registry, as shown in Table 1 below.
+
+ +-------+--------------------+--------------------+
+ | Value | Transport Protocol | Reference |
+ +-------+--------------------+--------------------+
+ | W | WebSocket | RFC 7118, RFC 7355 |
+ +-------+--------------------+--------------------+
+
+ Table 1: IANA-Registered SIP CLF Transport Flag
+
+8. Acknowledgements
+
+ The authors would like to thank Vijay Gurbani for shepherding this
+ document and Area Director Richard Barnes for his sponsorship. This
+ work benefitted from the thorough review and constructive comments of
+ Richard Barnes, Barry Leiba, Benoit Claise, Pete Resnick, Stephen
+ Farrel, and Vijay Gurbani.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Salgueiro, et al. Informational [Page 7]
+
+RFC 7355 WebSocket Transport in SIP CLF September 2014
+
+
+9. References
+
+9.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC6455] Fette, I. and A. Melnikov, "The WebSocket Protocol", RFC
+ 6455, December 2011.
+
+ [RFC6872] Gurbani, V., Burger, E., Anjali, T., Abdelnur, H., and O.
+ Festor, "The Common Log Format (CLF) for the Session
+ Initiation Protocol (SIP): Framework and Information
+ Model", RFC 6872, February 2013.
+
+ [RFC6873] Salgueiro, G., Gurbani, V., and A. Roach, "Format for the
+ Session Initiation Protocol (SIP) Common Log Format
+ (CLF)", RFC 6873, February 2013.
+
+ [RFC7118] Baz Castillo, I., Millan Villegas, J., and V. Pascual,
+ "The WebSocket Protocol as a Transport for the Session
+ Initiation Protocol (SIP)", RFC 7118, January 2014.
+
+9.2. Informative References
+
+ [RFC4475] Sparks, R., Hawrylyshen, A., Johnston, A., Rosenberg, J.,
+ and H. Schulzrinne, "Session Initiation Protocol (SIP)
+ Torture Test Messages", RFC 4475, May 2006.
+
+ [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
+ Description Protocol", RFC 4566, July 2006.
+
+ [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data
+ Encodings", RFC 4648, October 2006.
+
+ [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
+ (TLS) Protocol Version 1.2", RFC 5246, August 2008.
+
+ [RFC7230] Fielding, R. and J. Reschke, "Hypertext Transfer Protocol
+ (HTTP/1.1): Message Syntax and Routing", RFC 7230, June
+ 2014.
+
+
+
+
+
+
+
+
+
+
+Salgueiro, et al. Informational [Page 8]
+
+RFC 7355 WebSocket Transport in SIP CLF September 2014
+
+
+Authors' Addresses
+
+ Gonzalo Salgueiro
+ Cisco Systems, Inc.
+ 7200-12 Kit Creek Road
+ Research Triangle Park, NC 27709
+ US
+
+ EMail: gsalguei@cisco.com
+
+
+ Victor Pascual
+ Quobis
+
+ EMail: victor.pascual@quobis.com
+
+
+ Anton Roman
+ Quobis
+
+ EMail: anton.roman@quobis.com
+
+
+ Sergio Garcia Ramos
+ Quobis
+
+ EMail: sergio.garcia@quobis.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Salgueiro, et al. Informational [Page 9]
+