[Search] [txt|pdfized|bibtex] [Tracker] [Email] [Diff1] [Diff2] [Nits]
Versions: 00 01 02                                                      
SPEERMINT WG                                                     R. Mahy
Internet-Draft                                               Plantronics
Intended status: Informational                              July 8, 2007
Expires: January 9, 2008

                A Minimalist Approach to Direct Peering

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-

   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

   The list of Internet-Draft Shadow Directories can be accessed at

   This Internet-Draft will expire on January 9, 2008.

Copyright Notice

   Copyright (C) The IETF Trust (2007).


   This document describes a concrete example of a peering convention
   for domains and federations of domain which use SIP for
   communications, especially in conjunction with E.164 addresses
   (telephone numbers).  This convention makes use of direct SIP and
   media communication between the operator of the initiating and
   receiving administrative domains.

Mahy                     Expires January 9, 2008                [Page 1]

Internet-Draft               Direct Peering                    July 2007

Table of Contents

   1.  Conventions  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   3.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
   4.  Procedures . . . . . . . . . . . . . . . . . . . . . . . . . .  4
     4.1.  Initiating Peer  . . . . . . . . . . . . . . . . . . . . .  4
       4.1.1.  Analyzing target address . . . . . . . . . . . . . . .  4
       4.1.2.  User ENUM lookup . . . . . . . . . . . . . . . . . . .  4
       4.1.3.  Carrier ENUM lookup  . . . . . . . . . . . . . . . . .  5
       4.1.4.  Target by routing table  . . . . . . . . . . . . . . .  5
       4.1.5.  SIP DNS resolution . . . . . . . . . . . . . . . . . .  5
       4.1.6.  Setup TLS connection . . . . . . . . . . . . . . . . .  6
       4.1.7.  Send the SIP request . . . . . . . . . . . . . . . . .  6
     4.2.  Receiving Peer . . . . . . . . . . . . . . . . . . . . . .  7
       4.2.1.  Publish ENUM records . . . . . . . . . . . . . . . . .  7
       4.2.2.  Publish SIP DNS records  . . . . . . . . . . . . . . .  7
       4.2.3.  Verify TLS connection  . . . . . . . . . . . . . . . .  8
       4.2.4.  Receive SIP requests . . . . . . . . . . . . . . . . .  8
       4.2.5.  Record Routing . . . . . . . . . . . . . . . . . . . .  8
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . .  9
   6.  IANA Consideration . . . . . . . . . . . . . . . . . . . . . .  9
   7.  References . . . . . . . . . . . . . . . . . . . . . . . . . .  9
     7.1.  Normative References . . . . . . . . . . . . . . . . . . .  9
     7.2.  Informational References . . . . . . . . . . . . . . . . . 10
   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 10
   Intellectual Property and Copyright Statements . . . . . . . . . . 11

Mahy                     Expires January 9, 2008                [Page 2]

Internet-Draft               Direct Peering                    July 2007

1.  Conventions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   document are to be interpreted as described in RFC-2119 [3].

2.  Introduction

   The Session PEERing for Multimedia INTerconnect (SPEERMINT) Working
   Group is chartered to document conventions for routing real-time
   sessions, such as VoIP telephone calls, at the application layer.
   The speermint terminology document [16] describes this as "layer 5
   peering".  This document will use the term "peering" to describe this
   layer 5 peering.

   This document describes a concrete example of a peering convention.
   This example approach is intentionally minimalistic in its approach,
   and leaves many issues as local policy decisions.  This "less is
   more" philosophy hopefully encourages addition of new features only
   when the vast majority of peers would benefits from them.  The author
   hopes that the example will facilitate discussion about speermint
   requirements.  This approach is also summarized in the consolidated
   use cases document [17].

