SIPPING Working Group J. Peterson
Internet-Draft H. Liu
Expires: August 9, 2002 J. Yu
NeuStar
B. Campbell
dynamicsoft
February 8, 2002
Using ENUM for SIP Applications
draft-ietf-sipping-e164-01
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
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/ietf/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 August 9, 2002.
Copyright Notice
Copyright (C) The Internet Society (2002). All Rights Reserved.
Abstract
Although SIP was clearly one of the primary applications for which
ENUM was created, there is nevertheless widespread uncertainty about
the demarcation of SIP location services from ENUM. This document
attempts to sharpen the distinction between location services
provided by the two protocols, illustrating how the two protocols
might work in concert and clarifying the authoring and processing of
ENUM records for SIP applications.
Peterson, et al. Expires August 9, 2002 [Page 1]
Internet-Draft Using ENUM for SIP Applications February 2002
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. ENUM: Resources and Protocols . . . . . . . . . . . . . . . 5
2.1 Telephone Numbers & the Internet . . . . . . . . . . . . . . 5
2.2 The Space of ENUM . . . . . . . . . . . . . . . . . . . . . 6
3. SIP and ENUM . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1 Overview of SIP Capabilities . . . . . . . . . . . . . . . . 8
3.2 E.164 Numbers in SIP Requests . . . . . . . . . . . . . . . 9
3.3 Addresses-of-record in SIP . . . . . . . . . . . . . . . . . 10
3.4 ENUM and SIP Location Services . . . . . . . . . . . . . . . 11
3.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . 14
4. Authoring NAPTR records for SIP . . . . . . . . . . . . . . 16
4.1 The Service Field . . . . . . . . . . . . . . . . . . . . . 16
4.2 Flags in NAPTR RR . . . . . . . . . . . . . . . . . . . . . 17
4.3 Creating the Regular Expression: Matching . . . . . . . . . 17
4.3.1 Creating the Regular Expression: The URI . . . . . . . . . . 17
4.4 Provisioning multiple NAPTR records . . . . . . . . . . . . 18
4.4.1 tel URL v. SIP URI . . . . . . . . . . . . . . . . . . . . . 19
4.4.2 Composing SIP services with ENUM . . . . . . . . . . . . . . 20
4.5 Setting Order and Preference amongst Records . . . . . . . . 21
4.6 Example of a Well-Formed ENUM NAPTR Record Set . . . . . . . 22
5. Processing ENUM records . . . . . . . . . . . . . . . . . . 23
5.1 Selecting a number for a query . . . . . . . . . . . . . . . 23
5.2 Examining Service fields . . . . . . . . . . . . . . . . . . 23
5.3 Handling Order and Preference . . . . . . . . . . . . . . . 24
5.4 Contending with multiple SIP records . . . . . . . . . . . . 25
5.5 Processing NATPR records in a client . . . . . . . . . . . . 25
6. Limits of ENUM . . . . . . . . . . . . . . . . . . . . . . . 27
7. Security Considerations . . . . . . . . . . . . . . . . . . 29
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . 30
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 32
A. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 33
References . . . . . . . . . . . . . . . . . . . . . . . . . 31
B. To Do . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Full Copyright Statement . . . . . . . . . . . . . . . . . . 35
Peterson, et al. Expires August 9, 2002 [Page 2]
Internet-Draft Using ENUM for SIP Applications February 2002
1. Introduction
ENUM (E.164 Number Mapping, RFC2916 [1]) is a system that uses DNS
(Domain Name Service, RFC1034 [2]) in order to translate certain
telephone numbers, like '+12025332600', into URIs (Uniform Resource
Identifiers, RFC2396 [3]), like 'sip:user@sipcarrier.com'. ENUM
exists primarily to facilitate the interconnection of systems that
rely on telephone numbers with those that use URIs to route
transactions.
SIP (Session Initiation Protocol, RFC2543 [4]) is a text-based
application protocol that allows two endpoints in the Internet to
discover one another in order to exchange context information about a
session they would like to share. Common applications for SIP
include Internet telephony, instant messaging, video, Internet gaming
and other forms of real-time communications. SIP is a multi-service
protocol capable of initiating sessions involving different forms of
real-time communications simultaneously.
The creators of ENUM quickly recognized its relevance to SIP. SIP is
frequently used in telephony applications in which calls originate
within the PSTN (Public Switched Telephone Network), traverse a PSTN-
SIP gateway and terminate on an SIP endpoint; in these scenarios, the
utility of deriving a SIP URI from a telephone number is pretty
obvious. But moreover the telephone number will undoubtedly continue
to enjoy widespread use for many years to come - even some native SIP
phones have user interfaces that are essentially traditional DTMF
number pads.
Despite the fact that ENUM and SIP provide very different services
there is a small amount of overlap in their capabilities. For
example, SIP can use telephone numbers within URIs instead of
addresses in the 'user@domain' form. Also, SIP supports entities
called 'location services' that facilitate routing based on URIs.
Unfortunately, this overlap has lead to some confusion about how the
two protocols should be used in tandem - some parties have attempted
to implement what amounts to SIP location services in ENUM, while
others have maintained that ENUM provides merely a subset of SIP's
capabilities and is therefore unnecessary for SIP architectures.
This uncertainty is deepened by ambiguities in the ENUM standard that
must be resolved before the structure of records and the logic for
processing records can be well understood.
This document aspires to demarcate the roles of SIP and ENUM by
proposing an architecture in which the two systems can profitably
interact. Guidelines are proposed for the authoring of the DNS
records used by ENUM, and for client-side processing once these DNS
records have been received.
Peterson, et al. Expires August 9, 2002 [Page 3]
Internet-Draft Using ENUM for SIP Applications February 2002
The remainder of this document is organized as follows: sections 2
and 3 provide an informative high-level overview of ENUM and SIP and
discuss their relationship, proposed normative guidelines for ENUM
record authoring and processing in the context of SIP are described
in Sections 4 and 5 respectively, and limitations of ENUM are
discussed in Section 6.
Peterson, et al. Expires August 9, 2002 [Page 4]
Internet-Draft Using ENUM for SIP Applications February 2002
2. ENUM: Resources and Protocols
ENUM is a mechanism for grouping URIs associated with particular
protocols under a common identity, namely an E.164 [5] number. An
E.164 number is a globally-unique, language-independent identifier
for a logical resource in the telephone network. E.164 itself is an
standard for the assignment of telephone numbers within an
international, ubiquitously-reachable framework.
2.1 Telephone Numbers & the Internet
Historically, telephone numbers corresponded directly to physical
resources in the network; the digits of a number literally
corresponded to physical coordinates on a switching plane. Over
time, telephone numbers began to identify logical rather than
physical resources. For example, in order to terminate a call to a
freephone (in the USA, 1-800) number, the network must translate the
freephone number into a regular number, and this translation may
depend on time of day or the location of the caller. Today we take
it for granted that a wireless phone number inevitably identifies
both the wireless device carried by the user and a voicemail
terminal, elsewhere in the network, that is contacted when the user
is unavailable. The introduction of follow-me services allows a call
to a single number to attempt connections to multiple terminals - in
the office, the home, or the car, then maybe a pager - in order to
reach a particular person who moves between these devices. Users of
the telephone network are therefore accustomed to the idea that many
logical destinations may be grouped under an E.164 number.
However, in order to invoke, or even learn about, any of the PSTN
resources under an E.164 number, the originating user must attempt to
place a call. An E.164 number is a relatively opaque identifier -
staring at a telephone number one might be able to get a rough sense
of the geographic location of its (home) network, or the comparative
expense of placing a call to it, but nothing about the resources that
will be reached is obvious from the identifier itself (excepting
perhaps 1-800-FLOWERS and its ilk). Once you launch a call you may
hear a live human, a fax, an voice browser, or a message that the
number has been disconnected.
The Internet adopts, in quite a few respects, a very different
attitude towards reaching resources. Internet endpoints controlled
by end users may be general purpose computers with sophisticated user
interfaces that explicitly establish network connections with
resources selected by the end user. Endpoints listen on standardized
ports for requests associated with application capabilities. These
ports can each accommodate a specific service associated with a
particular protocol. Protocols tend to be customized to a specific
Peterson, et al. Expires August 9, 2002 [Page 5]
Internet-Draft Using ENUM for SIP Applications February 2002
capability of the endpoint; one protocol is optimized for carrying
mail traffic, another for carrying Internet game traffic. One common
way of identifying a resource in the Internet is a URI, and by
inspecting a URI one can commonly ascertain its purpose and even the
logical domain in which the resource exists; for example,
'mailto:jon.peterson@neustar.biz'.
By way of contrast, a PSTN user's endpoint (the venerable 'black
phone') has one real capability - rendering audio media. Similarly,
end users have only one 'protocol' for interacting with the PSTN -
picking up the phone and placing a call. Any and all services in the
PSTN are reachable through this lone 'protocol'. But in the Internet
model, you must choose one of many protocols before you attempt to
create a network connection, and the choice of protocol usually
limits the sorts of services that might be reached.
2.2 The Space of ENUM
ENUM is the intersection of the PSTN convention for naming resources
with the Internet model of protocols. ENUM allows an endpoint to
inspect the Internet protocols that are associated with an E.164
number before attempting to initiate any communication. Among other
things, this allows endpoints to choose appropriate protocols to
communicate with resources grouped under an E.164 number. Once a
protocol has been selected for communication, endpoints derive from
ENUM records a URI that designates the resource with which a network
connection should be established.
ENUM is both a technology and a policy. From its inception, it has
aspired to be a tool for namespace management for the national
numbering administrations participating in the international E.164
system. ENUM mandates that only one record set should correspond to
each E.164 number, and that these records should be delegated from a
single 'golden root' (known as 'e164.arpa'). Much of the utility of
ENUM derives from the fact that there is only a single logical place
in the Internet where clients need to look for information about a
given E.164 number, and that this place provides an authoritative
record set that is sanctioned by the national numbering plan
administrator for that number. With this utility comes a limitation
- clients that perform ENUM queries must know how to render a
telephone number in international form (e.g. if a user in the
Washington D.C. dials '5332600', a client processing this number
must transform it into '+12025332600' before launching an ENUM
query). Also, ENUM cannot operate on private dialing plans or other
numbering systems outside the scope of the E.164 plan.
Although ENUM guarantees that responsibility for the record set
corresponding to a given telephone number descends from policies of
Peterson, et al. Expires August 9, 2002 [Page 6]
Internet-Draft Using ENUM for SIP Applications February 2002
the national numbering authorities, this makes no assumption about
who authors ENUM records, or how they happen to be provisioned.
Governments, carriers, corporations or users could all possibly be
authors of ENUM record sets, subject to local regulatory and market
forces; note that this document has no dependency on which parties
happen to control the population of ENUM records. Similarly, ENUM
makes no assumptions about who consumes ENUM records (between, say,
carriers and end users) - all parties that can use ENUM will have
access to the same records since there is only one ENUM record set
per E.164 number.
Finally, although ENUM records offer a set of protocols that can be
used to reach services, protocols and services in the Internet are
not the same thing. Admittedly, some protocols are very specific
tools that are invariably used for a single service; for example, an
FTP URL found in an ENUM record set isn't likely to be useful for
anything other than file transfer. However, some protocols (like DNS
itself) play a support role, assisting in the invocation of other
protocols. SIP falls into this same category in so far as it is
ultimately a facilitator for other protocols - SIP signaling is used
to establish a session that in turn carries the real data that end
users would like to exchange. As such, a SIP URI could be used to
invoke any of the sorts of sessions that SIP can administer, and
therefore the 'sip' URI scheme, although it designates a protocol,
cannot be said to represent any particular type of service or
resource.
Peterson, et al. Expires August 9, 2002 [Page 7]
Internet-Draft Using ENUM for SIP Applications February 2002
3. SIP and ENUM
3.1 Overview of SIP Capabilities
SIP is not a protocol that offers a direct service to end users, like
access to file transfer or exchange of hypertext documents. Rather,
SIP helps you to find the best way to communicate with a remote
resource. It employs a number of mechanisms, including registration
of the location of endpoints, discovery of endpoints by routing
requests through proxy servers, and various forms of capability
negotiation, to allow a set of endpoints to establish an optimal
communication path.
Typically, a SIP user agent forms a SIP request for a particular
destination URI that advertises its own capabilities and preferences,
and then hands this request over to a proxy server for delivery. In
some respects this is reminiscent of the PSTN user who picks up the
phone and dials without knowing what sort of resource will be
reached. However, SIP represents a substantial improvement over that
model.
First of all, SIP has an innate mechanism for discovering the right
device to field a call for a particular user's identity. A SIP
device can register dynamically (through the use of the REGISTER
request) at the administrative domain of the user's identity when the
user becomes available through the device, and de-register when the
user has departed. Proxy servers take into account the set of
registered devices when determining how to route a request. A SIP-
based follow-me service, for example, would rely on this real-time
availability data in order to find immediately the best place to
reach the end user - without having to cycle through numerous devices
from which the user is not currently registered.
Secondly, SIP has a process for negotiating the sorts of sessions its
users would like to share. Like email messages, SIP requests consist
of headers followed by one or more bodies. A common type of body
contained in a SIP request is SDP (Session Description Protocol,
RFC2327 [10]), which is used to advertise various potential
connections that could be used to send real-time session data. When
creating a request for a session, SIP endpoints frequently offer as
many types of communication in the SDP as possible in order to find
common ground with the remote resource; one SDP could contain, for
example, offers for voice, video and instant messaging channels
simultaneously. The remote resource, when it receives the request,
may accept some or all of these channels as appropriate.
Several logical roles are defined for SIP network entities. The most
significant are those of user agents, which may act for a particular
Peterson, et al. Expires August 9, 2002 [Page 8]
Internet-Draft Using ENUM for SIP Applications February 2002
transaction as either a client or server, and those of proxy servers,
which forwards SIP requests between user agents or one another.
Another significant role is the redirect server, which receives a
request from a user agent and responds with a redirection message
that prompts the user agent to send the same request to a different
destination. Note that a common SIP phone and a PSTN-SIP gateway
both act as SIP user agents.
Any SIP entity could potentially launch an ENUM query when it needs
to operate on an E.164 number. Whether or not it does so is largely
a matter of its capabilities and its local policies; SIP has no
built-in way to route calls based on E.164 numbers, and ENUM
certainly offers one such mechanism. Note that if ENUM is
implemented in a proxy server, it may change the destination of a SIP
session in a manner of which the client would like to be informed;
for example, from a local SIP telephony call to an international
call. ENUM is probably best employed by a user agent prior to the
creation of a request, rather than by proxy servers; this also
simplifies routing and provides the end user with the most
flexibility (especially when their endpoint supports multiple
communications protocols). Also note that when ENUM is invoked by an
intermediary in the network, the selection of a protocol must be made
by the intermediary in ignorance of the client's protocol
capabilities; most likely, a SIP proxy server would be able to deduce
only that the originating user supported SIP.
3.2 E.164 Numbers in SIP Requests
There are a number of reasons why a user might want to initiate a SIP
request that targets an E.164 number. One common reason is that the
user is calling from the PSTN through a PSTN-SIP gateway; such
gateways usually map routing information from the PSTN directly on to
SIP signaling. Or a native SIP user might intentionally initiate a
session addressed to an E.164 number - perhaps because the target
user is canonically known by that number, or the originator's SIP
user agent only supports a traditional numeric telephone keypad. A
request initially targeting a conventional SIP URI might also be
redirected to an E.164 number. In all of these cases a user agent
could use ENUM to discover a SIP URI associated with the E.164
number. But what would the user agent do otherwise?
If a user agent is unable to translate an E.164 number, it can create
a type of SIP Request-URI that contains a telephone number. Since
one of the most common applications of SIP is telephony, a great deal
of attention has already been devoted to the representation of
telephone numbers in SIP. In particular, the tel URL RFC2806 [6] has
been identified as a way of carrying telephone routing information
within SIP. A tel URL usually consists of the number in E.164 format
Peterson, et al. Expires August 9, 2002 [Page 9]
Internet-Draft Using ENUM for SIP Applications February 2002
preceded by a plus sign, e.g: tel:+12025332600. This format is so
useful that it has been incorporated into the baseline SIP
specification; the user portion of a SIP URI contain a tel URL
(without the scheme string, like sip:+12025332600@carrier.com). A
SIP proxy server might therefore receive a request from a user agent
with a tel URL in the Request-URI; one way in which the proxy server
could handle this sort of request is by launching an ENUM query
itself and proxying the SIP request in accordance with the returned
ENUM records.
Why is a URI so much easier to route than an E.164 number? The
'user@domain' composition of a SIP URI suggests how routing should
occur - go to 'domain' and inquire about 'user'. A tel URL, however,
contains no contextual data of this nature. All number blocks (like
'+1202533') may very well belong to some specific service provider,
but the blocks themselves give no indication of who that carrier
might be. Even when a tel URL appears within a SIP URI, as in
'sip:+12025332600@sipcarrier.com', this does not necessarily mean
that sipcarrier.com owns the corresponding number block - it merely
means that one should go to sipcarrier.com, which will presumably
attempt to route the call from there.
One of the most important uses of ENUM is that it provides valuable
context information about a telephone number - specifically, the
means of contacting the administrative domain that is responsible for
the number. When the reverse resolution string is created for an
E.164 number and the request is resolved within the e164.arpa
hierarchy, the request will automatically be delegated to the
nameserver that hosts the record for the number in question. Note
that this context is provided, however, only for E.164 numbers; since
tel URLs can also carry non-geographic numbers, services codes (like
x11 in the United States), and numbers in private dialing plans,
these URLs retain some utility outside ENUM's scope.
In the absence of a mechanism like ENUM, or if ENUM requests return
no records, local policy can be used to determine how to forward
requests for E.164 numbers. These sorts of policies are frequently
used to route calls to gateways that interconnect SIP networks with
the PSTN.
3.3 Addresses-of-record in SIP
When a SIP device (specifically a user agent) sends a registration to
a registrar on behalf of its user, the device associates its contact
address with the user's address-of-record. An address-of-record is a
SIP URI that serves as a permanent identity for a user, for example,
'sip:user@sipcarrier.com'. Upon receiving the registration request,
the registrar will in turn modify the provisioning data in a location
Peterson, et al. Expires August 9, 2002 [Page 10]
Internet-Draft Using ENUM for SIP Applications February 2002
service, creating a mapping between the address-of-record for the
user and the device where the user can currently be reached. When
future requests arrive at the administrative domain of this location
service for the user in question, proxy servers ask the location
service where to find the user.
The difference between a contact address and an address-of-record is
like the difference between a device and its user. A contact address
is associated with a particular device, and may have a very device-
specific form (like sip:10.0.0.1). An address-of-record, however,
represents a permanent identity of the user, and it should not have a
dependency on any device; it can move between devices or even be
associated with multiple devices at one time. A simple URI,
generally of the form 'sip:user@domain' should be used for an
address-of-record.
When a SIP request is created in a user agent, it usually contains
the address-of-record of its destination in its To header field and
Request-URI. Ideally, an address-of-record should be used to
populate the URI field of ENUM records for SIP applications.
When a SIP entity (be it a user agent or proxy server) needs to make
a forwarding decision for a Request-URI containing an address-of-
record, it uses the mechanisms described in the SIP specification
(RFC2543). Basically, it resolves the domain portion of the URI
(sipcarrier.com in the example above) in order to route the call to a
proxy server that is responsible for that domain.
3.4 ENUM and SIP Location Services
Readers familiar with SIP are no doubt already aware that there is a
concept in SIP of a directory that can group multiple URIs under a
single identity - the location service. At first glance, it might
not be clear what the differences are between a specific application
of the location service concept and ENUM. For example, one could
imagine a location service in which the keys are 'tel' URLs (like
'tel:+12025332600') and the values are SIP URIs in address-of-record
form (like 'sip:jon.peterson@neustar.biz') alongside any other URIs
for distinct protocols desired by the user. If this location service
were consulted by a redirect server, then it could be queried in a
fashion similar to ENUM.
Superficially, the two might seem like they provided the same
capabilities. For example, both query mechanisms can express
relative preference within a record set (NAPTR records support a
preference field, while contact addresses in a SIP redirect message
contain 'q' values that suggest a preferred order). However, there
are a number of important respects in which the two differ. Note
Peterson, et al. Expires August 9, 2002 [Page 11]
Internet-Draft Using ENUM for SIP Applications February 2002
that this section makes no judgment about the superiority of either
approach, but it is intended that these distinctions will clarify the
applicability of these mechanisms to potential deployments.
Request vs. Query: Some sort of SIP request must be sent in order to
query a redirect server - generally it is only in the process of
attempting to initiate a session that a SIP client can access a
location service. An ENUM request can be sent independently of
any attempt to initiate a session. This can be a meaningful
difference when the location service would return URI schemes
indicating a protocol other than SIP. If a client wants to learn,
say, the 'mailto' URI associated with a telephone number, it might
not be desirable to have to attempt to initiate a SIP session in
order to discover it.
Authentication: A redirect server can challenge a SIP client to
provide authentication before processing a query. ENUM, like all
DNS systems, returns the same records regardless of the identity
of its client, and therefore has no means nor need for
authentication. Significantly, a redirect server can therefore
make policy decisions about the records it returns based on the
authenticated identity of the client, whereas ENUM cannot.
Registration: SIP supports dynamic registrations of contact addresses
in a location service; in addition to supporting an interface to
query a location service, SIP also supports an interface to
provision a location service in real-time, including ways to
expire and refresh registrations as appropriate, authenticate
registrations, and so forth. ENUM describes only a query system -
how ENUM record sets are uploaded to DNS servers is not in the
scope of DNS. Generally, however, DNS records are not updated in
real-time, and ENUM makes no special provision for real-time
responsiveness. Frequently, DNS records are assigned
comparatively long time-to-live (TTL) values, especially due to
the prevalence of record caching.
Delegation: ENUM is designed to be delegated from the 'golden root'
server to individual country codes, and within these country codes
potentially to carriers or organizations that own individual
numbers or number blocks. ENUM is designed to easily delegate at
the granularity of individual digits in an E.164 numbers (through
the reverse-resolution e164.arpa domain). It isn't clear how this
sort of delegation would occur with 'tel' URLs in a location
service; redirection triggering on a partial URI (like matching
'tel:+1202533*') is in any event not described in baseline SIP.
Moreover, the manner in which delegation might operate in SIP
raises some performance concerns if it involves multiple
redirections. Delegation in DNS is comparatively well understood.
Peterson, et al. Expires August 9, 2002 [Page 12]
Internet-Draft Using ENUM for SIP Applications February 2002
Caching: A redirection message in SIP can contain an Expires header
field that indicates how long the information it contains will be
valid. However, this Expires header field is generally only
processed by endpoints, which means that each endpoint must cache
this data itself. DNS utilizes network-based caching - each ENUM
client would presumably place requests through a local caching
server that would persist redirection addresses when appropriate.
Network-based caching is generally a more scalable architecture
for persisting query responses.
Forking: SIP has a mechanism for exploring multiple possible
destinations for a request called forking. Multiple destinations
can be tried in parallel or sequentially, as specified by local
policy and some elements in signaling. It is common for redirect
servers to return multiple destinations in a redirect message.
However, it is less clear that the multiple URIs that are used in
ENUM records should be forked in this fashion; this is detailed in
Section 4.4.
Policy: ENUM is half a technology and half a policy. While a
location server could be provisioned with a set of E.164 number
keys, nothing prevents any other location server from creating
records for the same set of keys with different values. The
centralized ENUM model prevents this sort of conflict from
arising. ENUM records are also known to be authoritative for the
record in question, which reduces the possibility of slamming or
other forms of service hijacking. However, this policy introduces
some limitations - ENUM can only operate on full E.164 numbers,
not on private dialing plans or numbers that have not been
rendered in an international format. This may also introduce some
complications when dealing with partial numbers (such as when
overlap dialing is used from the PSTN) - SIP, on the other hand,
has a mechanism for contending with an incomplete address.
Query String: When an ENUM query is launched, essentially the only
information that is provided in the query is the would-be Request-
URI of a SIP request, in ENUM cases a telephone number. However,
when a SIP request lands at a redirect server, the redirect server
could, if it were so inclined, consult parts of the request other
than the Request-URI in order to make a routing decision. For
example, the redirect server could inspect the domain of the From
field in hopes of learning the closest destination to which it
could redirect the client.
Performance: DNS is a very lightweight protocol that serves only one
purpose - record retrieval. All processing of these records is
performed locally at the client. SIP, however, is a textual
protocol that requires a great deal of server-side processing.
Peterson, et al. Expires August 9, 2002 [Page 13]
Internet-Draft Using ENUM for SIP Applications February 2002
SIP requires a minimum of three messages to complete a query (e.g.
INVITE/3xx/ACK) whereas DNS requires only two, a query and an
answer. It is widely believed that the DNS server model is very
scalable.
3.5 Conclusions
The distinctions outlined in the preceding section do not address
what happens after either ENUM or a SIP redirect server returns a SIP
URI to a client - namely, the client sends an appropriate SIP request
(such as an INVITE) based on the received URI that expresses the
client device's communication capabilities. The expression of these
capabilities may entail the usage of SDP to list acceptable types of
media supported and favored by the client, the inclusion of
Required/Supported headers to negotiate compatibility of extensions,
and possibly even the usage of optional SIP mechanisms, for example
using caller/callee preferences [7] to communicate request handling
dispositions. Proxy servers or endpoints subsequently return
responses that allow a true bidirectional capability negotiation
process.
It must be acknowledged that the process by which SIP endpoints
negotiate capabilities can overlap (and in some sense compete) with
the primary service provided by NAPTR records: permitting the
originating client to select a particular URI for communications
based on an ordered list of protocols. ENUM's capability management
mechanism is decidedly one-way - the administrator of the telephone
number expresses capabilities (in the form of protocol names) and
preferences that the client must evaluate without negotiation. It is
also not clear that authors of ENUM records will necessarily be able
to anticipate the capability of the particular device to which a URI
will direct communications requests at any given moment - URIs
generally do not always point to the same device (when they do, they
might as well be replaced with an IPv4 address). Listing available
protocols is also not really comparable to the agreement on session
media (down to the codec level) and protocol extension support. The
negotiation capabilities in SIP described above clearly are far more
versatile and useful than the selection of a protocol for
communications.
However, although ENUM's vocabulary for expressing capabilities is
smaller than SIP's, ENUM has a number of strengths that make it
useful for the association of a telephone number with a SIP address-
of-record - such as its foundation in policy, and its scalability and
delegation characteristics. For that reason, it is the contention of
this document that ENUM's primary applicability to SIP is to provide
a SIP address-of-record corresponding to an E.164 telephone number.
Peterson, et al. Expires August 9, 2002 [Page 14]
Internet-Draft Using ENUM for SIP Applications February 2002
Listing SIP contact addresses rather than addresses-of-record in ENUM
is discouraged because it hampers the proper operation of SIP; SIP's
superior dynamic registration capability makes it far better manager
of contact addresses than ENUM, which not only defines no means for
devices to register, but moreover ENUM records generally must have
some longevity in order for the protocol to scale properly. Many
non-SIP URIs associated with real-time communication (tel URLs and
instant messaging URLs, for example) seem more like contact addresses
that should be managed by the SIP registration process, rather than
URIs that might be listed in ENUM. URLs that are not associated with
real-time communications, like email or http URLs, are probably
better candidates to be provisioned directly in ENUM (it is unlikely
that, for example, email addresses would benefit from dynamic
registration capabilities).
The normative language in the following two sections makes
recommendations that follow this view of the relationship and
demarcation of ENUM and SIP. Because of the public nature of ENUM,
it would be wrong-headed to assume that only clients interested in
SIP will attempt to use ENUM records - in any event authors of ENUM
records cannot guarantee that only a limited group of users will
attempt to contact them. That much said, the primary existing use of
telephone numbers is telephony (or more generally real-time
communications), and therefore it isn't especially unreasonable to go
forward on the assumption that SIP is ENUM's primary customer, nor to
create records that are intended for use by SIP clients. For that
reason, the recommendations that follow frequently suggest that SIP
records be preferred, in various ways, to records of other protocols.
Peterson, et al. Expires August 9, 2002 [Page 15]
Internet-Draft Using ENUM for SIP Applications February 2002
4. Authoring NAPTR records for SIP
The guidelines in this section are oriented towards authoring records
specifically for SIP applications. These guidelines assume that the
reader is familiar with RFC2915 [9]) and RFC2916 [1]). Only those
aspects of NAPTR record authoring that have special bearing on SIP,
or that require general clarification, are covered in this document;
otherwise the procedures in the appropriate RFCs should be followed.
This document makes no assumptions about who authors NAPTR records
(service providers or end users), nor about any mechanisms by which a
record, once it is authored, may be uploaded to the appropriate DNS
servers. Authorship in the context of this document concerns only
the processes by which the NAPTR records themselves are constructed.
There are a few general guidelines which are applicable to the
authoring of DNS records that should be considered by the authors of
ENUM NAPTR record sets. The most important is that authors SHOULD
keep record sets relatively small - DNS is not optimized for the
transference of large files. Having five or six NAPTR records is
quite reasonable, but policies that encourage records sets of
hundreds of NAPTR records are not appropriate. Also, DNS records are
relatively permanent; authors SHOULD NOT use ENUM NAPTR records to
express relationships between E.164 numbers and URIs that potentially
exist for only a short time. DNS is most scalable when it can assume
records will be valid for a reasonable length of time (at least
several hours).
4.1 The Service Field
The Services field of a NAPTR record contains a string that is
composed of two subfields: a 'protocol' subfield and a 'resolution
service' subfield. The examples used in RFC2915 suggest that the
protocol subfield commonly corresponds to the name of a URI scheme
(i.e. 'tel', 'sip', 'mailto'). ENUM in particular defines an 'E2U'
(E.164 to URI) resolution service.
In all of the examples in RFC2915 and RFC2916 in which a SIP URI is
the result of a NAPTR transformation, the 'sip+E2U' token is present
in the service field. It is strongly RECOMMENDED that authors of
NAPTR records use the 'sip+E2U' service field whenever the regexp
contains a SIP URI.
Implementers of ENUM have argued in the past that new service fields
need to be created that provide a greater level of granularity than
the existing 'sip+E2U' token. Some of the motivation for providing
granular service fields for SIP is predicated on the use of multiple
SIP records in a single ENUM record set to characterize different
Peterson, et al. Expires August 9, 2002 [Page 16]
Internet-Draft Using ENUM for SIP Applications February 2002
services associated with an identity. This motivation is analyzed
below in Section 4.4.2.
4.2 Flags in NAPTR RR
Authors of NAPTR records MUST use the terminal "u" flag when any
'E2U' based service field, including 'sip+E2U', is specified.
4.3 Creating the Regular Expression: Matching
The authorship of the regular expression (henceforth regexp) in a
NAPTR record intended for use by ENUM is vastly simplified by the
absence of an antecedent in the substitution (i.e. the section
between the first two delimiters). It is RECOMMENDED that
implementations use an exclamation point as a delimiter, since this
is the only delimiter used throughout the ENUM examples in RFC2915
and RFC2916.
Ordinarily, when a NAPTR record is processed, the expression in the
antecedent is matched against the starting string (for ENUM, the
telephone number); however, in ENUM applications, since the desired
record set is located through a reverse resolution in the e164.arpa
domain that is based on the starting string, further analysis of the
starting string on the client side would be redundant. Therefore,
the antecedent of the regular expression is always 'greedy' - it uses
the regexp '^.*$', which matches any query string. Authors of
records intended to be used for SIP applications SHOULD always use a
greedy regexp.
Example: "!^.*$!sip:info@tele2.se!"
Although the antecedent of the regexp is not factored into ENUM
applications, that does not mean that the replacement field provides
a viable alternative. Authors of NAPTR records for ENUM MUST NOT use
the replacement field in records with an 'E2U' service field.
4.3.1 Creating the Regular Expression: The URI
The consequent side of a regexp contains a URI; NAPTR records that
are intended to be used for session initiation (including SIP
telephony) SHOULD use a SIP URI. While this may not sound especially
controversial at first hearing, there are other sorts of URIs that
might be considered appropriate for SIP applications: 'tel' URLs,
'im' or 'pres' URLs, or others that describe specific services that
might be invoked through SIP are all potentially candidates. While
the use of these URLs might seem reasonable under some circumstances,
including these in NAPTR records rather than SIP URIs could weaken
the proper composition of services and negotiation of capabilities in
Peterson, et al. Expires August 9, 2002 [Page 17]
Internet-Draft Using ENUM for SIP Applications February 2002
SIP.
While there is no hard law in any of the existing literature that
states that authors of a NAPTR record for ENUM should match the
protocol subfield of the service field with the scheme of the URI in
the regexp, this practice is followed in all of the examples, and
therefore it is RECOMMENDED that authors of ENUM records should
always use the SIP URI scheme when the service field is 'sip+E2U'.
SIP URIs within NAPTR record SHOULD contain an address-of-record (as
described in Section 3.3) rather than a URI that depends on
particular hosts (like an IP address or hostname). Users can
register one or more contact addresses with a registrar that will be
used by the proxy infrastructure of an administrative domain to
contact the end user when requests are received for their address-of-
record. Putting URIs corresponding to devices through which a user
is sometimes available into NAPTR records is NOT RECOMMENDED. Much
of the benefit of using a URI comes from the fact that it represents
a logical service associated with a user rather than a device -
indeed, if ENUM needed to target devices, 'sip+E2IPv4' would be a
more appropriate resolution service to define.
4.4 Provisioning multiple NAPTR records
In all of the examples in RFC2916, a single NAPTR record with an
'sip+E2U' service field appears in each set of records. However,
this 'sip+E2U' record always appears in conjunction with at least one
other record. The circumstances under which authors of records
should supply multiple NAPTR records, especially multiple records for
the same service field value, are not clear. What would it mean if
multiple SIP records were present?
The most important question to consider is the rationale for
including multiple ENUM records for SIP. One possible reason is that
a user might wish to include a NAPTR record corresponding to each SIP
device they use regularly - this would however be a mistake. The SIP
registration mechanism provides a much more appropriate way to group
multiple devices under a single identity; for one thing, registration
allows particular devices to represent their availability
dynamically. ENUM records are not designed to be updated in real
time, and therefore ENUM is not a good mechanism for managing
particular devices.
Another possibility is that a user may have one or more SIP
identities, each of which has its own address-of-record. This could
be the case if the user subscribes to SIP services from multiple
service providers (with URIs like 'sip:user@sipcarrier1.com' and
'sip:user@sipcarrier2.com'), or has different identities for work and
Peterson, et al. Expires August 9, 2002 [Page 18]
Internet-Draft Using ENUM for SIP Applications February 2002
for home. How would authors of NAPTR records select only one of
these addresses-of-record? Should each be placed in its own NAPTR
record in the record set, possibly differentiated by preference?
This is a sort of pseudo-problem, since the real issue is where the
devices employed by the user will register. If device registrations
are distributed across the two addresses-of-record, and this
circumstance is for whatever reason outside the user's control, then
unfortunately placing both addresses-of-record in ENUM wouldn't help,
because the client that originated the ENUM query would have no basis
to choose between the two NAPTR records in order to find some
particular sort of device. The preferred thing for the NAPTR record
author to do in this circumstance is to register one address-of-
record under the other (like a work identity registered under a home
identity), and then to treat the umbrella address-of-record as the
one that should be provisioned within ENUM.
Finally, ENUM records are accessible to the public, and therefore the
author of a NAPTR record set for ENUM cannot assume that any
particular sort of client will be the sole consumer of their NAPTR
records. The intention behind the use of multiple NAPTR records for
SIP cannot be communicated by ENUM, and thus the author of a record
set cannot assume any specific local policy will be applied to the
interpretation of these records by any given ENUM client.
For these reasons, rather than supplying multiple SIP URIs for an
ENUM service, authors of NAPTR record sets for ENUM SHOULD use only
one SIP URI.
4.4.1 tel URL v. SIP URI
Authors of ENUM record sets might want to include tel URLs and
'tel+E2U' service fields when no SIP service is associated with a
given E.164 number. Translating between one telephone number and
another via ENUM could be used as a mechanism for implementing
permanent call forwarding or various PSTN number translation
services.
Even when a 'sip+E2U' record is created to correspond to a SIP
service, some users may wish to have a separate URI for plain
telephony that is not associated with SIP for the benefit of non-SIP
clients. In this instance a 'tel+E2U' record MAY also be provisioned
alongside a 'sip+E2U' record in order to provide a back-up PSTN URI
at which the user can be reached. However, it is probably best to
treat a tel URL as a contact address, rather than an address-of-
record, and thus implementers are advised to register tel URLs with a
SIP location service rather than provisioning them in ENUM. If tel
URLS are used in ENUM as a back-up, it is RECOMMENDED that they be
Peterson, et al. Expires August 9, 2002 [Page 19]
Internet-Draft Using ENUM for SIP Applications February 2002
less preferred than SIP records.
Note that returning a telephone number in an ENUM record may very
well lead to a subsequent ENUM query. For that reason, authors of
NAPTR records SHOULD NOT, in an ENUM record set for a given E.164
number, include a 'tel+E2U' record that translates to that same
number - although hopefully, ENUM clients will have some mechanism
for detecting potential query loops caused by the receipt of a 'tel'
URL. Authors should also be mindful that further queries may
compound call setup delays, degrading the overall performance of the
system.
Although handling fax is outside the scope of this document, similar
practices could be recommended for the 'fax' URL and a 'fax+E2U'
service field, especially when for whatever reason fax capabilities
are not available as part of a user's SIP service.
4.4.2 Composing SIP services with ENUM
Some implementers of ENUM systems have suggested that the 'sip+E2U'
service field is not sufficiently specific to capture SIP's
capabilities - that new service fields should be created
corresponding to particular services that might be invoked by a SIP
user. Several formats for these new service fields have been
proposed, including specifying the communications service that will
be used by SIP in the protocol subfield (e.g. 'im+E2U', 'pres+E2U')
or as part of the resolution service subfield (e.g. 'sip+E2IM',
'sip+E2PRES'). These proposals raise a couple of concerns.
Registration and Negotiation: The first and most serious problem with
this approach is that it blurs the demarcation between ENUM and
SIP. SIP has its own capabilities for discovering the devices
associated with an address-of-record and then negotiating the best
way to communicate with these devices (see Section 3.1). Pushing
this capability forward into ENUM impoverishes SIP without
providing comparable functionality in return. Consider for
example that a SIP client can attempt to negotiate, within SDP,
both audio and video communications simultaneously for a single
request. What should a client do if it downloads an ENUM record
set that has different NAPTR records for 'sip+E2VIDEO' and
'sip+E2VOICE'? Which should it choose? Exposing through ENUM the
contact address of a device (which necessarily has a limited set
of capabilities), rather than an address-of-record, will always
significantly hamper SIP's capabilities. Mapping an E.164
identity to a device, rather than to another identity under which
devices are intelligently managed, does ENUM a disservice.
Proliferation: It is also not clear where the proposed taxonomy of
Peterson, et al. Expires August 9, 2002 [Page 20]
Internet-Draft Using ENUM for SIP Applications February 2002
SIP services should begin and end. If clients need to be able to
identify URIs that are associated with multiple services, then
composite service fields will be required with values like
'sip+E2VOICE+E2VIDEO'. Theoretically, support for N services
might entail support for N-factorial service fields. But
perfectionists could argue that even this doesn't go far enough:
if you want to advertise the capabilities of endpoints, why
specify merely that they support voice - why not also specify each
of the codecs that a particular device supports for voice
communications ('sip+E2VOICE.G711')? Any degree of proliferation
would obviously make ENUM resolvers more complex to implement, and
it isn't clear how slippery the slope of proliferation might be.
And again, it's not clear how exactly this taxonomy would surpass
the native SIP capabilities for discovering the best way for
endpoints to communicate.
Use of any service fields for SIP records other than 'sip+E2U' is,
again, NOT RECOMMENDED.
4.5 Setting Order and Preference amongst Records
Some additional confusion arises from the use of order and preference
in NAPTR records. The NAPTR algorithm dictates that once a client
has ascertained the lowest order that does not contain an
'inappropriate' NAPTR record for this query, the client MUST choose a
NAPTR record of this order.
'Appropriateness' is not defined in the standard, but we might
generously assume that the determination of the 'appropriateness' of
a NAPTR record hinges on the contents of the service field. The
draft does note that ascertaining the lowest order record depends on
whether or not the antecedent of the regular expression in the record
matches the query. But as we've already seen, the regular expression
used in NAPTR records for ENUM is always greedy, and therefore
according to the NAPTR algorithm the lowest order is, barring a more
specific interpretation of appropriateness, the only order that can
be used.
So in short, the language surrounding the NAPTR algorithm in RFC2915
is somewhat confusing, and it isn't exactly clear how order should be
used, especially since there is also a preference field that should
also be taken into consideration when selecting a NAPTR record.
Consider that in the following example from RFC2916 (where order is
the third field from the left and preference the fourth)
Peterson, et al. Expires August 9, 2002 [Page 21]
Internet-Draft Using ENUM for SIP Applications February 2002
$ORIGIN 4.3.2.1.6.7.9.8.6.4.e164.arpa.
IN NAPTR 100 10 "u" "sip+E2U" "!^.*$!sip:info@tele2.se!" .
IN NAPTR 102 10 "u" "mailto+E2U" "!^.*$!mailto:info@tele2.se!" .
... the 'mailto' URI can never be reached if the client believes
both 'sip+E2U' and 'mailto+E2U' records to be 'appropriate' and the
NAPTR algorithm is strictly obeyed.
Regardless of whether or not this requires clarification in future
issues of the standard, for maximal compatibility authors of ENUM
records SHOULD always use the same order value for all NAPTR records
in an ENUM record set. If relative preference among NAPTR records is
desirable, it should be expressed solely with the preference field.
Generally, for record sets that are intended to be used primarily by
SIP clients (perhaps for SIP telephony), when multiple NAPTR records
appear alongside a 'SIP+E2U' record, it is RECOMMENDED that the SIP
record be the most preferred record. Record sets that are intended
for use by versatile clients with multiple protocol capabilities MAY
assign a SIP lesser preference, but authors should note that SIP-
based clients may choose to disregard these preferences.
4.6 Example of a Well-Formed ENUM NAPTR Record Set
$ORIGIN 0.0.6.2.3.3.5.2.0.2.1.e164.arpa.
IN NAPTR 100 10 "u" "sip+E2U" "!^.*$!sip:user@sipcarrier.com!" .
IN NAPTR 100 20 "u" "mailto+E2U" "!^.*$!mailto:user@sipcarrier.com!" .
Peterson, et al. Expires August 9, 2002 [Page 22]
Internet-Draft Using ENUM for SIP Applications February 2002
5. Processing ENUM records
This section addresses only those procedures in RFC2915 and RFC2916
that might pose questions for implementers concerned primarily with
SIP. These guidelines do not by any means exhaustively describe the
NAPTR algorithm or the processing of NAPTR records; implementers
should familiarize themselves with RFC2915 and RFC2916 before
reviewing this section.
Ideally, the recommendations above for authoring NAPTR records will
be followed to the letter; each NAPTR record set will contain a SIP
URI (and if possible nothing else). This section assumes that
implementers must be prepared for more complicated scenarios -
however, just because we recommend that clients should be generous in
what they receive, and try to make sense of potentially confusing
NAPTR records, that does not mean that we recommend any of the
potentially troublesome authoring practices that make this generosity
necessary.
5.1 Selecting a number for a query
Before a starting string (the telephone number to be reversed) can be
constructed in the manner described in RFC2916, the originator of the
query SHOULD make sure that the telephone number it intends to
resolve is a complete E.164 address. Network elements SHOULD have
some means of determining whether an address is complete in the E.164
system, especially when interworking with networks that use overlap
PSTN signaling. In some cases originators of ENUM queries MAY need
to modify telephone numbers before creating a query string; for
example, in North American networks by removing a leading '011' from
the raw number dialed by the end user, or prepending a country code
('1' for North America) or an area code to a national number.
5.2 Examining Service fields
When a set of NAPTR records are received by an ENUM client in
response to a query, the client must first decide which records, if
any, are appropriate for its applications.
According to the NAPTR algorithm, clients are permitted to discard
any 'inappropriate' records at the outset of processing. Here we
will gauge appropriateness by the capabilities of the client;
presumably a client will be provisioned with a set of service fields
which it supports, and all records whose service fields intersect
with this set will be considered appropriate.
ENUM clients acting on behalf of a SIP application will generally be
interested in NAPTR records that contain Service fields of 'sip+E2U';
Peterson, et al. Expires August 9, 2002 [Page 23]
Internet-Draft Using ENUM for SIP Applications February 2002
SIP telephony clients may also be interested in 'tel+E2u'. Clients
MAY make a preliminary pass on all received NAPTR records to
eliminate all records that do not contain one of these two service
fields.
If future NAPTR service fields are defined that are relevant to the
SIP application, they SHOULD also be retained in this preliminary
pass.
5.3 Handling Order and Preference
The purpose of the 'order' field of NAPTR records is related to
delegation, and is therefore not immediately significant to the ENUM
application; there is no particular reason why authors of ENUM
records would want to make use of different orders among multiple
records.
If only a single order is used in the NAPTR record set, then order
may be completely ignored and preference taken as a suggestion for
how the records should be processed. However, if the most preferred
NAPTR record overall does not have a 'sip+E2U' service field, the
ENUM client SHOULD seek out the most preferred NAPTR record that
contains a 'sip+E2U' service field, disregarding 'tel+E2U' or any
other non-SIP schemes.
If different orders are present in the NAPTR record set, then the
NAPTR algorithm forbids the inspection of records of an order other
than the lowest order containing a match for the current query.
However, since the usage of 'order' may be confusing to authors of
ENUM records, ENUM clients should conflate the 'order' and
'preference' fields. The simplest manner of doing so is to place a
decimal point between the 'order' and 'preference' field and to treat
the two so combined as a preference. Consider the following example
(and please keep in mind that this does not follow the authorship
guidelines above):
$ORIGIN 4.3.2.1.6.7.9.8.6.4.e164.arpa.
IN NAPTR 100 10 "u" "tel+E2U" "!^.*$!tel:info@tele2.se!" .
IN NAPTR 102 10 "u" "sip+E2U" "!^.*$!sip:info@tele2.se!" .
IN NAPTR 102 20 "u" "mailto+E2U" "!^.*$!mailto:info@tele2.se!" .
Following this schema, the 'sip' record would be treated as if it had
a preference of 102.1, the 'tel' record a preference of 100.1, and
the 'mailto' record a preference of 102.2. Note that in this case
the 'sip+E2U' record should still be selected over the 'tel+E2U'
record by a SIP client, despite the preference values.
Peterson, et al. Expires August 9, 2002 [Page 24]
Internet-Draft Using ENUM for SIP Applications February 2002
5.4 Contending with multiple SIP records
If an ENUM query returns multiple NAPTR records that have a service
field of 'sip+E2U', the ENUM client must first determine whether or
not it should attempt to make use of multiple records or select a
single one. The pitfalls of intentionally authoring ENUM record sets
with multiple NAPTR records for SIP are detailed above in Section
4.4.2 and will not be reiterated here.
If the ENUM client is a user agent, then at some point a single NAPTR
record must be selected to serve as the Request-URI of the desired
SIP request. If the SIP NAPTR records have different preferences,
the most preferred record SHOULD be used. If two or more records
share most preferred status, the ENUM client SHOULD randomly
determine which record will be used, though it MAY defer to a local
policy that employs some other means to select a record.
If the ENUM client is a proxy server, then it MAY fork the request
when it receives multiple 'sip+E2U' NAPTR records in an ENUM record
set. Depending on the relative precedence values of the NAPTR
records the proxy may wish to fork sequentially or in parallel.
Alternatively, the proxy server MAY select a single record in
accordance with the NAPTR preference fields (or randomly when no
preference is specified, or in accordance with local policy) and
proxy the request with a Request-URI corresponding to the URI field
of this NAPTR record. Note that there are significant limitations
(detailed at the end of Section 3.1) that arise if a proxy server
processes ENUM record sets instead of a user agent, and that
therefore it is RECOMMENDED that SIP network elements act as redirect
servers rather than proxy servers after an ENUM query.
If the ENUM client is a redirect server, then it MAY return a 3xx
response with more than one Contact header field corresponding to the
multiple 'sip+E2U' NAPTR records in an ENUM record set. If the NAPTR
records have different preferences, then 'q' values may be used in
the Contact header fields to correspond to these preferences.
Alternatively, the redirect server MAY select a single record in
accordance with the NAPTR preference fields (or randomly when no
preference is specified) and send this resulting URI in a Contact
header field in a 3xx.
5.5 Processing NATPR records in a client
Obviously, when an appropriate NAPTR record has been selected, the
URI should be extracted from the regexp field. The URI is between
the second and third exclamation points in the string. Once a URI
has been extracted from the NAPTR record, it SHOULD be used as the
Request-URI of the SIP request for which the ENUM query was launched.
Peterson, et al. Expires August 9, 2002 [Page 25]
Internet-Draft Using ENUM for SIP Applications February 2002
SIP clients should perform some sanity checks on the URI, primarily
to ensure that they support the scheme of the URI, but also to verify
that the URI is well-formed. Clients should also check to make sure
that the Request-URI does not target themselves.
Once an address-of-record has been extracted from the selected NAPTR
record, clients should follow the standard SIP mechanisms for
determining how to forward the request. This may involve launching
subsequent NAPTR or SRV queries in order to determine how best to
route to the domain identified by an address-of-record; clients
however MUST NOT make the same query recursively.
Note that SIP requests based on the use of NAPTR records may fail.
If there are multiple NAPTR records relevant to SIP present in an
ENUM record set, then after a failure has occurred on an initial
attempt with one NAPTR record, SIP clients MAY try their request
again with a different NAPTR record from the ENUM record set.
Peterson, et al. Expires August 9, 2002 [Page 26]
Internet-Draft Using ENUM for SIP Applications February 2002
6. Limits of ENUM
This section documents some of the things that ENUM, as it is
described in RFC2916, does not do. ENUM has intentionally limited
its own scope in order to meet certain policy goals, and as a result
there is some potentially desirable functionality for SIP
implementers that might, at first glance at the standard, seem like
something ENUM provides, but which is actually outside the scope of
ENUM as such.
Because these limitations of ENUM are largely self-imposed rather
than technological restrictions, there are of course other
technologies that do not have these constraints. The underlying
NAPTR technology behind ENUM is very flexible, and could be applied
to all manner of translations beyond ENUM; in time, ENUM may expand
its scope to remove some of the limitations described below.
Currently, however, RFC2916 provides a very narrow scope for ENUM
that allows only one specific form of translation.
Specifically, ENUM is not used to query for translations of any of
the following:
Arbitrary strings: Although NAPTR operates on arbitrary strings, ENUM
operates specifically on numbers (telephone numbers, even). No
sorts of textual names, numeric strings unrelated to telephony,
hostnames, URIs or URNs are resolved and translated by ENUM.
Private dialing plans: Many enterprise telephone systems and private
branch exchanges use private dialing plans for internal calls;
commonly, these are abbreviated numbers (like '82600') in which a
single leading digit indicates that the call is local to the
enterprise. ENUM, however, operates only on 'public' numbers that
are ubiquitously reachable in the PSTN.
National numbers: Numbers that are in a national form (such as
'2025332600') rather than an international form ('+12025332600')
will not resolve properly in ENUM. While it is generally trivial
to convert a national number to an international number, ENUM has
no mechanism for doing so - figuring out the country code that
should be appended to a national number would require some
decision in the network based on the originator of the query
(guessing at their location, or somehow matching them to a known
policy). ENUM does not make origination-based policy decisions
when processing queries.
Incomplete E.164 numbers: ENUM has no defined mechanism for servers
to recognize or indicate that they have received an incomplete
address in a query. This might occur, for example, in 'en bloc'
Peterson, et al. Expires August 9, 2002 [Page 27]
Internet-Draft Using ENUM for SIP Applications February 2002
signaling if a user inputs half of a telephone number to a cell
phone and then accidentally hits the 'Talk' button, or in
'overlap' PSTN signaling if only part of the digits dialed by the
user are communicated to a network element when it launches an
ENUM query. If at all possible, network elements that might make
ENUM queries should take care to operate only on complete
addresses.
E.164 number prefixes: A NAPTR record set grouped under a E.164
number prefix (like '+1202533') might signify any of a number of
things. This might be some sort of master record for a zone. It
might signify a record intended for prefix-based routing. It
might even be there to catch incomplete E.164 number translation
attempts. However, the standard is silent about this matter, and
therefore the meaning of these records would be ambiguous at best.
Neither creating records under partial E.164 numbers nor sending
queries for partial E.164 numbers are standard or meaningful
behavior in ENUM.
Peterson, et al. Expires August 9, 2002 [Page 28]
Internet-Draft Using ENUM for SIP Applications February 2002
7. Security Considerations
DNS does not make policy decisions about the records that it shares
with an inquirer. All DNS records must be assumed to be available to
all inquirers at all times. The information provided within an ENUM
record set must therefore be considered to be open to the public -
which is a cause for some privacy considerations.
Ordinarily, when you give someone your telephone number, you don't
expect that they will be able to trivially determine your full name
and place of employment. If, however, you create a NAPTR record for
use with ENUM that maps your telephone number to a SIP URI like
'sip:julia.roberts@vivendi.com', expect to get a lot of calls from
excited fans.
Unlike a traditional telephone number, the target of a SIP URI may
require that callers provide cryptographic credentials for
authentication and authorization before a user is alerted. In this
respect, ENUM in concert with SIP can actually provide far greater
protection from unwanted callers than the existing PSTN, despite the
public availability of ENUM records.
Users of ENUM who are nevertheless uncomfortable with revealing their
names may, since identities on the Internet are not exactly at a
premium, publish a less revealing SIP URI, like
'sip:anonymous00045@vivendi.com' or even
'sip:anonymous00045@anonymous-redirector.com', which could in turn
point to their internal URI.
Peterson, et al. Expires August 9, 2002 [Page 29]
Internet-Draft Using ENUM for SIP Applications February 2002
8. IANA Considerations
This document introduces no new values for any IANA registries.
Peterson, et al. Expires August 9, 2002 [Page 30]
Internet-Draft Using ENUM for SIP Applications February 2002
References
[1] Faltstrom, P., "E.164 number and DNS", RFC 2916, September
2000.
[2] Mockapetris, P., "Domain Names - Concepts and Facilities", RFC
1034, November 1987.
[3] Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform
Resource Identifiers (URI): Generic Syntax", RFC 2396, August
1998.
[4] Handley, M., Schulzrinne, H., Schooler, E. and J. Rosenberg,
"SIP: Session Initiation Protocol", RFC 2543, March 1999.
[5] International Telecommunications Union, "Recommendation E.164:
The international public telecommunication numbering plan", May
1997, <http://www.itu.int>.
[6] Vaha-Sipila, A., "URLs for Telephone Calls", RFC 2806, April
2000.
[7] Rosenberg, J. and H. Schulzrinne, "SIP Caller Preferences and
Callee Capabilities", draft-ietf-sip-callerprefs-05 (work in
progress), November 2001.
[8] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629, June
1999.
[9] Mealling, M. and R. Daniel, "The Naming Authority Pointer
(NAPTR) DNS Resource Record", RFC 2915, September 2000.
[10] Handley, M. and V. Jacobson, "SDP: Session Description
Protocol", RFC 2327, April 1998.
[11] Rosenberg, J., Squire, M. and H. Salama, "Telephony Routing
over IP (TRIP)", draft-ietf-iptel-trip-09 (work in progress),
August 2001.
[12] Mealling, M., "Dynamic Delegation Discovery System (DDDS) Part
One: The Comprehensive DDDS Standard", draft-ietf-urn-ddds-toc-
00 (work in progress), October 2001.
[13] Bush, R., "How ENUM, SIP URIs, TRIP, and Gateways Relate",
draft-ymbk-enum-trip-00 (work in progress), July 2001.
Peterson, et al. Expires August 9, 2002 [Page 31]
Internet-Draft Using ENUM for SIP Applications February 2002
Authors' Addresses
Jon Peterson
NeuStar, Inc.
1800 Sutter St
Suite 570
Concord, CA 94520
USA
Phone: +1 925/363-8720
EMail: jon.peterson@neustar.biz
URI: http://www.neustar.biz/
Hong Liu
NeuStar, Inc.
1120 Vermont St
Suite 400
Washington, DC 2005
USA
Phone: +1 202/533-2600
EMail: hong.liu@neustar.biz
URI: http://www.neustar.biz/
James Yu
NeuStar, Inc.
1120 Vermont St
Suite 400
Washington, DC 2005
USA
Phone: +1 202/533-2814
EMail: james.yu@neustar.biz
URI: http://www.neustar.biz/
Ben Campbell
dynamicosft
5100 Tennyson Parkway
Suite 1200
Plano, TX 75024
USA
EMail: bcampbell@dynamicsoft.com
URI: http://www.dynamicsoft.com/
Peterson, et al. Expires August 9, 2002 [Page 32]
Internet-Draft Using ENUM for SIP Applications February 2002
Appendix A. Acknowledgments
The authors would like to thank Richard Shockey for his input on
privacy issues, and Tom McGarry and Rohan Mahy for overall comments
and analysis.
The question of the relationship of ENUM, TRIP and SIP is also
explored in a Internet-Draft by Randy Bush [13].
This draft was authored in the XML format described in RFC2629 [8].
Peterson, et al. Expires August 9, 2002 [Page 33]
Internet-Draft Using ENUM for SIP Applications February 2002
Appendix B. To Do
Update for DDDS: Once the DDDS [12] document-set has been approved by
the IESG, RFC2915 will become obsolete, and RFC2916 will
presumably be updated accordingly. At such a time new practices
for SIP may need to be identified.
Comparison with TRIP: It might be interesting to stage a comparison
of ENUM-based routing with TRIP [11] along the lines of the
analysis in Section 3.4.
Update for RFC 2543bis: The new SIP RFC will incorporate a number of
changes that are material to the demarcation of ENUM and SIP; once
that work is complete, this document should be updated
accordingly.
Peterson, et al. Expires August 9, 2002 [Page 34]
Internet-Draft Using ENUM for SIP Applications February 2002
Full Copyright Statement
Copyright (C) The Internet Society (2002). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS 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.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
Peterson, et al. Expires August 9, 2002 [Page 35]