1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893
|
<pre>Network Working Group J. Peterson
Request for Comments: 3824 H. Liu
Category: Informational J. Yu
NeuStar
B. Campbell
dynamicsoft
June 2004
<span class="h1">Using E.164 numbers with the Session Initiation Protocol (SIP)</span>
Status of this Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2004).
Abstract
There are a number of contexts in which telephone numbers are
employed by Session Initiation Protocol (SIP) applications, many of
which can be addressed by ENUM. Although SIP was one of the primary
applications for which ENUM was created, there is nevertheless a need
to define procedures for integrating ENUM with SIP implementations.
This document illustrates how the two protocols might work in
concert, and clarifies the authoring and processing of ENUM records
for SIP applications. It also provides guidelines for instances in
which ENUM, for whatever reason, cannot be used to resolve a
telephone number.
Table of Contents
<a href="#section-1">1</a>. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-2">2</a>
<a href="#section-2">2</a>. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-3">3</a>
<a href="#section-3">3</a>. Handling Telephone Numbers in SIP . . . . . . . . . . . . . . <a href="#page-3">3</a>
<a href="#section-4">4</a>. Design Principles . . . . . . . . . . . . . . . . . . . . . . <a href="#page-5">5</a>
<a href="#section-5">5</a>. Authoring NAPTR Records for SIP . . . . . . . . . . . . . . . <a href="#page-6">6</a>
<a href="#section-5.1">5.1</a>. The Service Field . . . . . . . . . . . . . . . . . . . <a href="#page-6">6</a>
<a href="#section-5.2">5.2</a>. Creating the Regular Expression: Matching . . . . . . . <a href="#page-6">6</a>
<a href="#section-5.3">5.3</a>. Creating the Regular Expression: The URI . . . . . . . . <a href="#page-7">7</a>
<a href="#section-5.4">5.4</a>. Setting Order and Preference amongst Records . . . . . . <a href="#page-8">8</a>
5.5. Example of a Well-Formed ENUM NAPTR Record Set for SIP. 8
<a href="#section-6">6</a>. Processing ENUM Records . . . . . . . . . . . . . . . . . . . <a href="#page-8">8</a>
<a href="#section-6.1">6.1</a>. Contending with Multiple SIP records . . . . . . . . . . <a href="#page-8">8</a>
<span class="grey">Peterson, et al. Informational [Page 1]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-2" ></span>
<span class="grey"><a href="./rfc3824">RFC 3824</a> SIPPING E.164 June 2004</span>
<a href="#section-6.2">6.2</a>. Processing the Selected NAPTR Record . . . . . . . . . . <a href="#page-9">9</a>
<a href="#section-7">7</a>. Compatibility with <a href="./rfc3761">RFC 3761</a>. . . . . . . . . . . . . . . . . . <a href="#page-10">10</a>
<a href="#section-8">8</a>. Security Considerations . . . . . . . . . . . . . . . . . . . <a href="#page-11">11</a>
<a href="#section-9">9</a>. References . . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-11">11</a>
<a href="#section-9.1">9.1</a>. Normative References . . . . . . . . . . . . . . . . . . <a href="#page-11">11</a>
<a href="#section-9.2">9.2</a>. Informative References . . . . . . . . . . . . . . . . . <a href="#page-12">12</a>
<a href="#appendix-A">A</a>. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-14">14</a>
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . <a href="#page-15">15</a>
Full Copyright Statement . . . . . . . . . . . . . . . . . . . <a href="#page-16">16</a>
<span class="h2"><a class="selflink" id="section-1" href="#section-1">1</a>. Introduction</span>
ENUM (E.164 Number Mapping, <a href="./rfc3761">RFC 3761</a> [<a href="#ref-1" title=""E.164 to Uniform Resource Identifiers (URI) Dynamic Delegation Discovery System (DDDS) Application (ENUM)"">1</a>]) is a system that uses DNS
(Domain Name Service, <a href="./rfc1034">RFC 1034</a> [<a href="#ref-4" title=""Domain Names - Concepts and Facilities"">4</a>]) in order to translate certain
telephone numbers, like '+12025332600', into URIs (Uniform Resource
Identifiers, <a href="./rfc2396">RFC 2396</a> [<a href="#ref-9" title=""Uniform Resource Identifiers (URI): Generic Syntax"">9</a>]), 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. E.164 [<a href="#ref-10" title=""Recommendation E.164: The international public telecommunication numbering plan"">10</a>] is the ITU-T standard international
numbering plan, under which all globally-reachable telephone numbers
are organized.
SIP (Session Initiation Protocol, <a href="./rfc3261">RFC 3261</a> [<a href="#ref-2" title=""SIP: Session Initiation Protocol"">2</a>]) 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 most widespread application for SIP today is Voice-over-IP
(VoIP). As such, there are a number of cases in which SIP
applications are forced to contend with telephone numbers.
Unfortunately, telephone numbers cannot be routing in accordance with
the traditional DNS resolution procedures standardized for SIP (see
[<a href="#ref-14" title=""Session Initiation Protocol: Locating SIP Servers"">14</a>]), which rely on SIP URIs. ENUM provides a method for
translating E.164 numbers into URIs, including potentially SIP URIs.
This document therefore provides an account of how SIP can handle
telephone numbers by making use of ENUM. 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.
The guidelines in this document are oriented towards authoring and
processing ENUM records specifically for SIP applications. These
guidelines assume that the reader is familiar with Naming Authority
Pointer (NAPTR) records (<a href="./rfc3403">RFC 3403</a> [<a href="#ref-6" title=""Dynamic Delegation Discovery System (DDDS) Part Three: The Domain Name System (DNS) Database"">6</a>]) and ENUM (<a href="./rfc3761">RFC 3761</a> [<a href="#ref-1" title=""E.164 to Uniform Resource Identifiers (URI) Dynamic Delegation Discovery System (DDDS) Application (ENUM)"">1</a>]). Only
those aspects of NAPTR record authoring and processing that have
<span class="grey">Peterson, et al. Informational [Page 2]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-3" ></span>
<span class="grey"><a href="./rfc3824">RFC 3824</a> SIPPING E.164 June 2004</span>
special bearing on SIP, or that require general clarification, are
covered in this document; these procedures do not update or override
the NAPTR or ENUM core documents.
Note that the ENUM specification has undergone a revision shortly
before the publication of this document, driven by the update of the
NAPTR system described in <a href="./rfc2915">RFC 2915</a> [<a href="#ref-12" title=""The Naming Authority Pointer (NAPTR) DNS Resource Record"">12</a>] to the Dynamic Delegation
Discovery System (DDDS) family of specifications (including <a href="./rfc3403">RFC</a>
<a href="./rfc3403">3403</a>). This document therefore provides some guidance for handling
records designed for the original <a href="./rfc2916">RFC 2916</a> [<a href="#ref-16" title=""E.164 number and DNS"">16</a>].
The remainder of this document is organized as follows: <a href="#section-3">Section 3</a>
suggests general behavior for SIP user agents that encounter
telephone numbers; <a href="#section-4">Section 4</a> provides an overview of the intersection
of SIP and ENUM; proposed normative guidelines for ENUM record
authoring and processing in the context of SIP are described in
<a href="#section-5">Section 5</a>, and <a href="#section-6">Section 6</a> respectively; some considerations relevant
to the revision of <a href="./rfc2916">RFC 2916</a> are given in <a href="#section-7">Section 7</a>.
<span class="h2"><a class="selflink" id="section-2" href="#section-2">2</a>. Terminology</span>
In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as
described in <a href="./rfc2119">RFC 2119</a> [<a href="#ref-3" title=""Key words for use in RFCs to Indicate Requirement Levels"">3</a>] and indicate requirement levels for
compliant SIP implementations.
<span class="h2"><a class="selflink" id="section-3" href="#section-3">3</a>. Handling Telephone Numbers in SIP</span>
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 most cases, these are requests for
a telephony session (voice communication), though numerous other
services are also reached through telephone numbers (including
instant messaging services).
Unlike a URI, a telephone number does not contain a host name, or any
hints as to where one might deliver a request targeting a telephone
number on the Internet. While SIP user agents or proxy servers could
be statically provisioned with a mapping of destinations
corresponding to particular telephone numbers or telephone number
<span class="grey">Peterson, et al. Informational [Page 3]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-4" ></span>
<span class="grey"><a href="./rfc3824">RFC 3824</a> SIPPING E.164 June 2004</span>
ranges, considering the size and complexity of a complete mapping, it
would be preferable for SIP user agents to be able to query as needed
for a destination appropriate for a particular telephone number.
In such cases a user agent might use ENUM to discover a URI
associated with the E.164 number - including a SIP URI. URIs
discovered through ENUM can then be used normally to route SIP
requests to their destination. Note that support for the NAPTR DNS
resource record format is specified for ordinary SIP URI processing
in [<a href="#ref-14" title=""Session Initiation Protocol: Locating SIP Servers"">14</a>], and thus support for ENUM is not a significant departure
from baseline SIP DNS routing.
Most of the remainder of this document provides procedures for the
use of ENUM, but a few guidelines are given in the remainder of this
section for cases in which ENUM is not used, for whatever reason.
If a user agent is unable to translate an E.164 number with ENUM, 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 <a href="./rfc2806">RFC 2806</a> [<a href="#ref-8" title=""URLs for Telephone Calls"">8</a>] 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 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 can contain a tel URL (without the scheme string, like
sip:+12025332600@carrier.com;user=phone). 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.
In the absence of support for ENUM, or if ENUM requests return no
records corresponding to a telephone number, local policy can be used
to determine how to forward SIP requests with an E.164 number in the
Request-URI. Frequently, such calls are routed to gateways that
interconnect SIP networks with the PSTN. These proxy server policies
might be provisioned dynamically with routing information for
telephone numbers by TRIP [<a href="#ref-15" title=""Telephony Routing over IP (TRIP)"">15</a>]. As a matter of precedence, SIP user
agents should attempt to translate telephone numbers to URIs with
ENUM, if implemented, before creating a tel URL, and deferring the
routing of this request to a SIP proxy server.
<span class="grey">Peterson, et al. Informational [Page 4]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-5" ></span>
<span class="grey"><a href="./rfc3824">RFC 3824</a> SIPPING E.164 June 2004</span>
<span class="h2"><a class="selflink" id="section-4" href="#section-4">4</a>. Design Principles</span>
Although the applicability of ENUM to SIP has always been clear, the
exact way in which the two should cooperate has been a subject of
some controversy. How many SIP URIs should appear in ENUM, what kind
of URIs they are, whether or not the "service" field of NAPTR records
should contain capability information - numerous questions have
arisen around the authoring, and interpretation of ENUM records for
SIP consumers. The following, then, is a statement of the particular
philosophy that has motivated the recommendations in this document:
Address-of-record SIP URIs appear in ENUM, not contact address
URIs. Roughly speaking, an address-of-record is the canonical
identity of a SIP user - it usually appears in the From field of
SIP requests sent by that user; a contact address is the URI of a
device. The process of registration in SIP (using the REGISTER
method), for example, temporarily binds the contact address of a
device to the address-of-record of a user. A DNS record has a
long time-to-live when compared with the timeframe of SIP
registrations. The availability of an address-of-record also
transcends the availability of any single device. ENUM is more
suitable for representing an long-term identity than the URI of
any device with which a user is temporarily associated. If ENUM
were purposed to map to specific devices, it would be better to
translate telephone numbers to IPv4 addresses than to URIs (which
express something richer).
SIP URIs in ENUM do not convey capability information. SIP has
its own methods for negotiating capability information between
user agents (see SDP [<a href="#ref-13" title=""SDP: Session Description Protocol"">13</a>], the use of Require/Supported to
negotiate extensions in <a href="./rfc3261">RFC 3261</a>, and callee capabilities [<a href="#ref-11" title=""Indicating User Agent Capabilities in the Session Initiation Protocol (SIP)"">11</a>]);
providing more limited capability information within ENUM is at
best redundant and at worst potentially misleading to SIP's
negotiation system. Also, addresses-of-record do not have
capabilities (only devices registered under an address-of-record
have actual capabilities), and putting contact addresses in ENUM
is not recommended.
Only one SIP URI, ideally, appears in an ENUM record set for a
telephone number. While it may initially seem attractive to
provide multiple SIP URIs that reach the same user within ENUM, if
there are multiple addresses at which a user can be contacted,
considerably greater flexibility is afforded if multiple URIs are
managed by a SIP location service that is identified by a single
record in ENUM. Behavior for parallel and sequential forking in
SIP, for example, is better managed in SIP than in a set of ENUM
records.
<span class="grey">Peterson, et al. Informational [Page 5]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-6" ></span>
<span class="grey"><a href="./rfc3824">RFC 3824</a> SIPPING E.164 June 2004</span>
User agents, rather than proxy servers, should process ENUM
records. The assumptions underlying the processing of NAPTR
records dictate that the ENUM client knows the set of enumservices
supported by the entity that is attempting to communicate. A SIP
proxy server is unlikely to know the enumservices supported by the
originator of a SIP request.
<span class="h2"><a class="selflink" id="section-5" href="#section-5">5</a>. Authoring NAPTR Records for SIP</span>
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).
<span class="h3"><a class="selflink" id="section-5.1" href="#section-5.1">5.1</a>. The Service Field</span>
The Service field of a NAPTR record (per <a href="./rfc3403">RFC 3403</a>) contains a string
token that designates the protocol or service associated with a
particular record (and which imparts some inkling of the sort of URI
that will result from the use of the record). ENUM [<a href="#ref-1" title=""E.164 to Uniform Resource Identifiers (URI) Dynamic Delegation Discovery System (DDDS) Application (ENUM)"">1</a>] requires the
IANA registration of service fields known as "enumservices".
An enumservice for SIP has been developed in the ENUM working group
(see [<a href="#ref-7" title=""enumservice registration for SIP Addresses-of- Record"">7</a>]) which uses the format 'E2U+sip' to designate that a SIP
address-of-record appears in the URI field of a NAPTR record. It is
strongly RECOMMENDED that authors of NAPTR records use the 'E2U+sip'
service field whenever the regexp contains a SIP address-of-record
URI.
<span class="h3"><a class="selflink" id="section-5.2" href="#section-5.2">5.2</a>. Creating the Regular Expression: Matching</span>
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
<span class="grey">Peterson, et al. Informational [Page 6]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-7" ></span>
<span class="grey"><a href="./rfc3824">RFC 3824</a> SIPPING E.164 June 2004</span>
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 core specification.
When a NAPTR record is processed, the expression in the antecedent is
matched against the starting string (for ENUM, the telephone number)
to assist in locating the proper record in a set; 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 will usually be unnecessary. In such cases, the
antecedent of the regular expression is commonly 'greedy' - it uses
the regexp '^.*$', which matches any starting string. Some authors
of ENUM record sets may want to use the full power of regexps, and
create non-greedy antecedents; the DDDS standard requires that ENUM
resolvers support these regexps when they are present. For providing
a trivial mapping from a telephone number to a SIP URI, the use of a
greedy regexp usually suffices.
Example: "!^.*$!sip:user@example.com!"
Note that when the antecedent of the regexp is greedy, this does not
mean that the replacement field in NAPTR records provides a viable
alternative to authoring with a regexp. Authors of NAPTR records for
ENUM MUST NOT use the replacement field in records with an 'E2U+sip'
service field.
<span class="h3"><a class="selflink" id="section-5.3" href="#section-5.3">5.3</a>. Creating the Regular Expression: The URI</span>
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' URIs,
'im' or 'pres' URIs, or others that describe specific services that
might be invoked through SIP are all potentially candidates. While
the use of these URIs 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
SIP.
It is RECOMMENDED that authors of ENUM records should always use the
SIP or SIPS URI scheme when the service field is 'E2U+sip', and the
URIs in question MUST be addresses-of-record, not contact addresses.
Users of SIP can register one or more contact addresses with a SIP
registrar that will be consulted by the proxy infrastructure of an
administrative domain to contact the end user when requests are
<span class="grey">Peterson, et al. Informational [Page 7]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-8" ></span>
<span class="grey"><a href="./rfc3824">RFC 3824</a> SIPPING E.164 June 2004</span>
received for their address-of-record. 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 needs
to target specific devices rather than URIs, then a hypothetical
'E2IPv4+sip' enumservice would be more appropriate.
<span class="h3"><a class="selflink" id="section-5.4" href="#section-5.4">5.4</a>. Setting Order and Preference amongst Records</span>
For maximal compatibility authors of ENUM records for SIP 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.
<span class="h3"><a class="selflink" id="section-5.5" href="#section-5.5">5.5</a>. Example of a Well-Formed ENUM NAPTR Record Set for SIP</span>
$ORIGIN 0.0.6.2.3.3.5.2.0.2.1.e164.arpa.
IN NAPTR 100 10 "u" "E2U+sip" "!^.*$!sip:user@example.com!" .
IN NAPTR 100 20 "u" "E2U+mailto" "!^.*$!mailto:info@example.com!" .
<span class="h2"><a class="selflink" id="section-6" href="#section-6">6</a>. Processing ENUM Records</span>
These guidelines do not by any means exhaustively describe the NAPTR
algorithm or the processing of NAPTR records; implementers should
familiarize themselves with the DDDS algorithm and ENUM before
reviewing this section.
Although in some cases, ENUM record sets will consist only a single
'E2U+sip' record, this section assumes that integrators of ENUM and
SIP 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.
<span class="h3"><a class="selflink" id="section-6.1" href="#section-6.1">6.1</a>. Contending with Multiple SIP records</span>
If an ENUM query returns multiple NAPTR records that have a service
field of 'E2U+sip', or other service field that may be used by SIP
(such as 'E2U+pres', see [<a href="#ref-17" title=""Enumservice Registration for Presence Services"">17</a>]) 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
<a href="#section-4">Section 4</a>.
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 given NAPTR records have different preferences,
the most preferred record SHOULD be used. If two or more records
<span class="grey">Peterson, et al. Informational [Page 8]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-9" ></span>
<span class="grey"><a href="./rfc3824">RFC 3824</a> SIPPING E.164 June 2004</span>
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 SIP intermediary that can act a redirect
server, then it SHOULD return a 3xx response with more than one
Contact header field corresponding to the multiple selected 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 response.
Otherwise, if the ENUM client is a SIP intermediary that can act as a
proxy server, then it MAY fork the request when it receives multiple
appropriate 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. However, the proxy MUST build a
route set from these NAPTR records that consists exclusively of SIP
or SIPS URIs, not other URI schemes. 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 - though again,
it MUST select a record that contains a SIP or SIPS URI. Note that
there are significant limitations 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 performing an ENUM query.
<span class="h3"><a class="selflink" id="section-6.2" href="#section-6.2">6.2</a>. Processing the Selected NAPTR Record</span>
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.
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 MUST at least verify that the
Request-URI does not target themselves.
Once an address-of-record has been extracted from the selected NAPTR
record, clients follow the standard SIP mechanisms (see [<a href="#ref-14" title=""Session Initiation Protocol: Locating SIP Servers"">14</a>]) for
determining how to forward the request. This may involve launching
subsequent NAPTR or SRV queries in order to determine how best to
<span class="grey">Peterson, et al. Informational [Page 9]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-10" ></span>
<span class="grey"><a href="./rfc3824">RFC 3824</a> SIPPING E.164 June 2004</span>
route to the domain identified by an address-of-record; clients
however MUST NOT make the same ENUM query recursively (if the URI
returned by ENUM is or contains a tel URL, see [<a href="#ref-8" title=""URLs for Telephone Calls"">8</a>]).
Note that SIP requests based on the use of NAPTR records may fail for
any number of reasons. 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 user agents
MAY try their request again with a different NAPTR record from the
ENUM record set.
<span class="h2"><a class="selflink" id="section-7" href="#section-7">7</a>. Compatibility with <a href="./rfc2916">RFC 2916</a></span>
The ENUM specification is currently undergoing a revision in the ENUM
WG. The new specification, <a href="./rfc3761">RFC 3761</a> [<a href="#ref-1" title=""E.164 to Uniform Resource Identifiers (URI) Dynamic Delegation Discovery System (DDDS) Application (ENUM)"">1</a>], is based on the Dynamic
Delegation Discovery System [<a href="#ref-5" title=""Dynamic Delegation Discovery System (DDDS) Part One: The Comprehensive DDDS"">5</a>] revision to the NAPTR resource record
specified in <a href="./rfc2915">RFC 2915</a> [<a href="#ref-12" title=""The Naming Authority Pointer (NAPTR) DNS Resource Record"">12</a>]. For the most part, DDDS is an
organizational revision that makes the algorithmic aspects of record
processing separable from any underlying database format (such as the
NAPTR DNS resource record).
The most important revision in <a href="./rfc3761">RFC 3761</a> is the concept of
enumservices. The original ENUM specification, <a href="./rfc2916">RFC 2916</a>, specified a
number of "service" values that could be used for ENUM, including the
"sip+E2U" service field. <a href="./rfc3761">RFC 3761</a> introduces an IANA registration
system with new guidelines for the registration of enumservices,
which are no longer necessarily divided into discreet "service" and
"protocol" fields, and which admit of more complex structures. In
order to differentiate enumservices in <a href="./rfc3761">RFC 3761</a> from those in <a href="./rfc2916">RFC</a>
<a href="./rfc2916">2916</a>, the string "E2U" is the leading element in an enumservice
field, whereas by <a href="./rfc2916">RFC 2916</a> it was the trailing element.
An enumservice for SIP addresses-of-record is described in [<a href="#ref-7" title=""enumservice registration for SIP Addresses-of- Record"">7</a>]. This
enumservice uses the enumservice field "E2U+sip". <a href="./rfc3761">RFC 3761</a>-compliant
authors of ENUM records for SIP MUST therefore use the "E2U+sip"
enumservice field instead of the "sip+E2U" field. For backwards
compatibility with existing legacy records, however, the 'sip+E2U'
field SHOULD be supported by an ENUM client that support SIP.
Also note that the terminology of DDDS differs in a number of
respects from the initial NAPTR terminology in <a href="./rfc2916">RFC 2916</a>. DDDS
introduces the concept of an Application, an Application Specific
String, a First Well Known Rule, and so on. The terminology used in
this document is a little looser (it refers to a 'starting string',
for example, where 'Application Specific String' would be used for
DDDS). The new terminology is reflected in <a href="./rfc3761">RFC 3761</a>.
<span class="grey">Peterson, et al. Informational [Page 10]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-11" ></span>
<span class="grey"><a href="./rfc3824">RFC 3824</a> SIPPING E.164 June 2004</span>
<span class="h2"><a class="selflink" id="section-8" href="#section-8">8</a>. Security Considerations</span>
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
'julia.roberts@example.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@example.com' or even
'sip:anonymous00045@anonymous-redirector.example.org', which could in
turn point to their internal URI.
An analysis of threats specific to the dependence of ENUM on the DNS,
and the applicability of DNSSEC [<a href="#ref-18" title=""Protocol Modifications for the DNS Security Extensions"">18</a>] to these, is provided in [<a href="#ref-1" title=""E.164 to Uniform Resource Identifiers (URI) Dynamic Delegation Discovery System (DDDS) Application (ENUM)"">1</a>].
<span class="h2"><a class="selflink" id="section-9" href="#section-9">9</a>. References</span>
<span class="h3"><a class="selflink" id="section-9.1" href="#section-9.1">9.1</a>. Normative References</span>
[<a id="ref-1">1</a>] Faltstrom, P. and M. Mealling, "E.164 to Uniform Resource
Identifiers (URI) Dynamic Delegation Discovery System (DDDS)
Application (ENUM)", <a href="./rfc3761">RFC 3761</a>, April 2004.
[<a id="ref-2">2</a>] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
Session Initiation Protocol", <a href="./rfc3261">RFC 3261</a>, May 2002.
[<a id="ref-3">3</a>] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", <a href="https://www.rfc-editor.org/bcp/bcp14">BCP 14</a>, <a href="./rfc2119">RFC 2119</a>, March 1997.
<span class="grey">Peterson, et al. Informational [Page 11]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-12" ></span>
<span class="grey"><a href="./rfc3824">RFC 3824</a> SIPPING E.164 June 2004</span>
[<a id="ref-4">4</a>] Mockapetris, P., "Domain Names - Concepts and Facilities",
STD13, <a href="./rfc1034">RFC 1034</a>, November 1987.
[<a id="ref-5">5</a>] Mealling, M., "Dynamic Delegation Discovery System (DDDS) Part
One: The Comprehensive DDDS", <a href="./rfc3401">RFC 3401</a>, October 2002.
[<a id="ref-6">6</a>] Mealling, M., "Dynamic Delegation Discovery System (DDDS) Part
Three: The Domain Name System (DNS) Database", <a href="./rfc3403">RFC 3403</a>,
October 2002.
[<a id="ref-7">7</a>] Peterson, J., "enumservice registration for SIP Addresses-of-
Record", <a href="./rfc3764">RFC 3764</a>, April 2004.
[<a id="ref-8">8</a>] Vaha-Sipila, A., "URLs for Telephone Calls", <a href="./rfc2806">RFC 2806</a>, April
2000.
[<a id="ref-9">9</a>] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifiers (URI): Generic Syntax", <a href="./rfc2396">RFC 2396</a>, August
1998.
<span class="h3"><a class="selflink" id="section-9.2" href="#section-9.2">9.2</a>. Informative References</span>
[<a id="ref-10">10</a>] International Telecommunications Union, "Recommendation E.164:
The international public telecommunication numbering plan", May
1997, <<a href="http://www.itu.int">http://www.itu.int</a>>.
[<a id="ref-11">11</a>] Rosenberg, J., Schulzrinne, H. and P. Kyzviat, "Indicating User
Agent Capabilities in the Session Initiation Protocol (SIP)",
Work in Progress, June 2003.
[<a id="ref-12">12</a>] Mealling, M. and R. Daniel, "The Naming Authority Pointer
(NAPTR) DNS Resource Record", <a href="./rfc2915">RFC 2915</a>, September 2000.
[<a id="ref-13">13</a>] Handley, M. and V. Jacobson, "SDP: Session Description
Protocol", <a href="./rfc2327">RFC 2327</a>, April 1998.
[<a id="ref-14">14</a>] Rosenberg, J. and H. Schulzrinne, "Session Initiation Protocol:
Locating SIP Servers", <a href="./rfc3263">RFC 3263</a>, June 2002.
[<a id="ref-15">15</a>] Rosenberg, J., Squire, M., and H. Salama, "Telephony Routing
over IP (TRIP)", <a href="./rfc3219">RFC 3219</a>, August 2001.
[<a id="ref-16">16</a>] Faltstrom, P., "E.164 number and DNS", <a href="./rfc2916">RFC 2916</a>, September
2000.
<span class="grey">Peterson, et al. Informational [Page 12]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-13" ></span>
<span class="grey"><a href="./rfc3824">RFC 3824</a> SIPPING E.164 June 2004</span>
[<a id="ref-17">17</a>] Peterson, J., <a style="text-decoration: none" href='https://www.google.com/search?sitesearch=datatracker.ietf.org%2Fdoc%2Fhtml%2F&q=inurl:draft-+%22Enumservice+Registration+for+Presence+Services%22'>"Enumservice Registration for Presence Services"</a>,
Work in Progress, February 2003.
[<a id="ref-18">18</a>] Arends, R., et al., "Protocol Modifications for the DNS
Security Extensions", Work in Progress, May 2004.
<span class="grey">Peterson, et al. Informational [Page 13]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-14" ></span>
<span class="grey"><a href="./rfc3824">RFC 3824</a> SIPPING E.164 June 2004</span>
<span class="h2"><a class="selflink" id="appendix-A" href="#appendix-A">Appendix A</a>. Acknowledgments</span>
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. Thanks are due as well to Juan Heinanen and Lawrence
E. Conroy for advice on updating this document to better reflect <a href="./rfc3761">RFC</a>
<a href="./rfc3761">3761</a>. Special thanks are given to Patrik Faltstrom and Michael
Mealling for significantly reducing the size of this document by
producing a tight and well-specified successor to <a href="./rfc2916">RFC 2916</a>. Richard
Stastny and Patrik Faltstrom also provided valuable notes on the
valid usage of non-greedy regexp antecedents.
<span class="grey">Peterson, et al. Informational [Page 14]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-15" ></span>
<span class="grey"><a href="./rfc3824">RFC 3824</a> SIPPING E.164 June 2004</span>
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: <a href="http://www.neustar.biz/">http://www.neustar.biz/</a>
Hong Liu
NeuStar, Inc.
46000 Center Oak Plaza
Sterling, VA 20166
USA
EMail: hong.liu@neustar.biz
URI: <a href="http://www.neustar.biz/">http://www.neustar.biz/</a>
James Yu
NeuStar, Inc.
46000 Center Oak Plaza
Sterling, VA 20166
USA
Phone: +1 571/434-5572
EMail: james.yu@neustar.biz
URI: <a href="http://www.neustar.biz/">http://www.neustar.biz/</a>
Ben Campbell
dynamicsoft
5100 Tennyson Parkway
Suite 1200
Plano, TX 75024
USA
EMail: bcampbell@dynamicsoft.com
URI: <a href="http://www.dynamicsoft.com/">http://www.dynamicsoft.com/</a>
<span class="grey">Peterson, et al. Informational [Page 15]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-16" ></span>
<span class="grey"><a href="./rfc3824">RFC 3824</a> SIPPING E.164 June 2004</span>
Full Copyright Statement
Copyright (C) The Internet Society (2004). This document is subject
to the rights, licenses and restrictions contained in <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a>, and
except as set forth therein, the authors retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF 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 <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a> and <a href="https://www.rfc-editor.org/bcp/bcp79">BCP 79</a>.
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
<a href="http://www.ietf.org/ipr">http://www.ietf.org/ipr</a>.
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 ietf-
ipr@ietf.org.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
Peterson, et al. Informational [Page 16]
</pre>
|