3.  Overview

   The approach described here assumes that the initiating peer first
   discovers a SIP [2] target URI handled by the receiving peer, then
   sends SIP requests directly to the receiving peer.

   When the initiating peer receives a request to contact a resource
   addressed in its domain using an "external" telephone number (one for
   which the peer is not responsible), the peer first consults "User"
   ENUM [1] records, then carrier ENUM [14] records, and finally it may
   optionally consult a local routing table to determine the appropriate
   target URI.  Requests to im: or pres: resources in external domains
   can resolve to SIP URIs using the procedures defined in RFC 3861 [8].
   Requests which already address a SIP URI in an external domain need
   no additional peer discovery.

   Once the initiating peer discovers a SIP URI corresponding to the
   receiving peer, the initiating peer finds the correct SIP server for
   the receiving peer according to the DNS resolution procedures for SIP
   in RFC 3263 [2].  Peers send all SIP messages to each other over a
   TLS [5] protected channel and use the SIP Identity [12] mechanism to
   verifiably assert an identity for the sender of most messages.

Mahy                     Expires January 9, 2008                [Page 3]

Internet-Draft               Direct Peering                    July 2007

   Note that in a federation of domains, the initiating peer role can be
   logically decomposed.  Domain A1 can forward requests to domain A2,
   so that A2 actually opens a TLS connection to the receiving peer.
   Likewise, the receiving peer function can be similarly decomposed.
   How functions are distributed between or among domains or nodes is
   not subject to this specification as long as the requirements
   described in this document are met.

4.  Procedures

4.1.  Initiating Peer

4.1.1.  Analyzing target address

   Before the initiating peer is even aware that it will peer, it
   receives a request to communicate.  If the target address does not
   represent a resource inside the initiating peer's administrative
   domain or federation of domains, the request may need to be sent to a
   peer.  How the peer determines a resource is external is the subject
   of local policy.  Note that the peer is free to consult any manner of
   private data sources to make this determination, including for
   example those using ENUM technology with private roots.

   If the request is for an im: or pres: URI type, the initiating peer
   follows the procedures in [8].  If the highest priority supported URI
   scheme is sip: or sips:, the initiating peer skips to SIP DNS
   resolution.  Likewise, if the target address is already a sip: or
   sips: URI in an external domain, the initiating peer skips to
   Section 4.1.5.

   If the target address corresponds to a specific E.164 address, the
   peer may need to perform some form of number plan mapping according
   to local policy.  For example, in the United States, a dial string
   beginning "011 44" could be converted to "+44", or in the United
   Kingdom "00 1" could be converted to "+1".  Once the peer has an
   E.164 address, it can continue to the next step.

4.1.2.  User ENUM lookup

   If an external E.164 address is the target, the initiating peer
   consults the public "User ENUM" rooted at e164.arpa, according to the
   procedures described in RFC 3761.  The peer MUST query for the "E2U+
   sip" enumservice as described in RFC 3674 [11], but MAY check for
   other enumservices.  The initiating peer MAY consult a cache or
   alternate representation of the ENUM data rather than actual DNS
   queries.  Also, the peer MAY skip actual DNS queries if the
   initiating peer is sure that the target address country code is not

Mahy                     Expires January 9, 2008                [Page 4]

Internet-Draft               Direct Peering                    July 2007

   represented in e164.arpa.  If a sip: or sips: URI is chosen, the peer
   skips to Section 4.1.5.

   If an im: or pres: URI is chosen for based on an "E2U+im" [15] or
   "E2U+pres" [4] enumserver, the peer follows the procedures for
   resolving these URIs to URIs for specific protocols such a SIP or
   XMPP as described in the previous section.

4.1.3.  Carrier ENUM lookup

   Next the initiating peer checks for a carrier-of-record in a carrier
   ENUM domain according to the procedures described in [14].  As in the
   previous step, the peer MAY consult a cache or alternate
   representation of the ENUM data in lieu of actual DNS queries.  The
   peer first checks for records for the "E2U+sip" enumservice, then for
   the "E2U+pstn" enumservice as defined in [13].  If a terminal record
   is found with a sip: or sips: URI, the peer skips to Section 4.1.5,
   otherwise the peer continues processing according to the next

