RFC 4694

Number Portability Parameters for the "tel" URI

πŸ“… published October 2006, from ietf

Number Portability Parameters for the "tel" URI πŸ“žβœ¨

okay bestie, this is RFC 4694 πŸŽ€ (Request for Comments: 4694). It came from the Network Working Group and was written by J. Yu of NeuStar πŸ’…. It's a Standards Track document, dated October 2006 πŸ¦‹. The header doesn't list any RFCs it obsoletes or updates, so nothing gets replaced or patched here 🌸.

Status of This Memo 🌸

this document is an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements πŸ’¬. for the current standardization state and status, check the current edition of "Internet Official Protocol Standards" (STD 1) πŸ“–. distribution of this memo is unlimited 🌈.

Copyright (C) The Internet Society (2006) 🫢.

Abstract ✨

this doc defines five parameters in the "tel" Uniform Resource Identifier (URI) so it can carry number portability (NP) info πŸ“‡. these parameters can get passed to the next-hop network node after an NP database dip has been done πŸ¦‹.

Table of Contents πŸ“š

1. Introduction ....................................................2
2. Conventions .....................................................3
3. Abbreviations ...................................................3
4. Formal Syntax ...................................................3
5. Normative Rules .................................................5
   5.1. Handling "tel" URI with NP Parameter or Parameters .........6
   5.2. Adding NP Parameter or Parameters to the "tel" URI .........8
        5.2.1. Retrieving NP-related Information for a
               Geographical Telephone Number .......................8
        5.2.2. Retrieving NP-related Information for a
               Freephone Number ....................................9
        5.2.3. Adding Location Information about the Caller .......10
        5.2.4. Adding NP Parameter or Parameters Due to
               Protocol Conversion ................................10
6. Examples .......................................................11
7. Security Considerations ........................................13
8. Acknowledgements ...............................................13
9. IANA Considerations ............................................13
10. References ....................................................14
   10.1. Normative References .....................................14
   10.2. Informative References ...................................14

1. Introduction ✨

okay so number portability (NP) [RFC3482] lets phone subscribers keep their numbers when they switch service provider (service provider portability) πŸ“±, move to a new location (location portability) 🏠, or change the services they subscribe to (service portability) πŸ”„. the numbers can be geographical, mobile, freephone, or other kinds of non-geographical numbers 🌸. some mobile numbers act like geographical ones (like the ones in North America) πŸ‡ΊπŸ‡Έ, and others aren't geographical but get routed in a similar way, so this doc doesn't call them out specifically πŸ€·β€β™€οΈ. freephone numbers are also known as toll-free numbers, and the called party who gets the freephone number is the one who pays the call charge when someone dials it πŸ’Έ.

NP impacts call signaling and routing πŸ“‘, and one impact is that the NP-related info has to ride along in the "tel" URI [RFC3966] for protocols like the Session Initiation Protocol (SIP) [RFC3261] and H.323 [H323] after the NP database dip is done 🫢. another impact is that a Voice over IP (VoIP) server can use the NP-related info in a received "tel" URI to figure out routing 🧭.

a routing number is tied to a geographical or mobile number that got ported out from a donor carrier to another carrier πŸ¦‹. the donor carrier is the original carrier where the geographical number was allocated before it was ever ported 🌱. a "non-ported" geographical or mobile number doesn't have a routing number attached, because its first N digits can be used for routing instead ✨. a routing number can also be used to indicate the switch or network node that originates a call or service, kind of like the Jurisdiction Information Parameter in the Signaling System Number 7 (SS7) Integrated Services Digital Network User Part (ISUP) 🧚. the rn parameter carries the routing number info πŸ’–. the rn-context parameter describes how the rn value should be read when it isn't a global-rn, which is covered in Section 4 πŸ“–.

the NP database dip indicator tells downstream servers or switches during call setup that they don't need to do the NP database dip again for a geographical number πŸ™…β€β™€οΈ. the npdi parameter carries that indicator πŸ’œ.

