RFC 5724
URI Scheme for Global System for Mobile Communications (GSM) Short Message Service (SMS)
RFC 5724: URI Scheme for GSM SMS π
Okay bestie, let's start with the title block. This is RFC 5724, titled "URI Scheme for Global System for Mobile Communications (GSM) Short Message Service (SMS)" β¨. It was published in January 2010 under the Standards Track category, with ISSN 2070-1721. The authors are E. Wilde from UC Berkeley and A. Vaha-Sipila from Nokia π. The title block doesn't list anything it obsoletes or updates.
Abstract β¨
This memo defines the Uniform Resource Identifier (URI) scheme "sms" for naming one or more recipients of an SMS message π. SMS messages are two-way paging messages, and a mobile phone or a suitably equipped networked device can both send and receive them π±.
Status of This Memo π¦
This is an Internet Standards Track document π₯.
It's a product of the Internet Engineering Task Force (IETF), so it reflects the consensus of the IETF community π«Ά. It went through public review and was approved for publication by the Internet Engineering Steering Group (IESG). If you want more on Internet Standards, check Section 2 of RFC 5741 π.
For the current status, any errata, and how to give feedback, go to http://www.rfc-editor.org/info/rfc5724 πΈ.
Copyright Notice π
Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved π.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they stand on the publication date. Please read these carefully, because they spell out your rights and restrictions π. Code Components pulled out of this document must include the Simplified BSD License text described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as the Simplified BSD License describes π
.
Table of Contents π§
1. Introduction ....................................................3
1.1. What is GSM? ...............................................3
1.2. What is SMS? ...............................................3
1.2.1. SMS Content .........................................3
1.2.2. SMS Infrastructure ..................................4
1.2.2.1. SMS Centers ................................4
1.2.3. Uniform Resource Identifiers ........................4
1.2.4. SMS Messages and the Internet .......................5
1.2.4.1. SMS Messages and the Web ...................6
1.2.4.2. SMS Messages and Forms .....................6
1.3. Requirements Language ......................................6
2. The "sms" URI Scheme ............................................7
2.1. Applicability ..............................................7
2.2. Formal Definition ..........................................7
2.3. Processing an "sms" URI ....................................9
2.4. Comparing "sms" URIs .......................................9
2.5. Examples of Use ...........................................10
2.6. Using "sms" URIs in HTML Forms ............................10
3. URI Scheme Registration ........................................11
3.1. URI Scheme Name ...........................................11
3.2. Status ....................................................11
3.3. URI Scheme Syntax .........................................11
3.4. URI Scheme Semantics ......................................11
3.5. Encoding Considerations ...................................12
3.6. Applications/Protocols That Use This URI Scheme Name ......12
3.7. Interoperability Considerations ...........................12
3.8. Security Considerations ...................................12
3.9. Contact ...................................................12
4. Security Considerations ........................................12
5. IANA Considerations ............................................14
6. Acknowledgements ...............................................14
7. References .....................................................14
7.1. Normative References ......................................14
7.2. Informative References ....................................15
Appendix A. Syntax of telephone-subscriber .......................17
1. Introduction πΈ
1.1. What is GSM? πΆ
GSM (Global System for Mobile Communications) is a digital mobile phone standard that's used all over the world π. It was first named after its frequency band around 900 MHz, and GSM-900 became the basis for several other networks that use GSM technology π₯. Those include GSM networks running in the frequency bands around 1800 MHz and 1900 MHz π. When this document says "GSM," it means any of these GSM-based networks that run a short message service β¨.
1.2. What is SMS? π
The Short Message Service (SMS) [SMS] is a core part of GSM network technology π. It's been a huge hit and is still a major revenue source for many GSM operators π . SMS was so successful that other Global Switched Telephone Network (GSTN) technologies adopted it too, the Integrated Services Digital Network (ISDN) being one of them π¦. Because of that, this memo uses the term "SMS client" for user agents that can send and/or receive SMS messages π«Ά.
1.2.1. SMS Content π
GSM SMS messages are alphanumeric paging messages that can be sent to and from SMS clients π. An SMS message has a maximum length of 160 characters (7-bit characters from the GSM character set [SMS-CHAR]), or 140 octets π. Other character sets, such as UCS-2 16-bit characters (which give you 70-character messages), MAY also be supported [SMS-CHAR]. The SMS specification does label them optional though π. So any application that handles SMS messages as part of a chain of character-processing applications MUST make sure character sets are correctly mapped to and from the character set used for SMS messages π₯.
The 160-character content type is by far the most widely used, but there are lots of other SMS content types, like small bitmaps ("operator logos") and simple formats for musical notes ("ring tones") πΆ. These formats are proprietary, though, so this memo doesn't cover them π€·ββοΈ.
SMS messages are limited to 140 octets, and the first versions of the SMS specification didn't define any standard way to concatenate them π. As a result, a bunch of proprietary methods got invented. The current SMS specification does define message concatenation now β¨. To deal with this, SMS clients composing messages SHOULD use the standard concatenation method based on the header in the TP-User Data field, as the SMS specification [SMS] describes π . When an SMS client sends a message to a recipient whose support for concatenated messages is unknown, it MAY choose the backwards-compatible (text-based) concatenation method the SMS specification [SMS] defines π§. Proprietary concatenation methods SHOULD NOT be used except in closed systems, where the recipient's capabilities are always known π.
1.2.2. SMS Infrastructure π°οΈ
SMS messages can be sent over an SMS client's network interface using the signaling channels of the underlying GSTN infrastructure, so there's no delay for call setup β‘. SMS messages can also be submitted through other front-ends, like Web-based services, which lets SMS clients run on computers that aren't directly connected to a GSTN network that supports SMS π».
SMS messages sent with the GSTN SMS service MUST be sent as class 1 SMS messages, if the client is able to specify the message class π.
1.2.2.1. SMS Centers π’
For delivery inside GSTN networks, SMS messages get stored by an entity called the SMS Center (SMSC) and then sent to the recipient when the subscriber connects to the network π¬. When an SMS message is sent, the sender (the entity submitting it to a GSTN infrastructure) has to know the number of a cooperative SMSC π. Usually the SMSC's number is configured in the SMS client and is specific to the network operator the sender subscribes to π§. In most situations, the SMSC number is part of the sending SMS client's configuration π. But in some special cases, like when the recipient only accepts messages from a certain SMSC, the message may need to go through that specific SMSC π§.
The scheme in this memo does NOT support specifying SMSC numbers. So if messages have to go through a certain SMSC, some other context has to establish that requirement, or delivery might fail π¬.
Oops, I'm shouting, but that line is important! π Here's the plain version: the scheme in this memo does not support specifying SMSC numbers, so when messages have to go through a certain SMSC, there must be some other context setting that requirement, or delivery may fail π« .
1.2.3. Uniform Resource Identifiers π¦
One of the core specifications for identifying resources on the Internet is [RFC3986], which defines the syntax and semantics of a Uniform Resource Identifier (URI) π. The most important idea behind URIs is "schemes," which give you a framework for uniquely identifying and addressing resources π. URIs let users access resources, and they're used for all kinds of schemes: access protocols (HTTP, FTP), broadcast media (TV channels [RFC2838]), messaging (email [RFC2368]), and even telephone numbers (voice [RFC3966]) πβ¨.
People often mention URIs together with Uniform Resource Names (URNs) and/or Uniform Resource Locators (URLs), and it's often unclear how to tell these concepts apart π€. For this memo, we only use the term URI, which refers to the most fundamental concept π. The World Wide Web Consortium (W3C) has put out a note, [uri-clarification], that goes deep on URIs, URNs, and URLs π.
1.2.4. SMS Messages and the Internet β¨
okay so the web is iconic bc you can reach EVERYTHING through one interface ππ user agents (browsers, basically) handle a bunch of content formats (HTML, GIF, JPEG) and access schemes (HTTP, HTTPS, FTP) and it just works π«Ά
the mailto scheme is the blueprint here. it's super popular bc most user agents open an email composer when you click a mailto link π so sms can do the same thing!! when you select an sms URI, the user agent can give you an SMS composition thing π±β¨ if the user agent doesn't have one built in, it could open a web page that offers SMS sending instead πΈ and the user can even pick WHICH page to use, so everyone gets the SMS service they love π
so this memo's whole mission is to specify the sms URI scheme so browsers and email clients can start supporting it π¦ an sms URI identifies SMS message endpoints as resources. when you dereference one, implementations MAY create a message and show it for editing before it gets sent π or they MAY invoke extra services that handle composing and sending the message to the SMS message endpoint π§ either way, just clicking an sms link SHOULD NOT cause a message to be sent without the user confirming first π no surprise texts, bestie!!
1.2.4.1. SMS Messages and the Web
okay so SMS messages can be an alternative to mailto URIs [RFC2368] or to tel and fax URIs [RFC3966] ππ when an sms URI gets activated, the user agent MAY start a program that sends an SMS, just like mailto can open a mail client β¨ the tea is that most browsers don't handle unsupported URI schemes externally the same way they handle unsupported media types. like, they're really good at passing off content they can't display to an outside app, but not URIs π ideally, user agents should implement generic URI parsers and let people link unsupported schemes to external applications (or web-based services) π«Ά
the recipient of an SMS doesn't have to be a phone π it can be a server that processes SMS messages, either by gatewaying them to another messaging system (like regular email) or by parsing them for supplementary services π§
SMS can carry almost any kind of data (even with a super tight size limit π), but the only standardized data formats are character-based messages in different character encodings π€ an SMS maxes out at 160 characters (using 7-bit characters from the SMS character set) or 140 octets π BUT you can concatenate SMS messages to make longer ones π it's up to the user agent whether to limit the length, and how to show that limit in its UI if it needs to π there's one exception to this, see Section 2.6.
1.2.4.2. SMS Messages and Forms
HTML [HTML401] lets you collect info from a user and send it to a server for processing. these are called "HTML forms" π a filled-in form usually gets sent to its destination over HTTP or email, but guess what, SMS messages can carry forms too!! π²β¨ depending on how the network is set up, the sender's phone number might be included in the SMS, which gives you a weak form of authentication π not a fortress, but it's something π
1.3. Requirements Language
okay so the capitalized key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be read as described in [RFC2119] ππ
2. The "sms" URI Scheme π
syntax gets defined with the Augmented BNF (ABNF) [RFC5234] π§
2.1. Applicability
this URI scheme gives info you can use to send SMS message(s) to the recipient(s) you name π it's basically the same deal as the mailto URI, which (per [RFC2368]) can also take a comma-separated list of email addresses π§
the notation for phone numbers comes from [RFC3966] and its Erratum 203 [Err203] π’ Appendix A has a corrected syntax for the telephone number. check that doc if you want to know why this format was picked π€
how SMS messages get sent to the SMSC or other middlemen is OUT of scope for this spec π ββοΈ they can go over the GSM air interface using a modem and a suitable protocol, or through other protocols, like a web-based SMS service π also, SMS service options like deferred delivery and delivery notification requests aren't covered here π those services MAY be requested from the network by the user agent if it needs them π
SMS messages sent because of this URI MUST be sent as class 1 SMS messages, if the user agent can specify the message class β¨ no skipping this one!!
2.2. Formal Definition
the keywords in the syntax below are case-insensitive π€ here's the formal syntax of an sms URI, where the URI base syntax comes from [RFC3986] π§©
sms-uri = scheme ":" sms-hier-part [ "?" sms-fields ]
scheme = "sms"
sms-hier-part = sms-recipient *( "," sms-recipient )
sms-recipient = telephone-subscriber ; defined in RFC 3966
sms-fields = sms-field *( "&" sms-field )
sms-field = sms-field-name "=" escaped-value
sms-field-name = "body" / sms-field-ext ; "body" MUST only appear once
sms-field-ext = 1*( unreserved )
escaped-value = *( unreserved / pct-encoded ) ; defined in RFC 3986
some examples using this syntax are in Section 2.5 πΈ
the <telephone-subscriber> syntax comes from Section 5.1 of [RFC3966] π please consider Erratum 203 [Err203] in that spec too. for your convenience, Appendix A has a fixed syntax of the telephone number URI scheme, including Erratum 203, BUT RFC 3966 (plus all applicable errata) is still the normative reference π the phone number part of RFC 3966 (Section 5.1) says:
"The 'telephone-subscriber' part of the URI indicates the number. The phone number can be represented in either global (E.164) or local notation. All phone numbers MUST use the global form unless they cannot be represented as such. Numbers from private numbering plans, emergency ("911", "112"), and some directory-assistance numbers (e.g., "411") and other "service codes" (numbers of the form N11 in the United States) cannot be represented in global (E.164) form and need to be represented as a local number with a context. Local numbers MUST be tagged with a 'phone-context'."
this spec defines just ONE <sms-field>: body π extensions to this spec MAY define more fields. extensions MUST NOT change the semantics of the specs they extend π
ββοΈ and unknown fields in sms URIs MUST be ignored by implementations π«₯
the body <sms-field> defines the body of the SMS message to be composed π¬ it MUST not appear more than once in an sms URI. it's made of percent-encoded UTF-8 characters π‘ implementations MUST make sure the body characters get converted to a suitable character encoding before sending. the most popular one is the 7-bit SMS character encoding. another variant (not as universally supported as 7-bit SMS) is the UCS-2 character encoding (both specified in [SMS-CHAR]) π§ implementations MAY choose to discard (or convert) characters in the <sms-body> that the SMS character set they're using doesn't support. BUT if they do discard or convert characters, they MUST notify the user π no sneaky edits!!
the <escaped-value> syntax refers to the text of an SMS where all <reserved> characters (per [RFC3986]) in the SMS text are percent-encoded π§ check [RFC3986] for what <unreserved> and <pct-encoded> mean and for the details of percent-encoding π
User agents SHOULD support multiple recipients and SHOULD make it clear to users what the entire list of recipients is before they commit the user to sending all the messages πβ¨
2.3. Processing an "sms" URI
here are the steps for processing an sms URI, in order π§ββοΈπ
- the phone number of the first
<sms-recipient>gets extracted π± it's the phone number of the final recipient, and it MUST be written in international form with a country code, UNLESS the number only works from inside a certain geographical area or network. some numbers work from several networks but not the whole world, and those SHOULD be written in international form π according to [RFC3966], all international numbers MUST begin with a "+" character β hyphens, dots, and parentheses (called "visual separators" in RFC 3966) are only there for readability and MUST NOT convey any other meaning π - the
body<sms-field>gets extracted, if it's there π - the user agent SHOULD provide some way to compose the message, either by building it in or by accessing a service that does it π message composition SHOULD start with the body extracted from the
body<sms-field>, if present β¨ - after composing, a user agent SHOULD try to send the message first using its default delivery method. if that fails, the user agent MAY try another delivery method π
- if the URI has a comma-separated list of recipients (that is, multiple
<sms-recipient>parts), each one gets processed this way π exactly the same message SHOULD be sent to all the listed recipients, meaning the message from the composition step for the first recipient gets used unaltered for everyone else too π«Ά
2.4. Comparing "sms" URIs β¨
Okay so two "sms" URIs are equivalent if they follow these rules π
The <telephone-subscriber> part is borrowed from [RFC3966], so comparing individual <telephone-subscriber> values uses the rules in Section 4 of [RFC3966]. I'm repeating them here for convenience π
- Both must be either a
<local-number>or a<global-number<, i.e., start with a "+". π - The
<global-number-digits>and the<local-number-digits>must be equal, after removing all visual separators. π§Ό - For mandatory additional parameters and the
<phone-context>and<extension>parameters defined in [RFC3966], the<phone-context>parameter value is compared either as a host name if it is a<domainname>or digit-by-digit if it is<global-number-digits>. The latter is compared after removing all<visual-separator>characters. π - Parameters are compared according to
<pname>, regardless of the order they appeared in the URI. If one URI has a parameter name not found in the other, the two URIs are not equal. π ββοΈ - URI comparisons are case-insensitive. π
Since "sms" URIs can contain multiple <telephone-subscriber>s as well as <sms-fields>, two "sms" URIs are only equivalent if their <sms-fields> are identical, and if all <telephone-subscriber>s are equivalent when compared pairwise as a set (so the order doesn't matter). It's giving "same party, different guest list order" π₯
2.5. Examples of Use π¦
Let's look at some examples, bestie π§
sms:+15105550101
This one indicates an SMS-message-capable recipient at the given telephone number. The message is sent using the user agent's default SMS delivery method. Simple and iconic π
sms:+15105550101,+15105550102
This one indicates SMS-message-capable recipients at the given telephone numbers. The identical message should be sent to both recipients using the user agent's default SMS delivery method. Group chat energy π―ββοΈ
sms:+15105550101?body=hello%20there
In this case, a message will be sent via SMS using the user agent's default SMS delivery method. The message starts out as "hello there", but the user can still edit it before sending πΈ
2.6. Using "sms" URIs in HTML Forms π
Okay, this part is seriously important π When an "sms" type URI is used as an action URI for HTML form submission [HTML401], the form contents MUST be packaged in the SMS message the same way they're packaged when using a "mailto" URI [RFC2368], using the "application/x-www-form-urlencoded" media type (as defined by HTML [HTML401]). Basically, all the form data gets packed into URI-compliant syntax [RFC3986] π The SMS message MUST NOT contain any HTTP header fields, only the form data. The media type is implicit, and it MUST NOT be transferred in the SMS message. Since the SMS message already contains the form field values, the body <sms-field> of an "sms" type URI used for an HTML form will be ignored. Not needed, bestie π
The character encoding for form submissions MUST be UTF-8 [RFC3629]. It should be noted, however, that user agents MUST percent-encode form submissions before sending them (this encoding is specified by the URI syntax [RFC3986]). β οΈ
The user agent SHOULD inform the user about the possible security hazards involved when submitting the form. It's probably being sent as plain text over an air interface, so the user deserves to know π₯
If the form submission is longer than the maximum SMS message size, the user agent MAY either concatenate SMS messages, if it is able to do so, or it MAY refuse to send the message. What it MUST NOT do is send out partial form submissions π No half-sent drafts, periodt π
3. URI Scheme Registration π
This memo requests the registration of the Uniform Resource Identifier (URI) scheme "sms" for specifying one or more recipients for an SMS message. The registration request complies with [RFC4395] β¨
3.1. URI Scheme Name π·οΈ
sms
3.2. Status π
Permanent π
3.3. URI Scheme Syntax π§©
See Section 2 π
3.4. URI Scheme Semantics π¬
The "sms" URI scheme defines a way for a message to be composed and then transmitted using the SMS message transmission method. It can be compared to the "mailto" URI scheme [RFC2368]. See Section 2.3 for the details of operation π¦
3.5. Encoding Considerations π€
The optional body field of "sms" URIs may contain a message text. This text uses percent-encoded UTF-8 characters, so it can always be represented using URI characters. See Section 2 for the details of encoding π
3.6. Applications/Protocols That Use This URI Scheme Name π οΈ
The "sms" URI scheme is meant to be used in a similar way to the "mailto" URI scheme [RFC2368]. By using "sms" URIs, authors can embed information into documents that can be used as a starting point for starting message composition βοΈ Whether the client sends the message itself (for example, over a GSM air interface) or redirects the user to a third party for message composition (such as a Web service for sending SMS messages) is outside the scope of the URI scheme definition. Not our problem, it's out of scope π ββοΈ
3.7. Interoperability Considerations π€
No interoperability issues have been identified. Iconic behaviour π
3.8. Security Considerations π
See Section 4 π«Ά
3.9. Contact π¬
Erik Wilde
School of Information
UC Berkeley
Berkeley, CA 94720-4600
U.S.A.
tel:+1-510-6432252
mailto:dret@berkeley.edu
4. Security Considerations π
Okay, buckle up, because this is the scary section π SMS messages are transported without any provisions for privacy or integrity, so SMS users should be aware of these inherent security problems. Unlike electronic mail, where additional mechanisms exist to layer security features on top of the basic infrastructure, there currently is no such framework for SMS messages. Zero protection, no cap π
SMS messages very often are delivered almost instantaneously (if the receiving SMS client is online), but there is no guarantee for when they will be delivered. In particular, SMS messages between different network operators sometimes take a long time to be delivered (hours or even days) or are not delivered at all. So applications SHOULD NOT make any assumptions about the reliability and performance of SMS message transmission. Don't trust the vibes, trust the spec π°οΈ
In most networks, sending SMS messages is not a free service. Therefore, SMS clients MUST make sure that any action that incurs costs is acknowledged by the end user, unless the end user has explicitly instructed otherwise. If an SMS client has different ways of submitting an SMS message (such as a Web service and a phone line), then the end user MUST have a way to control which way is chosen. Your money, your choice πΈ
SMS clients are often limited devices (typically mobile phones), so the sending SMS client SHOULD NOT make any assumptions about the receiving SMS client supporting any non-standard services, such as proprietary message concatenation or proprietary content types. However, if the sending SMS client has prior knowledge about the receiving SMS client, then it MAY use this knowledge to compose non-standard SMS messages. Know your audience π
There are certain special SMS messages defined in the SMS specification [SMS] that can be used, for example, to turn on indicators on the phone display or to send data to certain communication ports (comparable to UDP ports) on the device. Certain proprietary systems (for example, the Wireless Application Protocol [WAP]) define configuration messages that may be used to reconfigure the devices remotely. Any SMS client SHOULD make sure that malicious use of such messages is not possible, for example, by filtering out certain SMS User Data header fields. Gateways that accept SMS messages (e.g., in email messages or Web forms) and pass them on to an SMSC SHOULD implement this kind of "firewalling" approach as well. Main character villain arc prevention π‘οΈ
Because of the narrow bandwidth of the SMS communications channel, there should also be checks in place for excessively long concatenated messages. As an example, it may take two minutes to transfer thirty concatenated text messages. Slow and dramatic π’
Unchecked input from a user MUST NOT be used to populate any other fields in an SMS message other than the User Data field (not including the User Data header field). All other parts, including the User Data header, of the short message should only be generated by trusted means. Users are not allowed to touch the header, periodt π«
By including "sms" URIs in unsolicited messages (a.k.a. "spam") or other types of advertising, the originator of the "sms" URIs may attempt to reveal an individual's phone number and/or to link the identity (i.e., email address) used for messaging with the identity (i.e., phone number) used for the mobile phone. This attempt to collect information may be a privacy issue, and user agents may make users aware of that risk before composing or sending SMS messages. User agents that don't give any feedback about this privacy issue make users more vulnerable to this kind of attack π Spam is not the vibe π΅
A user agent SHOULD NOT send out SMS messages without the knowledge of the user, because of the associated risks. These include sending masses of SMS messages to a subscriber without their consent, and the costs involved in sending an SMS message πΈπ±
As suggested functionality, the user agent MAY offer a possibility for the user to filter out those phone numbers that are expressed in local format. Most premium-rate numbers are expressed in local format, and determining the correct local context (and hence the validity of the number for this specific user) may be very difficult π΅οΈββοΈ
When using "sms" URIs as targets of forms (as described in Section 2.6), the user agent SHOULD inform the user about the possible security hazards involved when submitting the form. It's probably being sent as plain text over an air interface π₯
5. IANA Considerations π
IANA has registered the "sms" URI scheme, using the template in Section 3, in accordance with [RFC4395] π
6. Acknowledgements π«Ά
This document has been prepared using the IETF document DTD described in [RFC2629] π
Thanks to (listed alphabetically) Claudio Allocchio, Derek Atkins, Nevil Brownlee, John Cowan, Leslie Daigle, Lisa Dusseault, Miguel Garcia, Vijay Gurbani, Alfred Hoenes, Cullen Jennings, Graham Klyne, Larry Masinter, Alexey Melnikov, Michael Patton, Robert Sparks, and Magnus Westerlund for their comments πΈ
7. References π
7.1. Normative References π
These are the must-read sources the spec leans on, so here's the full list, bestie π
[Err203] RFC Errata, "Errata ID 203", RFC 3629, http://www.rfc-editor.org.
[HTML401] Raggett, D., Le Hors, A., and I. Jacobs, "HTML 4.01 Specification", W3C REC-html401, December 1999, http://www.w3.org/TR/html401/.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 10646", STD 63, RFC 3629, November 2003.
[RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers", RFC 3966, December 2004.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005.
[RFC4395] Hansen, T., Hardie, T., and L. Masinter, "Guidelines and Registration Procedures for New URI Schemes", BCP 35, RFC 4395, February 2006.
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008.
[SMS] European Telecommunications Standards Institute, "3GPP TS 23.040 V7.0.1 (2007-03): 3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; Technical realization of the Short Message Service (SMS) (Release 7)", March 2007, http://www.3gpp.org/ftp/Specs/archive/23_series/23.040/23040-701.zip.
[SMS-CHAR] European Telecommunications Standards Institute, "TS 100 900 (GSM 03.38 version 7.2.0 Release 1998): Digital Cellular Telecommunications System (Phase 2+); Alphabets and language-specific information", July 1999, http://www.3gpp.org/ftp/Specs/archive/03_series/03.38/0338-720.zip.
7.2. Informative References πΈ
These ones are extra reading if you're curious (no pressure, but they're iconic β¨).
[RFC2368] Hoffmann, P., Masinter, L., and J. Zawinski, "The mailto URL scheme", RFC 2368, June 1998.
[RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629, June 1999.
[RFC2838] Zigmond, D. and M. Vickers, "Uniform Resource Identifiers for Television Broadcasts", RFC 2838, May 2000.
[WAP] WAP Forum, "Wireless Application Protocol - Architecture Specification (WAP-210-WAPArch-20010712)", July 2001.
[uri-clarification] World Wide Web Consortium, "URIs, URLs, and URNs: Clarifications and Recommendations 1.0", W3C uri-clarification, September 2001, http://www.w3.org/TR/uri-clarification/.
Appendix A. Syntax of 'telephone-subscriber' π
This grammar is copied straight from Section 3 of [RFC3966] π§ It's the <telephone-subscriber> bit that the "sms" URI scheme syntax uses. Heads up: it already bakes in Erratum 203 [Err203] for RFC 3966, which changes the definition of <isdn-subaddress>. Don't skip that part, it matters π
telephone-subscriber = global-number / local-number
global-number = global-number-digits *par
local-number = local-number-digits *par context *par
par = parameter / extension / isdn-subaddress
isdn-subaddress = ";isub=" 1*paramchar
extension = ";ext=" 1*phonedigit
context = ";phone-context=" descriptor
descriptor = domainname / global-number-digits
global-number-digits = "+" *phonedigit DIGIT *phonedigit
local-number-digits =
*phonedigit-hex (HEXDIG / "*" / "#")*phonedigit-hex
domainname = *( domainlabel "." ) toplabel [ "." ]
domainlabel = alphanum
/ alphanum *( alphanum / "-" ) alphanum
toplabel = ALPHA / ALPHA *( alphanum / "-" ) alphanum
parameter = ";" pname ["=" pvalue ]
pname = 1*( alphanum / "-" )
pvalue = 1*paramchar
paramchar = param-unreserved / unreserved / pct-encoded
unreserved = alphanum / mark
mark = "-" / "_" / "." / "!" / "~" / "*" /
"'" / "(" / ")"
pct-encoded = "%" HEXDIG HEXDIG
param-unreserved = "[" / "]" / "/" / ":" / "&" / "+" / "$"
phonedigit = DIGIT / [ visual-separator ]
phonedigit-hex = HEXDIG / "*" / "#" / [ visual-separator ]
visual-separator = "-" / "." / "(" / ")"
alphanum = ALPHA / DIGIT
Authors' Addresses π
Erik Wilde UC Berkeley School of Information Berkeley, CA 94720-4600 U.S.A.
Phone: +1-510-6432253 EMail: dret@berkeley.edu URI: http://dret.net/netdret/
Antti Vaha-Sipila Nokia
EMail: antti.vaha-sipila@nokia.com URI: http://www.iki.fi/avs/
That's the whole thing, bestie! ππ We made it to the end ππ«Ά
π¦ where this page comes from
- ietf: rfc5724 2010-01
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms