分享
 
 
 

RFC2806 - URLs for Telephone Calls

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Network Working Group A. Vaha-Sipila

Request for Comments: 2806 Nokia

Category: Standards Track April 2000

URLs for Telephone Calls

Status of this Memo

This document specifies an Internet standards track protocol for the

Internet community, and requests discussion and suggestions for

improvements. Please refer to the current edition of the "Internet

Official Protocol Standards" (STD 1) for the standardization state

and status of this protocol. Distribution of this memo is unlimited.

Copyright Notice

Copyright (C) The Internet Society (2000). All Rights Reserved.

Abstract

This document specifies URL (Uniform Resource Locator) schemes "tel",

"fax" and "modem" for specifying the location of a terminal in the

phone network and the connection types (modes of operation) that can

be used to connect to that entity. This specification covers voice

calls (normal phone calls, answering machines and voice messaging

systems), facsimile (telefax) calls and data calls, both for POTS and

digital/mobile subscribers.

Table of Contents

1. IntrodUCtion ................................................ 2

1.1 New URL schemes ............................................ 2

1.2 Formal definitions ......................................... 3

1.3 Requirements ............................................... 3

2. URL schemes for telephone calls ............................. 3

2.1 Applicability .............................................. 3

2.2 "tel" URL scheme ........................................... 4

2.3 "fax" URL scheme ........................................... 6

2.4 "modem" URL scheme ......................................... 6

2.5 Parsing telephone, fax and modem URLs ...................... 7

2.5.1 Call type ................................................ 7

2.5.2 Phone numbers and their scope ............................ 7

2.5.3 Separators in phone numbers .............................. 10

2.5.4 Converting the number to the local numbering scheme ...... 10

2.5.5 Sending post-dial sequence after call setup .............. 10

2.5.6 Pauses in dialing and post-dial sequence ................. 11

2.5.7 ISDN subaddresses ........................................ 11

2.5.8 T.33 subaddresses ........................................ 11

2.5.9 Data call parameters ..................................... 12

2.5.10 Telephony service provider identification ............... 13

2.5.11 Additional parameters ................................... 14

2.6 Examples of Use ............................................ 14

2.7 Rationale behind the syntax ................................ 15

2.7.1 Why distinguish between call types? ..................... 15

2.7.2 Why "tel" is "tel"? ..................................... 16

2.7.3 Why to use E.164-style numbering? ........................ 16

2.7.4 Not everyone has the same equipment as you ............... 17

2.7.5 Do not confuse numbers with how they are dialled ......... 17

3. Comments on usage ........................................... 17

4. References .................................................. 18

5. Security Considerations ..................................... 19

6. Acknowledgements ............................................ 20

7. Author's Address ............................................ 20

8. Full Copyright Statement .................................... 21

1. Introduction

1.1 New URL schemes

This specification defines three new URL schemes: "tel", "fax" and

"modem". They are intended for describing a terminal that can be

contacted using the telephone network. The description includes the

subscriber (telephone) number of the terminal and the necessary

parameters to be able to successfully connect to that terminal.

The "tel" scheme describes a connection to a terminal that handles

normal voice telephone calls, a voice mailbox or another voice

messaging system or a service that can be operated using DTMF tones.

The "fax" scheme describes a connection to a terminal that can handle

telefaxes (facsimiles). The name (scheme specifier) for the URL is

"fax" as recommended by [E.123].

The "modem" scheme describes a connection to a terminal that can

handle incoming data calls. The term "modem" refers to a device that

does digital-to-analog and analog-to-digital conversions; in addition

to these, a "modem" scheme can describe a fully digital connection.

The notation for phone numbers is the same which is specified in

[RFC2303] and [RFC2304]. However, the syntax definition is a bit

different due to the fact that this document specifies URLs whereas

[RFC2303] and [RFC2304] specify electronic mail addresses. For

example, "/" (used in URLs to separate parts in a hierarchical URL

[RFC2396]) has been replaced by ";". In addition, this URL scheme has

been synchronized with [RFC2543].

When these URLs are used, the number of parameters should be kept to

the minimum, unless this would make the context of use unclear.

Having a short URL is especially important if the URL is intended to

be shown to the end user, printed, or otherwise distributed so that

it is visible.

1.2 Formal definitions

The ABNF (augmented Backus-Naur form) notation used in formal

definitions follows [RFC2234]. This specification uses elements from

the 'core' definitions (Appendix A of [RFC2234]). Some elements have

been defined in previous RFCs. If this is the case, the RFCin

question has been referenced in comments.

Note on non-unreserved characters [RFC2396] in URLs: the ABNF in this

document specifies strings of raw, unescaped characters. If those

characters are present in a URL, and are not unreserved [RFC2396],

they MUST be escaped as eXPlained in [RFC2396] prior to using the

URL. In addition, when parsing a URL, it must be noted that some

characters may have been escaped.

An example: ABNF notation "%x20" means a single octet with a

hexadecimal value of "20" (in US-ASCII, a space character). This must

be escaped in a URL, and it becomes "%20".

In addition, the ABNF in this document only uses lower case. The URLs

are case-insensitive (except for the <future-extension> parameter,

whose case-sensitivity is application-specific).

1.3 Requirements

The key Words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",

"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this

document are to be interpreted as described in [RFC2119].

Compliant software MUST follow this specification.

2. URL schemes for telephone calls

2.1 Applicability

In this document, "local entity" means software and hardware that can

detect and parse one or more of these URLs and possibly place a call

to a remote entity, or otherwise utilize the contents of the URL.

These URL schemes are used to direct the local entity to place a call

using the telephone network, or as a method to transfer or store a

phone number plus other relevant data. The network in question may be

a landline or mobile phone network, or a combination of these. If the

phone network differentiates between (for example) voice and data

calls, or if the local entity has several different

telecommunications equipment at its disposal, it is possible to

specify which kind of call (voice/fax/data) is requested. The URL can

also contain information about the capabilities of the remote entity,

so that the connection can be established successfully.

The "tel", "fax" and "modem" URL schemes defined here do not use the

hierarchical URL syntax; there are no applicable relative URL forms.

The URLs are always case-insensitive, except for the <future-

extension> parameter (see below), whose case-sensitivity is

application specific. Characters in the URL MUST be escaped when

needed as explained in [RFC2396].

2.2 "tel" URL scheme

The URL syntax is formally described as follows. For the basis of

this syntax, see [RFC2303].

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 ; <domain> is defined in [RFC1035]

; See section 2.5.10

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"

The URL starts with <telephone-scheme>, which tells the local entity

that what follows is a URL that should be parsed as described in this

document. After that, the URL contains the phone number of the remote

entity. Phone numbers can also contain subaddresses, which are used

to identify different remote entities under the same phone number. If

a subaddress is present, it is appended to the phone number after

";isub=". Phone numbers can also contain a post-dial sequence. This

is what is often used with voice mailboxes and other services that

are controlled by dialing numbers from your phone keypad while the

call is in progress. The <post-dial> sequence describes what and when

the local entity should send to the phone line.

Phone numbers can be either "global" or "local". Global numbers are

unambiguous everywhere. Local numbers are usable only within a

certain area, which is called "context", see section 2.5.2.

Local numbers always have an <area-specifier>, which specifies the

context in which the number is usable (the same number may have

different interpretation in different network areas). The context can

be indicated with three different prefixes. A <global-network-prefix>

indicates that the number is valid within a numbering area whose

global numbers start with <global-network-prefix>. Similarly,

<local-network-prefix> means that the number is valid within a

numbering area whose numbers (or dial strings) start with it. A

<private-prefix> is a name of a context. The local entity must have

knowledge of this private context to be able to deduce whether it can

use the number, see section 2.5.2. Additional information about the

phone number's usage can be included by adding the name of the

telephony services provider in <service-provider>, see section

2.5.10.

The <future-extension> mechanism makes it possible to add new

parameters to this URL scheme. See section 2.5.11.

The <private-prefix>, <token-char> and <quoted-string> nonterminals

may seem a bit complex at first, but they simply describe the set of

octets that are legal in those nonterminals. Some octets may have to

be escaped, see [RFC2396].

2.3 "fax" URL scheme

The URL syntax is formally described as follows (the definition

reuses nonterminals from the above definition). For the basis of this