4.1.4.  Target by routing table

   If there are no user ENUM records, and the initiating carrier cannot
   discover the carrier-of-record or if the initiating peer cannot reach
   the carrier-of-record via SIP peering, the initiating peer still
   needs to deliver the call to the PSTN or reject the call.  Note that
   the initiating peer MAY still send the call to another carrier for
   PSTN gateway termination by prior arrangement.  If so, the initiating
   peer rewrites the Request-URI to address the gateway resource in the
   target carrier's domain and MAY forward the request on to that
   carrier using the procedures described in the remainder of these

4.1.5.  SIP DNS resolution

   Once a sip: or sips: in an external domain is selected as the target,
   the initiating peer MAY apply local policy to decide whether
   forwarding requests to the target domain is acceptable.  If so, the
   initiating peer uses the procedures in RFC 3263 [6] Section 4 to
   determine how to contact the receiving peer.  To summarize the RFC
   3263 procedure: unless these are explicitly encoded in the target
   URI, a transport is chosen using NAPTR records, a port is chosen
   using SRV records, and an address is chosen using A or AAAA records.
   Note that these are queries of records in the global DNS.

   When communicating with a public external peer, entities compliant to
   this document MUST only select a TLS-protected transport for
   communication from the initiating peer to the receiving peer.  Note

Mahy                     Expires January 9, 2008                [Page 5]

Internet-Draft               Direct Peering                    July 2007

   that this is a single-hop requirement.  Either peer MAY insist on
   using a sips: URI which asserts that each hop is TLS-protected, but
   this document does not require protection over each hop.

      Some operators have complained that the TLS is not practical to
      deploy in this context.  The traditional objection to using TLS is
      that it is difficult to build SIP intermediaries which can handle
      more than on the order of 10,000 or 100,000 simultaneous TCP
      connections.  This objection is not relevant in this context,
      since the end-user user agents are still free to use any transport
      inside their administrative domain, and the number of simultaneous
      TCP connections between peers who have recently exchanged traffic
      is expected to be on the order of 100 to 1000 connections per

4.1.6.  Setup TLS connection

   Once a transport, port, and address are found, the initiating peer
   will open or find a reusable TLS connection to the peer.  The
   initiating provider MUST verify the server certificate which SHOULD
   be rooted in a well-known certificate authority.  The initiating
   provider MUST be prepared to provide a TLS client certificate upon
   request during the TLS handshake.  The client certificate MUST
   contain a DNS or URI choice type in the subjectAltName which
   corresponds to the domain asserted in the host production of the From
   header URI.  The certificate SHOULD be valid and rooted in a well-
   known certificate authority.

   Note that the client certificate MAY contain a list of entries in the
   subjectAltName, only one of which has to match the domain in the From
   header URI.

4.1.7.  Send the SIP request

   Once a TLS connection between the peers is established, the
   initiating peer sends the request.  When sending some requests, the
   initiating peer MUST verify and assert the senders identity using the
   SIP Identity mechanism.

   The domain name in the URI of the From: header MUST be a domain which
   was present in the certificate presented when establishing the TLS
   connection for this request, even if the user part has an anonymous
   value.  If the From header contains the user URI parameter with the
   value of "phone", the user part of the From header URI MUST be a
   complete and valid tel: URI [9] telephone-subscriber production, and
   SHOULD be a global-number.  For example, the following are all
   acceptable, the first three are encouraged:

Mahy                     Expires January 9, 2008                [Page 6]

