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

Read global numbers and visual separators

02

The plus sign marks global form. Hyphens, dots and parentheses help people read the number; they do not change its comparison identity.

RFC 3966 · § 3EXAMPLE
4 / 4
04
Do not interpret a keypad word

tel:+1-201-FLOWERS is not a valid global-number spelling. RFC 3966 does not define a universal letter-to-keypad conversion for it.

Read global numbers and visual separatorstel:+1-201-FLOWERS is not a valid global-number spelling. RFC 3966 does not define a universal letter-to-keypad conversion for it.Do not interpret a keypad wordtel:+1-201-FLOWERSNo universal keypad-word conversionGlobal number requires digitsLocal hex symbols have a different scope

Key idea: Read the number independently of its permitted visual separators.

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
  • All phone numbers MUST use global form unless they cannot be represented that way. Global numbers contain the country and national numbers and begin with a literal +; implementations MUST NOT assume a fixed, minimum or maximum telephone-number length.
  • Visual separators MAY be used: hyphen, dot and parentheses. They do not affect URI comparison or placing a call. Spaces MUST NOT be used as visual separators inside a tel URI.
  • Letters used as memorable keypad words are not supported as a substitute for digits in a global number. Local numbers can contain hexadecimal A–F, * and #, but their meanings are not defined here; that does not permit letters in global numbers.
  • The delimiters +, ;, = and ? MUST NOT be percent encoded when they separate URI components. Selected parameter values are escaped separately in chapter four. Syntax alone does not establish a valid allocation under a numbering plan.

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 ↗