syntax, see [RFC2303] and [RFC2304].

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

The fax: URL is very similar to the tel: URL. The main difference is

that in addition to ISDN subaddresses, telefaxes also have an another

type of subaddress, see section 2.5.8.

2.4 "modem" URL scheme

The URL syntax is formally described as follows (the definition

reuses nonterminals from the above definitions). For the basis of

this syntax, see [RFC2303].

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 / "-" / "+")

The modem: URL scheme is also very similar to both the tel: and fax:

schemes, but it adds the description of the capabilities of the

remote entity. Minimum required compliance is listed in <modem-

params> and recommended compliance is listed in <recommended-params>.

For details, see section 2.5.9.

2.5 Parsing telephone, fax and modem URLs

2.5.1 Call type

The type of call is specified by the scheme specifier. "Tel" means

that a voice call is opened. "Fax" indicates that the call should be

a facsimile (telefax) call. "Modem" means that it should be a data

call. Not all networks differentiate between the types of call; in

this case, the scheme specifier indicates the telecommunications

equipment type to use.

2.5.2 Phone numbers and their scope

<telephone-subscriber> and <fax-subscriber> indicate the phone number

to be dialed. The phone number can be written in either international

or local notation. All phone numbers SHOULD always be written in the

international form if there is no good reason to use the local form.

Not all numbers are valid within all numbering areas. The <area-

specifier> parameter, which is mandatory for local numbers, is used

to indicate the locale within which this number is valid, or to

qualify the phone number so that it may be used unambiguously. The

<area-specifier> can take three forms: <global-network-prefix>,

<local-network-prefix> or <private-prefix>. These are used to

describe the validity area of the phone number either in global

numbering plan, local numbering plan, or in a private numbering plan,

respectively.

If <area-specifier> is present, the local entity MUST NOT attempt to

call out using the phone number if it cannot originate the call

within the specified locale. If a <local-phone-number> is used, an

<area-specifier> MUST be included as well.

There can be multiple instances of <area-specifier>. In this case,

the number is valid in all of the given numbering areas.

The global prefix form is intended to act as the outermost context

for a phone number, so it will start with a "+", followed by some

part of an E.164 number. It also specifies the region in which the

phone number is valid. For example, if <global-network-prefix> is

"+358", the given number is valid only within Finland (country code

358) - even if it is a <global-phone-number>.

The local prefix form is intended to act as an intermediate context

in those situations where the outermost context for a phone number is

given by another means. One example of use is where the local entity

is known to originate calls only within the North American Number

Plan Area, so an "outermost" phone context can be assumed. The local

context could, for example, be used to indicate the area code within

which an associated phone number is situated. Thus "tel:456-

7890;phone-context=213" would suffice to deliver a call to the

telephone number "+1-213-456-7890". Note that the version including

the <phone-context> implies further that the call can only be

originated within the "area code 213" region.

The <private-prefix> form is intended for use in those situations

where the context cannot be expressed with a start of a global phone

number or a dialing string. The <private-prefix> is actually a name

of a private context. The creator of the URL and the local entity

have been configured to recognize this name, and as such they can

interpret the number and know how they can utilize the number. For

example, a private network numbering plan may be indicated by the

name "X-COMPANY-NET", but the private dialling plan from the locales

of the sender of the telephony URL and the local entity are

different. The syntax of these tokens will be left for future

specification. The ABNF above specifies the accepted characters that

can be a part of <private-prefix>.

Unless the sender is absolutely sure that they share the same private

network Access digit string with the local entity, then they MUST NOT

use a dialling plan number (a local phone number, or one qualified by

a local context), as the result may be incorrect. Instead, they

SHOULD use a global number, or if that is not possible, a private

context as the last resort. If the local entity does not support

dialling into the private network indicated by that context, then the

request MUST be rejected. If it does, then it will use the access

digit string appropriate for its locale.

Note that the use of <area-specifier> is orthogonal to use of the

telephony service provider parameter (see 2.5.10); it qualifies the

phone number, whilst the <service-provider> parameter indicates the

carrier to be used for the call attempt.

For example, a large company may have private network

interconnections between its sites, as well as connections to the

