How do I include extensions in the tel: URI? - html

I currently have a webpage serving up phone numbers, some of these phone numbers have extensions so I have written the HTML like this:
+44-1234-56788 / <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:
+44-1234-567 ext.88
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).

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 with No and Yes buttons. "Send the following tones?" is a precise technical description of what will happen if the user taps Yes, but it is probably not the best wording for the average user.
Android converts ;ext=123 into 396123 because it treats the letters the same way as if you were dialing something like 1-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 with No and Yes 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":
555-555-5555 ext. 123 — 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.
555-555-5555 ext. 123 — 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.

According to the documentation, you can add what you want like so 12345678;ext=123
See RFC 3966

In all the examples I saw, the value of ext is contained in the full number. So try including 88 in the href value:
+44-1234-56788

For those still wondering about this problem: I've found it best to use this format:
<a href="tel:+13235798328;22">

Standards at thenewcode from 3 months ago suggest using a microdata pause.
<a href="tel:+13235798328p22">
Related:
Different standards persist across different external platforms and may change the processing of URIs. Click to call
features on Google Developers docs do not specify
Example:
Office's Skype uses x to represent extension within skype.

I feel like this is kind of a cop-out answer, but if this is not implemented consistently across devices yet, probably best to just not include the extension and let people dial it by hand:
+44-1234-567 ext. 88
or
+44-1234-567 ext. 88
Better to make the user do more work than to send 1/2 your users to the wrong extension.

I don't get the answers to this question - I think the're wrong. The correct link would look like this:
+44-1234-567 ext. 88

Related

Looking for a Chromium Command Line Switch to relax HTMLInputElement restrictions

The title pretty much says it all. Is there a command line switch for Chrome/Edge which relaxes the restrictions that are made to javascript on the input element of type file?
Yes I am aware there is a reason for these restrictions
No I actually don't intend to use it on a Browser such as Chrome or Edge
I want to know so I can build a hybrid app that utilizes MS's Webview2 which accepts the switches (at least I am led to believe it does)
EDIT: I want to call click() and/or add files to it.

iOS 9.2 breaks app protocol handling

I have a link in my app that points to an app protocol of type myProtocol://". Until a few days ago this was working completely fine, whenever you clicked on the link, the native app would open.
However, iOS9.2 seems to have broken this. Now what happens is when the links is clicked, I get a prompt to open the native app which disappears after roughly 1 second, not even close to giving the user enough time to access. Shortly afterwards I get prompted to go to the App Store to the app's page.
Any idea why this is happening and what changes in iOS9.2 that is causing this would be helpful.
It seems that with iOS9.2, Apple is making a move towards Universal Links and traditional deeplinking is not supported anymore. While I was not able to find any information published direct on iOS9.2 release notes, following links indicate the same:
https://blog.branch.io/ios-9.2-redirection-update-uri-scheme-and-universal-links
https://www.adjust.com/overview/features/2015/12/11/ios-9-2-deeplinking/

Does the latest Instagram iOS app support caption in URL scheme?

Formerly it was possible in iOS to use the hook instagram://camera?caption=YourCaptionHere (from Mobile Safari, or elsewhere) to have the Instagram app open in camera mode with a pre-filled caption. However, that no longer seems to be the case as my previously working URL (hook) no longer populates a caption (though it does still open Instagram in camera mode).
I'm having trouble finding any current information on this, though the caption query string variable seems to have never been documented in the first place.
Does anyone know if this feature is still available under a different query string variable?
To be more clear, I have a link on a web page that attempts to open Instagram in camera mode with a caption. I have a JavaScript click event that checks after 500ms to see if the page is still open, then alerts the user to download the app if the link didn't work:
Open Instagram
Instagram provides documentation on iOS hooks. That documentation does not make any mention of a caption parameter, except sharing a photo via Obj-C (in which they call it annotation). Given the different naming, you could try instagram://camera?annotation=YourCaptionHere and it might even work, but this doesn't seem to be an officially-supported use case.
Further, to support your second paragraph, searching through the history of the docs on the wayback machine doesn't turn up any mention that caption was ever a supported argument... like you said. Interestingly, one of their co-founders claimed this was available 2 years ago... I guess they never made it official, then removed it?

Automatically dial a phone number

I have a web page where I have a button. I need to automatically dial a phone number on the click of the button. It needs to be done in HTML.
I need to do it on the onclick event of the button.
On mobile devices, there are protocol handlers to launch the phone. Depending on the security, some will dial it, or others will bring on the phone application with the number already there.
Call me at +1 (555) 555-5555
I've used this in the past for mobile apps:
<button id="call">Call</button>
<script>
$("#call").on('click', function() {
var link = "tel:18003334444";
window.location.href = link;
});
</script>
This, of course, uses jQuery.
Well, I don't think this is possible in HTML... Have you done any research on Java or PHP? a quick google reveals a grand central API, and Java Phone, But I don't know how much help they will be. Also, for future reference, it helps if you tell us what you want to do with this number, will you be connecting it to another phone number? To your computer? Etc. Regardless, this is going to be a fairly complex project, and would be so even if you were comfortable with a real programming language. Your best approach would be to figure out your options and then come back to Stack overflow if you need help on choosing one. Best of luck!
I have to declare a commercial interest. I work for Cisco and we've developed a JavaScript SDK and browser plugin that enable you to do this, but only in a Cisco deployment. If you're interested, here's the link:-
http://developer.cisco.com/web/jabber-developer/jabber

Fully "Kiosking" Chrome (capture and prevent default of C-w/t/n)

I need to prevent Ctrl-w, Ctrl-t, Ctrl-n from doing their default functionality. I know removing user rights is frowned upon, but hear me out before casting judgement.
event.preventDefault() only works on lesser key combos like p, but n, t, and w are immune to client side javascript according to javascript capture browser shortcuts (ctrl+t/n/w).
I'm writing educational cloud software for kids 3-12, and I use Chrome's Kisok mode to limit their ability to screw around. I have full control of the computers in question. Are there hidden Chrome options / extensions / Windows tricks / something else that I can use to make the computer actually a kiosk instead of a "kisok"?
Also, I'm writing a cloud code editor using Ace and I want to use emacs key bindings but I keep opening new windows when I try to go down a line.
EDIT clarification: It's Chrome only because that was the spec / we control the system, but it would be useful if anyone has thoughts on ff/o/ie
Since you noted thoughts on other browsers would be helpful: Opera's kiosk mode seems more powerful than Chrome's. I believe this would give the result you want: opera.exe /kioskmode /nokeys http://your-url