Internet-Draft               Direct Peering                    July 2007

   From: "John Doe" <john.doe@example.net>
   From: "+12125551212" <+12125551212@example.net;user=phone>
   From: "Anonymous" <anonymous@example.net>
   From: <4092;phone-context=+12125554000@example.net;user=phone>
   From: "5551212" <5551212@example.net>

   The following are not acceptable:

   From: "2125551212" <2125551212@example.net;user=phone>
   From: "Anonymous" <anonymous@anonymous.invalid>

   In addition, for new dialog-forming requests and non-dialog-forming
   requests, the request MUST contain a valid Identity and Identity-Info
   header as described in [12].  The Identity-Info header must present a
   domain name which is represented in the certificate presented when
   establishing the TLS connection over which the request is sent.  The
   initiating peer SHOULD include an Identity header on in-dialog
   requests as well, if the From header field value matches an identity
   the initiating peer is willing to assert.

   The initiating peer MAY include any SIP option-tags in Supported,
   Require, or Proxy-Require headers according to procedures in
   standards-track SIP extensions.  Note however that the initiating
   peer MUST be prepared to fallback to baseline SIP functionality as
   defined by the mandatory-to-implement features of RFC 3261, RFC 3263,
   and RFC 3264 [7], except that peers implementing this specification
   MUST implement SIP over TLS using the sip: URI scheme, the SIP
   Identity header, and RFC 4320 [10] non-INVITE transaction fixes.

4.2.  Receiving Peer

4.2.1.  Publish ENUM records

   The receiving peer SHOULD participate by publishing "E2U+sip" and
   "E2U+pstn" records with sip: or sips: URIs wherever a public carrier
   ENUM root is available.  This assumes that the receiving peer wants
   to peer by default.  Even when the receiving peer does not want to
   accept traffic from specific initiating peers, it MAY still reject
   requests on a case-by-case basis.

4.2.2.  Publish SIP DNS records

   To receive peer requests, the receiving peer MUST insure that it
   publishes appropriate NAPTR, SRV, and address (A and/or AAAA) records
   in the global DNS that resolve an appropriate transport, port, and
   address to a relevant SIP server.  The transport actually used for
   external public peering MUST be TLS protected.

Mahy                     Expires January 9, 2008                [Page 7]

Internet-Draft               Direct Peering                    July 2007

4.2.3.  Verify TLS connection

   When the receiving peer receives a TLS client hello, it responds with
   its certificate.  The receiving peer certificate SHOULD be valid and
   rooted in a well-known certificate authority.  The receiving peer
   MUST request and verify the client certificate during the TLS

   Once the initiating peer has been authenticated, the receiving peer
   can authorize communication from this peer based on the domain name
   of the peer and the root of its certificate.  This allows two
   authorization models to be used, together or separately.  In the
   domain-based model, the receiving peer can allow communication from
   peers with some trusted administrative domains which use general-
   purpose certificate authorities, without explicitly permitting all
   domains with certificates rooted in the same authority.  It also
   allows a certificate authority (CA) based model where every domain
   with a valid certificate rooted in some list of CAs is automatically

4.2.4.  Receive SIP requests

   Once a TLS connection is established, the receiving peer is prepared
   to receive incoming SIP requests.  For new dialog-forming requests
   and out-of-dialog requests, the receiving peer verifies that the
   target (request-URI) is a domain which for which it is responsible.
   (For these requests, there should be no remaining Route header field
   values.)  Next the receiving verifies that the Identity header is
   valid, corresponds to the message, corresponds to the Identity-Info
   header, and that the domain in the From header corresponds to one of
   the domains in the TLS client certificate.

   For in-dialog requests, the receiving peer can verify that it
   corresponds to the top-most Route header field value.  The peer also
   validates any Identity header if present.

   The receiving peer MAY reject incoming requests due to local policy.
   When a request is rejected because the initiating peer is not
   authorized to peer, the receiving peer SHOULD respond with a 403
   response with the reason phrase "Unsupported Peer".

4.2.5.  Record Routing

   The receiving peer MAY add a Record-Route header field value
   corresponding to itself.  This insures that subsequent in-dialog
   requests are sent through a node associated with the receiving peer.

