RFC 4759
The ENUM Dip Indicator Parameter for the "tel" URI
RFC 4759: The ENUM Dip Indicator Parameter for the "tel" URI πβ¨
Okay bestie, so this is RFC 4759, and it's a Standards Track doc from the Network Working Group π Its title is The ENUM Dip Indicator Parameter for the "tel" URI, and it's dated November 2006. The authors are Richard Stastny (Oefeg), Richard Shockey (Neustar Inc.), and Lawrence Conroy (Roke Manor Research) π Their contact details are at the very end (part 2 π«Ά). The header has no Obsoletes or Updates lines, so this RFC doesn't replace or change any other RFC πΈ
Status of This Memo π
This doc is an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements π¬ For the standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1) π Distribution of this memo is unlimited π
Copyright Notice Β©οΈ
Copyright (C) The IETF Trust (2006).
Abstract π
So this doc defines a brand new parameter called "enumdi" for the "tel" URI, and its whole job is handling ENUM queries in Voice over Internet Protocol (VoIP) network elements π A VoIP network element might get a URI with an E.164 number in it, and if that URI has an "enumdi" parameter, it means a previous VoIP network element already did an ENUM query on that number β¨ And if a VoIP network element sends one of these URIs, it's basically saying "yes, I did the ENUM query on this number" π
Table of Contents ποΈ
1. Introduction ....................................................2
2. Terminology .....................................................2
3. Formal Syntax ...................................................3
4. Normative Rules .................................................3
4.1. Options for ENUM Domain Providers ..........................3
4.2. Client Behaviour for VoIP Network Elements .................3
4.2.1. Handling a URI with the "enumdi" Parameter ..........3
4.2.2. Adding the "enumdi" Parameter to URIs ...............4
4.2.3. Handling a URI Retrieved from ENUM ..................4
5. Examples ........................................................4
6. Security Considerations .........................................5
7. IANA Considerations .............................................5
8. Acknowledgements ................................................6
9. References ......................................................6
9.1. Normative References .......................................6
9.2. Informative References .....................................6
1. Introduction π
Okay so VoIP network elements (that includes User Agent Servers and User Agent Clients) can be set up in different ways to handle E.164 [3] numbers during call setup, and it depends on what capabilities they have π§ One super common approach is to query ENUM as defined in RFC 3761 [4], and then use the set of NAPTR resource records that comes back π
If the ENUM query gives you a result, the call gets set up accordingly β But if the ENUM query doesn't lead to a result in the end, another database might get queried, or the call might eventually get routed to the Public Switched Telephone Network (PSTN) π± When that happens, the call might go to another VoIP network element. To tell that next VoIP element in signalling that an ENUM query was already made for the "tel" URI (specified in RFC 3966 [5]), the "enumdi" parameter gets used. That way the next VoIP network element doesn't waste time repeating redundant queries π¦
2. Terminology π
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, RFC 2119 [1] π
3. Formal Syntax π§©
The following syntax spec uses the Augmented Backus-Naur Form (ABNF) as described in RFC 4234 [2] to extend the syntax of the "par" production defined in the ABNF of RFC 3966 [5] π
par =/ enum-dip-indicator
enum-dip-indicator = ";enumdi"
The enum-dip-indicator is an optional parameter for the "tel" URI πΈ Also, enum-dip-indicator can appear at most once in any "tel" URI, so only one of these per URI, babe π
4. Normative Rules π
4.1. Options for ENUM Domain Providers π’
A domain provider can, at its choosing, populate a NAPTR record with a "tel" URI that contains the enum dip indicator π As a result of the rules stated below, this would tell the client that it should not bother performing a query and should pass the request on instead π«
4.2. Client Behaviour for VoIP Network Elements π€
This section is all about how a VoIP network element handles a received "tel" URI that either contains the "enumdi" parameter, or has queried ENUM in e164.arpa. for a given E.164 number π
4.2.1. Handling a URI with the "enumdi" Parameter π
If a VoIP network element receives a "tel" URI containing the "enumdi" parameter, it SHOULD NOT retrieve the related information for this number from ENUM in e164.arpa., even if it would normally do so π«
Note that the recipient network element may reasonably choose to query ENUM if it doesn't have a trust relationship with the immediate sender of the URI π€
If the "tel" URI (received from a trusted entity) is going to be passed to the next network element, the VoIP network element MUST pass on the received URI containing the "enumdi" parameter unchanged π«Ά
If, however, the URI came from an untrusted entity, then the recipient entity may either strip the parameter before sending the URI onwards, or carry out its own ENUM query and add the parameter accordingly to the URI (see next) π΅οΈββοΈ
4.2.2. Adding the "enumdi" Parameter to URIs β
When a VoIP network element queries ENUM in e164.arpa. for a given E.164 number and the result of the query is DNS error code 3 (commonly known as "NXDOMAIN"), then if that network element chooses to pass the call to another network element by using a "tel" URI, the "enumdi" parameter MUST be set π
4.2.3. Handling a URI Retrieved from ENUM π₯
When a VoIP network element queries ENUM in e164.arpa. for a given E.164 number and either:
- the result of the query includes a NAPTR resource record containing a "tel" URI that has the same E.164 number, or
- the result of the query includes a NAPTR resource record containing a "tel" URI with the "enumdi" parameter set,
then if that retrieved "tel" URI is chosen to be passed to another network element, the sending VoIP network element MUST pass on the retrieved URI with the "enumdi" parameter set π¦
When a VoIP network element queries ENUM in e164.arpa. for a given E.164 number and the result is a "tel" URI with a different E.164 number that lacks the enum dip indicator, the client can either perform another query against that number or pass the request on, as a matter of local policy π
5. Examples π¬
a. Okay so a VoIP network element called server.example.com receives a "tel" URI tel:+441632960038 π« It queries the DNS for NAPTR resource records in 8.3.0.0.6.9.2.3.6.1.4.4.e164.arpa., and gets an error response with code = 3 (commonly known as "NXDOMAIN") π The VoIP network element decides to route the call to the PSTN via another VoIP network element called gw.example.com π±
It therefore signals to the next VoIP network element with:
tel:+441632960038;enumdi
or (using the procedures of RFC 3261 [6] section 19.1.6):
sip:+441632960038;enumdi@gw.example.com;user=phone
b. Same vibe here: a VoIP network element called server.example.com receives a "tel" URI tel:+441632960038 π It queries the DNS for NAPTR resource records in 8.3.0.0.6.9.2.3.6.1.4.4.e164.arpa., and this time it gets the same "tel" URI back in reply (i.e., tel:+441632960038) π
The VoIP network element decides to route the call to the PSTN via another VoIP network element called gw.example.com π
It therefore signals to this next VoIP network element with:
tel:+441632960038;enumdi
or (using the procedures of RFC 3261 [6] section 19.1.6):
sip:+441632960038;enumdi@gw.example.com;user=phone
Part 2 is coming next, bestie! π«Ά It covers Security Considerations, IANA Considerations, Acknowledgements, the References, and the authors' addresses β¨
Full Copyright Statement β¨
okay bestie, the legal bit π«Ά Copyright (C) The IETF Trust (2006). This document is covered by the rights, licenses, and restrictions in BCP 78, and apart from what that says, the authors keep all their rights π
This document and the info in it are given "AS IS", no promises. THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST, AND THE INTERNET ENGINEERING TASK FORCE say they're not giving ANY warranties, express or implied. That includes no promise that using the info won't infringe anyone's rights, and no implied warranties of merchantability or fitness for a particular purpose π
Intellectual Property π¦
The IETF doesn't pick a side on whether any Intellectual Property Rights or other rights that might be claimed for the technology in this document are valid or how far they reach. It also doesn't say whether licenses for those rights are actually available. And it hasn't claimed to have done any independent digging to find such rights π If you want the details on how rights work for RFC documents, check BCP 78 and BCP 79.
Copies of IPR disclosures sent to the IETF Secretariat, plus any assurances that licenses will be made available, are in the IETF's online IPR repository at http://www.ietf.org/ipr. You can also find the result of any attempt to get a general license or permission to use those proprietary rights, for implementers or users of this specification π₯
The IETF also welcomes anyone to flag copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard. Send that to the IETF at ietf-ipr@ietf.org β¨
Acknowledgement πΈ
The RFC Editor function is currently funded by the Internet Society. Thank you, Internet Society π«Άπ
π¦ where this page comes from
- ietf: rfc4759 2006-12
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms