Visual RFC.
ALL RFCs / RFC 3966
Read the RFC ↗
RFC 3966 / TELEPHONE NUMBER IDENTIFIERS

Compare identifiers without guessing a route

05

Compare number form, number digits and parameters. Matching digits alone do not make two tel URIs equivalent.

RFC 3966 · § 4EXAMPLE
4 / 4
04
Keep global and local forms apart

A local number plus numeric phone-context is not compared by concatenating it into a global number. Different forms fail the equivalence gate before routing is considered.

Compare identifiers without guessing a routeA local number plus numeric phone-context is not compared by concatenating it into a global number. Different forms fail the equivalence gate before routing is considered.Keep global and local forms aparttel:+19145558631234tel:863-1234;phone-context=+1-914-555Not equivalentGlobal and local are different forms

Key idea: URI equivalence is a defined identifier comparison, not a prediction that calls reach the same place.

Terms
tel URI
A Uniform Resource Identifier for a telephone number. tel names the telephone scheme; it is not an instruction to dial.
Global number
A number written with a leading + and its international country and national number.
Local number / context
A number meaningful within an identified scope, such as a private phone system. The context distinguishes otherwise identical local numbers.

Look up a term in the glossary ↗

Rules & examples
  • Equivalent URIs must both use global form or both use local form. Compare number digits after removing visual separators; URI comparison is case-insensitive.
  • Compare phone-context as a host name for domain contexts or digit by digit after removing visual separators for numeric contexts. Resolving two different domain labels to the same address is not a reason to erase the context distinction.
  • Match parameter names regardless of their order for comparison, and require the same set of parameter names and matching values. This comparison rule does not relax the separate MUST ordering rule for authored URIs in §3. All parameter names and values SHOULD use lower case for contexts that compare strings case-sensitively.
  • A missing ext parameter and ext=42 are not equivalent. A global number and a local number with a numeric context are not equivalent just because concatenating their digits looks plausible. Do not infer reachability, allocation or caller identity from equivalence.

Fictional offline examples only: no dialer is opened and no call is placed. URI syntax does not verify number assignment, reachability, ownership or caller identity. Selected examples are not a complete telephone or SIP implementation.

Sources
Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background
identifier

A number is not a dialing procedure

Think of a contact card: it names who to reach, while the phone system supplies the steps for making a connection. A tel URI similarly identifies a number; its context and parameters help interpret it but do not authorize a call or promise reachability. This is an analogy, not a telephone-routing algorithm.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

All chapters in RFC 3966

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