Global Switched Telephone Network. A phone number may be given in

"public network" form, but with a <service-provider> indicating that

the call should be carried over the corporate network.

Conversely, it would be possible to represent a phone number in

private network form, with a private context to indicate this, but

indicate a public telephony service provider. This would request that

the user agent convert the private network number plan address into a

form that can be carried using the selected service provider.

Any telephone number MUST contain at least one <phonedigit> or

<dtmf-digit>, that is, subscriber numbers consisting only of pause

characters are not allowed.

International numbers MUST begin with the "+" character. Local

numbers MUST NOT contain that character. International numbers MUST

be written with the country (CC) and national (NSN) numbers as

specified in [E.123] and [E.164]. International numbers have the

property of being totally unambiguous everywhere in the world if the

local entity is properly configured.

Local numbers MAY be used if the number only works from inside a

certain geographical area or a network. Note that some numbers may

work from several networks but not from the whole world - these

SHOULD be written in international form, with a set of <area-

specifier> tags and optional <service-provider> parameters. URLs

containing local phone numbers should only appear in an environment

where all local entities can get the call successfully set up by

passing the number to the dialing entity "as is". An example could be

a company intranet, where all local entities are located under a the

same private telephone exchange. If local phone numbers are used,

the document in which they are present SHOULD contain an indication

of the context in which they are intended to be used, and an

appropriate <area-specifier> SHOULD be present in the URL.

In some regions, it is popular to write phone numbers using

alphabetic characters which correspond to certain numbers on the

telephone keypad. Letters in <dtmf-digit> characters do not have

anything to do with this, nor is this method supported by these URL

schemes.

It should also be noted that implementations MUST NOT assume that

telephone numbers have a maximum, minimum or fixed length, or that

they would always begin with a certain number. Implementors are

encouraged to familiarize themselves with the international

standards.

2.5.3 Separators in phone numbers

All <visual-separator> characters MUST be ignored by the local entity

when using the URL. These characters are present only to aid

readability: they MUST NOT have any other meaning. Note that although

[E.123] recommends the use of space (SP) characters as the separators

in printed telephone numbers, spaces MUST NOT be used in phone

numbers in URLs as the space character cannot be used in URLs without

escaping it.

2.5.4 Converting the number to the local numbering scheme

After the telephone number has been extracted, it can be converted to

the local dialing convention. (For example, the "+" character might

be replaced by the international call prefix, or the international

and trunk prefixes might be removed to place a local call.) Numbers

that have been specified using <local-phone> or <fax-local-phone>

MUST be used by the local entity "as is", without any conversions,

unless the local entity decides to utilize the information in an

optional <service-provider> parameter.

2.5.5 Sending post-dial sequence after call setup

The number may contain a <post-dial> sequence, which MUST be dialled

using Dual Tone Multifrequency (DTMF) in-band signalling or pulse

dialing after the call setup is complete. If the user agent does not

support DTMF or pulse dialing after the call has been set up, <post-

dial> MUST be ignored. In that case, the user SHOULD be notified.

2.5.6 Pauses in dialing and post-dial sequence

A local phone number or a post-dial sequence may contain <pause-

character> characters which indicate a pause while dialing ("p"), or

a wait for dial tone ("w").

Local entities MAY support this method of dialing, and the final

interpretation of these characters is left to the local entity. It

is RECOMMENDED that the length of each pause is about one second.

If it is not supported, local entities MUST ignore everything in the

dial string after the first <pause-character> and the user SHOULD be

notified. The user or the local entity MAY opt not to place a call if

this feature is not supported and these characters are present in the

URL.

Any <dtmf-digit> characters and all dial string characters after the

first <pause-character> or <dtmf-digit> SHOULD be sent to line using

DTMF (Dual Tone Multifrequency) in-band signaling, even if dialing is

done using direct network signaling (a digital subscriber loop or a

mobile phone). If the local infrastructure does not support DTMF

codes, the local entity MAY opt to use pulse dialing. However, it

should be noted that certain services which are controlled using DTMF

tones cannot be controlled with pulse dialing. If pulse dialing is

used, the user SHOULD be notified.

2.5.7 ISDN subaddresses

