RFC 5346
Operational Requirements for ENUM-Based Softswitch Use
Operational Requirements for ENUM-Based Softswitch Use π
Title block tea β: This one is RFC 5346 and it's Informational, which means it's sharing info for the Internet community and is not a standard π€. It came out in October 2008. The authors are J. Lim, W. Kim, C. Park (all from NIDA, the National Internet Development Agency of Korea π°π·) and L. Conroy (from RMRL). The title block doesn't list anything it obsoletes or updates, so it's a standalone doc π¦.
Status of This Memo β¨
okay so this memo is just giving info to the Internet community. It's not specifying any Internet standard of any kind, so don't go treating it like one π ββοΈ. And the good news is that distribution of this memo is unlimited, so share away π .
Abstract πΈ
this doc is all about the experiences and operational requirements for ENUM-based softswitches, specifically around call routing between two Korean Voice over IP (VoIP) carriers. The receipts came from the ENUM pre-commercial trial that NIDA hosted in 2006 π₯.
the big takeaway is that an interim solution can keep ongoing commercial softswitch operations stable during the early days of ENUM service. That's the phase where the DNS doesn't have enough data for most calls yet, so it's giving "we need a bridge" energy π.
Table of Contents π
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Call Routing on Softswitch . . . . . . . . . . . . . . . . . . 2
3. Infrastructure ENUM Trial in Korea . . . . . . . . . . . . . . 3
4. Operational Requirements for ENUM-Based Softswitches . . . . . 4
4.1. Call Routing Cases for DNS Response Codes . . . . . . . . 4
4.1.1. Trial Policies . . . . . . . . . . . . . . . . . . . . 4
4.1.2. Trial ENUM Lookup Rules . . . . . . . . . . . . . . . 6
4.2. Call Routing Cases for Domainparts . . . . . . . . . . . . 7
5. Trial Results . . . . . . . . . . . . . . . . . . . . . . . . 9
6. 'e164.arpa' Considerations . . . . . . . . . . . . . . . . . . 9
7. Security Considerations . . . . . . . . . . . . . . . . . . . 10
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 10
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
9.1. Normative References . . . . . . . . . . . . . . . . . . . 11
9.2. Informative References . . . . . . . . . . . . . . . . . . 11
1. Introduction β¨
okay so ENUM [RFC3761] is a mapping system built on top of DNS [RFC1034] [RFC1035]. Its whole thing is converting an E.164 [E164] number into a domain name, using the Naming Authority Pointer (NAPTR) [RFC3403] resource record type π. ENUM can store different service types for every single E.164 number, like fax, email, homepage, SIP, H.323 and so on. Originally it was all about end-users being able to find each other's communication contact info through the Internet π±.
then people started talking about updating RFC 3761 so it'd also work for the "Infrastructure ENUM" scenario. That's where ENUM gives routing info between carriers, which is a whole new level π. This turned into two docs: the updated ENUM spec [RFC3761bis] and an Enumservice guide [ENUMSERVICE-GUIDE] π§.
Now, when a VoIP carrier wants to mix different protocols, it usually reaches for a softswitch π§. The problem is that softswitches are still kinda inefficient for interconnection, number portability, and sharing protocol support info between carriers. Why? Because each softswitch doesn't have complete end-to-end routing info for all carriers. That info can live in DNS using ENUM, so carriers can expect a ton of perks if they use ENUM inside their softswitches' call routing functions π.
To prove those benefits and check how well ENUM-enabled softswitches actually perform, NIDA teamed up with two Korean VoIP service providers for an Infrastructure ENUM trial in 2006 π°π·β¨. NIDA is a non-profit with a mandate to manage 2.8.e164.arpa. (that's the +82 country code of Korea). It promotes and facilitates technical cooperation nationally between partners, and yep, ENUM is part of that. During the trial, NIDA ran a centralized ENUM DNS that every VoIP service provider used for call routing. And the data was public too, so it was an Internet-based system and not some closed scheme π.
2. Call Routing on Softswitch π¦
in the PSTN (Public Switched Telephone Network), hardware-based switches are the main characters π₯οΈ. A softswitch does the same job, but it's implemented in software on a computer system instead. It usually has to support a bunch of signalling protocols (like SIP [RFC3261], H.323 [H323], Media Gateway Control Protocol (MGCP) [RFC3435], and others) to set up calls for VoIP service, often sitting right on the boundary between the circuit and packet networks π.
So to make a call, a softswitch first has to discover routing info. It takes the E.164 number from a caller and runs it through its own routing table πΊοΈ. The goal is figuring out how the call can be routed toward the callee, so either the call gets processed through the softswitch or the caller can connect to the callee directly. Main character decision-making, honestly π .
Today, call routing is often based on a prefix of the dialled number. That's super common, not just on legacy PSTN switches but on softswitches too π. So here's the tea: if a softswitch relies only on ENUM DNS for call routing, then at the start most of the calls queried to ENUM DNS would fail if only a small group of carriers are putting data into ENUM π. But the more carriers join, the higher a softswitch's success rate with ENUM DNS gets, and the bigger the share of numbers provisioned in ENUM becomes. ngl, ENUM as a long-term solution is obviously worth it. The real problem is the migration, moving from today's prefix-based routing over to that long-term ENUM-based setup π.
3. Infrastructure ENUM Trial in Korea π
like we said in Section 1, NIDA and two VoIP service providers built ENUM-processing modules into their softswitches. They interconnected everything over the IP network and provisioned their trial users' numbers into one centralized ENUM DNS system run by NIDA π«Ά. The carriers provisioned their E.164 numbers using Extensible Provisioning Protocol (EPP) [RFC4114] to a centralized Registration Server (also run by NIDA). And any changes to the ENUM data got pushed to the ENUM DNS instantly, using DNS Dynamic Update [RFC2136] β‘.
In the trial, the EPP-based provisioning sub-system was built and run separately from the carriers' main customer provisioning systems and protocols, so it wasn't integrated π. The reason is that the carriers already had their own customer provisioning systems, totally different from the EPP model. Those were mission-critical, so they weren't open to modification. Nobody touched the crown jewels π.
Here's the trial layout (Figure 1) π:
Call routing
+---------------------------------------------+
| |
| |
+-----+------+ +-----------------+ +------+-----+
|Softswitch A|------| ENUM DNS(+82) |------|Softswitch B|
+-----+------+ | (Tier1,2) | +------+-----+
| +--------+--------+ |
+-----+------+ | +------+-----+
| IP Phone A | |Dynamic Update | IP Phone B |
+------------+ |(RFC 2136) +------------+
|
+------------+ +--------+--------+ +------------+
| EPP Client | | Registration | | EPP Client |
| |------| Server |------| |
+------------+ +-----------------+ +------------+
Provisioning E.164 Numbers(RFC 4114)
Carrier A NIDA Carrier B
Figure 1: Infrastructure ENUM Trial System Topology
4. Operational Requirements for ENUM-Based Softswitches π
4.1. Call Routing Cases for DNS Response Codes π₯
okay so to use ENUM DNS, each softswitch needs an ENUM module. That module converts an E.164 number into the ENUM domain name (as defined in RFC 3761) and then sends a query to the ENUM DNS π§ . It runs the algorithm specified in RFC 3761 to do this, no shortcuts.
BUT here's the catch. In the early stage of ENUM DNS roll-out, ENUM only shares call routing info from a limited number of carriers. So there's the problem that a softswitch can't find all the call routing info it needs just by using ENUM π©. To fix that, ENUM-based softswitches have to follow a consistent set of rules. We'll get into those rules next, so stay tuned πβ¨
4.1.1. Trial Policies β¨
okay so, the trial had a policy π In any "ENUM only" range, meaning a number can only be reached through a URI found in an ENUM lookup and there's no PSTN Point of Interconnect, every number in use was set up to return a NAPTR response. For ranges that did have a PSTN Point of Interconnect, that wasn't required πΈ
So if a number could be reached over the PSTN, no data at all had to be provisioned into its ENUM domain π«Ά The exception was when an IP-based Point of Interconnect also served that number and the serving carrier chose to offer that option.
In the ENUM domains that did have NAPTRs provisioned, every NAPTR was a 'terminal' rule. Non-terminal NAPTRs were not used π ββοΈ If they had been, standard ENUM processing might have needed extra DNS lookups before the full set of NAPTRs for a telephone number could be evaluated. That delay and uncertainty was not considered acceptable π
The case where a valid URI was present is covered in Section 4.1.2 (rule 2 A, second point). The case where no ENUM entry was provisioned for a number with an active PSTN Point of Interconnect is covered in Section 4.1.2 (rule 2 B).
For "ENUM only" ranges where a number was in service (meaning there was an IP-based Point of Interconnect to a carrier), a valid SIP or H.323 URI was always provisioned into the associated ENUM domain π¦ This is covered in Section 4.1.2 (rule 2 A, second point).
In an "ENUM only" range, if the number was not in service, a TXT record was provisioned but no valid NAPTRs were present. This made sure that a NAPTR query for that out-of-service domain would succeed (returning an RCODE of 0) while the number of answers was zero β¨ This is covered in Section 4.1.2 (rule 2 A, first point). This also covers the case where the only NAPTRs in such a zone are ones that can't be used to start a call.
When a valid URI was provisioned, the ENUM lookup finished by returning that value for further processing. That further processing is covered in Section 4.2.
For "ENUM only" ranges there was an extra policy requirement too π An IP-based Point of Interconnect listed inside a NAPTR (as the domainpart of a valid URI) must be accessible to all potential carriers. The server could reject a later SIP Invitation, but its machine address had to resolve. The point was to avoid a mess where the domain name didn't resolve, the softswitch logic tried to place the call over the PSTN, and that attempt failed and/or looped π
This "must resolve" requirement wasn't needed for numbers with an active PSTN Point of Interconnect (which is the vast majority of assigned numbers π). If the domain name didn't resolve there, the call would "drop back" to PSTN processing π
4.1.2. Trial ENUM Lookup Rules π§
In the Korean trial, the rules went like this:
- The ENUM module of the softswitch converts an E.164 number coming from the VoIP subscriber into an ENUM domain name (as defined in RFC 3761) π
- The ENUM module, acting as a DNS stub resolver, sends a query to a recursive name server π‘
- If the ENUM module gets a DNS answer, call routing can branch in several ways depending on the Rcode value in the DNS response message, as shown below π
A. Rcode=0 (No error condition)
There's potentially an answer to the query. Normal call routing needs to tell apart the following situations:
- The response has no URI (like SIP or H.323) that can be used to start a call. In that case the call fails immediately π
- Note: In the trial, a telephone number that is valid, can only be reached via the Internet, but is not currently in service is shown by an ENUM domain that DOES exist but does NOT include any supported (routable) NAPTRs. A softswitch that gets this response treats it as meaning the call can be dropped right away, since it would fail if sent to the PSTN π
- There's at least one usable URI (like SIP and/or H.323 URIs). The softswitch picks one based on the preference and order field values in the NAPTR Resource Record Set, then routes the call using the method in Section 4.2 π¦
B. Rcode=3 (Name error), 1 (Format Error), 2 (Server Failure), 4 (Not Implemented), or 5 (Refused)
There's no valid answer to the query. The softswitch has no choice but to route the call using the E.164 number with its vendor-specific method (like a prefix-based method). In this case, the call has to be delivered through the PSTN for onward call routing π
It's also important to stress that the ENUM DNS servers must respond to all queries they receive from softswitches. If the ENUM module in a softswitch doesn't get a response, it will eventually time out and treat this as a DNS error. But that delay is long compared to normal call setup time, so it should be avoided π©
The trial could have changed the DNS code in each softswitch to use shorter time-outs than normal, to cover a misconfigured DNS server. That option wasn't considered in the trial, though π ββοΈ The softswitch DNS stack was used for several things other than "pure" ENUM lookups, and configuring it in a non-compliant manner was considered unacceptable. It would have to be analyzed thoroughly for its impact on other DNS operations before it could be implemented safely π‘οΈ
4.2. Call Routing Cases for Domainparts πΈ
If the DNS response has a valid URI, such as SIP or H.323, the softswitch can resolve the domain name part of that URI to route the call by searching two different sources. One is a recursive nameserver. The other is a fixed routing table held in the softswitch, which maps the domain name to the corresponding gateway's host name and IP address πΊοΈ
If there are many points of interconnection, a recursive nameserver is useful for resolving domain names. But if there are just a few known carriers and they don't change their interconnection information often, a fixed (internal) routing table mapping domain name to gateway hostname and IP address is more efficient, since you don't have to query the recursive nameserver every single time β‘ On top of that, carriers want to charge an interconnection fee for every call they receive, so they tend to only interconnect with trusted carriers under some kind of bilateral agreement. They may agree on a specific gateway for this purpose, which means the interconnection information is often private to the parties in that particular agreement π€«
In principle, the two approaches could be used in parallel. In practice, though, if the DNS-based approach can be used, there's no point keeping the expensive and elaborate "offline" infrastructure for exchanging and installing domain routing tables πΈ In this trial, uncertainty about the performance and reliability of ENUM-based processing meant the softswitches were configured so they could switch between the two approaches immediately. This was only a temporary expedient, and it wouldn't be a reasonable approach in the long term π₯²
These two types of domain routing are also affected by the Rcode=0 case described in Section 4.1.
There are two choices for routing, described and compared here:
- Case when using a fixed routing table:
A. If the domain name part of the URI is found in the internal fixed routing table, the softswitch can use it.
B. If the domain name part of the URI does not exist in the fixed routing table, the call is forwarded to the PSTN.
- Case when using a recursive nameserver:
A. If the domain name part of the URI can be resolved via the recursive nameserver, the softswitch can use it.
B. If the domain name part of the URI cannot be resolved on the recursive nameserver for any reason (such as a response with no usable resource records according to [RFC3263] and [RFC3261], or with Rcode=1, 2, 3, 4, or 5), the call must be forwarded to the PSTN π²
Case (1) seems inefficient, because the administrator maintains two management points for numbers: the ENUM DNS and the softswitch itself. However, this configuration can minimize the call routing failure ratio during the ENUM transition period, when there are relatively few provisioned ENUM entries and so few IP-based Points Of Interconnection. So case (1) could reasonably be implemented on the softswitches during the trial phase, and afterward, as ENUM entries get populated, case (2) would be a reasonable choice π
With these choices, the two carriers could use ENUM DNS for call routing without any impact on their ongoing commercial VoIP service π«§β¨
5. Trial Results β¨
okay so bestie, this part is where the carriers finally get to show their homework ππ
. To give a stable commercial service, an ENUM-based softswitch has to have a defined performance, just like any non-ENUM-based softswitch does π«Ά. The only real difference between the two is where the call routing info is searched for: it can live inside the softswitch itself, or in the DNS πΈ. So a similar delay for call routing is super important for quality of service, no cap β¨. During the trial, each carrier measured this delay using SIP π. They used the "Answer Delay time," which is the elapsed time between requesting a call (an INVITE message) and getting a response (a 200 OK message) [RFC3261] π.
+------------------------+------+----------+
| Call Type | ENUM | Non-ENUM |
+------------------------+------+----------+
| Carrier A->A | 2.33 | 2.28 |
| Carrier A->B | 2.23 | 2.25 |
| Carrier A->other(PSTN) | 4.11 | 3.79 |
| Carrier B->B | 2.18 | 2.05 |
| Carrier B->A | 2.19 | 2.19 |
| Carrier B->other(PSTN) | 3.95 | 3.41 |
+------------------------+------+----------+
Table 1: Average Answer Delay Time (Sec)
Look at Table 1 and honestly it's giving consistency π¦. The ENUM and non-ENUM numbers are only a second apart at most, so a caller on either carrier literally can't tell which path the call took when it starts π. ENUM definitely works well with softswitches on a commercial basis, periodt π.
To make the trial more realistic, the ENUM-based softswitches used a recursive nameserver that anyone could access publicly π. The team felt a tough condition would be a better test of whether an ENUM-based softswitch can match a non-ENUM one for a commercial VoIP service πͺβ¨.
6. 'e164.arpa' Considerations π
Here's the tea π΅. During the trial, the Infrastructure ENUM deployed in the 2.8.e164.arpa zone could be reached over the (public) Internet π. Each carrier started wondering whether centralised number management under the ENUM DNS is actually realistic π€.
Another drama is who's responsible for routing errors π¬. All carriers can use the shared ENUM data to route calls. But if there are routing errors because the data was provisioned wrong, it isn't always clear who's on the hook or who can fix the data π. The errors happen in the networks of the carriers placing the calls π€. Unless you know which carrier is responsible for delivering service to that phone number, it's not obvious (to the carrier handling the error) who should be told about the problem π’. This gets extra messy when number portability comes into play π.
Also, the carriers asked whether Infrastructure ENUM even needs to be publicly accessible π. To stop telephone numbers from being disclosed, they'd rather access the ENUM DNS privately π«£. So any ENUM module embedded in a softswitch needs to stay flexible enough to handle these concerns during the interim period of ENUM, before common policies and agreements are sorted out π¦π.
7. Security Considerations β οΈ
Okay, this section is serious, so pay attention bestie π€.
This document inherits the security considerations described in RFC 3761 and [RFC5067], because the ENUM DNS used with softswitches in this trial could be accessed publicly π.
On top of that, if the recursive resolvers handling ENUM queries from a softswitch were compromised by an attacker, that attacker could force calls to fail or cause them to be delayed ππ₯. So the DNS resolvers used should allow access from the local network the softswitch is connected to, while restricting access from outside, using a proper access-list policy π‘οΈπ.
8. Acknowledgements π«Ά
Huge thanks to Richard Shockey, Jason Livingood, Karsten Fleischhauer, Jim Reid, and Otmar Lendl, who helped steer this document π, and to Suresh Krishnan, whose GEN-ART review was super helpful πΈ.
9. References π
9.1. Normative References
[E164] ITU-T, "The International Public Telecommunication
Number Plan", Recommendation E.164, February 2005.
[RFC1034] Mockapetris, P., "Domain names - concepts and
facilities", STD 13, RFC 1034, November 1987.
[RFC1035] Mockapetris, P., "Domain names - implementation and
specification", STD 13, RFC 1035, November 1987.
[RFC3403] Mealling, M., "Dynamic Delegation Discovery System
(DDDS) Part Three: The Domain Name System (DNS)
Database", RFC 3403, October 2002.
[RFC3761] Faltstrom, P. and M. Mealling, "The E.164 to Uniform
Resource Identifiers (URI) Dynamic Delegation Discovery
System (DDDS) Application (ENUM)", RFC 3761,
April 2004.
9.2. Informative References
[ENUMSERVICE-GUIDE]
Hoeneisen, B., Mayrhofer, A., and J. Livingood, "IANA
Registration of Enumservices: Guide, Template, and IANA
Considerations", Work in Progress, September 2008.
[H323] ITU-T, "Packet-based multimedia communications
systems", Recommendation H.323, 2003.
[RFC2136] Vixie, P., Thomson, S., Rekhter, Y., and J. Bound,
"Dynamic Updates in the Domain Name System (DNS
UPDATE)", RFC 2136, April 1997.
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G.,
Johnston, A., Peterson, J., Sparks, R., Handley, M.,
and E. Schooler, "SIP: Session Initiation Protocol",
RFC 3261, June 2002.
[RFC3263] Rosenberg, J., "Session Initiation Protocol (SIP):
Locating SIP Servers", RFC 3263, June 2002.
[RFC3435] Andreasen, F. and B. Foster, "Media Gateway Control
Protocol (MGCP) Version 1.0", RFC 3435, January 2003.
[RFC3761bis] Bradner, S., Conroy, L., and K. Fujiwara, "The E.164 to
Uniform Resource Identifiers (URI) Dynamic Delegation
Discovery System (DDDS) Application (ENUM)", Work
in Progress, February 2008.
[RFC4114] Hollenbeck, S., "E.164 Number Mapping for the
Extensible Provisioning Protocol (EPP)", RFC 4114,
June 2005.
[RFC5067] Lind, S. and P. Pfautz, "Infrastructure ENUM
Requirements", RFC 5067, November 2007.
Authors' Addresses π
JoonHyung Lim
National Internet Development Agency of Korea(NIDA)
3F. KTF B/D 1321-11, Seocho-dong, Seocho-gu
Seoul
Korea
Phone: +82-2-2186-4548
EMail: jhlim@nida.or.kr
URI: http://www.nida.or.kr
Weon Kim
National Internet Development Agency of Korea(NIDA)
3F. KTF B/D 1321-11, Seocho-dong, Seocho-gu
Seoul
Korea
Phone: +82-2-2186-4502
EMail: wkim@nida.or.kr
URI: http://www.nida.or.kr
ChanKi Park
National Internet Development Agency of Korea(NIDA)
3F. KTF B/D 1321-11, Seocho-dong, Seocho-gu
Seoul
Korea
Phone: +82-2-2186-4504
EMail: ckp@nida.or.kr
URI: http://www.nida.or.kr
Lawrence Conroy
Roke Manor Research
Roke Manor
Old Salisbury Lane
Romsey
United Kingdom
Phone: +44-1794-833666
EMail: lconroy@insensate.co.uk
URI: http://www.sienum.co.uk
Full Copyright Statement π
Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.
This document and the information contained herein are provided on an "AS IS" basis and 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 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 BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.
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.
π¦ where this page comes from
- ietf: rfc5346 2008-10
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms