rfc-4967

Dial String Parameter for the Session Initiation Protocol Uniform Resource Identifier

B. Rosen
date2007-07 streamIETF wgnon working group statusPROPOSED STANDARD pages6 canonicalhttps://www.rfc-editor.org/rfc/rfc4967 doi10.17487/RFC4967 errataview
RFC 3966 explicitly states that 'tel' URIs may not represent a dial string. That leaves no way specify a dial string in a standardized way. Great confusion exists with the SIP URI parameter "user=phone", and specifically, if it can represent a dial string. This memo creates a new value for the user parameter "dialstring", so that one may specify "user=dialstring" to encode a dial string as a 'sip:' or 'sips:' URI. [STANDARDS-TRACK]

Extracted elements (10)

design-rationale §1

DTMF post-dial sequences (e.g., voicemail access followed by mailbox digits, or strings with pauses and wait-for-completion) have no standardized encoding, causing interoperability problems between endpoints and gateways. The dialstring encoding addresses this by including P (pause) and X (wait-for-call-completion) characters.

sip, voip

design-rationale §1

RFC 3966 explicitly prohibits 'tel' URIs from representing dial strings, and the existing 'user=phone' SIP URI parameter caused confusion about whether it could encode dial strings. This gap left no standardized way to transmit dial strings from phones lacking internal translation mechanisms to intermediaries that perform digit-map translation.

sip, voip

interoperability-note §4

The context parameter for 'user=dialstring' follows the same syntax conventions as the context parameter in RFC 3966 for tel: URIs, ensuring consistent handling by intermediaries familiar with either scheme.

sip, voip

normative-requirement §4 SHOULD NOT

A dial string SHOULD NOT be used for an Address of Record (AoR) in a SIP REGISTER request, because parameters are ignored in registration and two registrations with different phone-contexts would be considered equivalent.

sip, voip

normative-requirement §4 MUST

When 'user=dialstring' is used, a context parameter as defined in RFC 3966 MUST be specified. The context domain does not have to resolve to an actual host but MUST be under the administrative control of the entity managing the local phone context.

sip, voip

protocol-element §4

A new value 'dialstring' is defined for the 'userinfo' parameter of 'sip:' or 'sips:' URIs. The dial string is a sequence of characters 0-9, A-F, P, X, '*', and '#', where E=*, F=#, P=pause, and X=wait-for-call-completion.

sip, voip

protocol-element §4

A proxy server or B2BUA authoritative for the context MAY translate the dial string to a telephone number or service invocation URI, expressed as a global or local tel: URI, or left as sip:/sips: with 'user=phone'.

sip, voip

registry §5

This RFC adds a new predefined value 'dialstring' for the 'user' parameter in the SIP/SIPS URI Parameter sub-registry defined by RFC 3969 (IANA URI Parameter Registry for SIP).

sip, registry

security-consideration §6 SHOULD NOT

Dial strings exposed to the Internet may reveal internal network details or service invocations that could allow attackers to exploit PSTN or Internet systems. Dial strings normally SHOULD NOT be sent beyond the domain of the UAC, and if sent across the Internet, SHOULD be protected against eavesdropping with TLS per RFC 3261.

sip, security, voip

wire-format §4

The dialstring syntax is: dialstring = dialstring-digits context; dialstring-digits = *dialstring-element dialstring-digit *dialstring-element; dialstring-digit = HEXDIG / '*' / '#'; dialstring-element = dialstring-digit / 'P' / 'X' / visual-separator. Context follows RFC 3966 conventions and appears between the digits and '@' in the userinfo portion.

sip, voip