A phone number MAY also contain an <isdn-subaddress> which indicates

an ISDN subaddress. The local entity SHOULD support ISDN

subaddresses. These addresses are sent to the network by using a

method available to the local entity (typically, ISDN subscribers

send the address with the call setup signalling). If ISDN

subaddressing is not supported by the caller, <isdn-subaddress> MUST

be ignored and the user SHOULD be notified. The user or the local

entity MAY opt not to place a call if this feature is not supported.

2.5.8 T.33 subaddresses

A fax number MAY also contain a <t33-subaddress>, which indicates the

start of a T.33 subaddress [T.33]. Local entities SHOULD support

this. Otherwise <t33-subaddress> MUST be ignored and the user SHOULD

be notified. The user or the local entity MAY opt not to place a call

if this feature is not supported.

2.5.9 Data call parameters

<modem-params> indicate the minimum compliance required from the

local entity to be able to connect to the remote entity. The minimum

compliance is defined as being equal to or a superset of the

capabilities of the listed modem type. There can be several <modem-

param> parameters, in which case compliance to any one of them will

be accepted. <recommended-params> indicates the recommended

compliance required from the local entity. This is typically the

fastest and/or the most reliable modem type supported by the modem

pool. The local entity can use this information to select the best

number from a group of modem URLs. There can be several recommended

modem types, which are equally desirable from the modem pool's point

of view. <recommended-params> MAY NOT conflict with <modem-params>.

If they do, the local entity MUST ignore the <recommended-params>.

The local entity MUST call out using compatible hardware, or request

that the network provides such a service.

For example, if the local entity only has access to a V.22bis modem

and the URL indicates that the minimum acceptable connection is

V.32bis, the local entity MUST NOT try to connect to the remote host

since V.22bis is a subset of V.32bis. However, if the URL lists V.32

as the minimum acceptable connection, the local entity can use

V.32bis to create a connection since V.32bis is a superset of V.32.

This feature is present because modem pools often have separate

numbers for slow modems and fast modems, or have different numbers

for analog and ISDN connections, or may use proprietary modems that

are incompatible with standards. It is somewhat analogous to the

connection type specifier (typecode) in FTP URLs [RFC1738]: it

provides the local entity with information that can not be deduced

from the scheme specifier, but is helpful for successful operation.

This also means that the number of data and stop bits and parity MUST

be set according to the information given in the URL, or to default

values given in this document, if the information is not present.

The capability tokens are listed below. If capabilities suggest that

it is impossible to create a connection, the connection MUST NOT be

created.

If new modem types are standardized by ITU-T, this list can be

extended with those capability tokens. Tokens are formed by taking

the number of the standard and joining together the first letter (for

example, "V"), number (for example, 22) and the first letter of the

postfix (for example "bis" would become "b").

Proprietary modem types MUST be specified using the 'vendor naming

tree', which takes the form "vnd.x.y", in which "x" is the name of

the entity from which the specifications for the modem type can be

acquired and "y" is the type or model of the modem. Vendor names MUST

share the same name space with vendor names used in MIME types

[RFC2048]. Submitting the modem types to ietf-types list for review

is strongly recommended.

New capabilities MUST always be documented in an RFC, and they MUST

refer to this document or a newer version of it. The documentation

SHOULD also list the existing modem types with which the newly

defined modem type is compatible with.

Capability Explanation

V21 ITU-T V.21

V22 ITU-T V.22

V22b ITU-T V.22bis

V23 ITU-T V.23

V26t ITU-T V.26ter

V32 ITU-T V.32

V32b ITU-T V.32bis

V34 ITU-T V.34

V90 ITU-T V.90

V110 ITU-T V.110

V120 ITU-T V.120

X75 ITU-T X.75

B103 Bell 103

B212 Bell 212

Data bits: "8" or "7" The number of data bits. If not

specified, defaults to "8".

Parity: "n", "e", "o", Parity. None, even, odd, mark or

"m", "s" space parity, respectively. If

not specified, defaults to "n".

Stop bits: "1" or "2" The number of stop bits. If not

specified, defaults to "1".

2.5.10 Telephony service provider identification

It is possible to indicate the identity of the telephony service

