How do I include extensions in the tel: URI?
I currently have a webpage serving up phone numbers, some of these phone numbers have extensions so I have written the HTML like this:
<a href="tel:+44-1234-567;ext=88">+44-1234-56788</a> / <a href="tel:+44-1234-567;ext=99">+44-1234-56799</a
When I hit this page in my Android browser and tap one of the phone numbers, it loads up in my phone dialer (UK Samsung Galaxy s2 stock) as:
+44-1234-567;ext=88
which I don't think is correct. Surely it should omit the ;ext=
word.
Have I misread the RFC for implementing tel
?
Seems the proper way to do it is use a comma:
<a href="tel:441234567,88">+44-1234-567 ext.88</a>
Just tested with iPhone and Android OS 2.1. Using ;ext=88
converts the ext bit into a number that is dialed with the extension (so it dials something like 35888 instead of 88).
According to the documentation, you can add what you want like so 12345678;ext=123
See RFC 3966
Comment for How do I include extensions in the tel: URI?
As of June 2021 the RFC3966 ;ext=
syntax still isn't implemented by Android, and it's inelegantly implemented by iOS.
Using ;ext=123
as an example:
- Android: after the call connects a modal window appears asking
Send the following tones? 396123
withNo
andYes
buttons. "Send the following tones?" is a precise technical description of what will happen if the user tapsYes
, but it is probably not the best wording for the average user. - Android converts
;ext=123
into396123
because it treats the letters the same way as if you were dialing something like1-800-FLOWERS
, and this is a broken implementation of the syntax. - iOS provides an option to the left of the Disconnect button that says
Dial “ext=…”
. When you tap on this "button" it will dial the extension number. This is inelegant and has bad usability because the "button" doesn't look like a button — it's just plain text — and because you can't see the extension number. - In addition, when you first tap on a phone link in iOS it presents a button at the bottom of the screen which partially rewrites the phone number into a local format, but which also preserves most of the
;ext=
syntax, e.g.Call +1 (555) 555-5555;ext123
. This is also inelegant, and it's ugly besides.
If you instead use just a ;
which is supposed to mean "wait," as in "wait until the auto attendant message ends and then automatically dial the extension":
- iOS: tapping the link displays a button stating
Call +1 (555) 555-5555;123
which is slightly less ugly than the button described above. - iOs provides the same extension-dialing "button" described above except the extension number is visible, e.g.
Dial “123”
. It still has the other usability problems. - iOS does not automatically dial the extension after the message ends.
- Android: after the call connects a modal window appears asking
Send the following tones? 123
withNo
andYes
buttons. - Android does not automatically dial the extension after the message ends.
So for now, as of June 2021 it seems that the only way to include extensions in tel:
links that will actually work is to use either ;
for "wait" or ,
for "pause":
-
<a href="tel:+1-555-555-5555;123">555-555-5555 ext. 123</a>
— this will provide a UI component which the user can invoke to dial the extension. The usability of the UI component depends on the OS; neither are great, but Android's is arguably better. -
<a href="tel:+1-555-555-5555,123">555-555-5555 ext. 123</a>
— this will automatically dial the extension a couple seconds after the call connects. Note: This mechanism will not work with voicemail systems that don't accept user input until the auto attendant message ends.
In all the examples I saw, the value of ext
is contained in the full number. So try including 88 in the href
value:
<a href="tel:+44-1234-56788;ext=88">+44-1234-56788</a>