Number Portability Parameters for the "tel" URI
Extracted elements (25)
The "npdi" parameter prevents redundant NP database queries as a signaling message traverses multiple network nodes, analogous to the SS7 PNTI bit. It also helps prevent routing loops when "tel" URI re-writing occurs.
The "rn" parameter can optionally carry caller location information (analogous to SS7 JIP) at the first network node, but recipients using this for charging do so at their own risk since the information may not be authenticated.
Mapping NP-related parameters in a "tel" URI to ISUP NP information depends on national ISUP implementation and is outside the scope of this document; the normative rules cover only ANSI ISUP conversion.
SIP has existing mechanisms to detect routing loops due to URI rewriting; the new NP parameters work within these established contexts. Other protocols using these parameters SHOULD ensure they have loop-detection mechanisms when rewriting the "tel" URI.
After retrieving a routing number from an NP database for a geographical telephone number, the network node MUST add both the "rn" parameter and the "npdi" parameter to the "tel" URI. If no routing number is retrieved, it MUST still add "npdi".
During ISUP-to-VoIP protocol conversion, a GSTN gateway MUST include "npdi" when the PNTI bit in the FCI is set to "1", MUST include "cic" when the ISUP CIP is present, and MUST convert the ISUP routing number to the "rn" parameter for ported numbers.
Each of "rn", "npdi", and "cic" parameters MAY appear in a "tel" URI at most once. The first hex-phonedigit in local-rn or local-cic MUST be a hexadecimal digit.
For a global-rn, the routing number after "+" MUST begin with a valid E.164 country code. For a local-rn, the rn-context MUST contain a valid E.164 country code if in global-hex-digits format.
If a network node receives a call signaling message from an element it does not trust, it SHOULD ignore the NP parameters. These parameters are only for use between trusted network nodes.
If the "tel" URI contains a "cic" parameter whose CIC value differs from the one this network node is associated with, the node MUST NOT retrieve NP-related information for the geographical number or perform the first freephone database access.
If the "tel" URI contains the "npdi" parameter, the network node MUST NOT retrieve NP-related information for geographical telephone numbers even if configured to do so.
Processing priority for routing: check "cic" first; if not useful or absent, check "rn"; if not useful or absent, use the freephone or geographical telephone number directly.
When a "tel" URI appears in static content (e.g., HTML page or presence document), the NP parameters defined in this document SHOULD NOT be present, and any entity receiving them SHOULD remove them prior to using the tel URI.
When retrieving freephone NP information and the CIC belongs to another service provider, the network node MUST add the "cic" parameter. If a geographical telephone number is retrieved (first or second DB access), the node MUST replace the freephone number in the "tel" URI with the geographical number.
When the "rn" parameter points to this network node, the node MUST use the telephone number for routing and MUST remove the "rn" parameter when setting up the call to the next-hop node.
The "cic-context" parameter accompanies a local-cic value and provides a descriptor (domain name or global-hex-digits) indicating how to interpret the local CIC value.
The "cic" parameter carries the Carrier Identification Code (CIC) identifying the current freephone service provider for a freephone number, in either global-cic or local-cic format.
The "npdi" parameter is a flag (no value) indicating that an NP database dip has already been performed for a geographical telephone number, preventing redundant database queries downstream.
The "rn-context" parameter accompanies a local-rn value and provides a domain name or global-hex-digits descriptor indicating how to interpret the local routing number.
The "rn" parameter carries routing number information in a "tel" URI, in either global-rn (E.164-prefixed) or local-rn (with rn-context) format. It is used to route calls to ported geographical or mobile telephone numbers.
This document defines five new parameters (rn, npdi, cic, rn-context, cic-context) for the "tel" URI. Registration is deferred to the IANA tel URI Parameter Registry defined in a companion document [TELREG]; this document itself requires no direct IANA actions.
Illegal modification of "rn" or "cic" values in transit can cause calls to be routed to wrong networks. Illegal insertion of "npdi" can suppress a needed NP database query and misroute the call. Illegal modification of caller "rn" can cause incorrect call charging.
These "tel" URI extensions are only applicable within mutually trusted network nodes. If a node receives a signaling request from an untrusted upstream node, it SHOULD remove these parameters, causing it to redo any DB queries.
To prevent man-in-the-middle attacks that insert or modify NP parameters, call signaling protocols carrying these parameters SHOULD provide hop-by-hop message integrity. For SIP, this is accomplished with the SIPS URI mechanism.
ABNF defines five parameters extending the "tel" URI parameter production: rn (global-rn or local-rn), npdi (flag), cic (global-cic or local-cic), rn-context (;rn-context=rn-descriptor), and cic-context (;cic-context=rn-descriptor). global-rn and global-cic begin with "+" followed by up to 3 DIGIT (E.164 country code) then hex-phonedigits.