provider for the given phone number. <service-provider> MAY be used

by the user-agent to place the call using this network, to enhance

the user interface, for billing estimates or to otherwise optimize

its functionality. It MAY also be ignored by the user-agent.

<service-provider> consists of a fully qualified Internet domain name

of the telephony service provider, for example

";tsp=terrifictelecom.com". The syntax of the domain name follows

Internet domain name rules and is defined in [RFC1035].

2.5.11 Additional parameters

In addition to T.33 and ISDN subaddresses, modem types and area

specifiers, future extensions to this URL scheme may add other

additional parameters (<future-extension> in the BNF) to these URLs.

These parameters are added to the URL after a semicolon (";").

Implementations MUST be prepared to handle additional and/or unknown

parameters gracefully. Implementations MUST NOT use the URL if it

contains unknown parameters, as they may be vital for the correct

interpretation of the URL. Instead, the implementation SHOULD report

an error.

For example, <future-extension> can be used to store application-

specific additional data about the phone number, its intended use, or

any conversions that have been applied to the number. Whenever a

<future-extension> is used in an open environment, its syntax and

usage MUST be properly documented in an RFC.

<future-extension> nonterminal a rephrased version of, and compatible

with the <other-param> as defined in [RFC2543] (which actually

borrows BNF from an earlier version of this specification).

2.6 Examples of Use

tel:+358-555-1234567

This URL points to a phone number in Finland capable of receiving

voice calls. The hyphens are included to make the number more human-

readable: country and area codes have been separated from the

subscriber number.

fax:+358.555.1234567

The above URL describes a phone number which can receive fax calls.

It uses dots instead of hyphens as separators, but they have no

effect on the functionality.

modem:+3585551234567;type=v32b?7e1;type=v110

This phone number belongs to an entity which is able to receive data

calls. The local entity may opt to use either a ITU-T V.32bis modem

(or a faster one, which is compatible with V.32bis), using settings

of 7 data bits, even parity and one stop bit, or an ISDN connection

using ITU-T V.110 protocol.

tel:+358-555-1234567;postd=pp22

The above URL instructs the local entity to place a voice call to

+358-555-1234567, then wait for an implementation-dependent time (for

example, two seconds) and emit two DTMF dialing tones "2" on the line

(for example, to choose a particular extension number, or to invoke a

particular service).

tel:0w003585551234567;phone-context=+3585551234

This URL places a voice call to the given number. The number format

is intended for local use: the first zero opens an outside line, the

"w" character waits for a second dial tone, and the number already

has the international access code appended to it ("00"). This kind of

phone number MUST NOT be used in an environment where all users of

this URL might not be able to successfully dial out by using this

number directly. However, this might be appropriate for pages in a

company intranet. The <area-specifier> which is present hints that

the number is usable only in an environment where the local entity's

phone number starts with the given string (perhaps singling out a

company-wide block of telephone numbers).

tel:+1234567890;phone-context=+1234;vnd.company.option=foo

The URL describes a phone number which, even if it is written in its

international form, is only usable within the numbering area where

phone numbers start with +1234. There is also a proprietary extension

"vnd.company.option", which has the value "foo". The meaning of this

extension is application-specific. Note that the order of these

parameters (phone-context and vnd.company.option) is irrelevant.

2.7 Rationale behind the syntax

2.7.1 Why distinguish between call types?

URLs locate resources, which in this case is some telecommunications

equipment at a given phone number. However, it is not necessarily

enough to know the subscriber number in order to successfully

communicate with that equipment. Digital phone networks distinguish

between voice, fax and data calls (and possibly other types of calls,

not discussed in this specification). To be able to successfully

connect to, say, a fax machine, the caller may have to specify that a

fax call is being made. Otherwise the call might be routed to the

voice number of the subscriber. In this sense, the call type is an

integral part of the 'location' of the target resource.

The reason to have the call type in the scheme specifier is to make

the URL simple to remember and use. Making it a parameter, much like

the way modem parameters are handled now, will substantially reduce

the human readability of this URL.

2.7.2 Why "tel" is "tel"?

There has been discussion on whether the scheme name "tel" is

appropriate. To summarize, these are the points made against the