a Carrier Identification Code (CIC) identifies the current freephone service provider for a freephone number πŸ“ž. this parameter can also carry the pre-subscribed or dialed long-distance carrier info, but that's outside the scope of this document πŸ™ˆ. the cic parameter carries the CIC info πŸŽ€. the cic-context parameter describes how the cic value should be read when it isn't a global-cic, which is also covered in Section 4 πŸ’….

2. Conventions πŸ’–

the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this doc are to be interpreted as described in RFC 2119 [RFC2119] πŸ“œ.

3. Abbreviations 🧚

ABNF   Augmented Backus-Naur Form
ANSI   American National Standards Institute
CIC    Carrier Identification Code (also cic)
CIP    Carrier Identification Parameter
FCI    Forward Call Indicator
GAP    Generic Address Parameter
GSTN   Global Switched Telephone Network
HTML   HyperText Markup Language
IC     Identification Code
ISUP   Integrated Services Digital Network User Part
JIP    Jurisdiction Information Parameter
NP     Number Portability
NPDB   Number Portability Database
npdi   NP Database Dip Indicator
rn     Routing Number
PNTI   Ported Number Translation Indicator
SIP    Session Initiation Protocol
SS7    Signaling System Number 7
URI    Uniform Resource Identifier
VoIP   Voice over IP

4. Formal Syntax πŸ‘‘

the syntax spec below uses the Augmented Backus-Naur Form (ABNF) as described in RFC 4234 [RFC4234] 🧩. it defines the five parameters (rn, npdi, cic, rn-context and cic-context) by extending the "parameter" production rule of the "tel" URI defined in [RFC3966] ✨.

parameter               =/ rn / cic / npdi
rn                      = ";rn=" (global-rn / local-rn)
npdi                    = ";npdi"
cic                     = ";cic=" (global-cic / local-cic)
global-rn               = global-hex-digits
local-rn                = 1*hex-phonedigit rn-context
rn-context              = ";rn-context=" rn-descriptor
rn-descriptor           = domainname / global-hex-digits
global-hex-digits       = "+" 1*3(DIGIT) *hex-phonedigit
hex-phonedigit          = HEXDIG / visual-separator
visual-separator        = "-" / "." / "(" / ")"
domainname              = *( domainlabel "." ) toplabel ["."]
domainlabel             = alphanum
                          / alphanum *( alphanum / "-" ) alphanum
toplabel                = ALPHA / ALPHA *( alphanum / "-" ) alphanum
alphanum                = ALPHA / DIGIT
global-cic              = global-hex-digits
local-cic               = 1*hex-phonedigit cic-context
cic-context             = ";cic-context=" rn-descriptor

the "rn", "npdi", or "cic" parameter each can appear in the "tel" URI at most once πŸ”’.

the first "hex-phonedigit" value in "local-rn" or "local-cic" MUST be a hex-decimal digit πŸ”’.

for a "global-rn", the routing number info after "+" MUST begin with a valid E.164 [E164] country code 🌍. a hexadecimal digit is allowed after the country code in the "global-rn" 🌸.

for a "local-rn", the routing number in the "rn" parameter MUST be interpreted according to the "rn-context" 🧭. for example, if a national routing number is in the "rn" parameter, the "rn-context" MUST contain a valid E.164 country code after "+" if it's in the "global-hex-digits" format 🌏. a hexadecimal digit is allowed in the "local-rn" πŸ’–.

for a "global-cic", the CIC info after "+" MUST begin with a valid E.164 country code 🌍.

for a "local-cic", the CIC value in the "cic" parameter MUST be interpreted according to the "cic-context" 🧭. for example, if the national CIC value is in the "cic" parameter, the "cic-context" MUST contain a valid E.164 country code after "+" if it's in the "global-hex-digits" format 🌏.

the inclusion of the visual separator in the "rn" or "cic" is optional 🫧.

5. Normative Rules ✨

okay so bestie, there are two totally different ways a tel URI shows up πŸ’…. First, it can just sit in static content, like inside an HTML page or a presence document 🌸. Second, it shows up in call signaling protocols like SIP and H.323, where it steers where the call setup messages get routed πŸ¦‹. The tel URI extensions in this doc are built for that second world. So when a tel URI is chilling in static content, the parameters defined here SHOULD NOT be present, and anyone who gets them SHOULD remove them before using the tel URI 🧚

Inside signaling protocols, these parameters are for the call signaling entities we call network nodes, and they have to trust each other 🫢 Here's the thing: a parameter one node sticks in can change how a downstream node routes the request, so processing them depends on trusting that the upstream element followed these rules properly πŸ‘‘ A signaling protocol can check that an upstream element is in its circle of trust using hop-by-hop integrity mechanisms. See Section 7, Security Considerations, for the full drama 😭 And if a network node gets a call signaling message from an element it does NOT trust, it SHOULD ignore the parameters πŸ™ˆ

This section is all about what a network node does when it gets a tel URI that already has one or more of the parameters from this doc, or when it has checked an NP database for a freephone number or geographical telephone number and needs to add some of these parameters to a tel URI πŸ’–

In countries without freephone number portability or geographical telephone number portability, call routing can be based on the leading digits of the freephone number or geographical telephone number. This doc doesn't cover those scenarios, so no spoilers 🀫

Also, heads up: routing a call to a freephone number normally involves two freephone database accesses πŸ“ The first one happens in the originating network, which asks a freephone database for the CIC information so the call can reach the freephone service provider serving that number. When the call gets to that serving provider, the second database access happens, mapping the freephone number to a geographical telephone number and/or internal routing information. This doc does NOT address the case where internal routing information gets returned πŸ™…β€β™€οΈ

The first freephone database holds CIC info for ALL the active freephone numbers, while the second one usually only has mapping info for the freephone numbers that a freephone service provider serves πŸ’œ Since the originating carrier might also offer freephone service, its database would have CIC info for all the active freephone numbers PLUS mapping info for the ones it serves. This doc calls the two accesses "the first freephone database access" and "the second freephone database access" πŸŽ€

When you're handling the rn and cic parameters, and the phone numbers in the tel URI, for database access and routing, the visual separators get removed before the info is used 🧹

When a network node runs into a tel URI with invalid rn or cic information, it MAY release the call, or it MAY drop the invalid parameter and access the appropriate NP database or freephone database to see if it can get a valid routing number for a geographical telephone number or a valid CIC for the freephone number 🌈

And if a tel URI comes from an untrusted source, a network node MAY redo the NPDB query πŸ”„

SIP [RFC3261] has mechanisms to detect routing loops caused by URI re-writing, and the new parameters here work inside those established contexts ✨ Also, the npdi parameter in a URI, which tells you an NPDB query was already done, can help prevent routing loops πŸ¦‹ Other protocols thinking about using these tel URI parameters SHOULD make sure they have mechanisms in place to detect loops when re-writing the tel URI πŸ‘‘


5.1. Handling tel URI with NP Parameter or Parameters πŸ’…

If the tel URI has the npdi parameter, the network node MUST NOT retrieve the NP-related information for geographical telephone numbers, even if it's set up to do so πŸ™…β€β™€οΈ

If the tel URI has the cic parameter and its CIC value is different from the one this network node is associated with, this network node MUST NOT retrieve the NP-related information for the geographical telephone number, and MUST NOT perform the first freephone database access for the freephone number in the tel URI 🚫

For the cic and rn parameters, and either a freephone number or a geographical telephone number, the order of processing is: look at the cic parameter first for call routing πŸ” If the CIC info isn't useful, or the cic parameter doesn't exist, the next step is to look at the rn parameter. If the info in the rn parameter isn't useful, or the rn parameter doesn't exist, then the freephone number or geographical telephone number gets used πŸ’–

If the network node doesn't know how to route based on the cic or rn parameter, the local policies MUST decide whether to stop call processing or keep going by ignoring the invalid or unknown info 🧐

When you're looking for the cic parameter, and it exists in the tel URI:

  • The network node MUST ignore the cic parameter if the CIC identifies a carrier or service provider associated with that node, and look at the rn parameter to make the routing decision πŸ’… It MUST remove the cic parameter when it routes the call to the next-hop network node that belongs to another carrier or service provider πŸŽ€
  • The network node MUST invoke special handling process if the cic parameter contains a code that needs that treatment πŸ”₯ For example, a CIC value of 0110 in the response to a freephone DB query in North America means "local, translated geographical telephone number provided." In this particular example, the cic parameter is ignored πŸ™ˆ Heads up though: this particular CIC value of +1-0110 normally will NOT show up in the call setup message. It's just an example to show that special CIC values can exist 🌸 The exact code values and how to handle them are outside the scope of this document πŸ€·β€β™€οΈ
  • Otherwise, the network node MUST make the routing decision based on the CIC πŸ¦‹ The network node MUST NOT remove the cic parameter unless it's handing the call over to the carrier or service provider identified by the CIC AND the local policies require it to remove that parameter πŸ” How the call is actually routed based on the CIC value in the cic parameter is outside the scope of this document πŸ’œ

When you're looking for the rn parameter, and it exists in the tel URI:

  • If the routing number in the rn parameter points to this network node (for example, the call has reached the intended network node), this network node MUST look for the freephone number or geographical telephone number to make the routing decision 🧚 It MUST remove the rn parameter when setting up the call to the next-hop network node, no matter if that next-hop network node is in the same network or a different one 🫢
  • If the routing number in the rn parameter points to a network this network node is in (for example, in some countries the routing number gets the call to the serving carrier network, where another NP database access is needed to locate the serving switch), this network node MUST look for the freephone number or geographical telephone number to make the routing decision πŸ“ The network node MAY access the NP database for routing info if it's set to do so πŸ”Ž It MUST remove the rn parameter if the next-hop network node belongs to another carrier or service provider πŸ’…
  • Otherwise, the network node MUST make the routing decision based on the routing number in the rn parameter πŸ‘‘ How the call is actually routed based on that routing number is outside the scope of this document 🌈

When the cic or rn parameter isn't used for routing, the network node uses the freephone number or geographical telephone number to make routing decisions ✨ It MAY access the NP database if it's set to do so, OR it MAY route the call to a designated network node that will access the NP database, OR it MAY route the call based on the local routing table πŸ—ΊοΈ How the call is handled at this stage is outside the scope of this document 🀫 See Section 5.2 for the rules on adding the parameters defined in this document to the tel URI if the network node is set to access the NP database πŸ¦‹


5.2. Adding NP Parameter or Parameters to the tel URI πŸŽ€

There are two cases when it comes to NP database access: one for a geographical telephone number, and one for a freephone number πŸ’– They're covered in Sections 5.2.1 and 5.2.2 for a tel URI that's used for routing 🌸

Section 5.2.3 covers a special case where the rn parameter gets added to a tel URI associated with the first network node that handles the caller's call request 🧚 Section 5.2.4 covers adding the parameters defined in this document to the tel URI because of protocol conversion πŸ”„

When a network node accesses an NP database for a geographical telephone number:

  • If the network node retrieves a routing number, it MUST add the rn parameter to the tel URI to carry the routing number info in the global-rn or local-rn format πŸ’… It MUST also add the npdi parameter 🫢
  • If the network node does NOT retrieve a routing number (for example, for a non-ported geographical telephone number), it MUST add the npdi parameter to the tel URI 🌈

The network node MUST follow the rules in Section 5.1 for using the info in the tel URI to make the routing decision πŸ‘‘

