ENUM — DNS-based number-to-URI mapping
ENUM (E.164 Number Mapping) is the family of IETF standards for
representing telephone numbers in the Domain Name System. The idea is
elegant: take an E.164 number, turn it into a domain name, and let an
ordinary DNS query return one or more URIs describing how to reach that
number — a sip: address, a tel: URI, an email, whatever the holder
chooses to publish. It reuses the internet’s existing global,
hierarchical, cached lookup system to answer the telephone network’s
oldest question — “where does this number go” — instead of building a
parallel directory.
ENUM is also one of the library’s most instructive case studies in why a
technically clean standard does not automatically win deployment. The
public version, anchored under e164.arpa, never reached critical mass;
the deployments that actually run are private, carrier-operated systems
that solve concrete routing problems without the policy entanglements of
the public model. The gap between the elegant design and the messy
outcome is the interesting part, and it rhymes with questions the trust
framework is still working through.
How it works
The transformation is simple and worth seeing once. Take an E.164 number
— say +1 202 555 0143. Strip everything but the digits, reverse them,
put a dot between each, and append e164.arpa:
3.4.1.0.5.5.5.2.0.2.1.e164.arpa. The reversal mirrors how DNS names
work generally — most specific on the left, and here it means numbers
that share a country code or area code share a DNS suffix, so authority
can be delegated the same way the numbering plan itself delegates.
At that name, ENUM stores NAPTR records (Naming Authority Pointer).
A NAPTR record carries an ordered set of rules — each with a service
type (for example E2U+sip), a priority, and a regular-expression
rewrite that transforms the original number into a target URI. A
resolver walks the records in order and applies the first matching rule,
producing something like sip:+12025550143@example.net. The result is
that a single DNS lookup can return a prioritized list of ways to reach a
number, with fallback, all expressed in standard records on standard
infrastructure. Mechanically it is clean; the difficulty was never the
protocol.
The RFCs
ENUM’s specification history tracks its evolution. The original approach appeared in RFC 2916, was substantially revised as RFC 3761, and that in turn was obsoleted by RFC 6116 (with RFC 6117 cataloguing the registered ENUM service types). The current, citable specification is RFC 6116. The revisions were less about fixing the core mechanism — which stayed recognizable throughout — than about tightening the service-type registry and the operational and provisioning details that a real deployment needs. The planned sub-page will give an annotated reading order through the family.
Public vs private ENUM
The single most important thing to understand about ENUM is the split between its public and private (also called infrastructure or carrier) forms, because that split, not the protocol, decided its fate.
Public ENUM publishes number-to-URI records in the globally
resolvable e164.arpa tree, so anyone can look up anyone’s number and
learn how to reach them. It stalled, and the reasons are governance and
incentive rather than technical. It required a subscriber-facing
provisioning and validation chain — proving you control a number before
publishing records for it — that never cohered at scale. It asked
carriers to expose routing information they regard as competitively
sensitive. And it raised a privacy problem that only sharpened over time:
a public, enumerable directory mapping every phone number to its owner’s
reachable addresses is exactly the correlation surface a numbering system
should not hand out for free.
Private ENUM keeps the same mechanism but runs it inside a carrier or between consenting carriers, on DNS that is not globally published. This is where ENUM actually succeeded. Operators use it for internal routing, for number-portability resolution, and for peering — an inter-carrier ENUM registry lets participating providers resolve each other’s numbers to IP interconnection points without exposing anything publicly. Same records, same queries, bounded trust domain, no public directory. The lesson is one the library returns to often: whether a capability ends up open or enclosed is usually decided by trust and incentive structures, not by whether the technology works.
Use cases in practice
Where ENUM runs, it does unglamorous, valuable work. Number-portability resolution — mapping a number to the carrier currently authoritative for it — is a natural fit, since the portability question is exactly a number-to-current-location lookup. Inter-carrier peering and interconnection routing uses ENUM registries so providers can resolve each other’s numbers to SIP interconnection points and hand calls off over IP rather than legacy trunks. Internal number-to-URI mapping inside a large operator lets a softswitch or application server resolve a dialed number to the right internal endpoint. In every case the value is the same: a standard, cacheable, delegable lookup that turns a number into an actionable address, without a bespoke directory protocol.
ENUM plus encrypted DNS
The most interesting current thread is what an ENUM-plus-encrypted-DNS
architecture could be, because it points straight at the objection that
sank public ENUM. The fatal privacy problem was that public e164.arpa
is an enumerable, cleartext directory — anyone can query any number and
observers can watch the queries. But the DNS transport has moved on: with
DNS over HTTPS or DNS over TLS, queries
are confidential in transit, and modern DNS privacy techniques can limit
what a resolver learns and what can be enumerated. That reopens a
question worth taking seriously — whether a number-mapping system with
the reach of public ENUM but the privacy properties DNS now supports
could carry not just routing but verifiable information about a number.
This is where ENUM stops being a historical footnote and rejoins the live trust work. If a number-indexed lookup can be made private and authenticated, it becomes a plausible discovery layer for exactly the kind of domain-bound, verifiable evidence that VESPER is built around — resolving a number not just to where a call goes, but to checkable evidence about who is authorized to place it. The clean old mechanism and the current privacy substrate may fit together better than either did alone.
Where this fits
ENUM sits at the intersection of several library topics: it maps the telephone numbers whose structure it depends on, it is built on the DNS and domain-trust substrate, it helps route the SIP signaling that carries calls, and its privacy-and-verification frontier connects to VESPER. The planned sub-pages will cover the RFC family, the public/private split in depth, the deployed use cases, and the ENUM-plus-encrypted-DNS opportunity that keeps resurfacing.
Planned
- the rfcs · annotated guide to RFC 3761 (obsoleted), RFC 6116 (current), and supporting documents
- private vs public enum · the architectural distinction that defined the deployment outcomes
- use cases · routing, interconnection, and number-to-uri mapping in practice
- enum plus encrypted dns · the unresolved opportunity that recurs in current work