other proposals.

callto URL schemes locate a resource and do not specify

an action to be taken.

telephone Too long. Also, "tel" considered to be a more

international form.

phone Was countered on the basis that "tel" is more

internationally acceptable.

2.7.3 Why to use E.164-style numbering?

E.164 refers to international telephone numbers, and the string of

digits after the country code is usually a national matter. In any

case, phone numbers are usually written as a simple string of numbers

everywhere. Because of this, the syntax in this specification is

intuitively clear to most people. This is the usual way to write

phone numbers in business cards, advertisements, telephone books and

so on.

It should be noted that phone numbers may have 'hierarchical'

characteristics, so that one could build a 'forest' of phone numbers

with country codes as roots, area codes as branches and subscriber

numbers as leaves. However, this is not always the case. Not all

areas have area codes; some areas may have different area codes

depending on how one wants to route the call; some numbers must

always be dialled "as is", without prepending area or country codes

(notably emergency numbers); and area codes can and do change.

Usually, if something has a hierarchical structure, the URL syntax

should reflect that fact. These URLs are an exception.

Also, when writing the phone number in the form described in this

specification, the writer does not need to know which part of the

number is the country code and which part is the area code. If a

hierarchical URL would be used (with a "/" character separating the

parts of the phone numbers), the writer of the URL would have to know

which parts are which.

Finally, when phone numbers are written in the international form as

specified here, they are unambiguous and can always be converted to

the local dialing convention, given that the user agent has the

knowledge of the local country and area codes.

2.7.4 Not everyone has the same equipment as you

There are several ways for the subscriber to dial a phone number:

- By pulse dialing. Typically old telephone exchanges. Usually this

dialing method has only to be used to set up the call; after

connecting to the remote entity, <post-dial> can be sent to the

line using DTMF, because it will typically be processed by the

remote entity, not the telephone network.

- By DTMF. These are the 'beeps' that you hear when you dial on

most phones.

- By direct network signalling. ISDN subscribers and mobile phone

users usually have this. There is no dial tone (or if there is, it

is generated locally by the equipment), and the number of the

called party is communicated to the telephone network using some

network signalling method. After setting up the call, <post-dial>

sequences are usually sent using DTMF codes.

2.7.5 Do not confuse numbers with how they are dialled

As an example, +123456789 will be dialled in many countries as

00123456789, where the leading "00" is a prefix for international

calls. However, if a URL contains a local phone number 00123456789,

the user-agent MUST NOT assume that this number is equal to a global

phone number +123456789. If a user-agent received a telephony URL

with a local number in it, it MUST make sure that it knows the

context in which the local phone number is to be processed, or else

the number MUST NOT be used. Equally, anyone sending a telephony URL

MUST take into consideration that the recipient may have insufficient

information about the phone number's context.

3. Comments on usage

These are examples of the recommended usage of this URL in Html

documents.

First of all, the number SHOULD be visible to the end user, if it is

conceivable that the user might not have a local entity which is able

to use these URLs.

Telephone: <a href="tel:+3585551234567">+358-555-1234567</a>

Second, on a public HTML page, the telephone number in the URL SHOULD

always be in the international form, even if the text of the link

uses some local format.

Telephone: <a href="tel:+3585551234567">(0555) 1234567</a>

or even

For more info, call <a href="tel:+15554383785965">1-555-IETF-RULZ-

OK</a>.

Moreover, if the number is a <local-phone-number>, and the scope of

the number is not clear from the context in which the URL is

displayed, a human-readable explanation SHOULD be included.

For customer service, dial <a href="tel:1234;phone-

context=+358555">1234</a> (only from Terrific Telecom mobile

phones).

4. References

[RFC1035] Mockapetris, P., "Domain Names - Implementation and

Specification", STD 13, RFC1035, November 1987.

[RFC1738] Berners-Lee, T., et al., "Uniform Resource Locators (URL)",

RFC1738, December 1994.

[RFC1866] Berners-Lee, T. and D. Connolly, "Hypertext Markup Language

- 2.0", RFC1866, November 1995.

[RFC2048] Freed, N., Klensin, J. and J. Postel, "Multipurpose

