Detecting voice call support in mobile devices - mobile

When developing a mobile website, I want to display features based upon device capabilities. Specifically, I want to have a "Call us" button that uses the "tel:" protocol (e.g. tel:5551234) to initiate a phone call.
However, not all mobile devices support phone calls, such as the iPad.
How can I programmatically (either server or client side) determine whether a mobile user agent supports voice calling? I'm trying to avoid blacklisting based on user agent for maintainability reasons.

Related

Cortana to make phone call in Android through code

I would like to know on whether there is any possibility to call a phone number using cortana skill through code.
I am using microsoft web bot. I want to write code in c# for calling a person from my contacts.
I am using a luis framework, If user invokes a specific intent, i should directly call a specific phone number in my android mobile.
Is there any way i can make this call through code.?
First of all - if you want to add call functionality you have to implement it on your own because there is no ad-hoc way to invoke contacts book or make calls from Cortana.
This is also not possible currently because there is no Cortana SDK released for Android or iOS platforms to make integration. If it was there are development steps you could probably do in your mobile app source code (dedicated app because Cortana is also not integrated with mobile Android and iOS system):
Integrate Cortana with mobile app source code (in your case Java because of Android) which enables talking to Cortana and getting responses.
Implement code which handles response from the user about specific person to search in contacts book.
Implement code to search contacts book basing on the name of user told to Cortana.
Invoke platform-specific code to make call with selected number.
To sum there is no way to implement call functionality with C# and Cortana on Android (iOS neither). You can fin more information here.

How can I detect the user's mobile connection speed from my webserver?

Is there a way to detect the internet speed of a mobile device?
I wish to serve either the mobile or the full website to a phone, depending on the speed of the internet connection used at the time of loading.
The goal is to serve the mobile website, with basic information for when people are watching on a mobile phone with slow connection, but the complete responsive website when the internet connection can handle that load-time, without making viewers wait to long.
I wish to find out wether this is possible, and if it is a nice addition to a website or not.
You should serve content to a mobile device based on its user agent string.
Alternatively, some websites choose to implore a responsive layout that lets a single page react to different screen sizes, while still being the same page underneath.
Never rely on the internet connection speed to determine what content to send - it is highly unreliable. There are 4G networks that are faster than a lot of DSL providers right now, so it would be impossible to account for the 20mbit 4G cell phone user vs. the 512kbit dialup user sitting on a desktop computer.

Mobile phone support for http progressive download and other streaming protocols.

Do most modernish versions of Samsung Bada OS, Nokia Symbian, Nokia Series 40, Windows Phone, and Blackberry support http progressive download via their default web browser (and assumedly passing the call onto a media player)?
Essentially, I want to figure out the best combination of video streaming protocols to use to reach the maximum of users on these devices (if a user clicks on a link to play video via a web browser). I can't find any documentation about whether the media players support http progressive download, although it seems ridiculous that they wouldn't. Some of the latest versions of these OSs support HTML5... which means they can in theory play video within the browser.

How do Mobile Apps communicate with a server?

How do Mobile Apps communicate with a server? Does this communication happen over HTTP or are there other methods (for instance, I guess a mobile app could open a socket)? Does this differ form device to device? Is there one most commonly used approach? If the communication happens over HTTP how do the URLs look like? Is there a way to identify the app based on the the "User Agent" in the HTTP request if the communication is happening over HTTP?
Mobile Apps can communicate with a server in many ways. Mobile apps can also use other features of the mobile. For instance SMS , MMS. Its pretty open really. Your question could be "how do computers communicate with a server?".
A mobile app can be a simple as loading a web page. This would be http.
The problem with mobile apps. They run on phones. There are lots of different phone manufacturers and its up to them (in some case the mobile phone operators also have weight) what to allow the programmer to do by the choice of operating system.
If you are getting started with mobile apps. Take a look at android its pretty simple to get going with if you know a little about programming.
As for the useragent. It depends but usually if you are using the http api on the phone, you can set the user agent to what ever you want it to be, its just a string.
Hope this helps!
Communication usually happens over http. Applications usually identify themselves in the User Agent field

Background task in mobile phone to access a secure element and a web server

Is it possible in a GSM mobile phone OS (e.g. Android, Win Mo, Symbian, etc.) to have some kind of background task or application able to exchange data at the same time with a web server and a secure element of the mobile?
The purpose if for the web server to be able to push APDUs to the secure element (an retrieve response APDUs) without activating the IHM of the mobile.
NB: I know that this is possible when the secure element is the one managing the GSM baseband, for example using BIP as described in Ulysse specifications. My question is only when using another secure element (e.g. Java Card in a microSD).
Sorry, I used the French acronym "IHM" in place of "MMI" (man-machine interface).

Resources