RFC 2806 ABNF Productions
Rule Name Production or Comment

telephone-url

= telephone-scheme ":" telephone-subscriber

telephone-scheme

= "tel"

telephone-subscriber

= global-phone-number / local-phone-number

global-phone-number

= "+" base-phone-number [isdn-subaddress] [post-dial] *( area-specifier / service-provider / future-extension )

base-phone-number

= 1*phonedigit

local-phone-number

= 1*( phonedigit / dtmf-digit / pause-character ) [isdn-subaddress] [post-dial] area-specifier *( area-specifier / service-provider / future-extension )

isdn-subaddress

= ";isub=" 1*phonedigit

post-dial

= ";postd=" 1*( phonedigit / dtmf-digit / pause-character )

area-specifier

= ";" phone-context-tag "=" phone-context-ident

phone-context-tag

= "phone-context"

phone-context-ident

= network-prefix / private-prefix

network-prefix

= global-network-prefix / local-network-prefix

global-network-prefix

= "+" 1*phonedigit

local-network-prefix

= 1*( phonedigit / dtmf-digit / pause-character )

private-prefix

= ( %x21-22 / %x24-27 / %x2C / %x2F / %x3A / %x3C-40 / %x45-4F / %x51-56 / %x58-60 / %x65-6F / %x71-76 / %x78-7E ) *( %x21-3A / %x3C-7E )  ; Characters in URLs must follow escaping rules
  ; as explained in [RFC2396]
  ; See sections 1.2 and 2.5.2

service-provider

= ";" provider-tag "=" provider-hostname

provider-tag

= "tsp"

provider-hostname

= domain  ; is defined in [RFC1035]
  ; See section 2.5.10

domain

= <defined in [RFC1035]>

future-extension

= ";" 1*( token-char ) ["=" ( ( 1*( token-char ) ["?" 1*( token-char )] ) / quoted-string )]  ; See section 2.5.11 and [RFC2543]

token-char

= ( %x21 / %x23-27 / %x2A-2B / %x2D-2E / %x30-39 / %x41-5A / %x5E-7A / %x7C / %x7E )  ; Characters in URLs must follow escaping rules
  ; as explained in [RFC2396]
  ; See sections 1.2 and 2.5.11

quoted-string

= %x22 *( "\" CHAR / ( %x20-21 / %x23-7E / %x80-FF ) ) %x22  ; Characters in URLs must follow escaping rules
  ; as explained in [RFC2396]
  ; See sections 1.2 and 2.5.11

phonedigit

= DIGIT / visual-separator

visual-separator

= "-" / "." / "(" / ")"

pause-character

= one-second-pause / wait-for-dial-tone

one-second-pause

= "p"

wait-for-dial-tone

= "w"

dtmf-digit

= "*" / "#" / "A" / "B" / "C" / "D"

fax-url

= fax-scheme ":" fax-subscriber

fax-scheme

= "fax"

fax-subscriber

= fax-global-phone / fax-local-phone

fax-global-phone

= "+" base-phone-number [isdn-subaddress] [t33-subaddress] [post-dial] *( area-specifier / service-provider / future-extension )

fax-local-phone

= 1*( phonedigit / dtmf-digit / pause-character ) [isdn-subaddress] [t33-subaddress] [post-dial] area-specifier *( area-specifier / service-provider / future-extension )

t33-subaddress

= ";tsub=" 1*phonedigit

modem-url

= modem-scheme ":" remote-host

modem-scheme

= "modem"

remote-host

= telephone-subscriber *( modem-params / recommended-params )

modem-params

= ";type=" data-capabilities

recommended-params

= ";rec=" data-capabilities

data-capabilities

= accepted-modem ["?" data-bits parity stop-bits]

accepted-modem

= "V21" / "V22" / "V22b" / "V23" / "V26t" / "V32" / "V32b" / "V34" / "V90" / "V110" / "V120" / "B103" / "B212" / "X75" / "vnd." vendor-name "." modem-type

data-bits

= "7" / "8"

parity

= "n" / "e" / "o" / "m" / "s"

stop-bits

= "1" / "2"

vendor-name

= 1*( ALPHA / DIGIT / "-" / "+" )

modem-type

= 1*( ALPHA / DIGIT / "-" / "+" )
Symbol Cross Reference List
Reference Productions which Reference this Symbol
ALPHA vendor-name, modem-type
CHAR quoted-string
DIGIT phonedigit, vendor-name, modem-type
accepted-modem data-capabilities
area-specifier global-phone-number, local-phone-number, local-phone-number, fax-global-phone, fax-local-phone, fax-local-phone
base-phone-number global-phone-number, fax-global-phone
data-bits data-capabilities
data-capabilities modem-params, recommended-params
domain provider-hostname
dtmf-digit local-phone-number, post-dial, local-network-prefix, fax-local-phone
fax-global-phone fax-subscriber
fax-local-phone fax-subscriber
fax-scheme fax-url
fax-subscriber fax-url
future-extension global-phone-number, local-phone-number, fax-global-phone, fax-local-phone
global-network-prefix network-prefix
global-phone-number telephone-subscriber
isdn-subaddress global-phone-number, local-phone-number, fax-global-phone, fax-local-phone
local-network-prefix network-prefix
local-phone-number telephone-subscriber
modem-params remote-host
modem-scheme modem-url
modem-type accepted-modem
network-prefix phone-context-ident
one-second-pause pause-character
parity data-capabilities
pause-character local-phone-number, post-dial, local-network-prefix, fax-local-phone
phone-context-ident area-specifier
phone-context-tag area-specifier
phonedigit base-phone-number, local-phone-number, isdn-subaddress, post-dial, global-network-prefix, local-network-prefix, fax-local-phone, t33-subaddress
post-dial global-phone-number, local-phone-number, fax-global-phone, fax-local-phone
private-prefix phone-context-ident
provider-hostname service-provider
provider-tag service-provider
quoted-string future-extension
recommended-params remote-host
remote-host modem-url
service-provider global-phone-number, local-phone-number, fax-global-phone, fax-local-phone
stop-bits data-capabilities
t33-subaddress fax-global-phone, fax-local-phone
telephone-scheme telephone-url
telephone-subscriber telephone-url, remote-host
token-char future-extension, future-extension, future-extension
vendor-name accepted-modem
visual-separator phonedigit
wait-for-dial-tone pause-character