Internet Mail Extensions (MIME) Part Four: Registration

Procedures", RFC2048, November 1996.

[RFC2119] Bradner, S., "Key Words for Use in RFCs to Indicate

Requirement Levels", BCP 14, RFC2119, March 1997.

[RFC2234] Crocker, D. and P. Overall, "Augmented BNF for Syntax

Specifications: ABNF", RFC2234, November 1997.

[RFC2303] Allocchio, C., "Minimal PSTN Address Format in Internet

Mail", RFC2303, March 1998.

[RFC2304] Allocchio, C., "Minimal FAX Address Format in Internet

Mail", RFC2304, March 1998.

[RFC2396] Berners-Lee, T., R. Fielding and L. Manister, "Uniform

Resource Identifiers (URI): Generic Syntax", RFC2396,

August 1998.

[RFC2543] Handley, M., Schulzrinne, H., Schooler, E. and J.

Rosenberg, "SIP: Session Initiation Protocol", RFC2543,

March 1999.

[E.123] ITU-T Recommendation E.123: Telephone Network and ISDN

Operation, Numbering, Routing and Mobile Service: Notation

for National and International Telephone Numbers. 1993.

[E.164] ITU-T Recommendation E.164/I.331 (05/97): The International

Public Telecommunication Numbering Plan. 1997.

[T.33] ITU-T Recommendation T.33: Facsimile Routing Utilizing the

Subaddress. 1996.

5. Security Considerations

It should be noted that the local entity SHOULD NOT call out without

the knowledge of the user because of associated risks, which include

- call costs (including long calls, long distance calls,

international calls and premium rate calls, or calls which do not

terminate due to <post-dial> sequences that have been left out by

the local entity)

- wrong numbers inserted on web pages by malicious users, or sent via

e-mail, perhaps in direct advertising

- making the user's phone line unavailable (off-hook) for a malicious

purpose

- opening a data call to a remote host, thus possibly opening a back

door to the user's computer

- revealing the user's (possibly unlisted) phone number to the remote

host in the caller identification data, and correlating the local

entity's phone number with other information such as the e-mail or

IP address

- using the same local number in different contexts, in which the

number may have a different meaning

All of these risks MUST be taken into consideration when designing

the local entity.

The local entity SHOULD have some mechanism that the user can use to

filter out unwanted numbers. The local entity SHOULD NOT use rapid

redialing of the number if it is busy to avoid the congestion of the

(signaling) network. Also, the local entity SHOULD detect if the

number is unavailable or if the call is terminated before the dialing

string has been completely processed (for example, the call is

terminated while waiting for user input) and not try to call again,

unless instructed by the user.

6. Acknowledgements

Writing this specification would not have been possible without

extensive support from many people.

Contributors include numerous people from IETF FAX, PINT, URI and

URLREG mailing lists, as well as from World Wide Web Consortium and

several companies, plus several individuals. Thanks to all people who

offered criticism, corrections and feedback.

All phone numbers and company names used in the examples of this

specification are fictional. Any similarities to real entities are

coincidental.

7. Author's Address

Antti Vaha-Sipila

(quoted-printable: Antti V=E4h=E4-Sipil=E4)

Nokia Mobile Phones

P. O. Box 68

FIN-33721 Tampere

Finland

EMail: avs@iki.fi

antti.vaha-sipila@nokia.com

8. Full Copyright Statement

Copyright (C) The Internet Society (2000). All Rights Reserved.

This document and translations of it may be copied and furnished to

others, and derivative works that comment on or otherwise explain it

or assist in its implementation may be prepared, copied, published

and distributed, in whole or in part, without restriction of any

kind, provided that the above copyright notice and this paragraph are

included on all such copies and derivative works. However, this

document itself may not be modified in any way, such as by removing

the copyright notice or references to the Internet Society or other

Internet organizations, except as needed for the purpose of

developing Internet standards in which case the procedures for

copyrights defined in the Internet Standards process must be

followed, or as required to translate it into languages other than

English.

The limited permissions granted above are perpetual and will not be

revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an

"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING

TASK FORCE DISCLAIMS 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.

Acknowledgement

Funding for the RFCEditor function is currently provided by the

Internet Society.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有