okay so this one is about freephone numbers πŸ“žπŸ’–. When a network node does the first or second freephone database access for a freephone number, there are three possible outcomes, and each one gets handled differently:

  • If the network node gets back a CIC that identifies a carrier or service provider linked to that network node, or the CIC says a geographic number is supplied (like "+1-0110", which means "local, translated geographical telephone number provided"), then it has actually retrieved a geographical telephone number πŸŽ€. The network node MUST NOT add the "cic" parameter and MUST replace the freephone number in the "tel" URI with the retrieved geographical telephone number in either the "global-number" or "local-number" format.

Some freephone databases won't return a geographical telephone number at all. They send back internal routing info in a proprietary format instead (like a switch ID and trunk group ID). That situation is outside the scope of this document πŸ™ˆ.

  • If the network node gets a CIC that belongs to another freephone service provider, the network node MUST add the "cic" parameter to the "tel" URI, with the CIC in the "global-cic" or "local-cic" format 🌸.

The originating carrier might have business agreements with a freephone service provider so that a geographical telephone number comes back along with the CIC. When a geographical telephone number is returned, the network node MUST replace the freephone number in the "tel" URI with the returned geographical telephone number in either the "global-number" or "local-number" format.

  • If the network node gets a geographical telephone number (the typical case for the second freephone database access), the network node MUST replace the freephone number in the "tel" URI with the retrieved geographical telephone number in either the "global-number" or "local-number" format πŸ’….

When a geographical telephone number comes back in the response, the NP-related information for that number could come back too. In that case, the network node MUST add the "npdi" parameter and MUST add the "rn" parameter to hold the routing number in either the "global-rn" or "local-rn" format, but only when the routing number is available 🧚.

The network node MUST follow the rules described in Section 5.1 for using the information in the "tel" URI to make the routing decision. No skipping this one, bestie 🫢.


5.2.3. Adding Location Information about the Caller 🌍

okay location info, the main character of the caller side πŸ‘‘. In SS7 ISUP, the JIP identifies the switch that originates the call. The serving carrier can use that info to work out the call charge to the caller, and the carriers involved can use it to figure out the settlement amount between them πŸ’Έ.

A network node that is the first to handle the call request from the caller MAY include the "rn" parameter in the "tel" URI associated with the caller, if one exists. For example, if the network node is a Global Switched Telephone Network (GSTN) gateway that receives an ISUP message containing the JIP, the correct location information in the JIP can be placed in the "rn" parameter of the "tel" URI associated with the caller ✨.

Please note that the information in the "rn" parameter may not be authenticated. So if the recipient of the "tel" URI uses that info for anything related to charging, they're doing it at their own risk πŸ’€.

5.2.4. Adding NP Parameter or Parameters Due to Protocol Conversion πŸ”„

a GSTN gateway has to convert between SS7 ISUP and a VoIP protocol like SIP or H.323. This type of network node MUST map between the corresponding ISUP parameters and the parameters defined in this document that are associated with the "tel" URI for routing. It MAY map between the corresponding ISUP parameters and the parameters defined in this document that are in the "tel" URI associated with the caller πŸ¦‹.

Since ISUP support for NP depends on the individual country, the following discussion applies to the situation where a network node maps between the NP information in the American National Standards Institute (ANSI) ISUP and the NP-related parameters in the "tel" URI πŸ‡ΊπŸ‡Έ.

For a ported geographical telephone number, the network node MUST convert the routing number in the ISUP Called Party Number parameter to a routing number in either the "global-rn" or "local-rn" format, and carry it in the "rn" parameter for a "tel" URI that is used for routing. The network node MUST convert the phone number that is marked as the "ported number" in the ISUP Generic Address Parameter (GAP) to a phone number in either the "global-number" or "local-number" format [RFC3966], and put it in the global-number-digits or local-number-digits (see [RFC3966]) part of the "tel" URI that is used for routing πŸ“¦.

For a non-ported geographical telephone number, the network node MUST convert the phone number in the ISUP Called Party Number parameter to a phone number in either the "global-number" or "local-number" format, and put it in the global-number-digits or local-number-digits (see [RFC3966]) part of the "tel" URI that is used for routing. The "rn" parameter MUST NOT appear in the "tel" URI unless the local policies require the network node to include it. How to include the "rn" parameter when local policies require it is outside the scope of this document πŸ™…β€β™€οΈ.

The network node MUST include the "npdi" parameter in the "tel" URI that is used for routing when the Ported Number Translation Indicator (PNTI) bit in the Forward Call Indicator (FCI) parameter is set to "1" 🎯.

The network node MUST include the "cic" parameter in either the "global-cic" or "local-cic" format in the "tel" URI that is used for routing when the ISUP Carrier Identification Parameter (CIP) is present 🩷.

The network node MAY include the "rn" parameter in the "tel" URI associated with the caller information when the ISUP JIP is present. This may be subject to the network node's local policy and/or the signaling protocol that carries the "tel" URI 🌈.

Mapping NP-related parameters in a "tel" URI to the NP-related information in the ISUP message depends on the national ISUP implementation, and it is outside the scope of this document πŸ€·β€β™€οΈ.


6. Examples πŸŽ€

Okay, examples time, let's gooo 🧁.

A. A "tel" URI, tel:+1-800-123-4567, contains a freephone number "+1-800-123-4567". Assume this freephone number is served by a freephone service provider with a CIC "+1-6789". After retrieving the NP-related information, the "tel" URI would be set to:

tel:+1-800-123-4567;cic=+1-6789

B. A "tel" URI, tel:+1-800-123-4567;cic=+1-6789, is handled by a network node in the serving freephone service provider's network. Assume the freephone number is mapped to a geographical telephone number "+1-202-533-1234". After retrieving the NP-related information, the "tel" URI would be set to:

tel:+1-202-533-1234

C. A "tel" URI, tel:+1-202-533-1234, contains a geographical telephone number "+1-202-533-1234". Assume this geographical telephone number is ported and is associated with a routing number "1-202-544-0000". After retrieving the NP-related information, the "tel" URI would be set to:

tel:+1-202-533-1234;npdi;rn=+1-202-544-0000

D. A "tel" URI, tel:+1-202-533-6789, contains a geographical telephone number "+1-202-533-6789". Assume this geographical telephone number is not ported. After accessing the NP database, the "tel" URI would be set to:

tel:+1-202-533-6789;npdi

E. A "tel" URI, tel:+1-202-533-1234;npdi;rn=+1-202-000-0000, contains an invalid routing number (for example, there is no routing information on "+1-202-000-0000"). The network node may drop the "rn" parameter and access the NP database again.

tel:+1-202-533-1234;npdi;rn=+1-202-000-0000

F. A "tel" URI, tel:+1-800-123-456, contains a freephone number "+1-800-123-456" that is one digit short. When accessing the freephone database, there will not be any "cic" information for this freephone number. The call would be released πŸ“΄.

tel:+1-800-123-456

G. A "tel" URI, tel:+1-800-123-4567;cic=+1-56789, is handled by a network node in an originating or a transit network. The "cic" information is invalid. The network node may drop the "cic" parameter and access the freephone database again. If the same wrong CIC information is received, the network node would release the call because it does not know how to route the call with an invalid CIC. If valid information is received, the network node will use the received CIC in the "cic" and route the call based on the "cic" 🚦.

tel:+1-800-123-4567;cic=+1-56789

7. Security Considerations πŸ”

Okay, security, and I'm not joking here 😭. In addition to the security implications discussed in the revised "tel" URI [RFC3966], there are new security implications associated with the parameters defined in this document.

If the value of the "rn" or "cic" in the "tel" URI is changed illegally while the signaling message carrying the "tel" URI is en route to the destination entity, the signaling message or call may be routed to the wrong network or network node, which causes the call setup to be rejected 🚨.

If the "npdi" is illegally inserted into the "tel" URI while the signaling message carrying the "tel" URI is en route to the destination entity, the call may be routed to the wrong network or network node, which causes the call setup to be rejected. It is less of a problem if the "npdi" is illegally removed. An additional NPDB query may be performed to retrieve the routing number information and have the "npdi" included again πŸ”.

If the "rn" in the "tel" URI that is associated with the caller is illegally changed or inserted, the call charge based on that "rn" would be incorrect πŸ’Έ.

Because of these considerations, these "tel" URI extensions are only applicable within a set of network nodes among which there is mutual trust. If a node receives a call signaling request from an upstream node that it does not trust, it SHOULD remove these parameters. This will generally cause it to redo any DB queries πŸ›‘οΈ.

To verify that an upstream neighbor is trusted, and to prevent man-in-the-middle attacks whereby an attacker inserts or modifies these parameters, call signaling protocols carrying these parameters SHOULD provide hop-by-hop message integrity. In the case of SIP, this is accomplished with the Session Initiation Protocol Secure (SIPS) URI mechanism πŸ”’.


8. Acknowledgements 🫢

The author would like to thank Penn Pfautz, Jon Peterson, Jonathan Rosenberg, Henning Schulzrinne, Antti Vaha-Sipila, Flemming Andreasen, and Mike Hammer for their discussions and comments πŸ’œ.


9. IANA Considerations πŸ“‹

This document defines five parameters for the "tel" URI. Further information on a registry for those parameters is covered in [TELREG]. This document requires no IANA actions.


10. References πŸ“š

10.1. Normative References

  • [E164] ITU-T Recommendation E.164, "The international public telecommunication numbering plan," May 1997.
  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers", RFC 3966, December 2004.
  • [RFC4234] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 4234, October 2005.

That's the end of the normative bits, bestie 🌈✨

10.2. Informative References ✨

okay so these are the "extra reading" ones πŸ“š they're not required to implement the spec, but they give you the background. here's the full list, bestie 🫢

  • [H323] ITU-T Recommendation H.323, "Packet-Based Multimedia Communications Systems," November 2000. πŸ“ž
  • [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. πŸ¦‹
  • [RFC3482] Foster, M., McGarry, T., and J. Yu, "Number Portability in the Global Switched Telephone Network (GSTN): An Overview", RFC 3482, February 2003. 🌸
  • [TELREG] Jennings, C. and V. Gurbani, "The Internet Assigned Numbers Authority (IANA) tel Uniform Resource Identifier (URI) Parameter Registry", Work in Progress, May 2006. 🧚

Author's Address πŸ’Œ

this is who wrote it, the James Yu era at NeuStar, Inc. πŸ’œ

   James Yu
   NeuStar, Inc.
   46000 Center Oak Plaza
   Sterling, VA 20166
   U.S.A.

   Phone: +1-571-434-5572
   EMail: james.yu@neustar.biz

Copyright (C) The Internet Society (2006). πŸ’–

this document is covered by the rights, licenses and restrictions in BCP 78, and unless it says otherwise there, the authors keep all their rights. πŸŽ€

the document and the info in it are given "AS IS," and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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. πŸ’€

Intellectual Property πŸ”₯

the IETF is not taking a side on whether any IPR claims (patents, copyrights, and so on) cover the tech in here, or whether you can get a license to use it. it also hasn't done its own digging to find any of that. πŸ™ˆ if you want the rules on RFC rights, check BCP 78 and BCP 79. πŸ“–

if you want copies of IPR disclosures sent to the IETF Secretariat, or assurances of licenses, or the results of trying to get a general license for implementers or users, you can get them from the IETF online IPR repository at http://www.ietf.org/ipr. πŸ”

and if you know about any copyrights, patents, patent applications, or other proprietary rights that might cover tech needed to implement this standard, the IETF wants to hear about it. send it to ietf-ipr@ietf.org. πŸ’…


Acknowledgement 🫢

funding for the RFC Editor function comes from the IETF Administrative Support Activity (IASA). thank you, IASA, you're iconic πŸ‘‘βœ¨

πŸ“¦ where this page comes from