RFC 5346

Operational Requirements for ENUM-Based Softswitch Use

πŸ“… published October 2008, from ietf

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:

  1. 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) πŸ’–
  2. The ENUM module, acting as a DNS stub resolver, sends a query to a recursive name server πŸ“‘
  3. 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:

  1. 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.

  1. 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

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