Mahy                     Expires January 9, 2008                [Page 8]

Internet-Draft               Direct Peering                    July 2007

5.  Security Considerations

   This document does not introduce any new security concerns, but the
   overall security of a peering system using this mechanism is worth
   discussing separately.  The security and privacy implications of
   using user and carrier ENUM are primarily discussed in RFC 3761 [1]
   and [14] respectively.  User ENUM records are only added at the
   discretion of the user.  Carrier ENUM records should be deployed for
   an entire number range so that no user-specific information can be
   gleaned.  Note that in some countries, knowledge of the carrier-of-
   record for a specific phone number is not public knowledge.

   This document requires peers use a TLS-protected channel and the SIP
   Identity mechanism.  This section needs to be completed in more
   detail later.

6.  IANA Consideration

   This document requires no action by IANA.

7.  References

7.1.  Normative References

   [1]   Faltstrom, P. and M. Mealling, "The E.164 to Uniform Resource
         Identifiers (URI) Dynamic Delegation Discovery System (DDDS)
         Application (ENUM)", RFC 3761, April 2004.

   [2]   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.

   [3]   Bradner, S., "Key words for use in RFCs to Indicate Requirement
         Levels", BCP 14, RFC 2119, March 1997.

   [4]   Peterson, J., "Telephone Number Mapping (ENUM) Service
         Registration for Presence Services", RFC 3953, January 2005.

   [5]   Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS)
         Protocol Version 1.1", RFC 4346, April 2006.

   [6]   Rosenberg, J. and H. Schulzrinne, "Session Initiation Protocol
         (SIP): Locating SIP Servers", RFC 3263, June 2002.

   [7]   Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with
         Session Description Protocol (SDP)", RFC 3264, June 2002.

Mahy                     Expires January 9, 2008                [Page 9]

Internet-Draft               Direct Peering                    July 2007

   [8]   Peterson, J., "Address Resolution for Instant Messaging and
         Presence", RFC 3861, August 2004.

   [9]   Schulzrinne, H., "The tel URI for Telephone Numbers", RFC 3966,
         December 2004.

   [10]  Sparks, R., "Actions Addressing Identified Issues with the
         Session Initiation Protocol's (SIP) Non-INVITE Transaction",
         RFC 4320, January 2006.

   [11]  Peterson, J., "enumservice registration for Session Initiation
         Protocol (SIP) Addresses-of-Record", RFC 3764, April 2004.

   [12]  Peterson, J. and C. Jennings, "Enhancements for Authenticated
         Identity Management in the Session Initiation Protocol (SIP)",
         RFC 4474, August 2006.

   [13]  Livingood, J. and R. Shockey, "IANA Registration for an
         Enumservice Containing Public Switched Telephone Network (PSTN)
         Signaling Information", RFC 4769, November 2006.

   [14]  Haberler, M. and R. Stastny, "Combined User and Infrastructure
         ENUM in the e164.arpa tree", draft-haberler-carrier-enum-03
         (work in progress), June 2006.

   [15]  Mahy, R., "A Telephone Number Mapping (ENUM) Service
         Registration for Instant Messaging  (IM) Services",
         draft-ietf-enum-im-service-02 (work in progress), March 2007.

7.2.  Informational References

   [16]  Malas, D. and D. Meyer, "SPEERMINT Terminology",
         draft-ietf-speermint-terminology-08 (work in progress),
         July 2007.

   [17]  Uzelac, A., "VoIP SIP Peering Use Cases",
         draft-ietf-speermint-voip-consolidated-usecases-02 (work in
         progress), June 2007.

Author's Address

   Rohan Mahy

   Email: rohan@ekabal.com

Mahy                     Expires January 9, 2008               [Page 10]

Internet-Draft               Direct Peering                    July 2007

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

Intellectual Property

   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

   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


   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).

Mahy                     Expires January 9, 2008               [Page 11]