Mobile Elements is a VoIP mobile application which runs on Android, iOS and Universal Windows platforms. This application has been built using Xamarin forms cross platform development environment which is a built-in feature in Visual Studio. The Mobile Elements application supports outbound and inbound calling facility using the Voice Elements server platform. Some screenshots of application pages in Android target platform is shown below.
The Splash Screen The Login Page The Main Page With Tabs The Recent Call Page The Setting Page Dialing a number for Outbound Call
What do you need
You’ll want to contact email@example.com and let them know that you are interested in creating a Mobile application.
They will need to give you the following information:
-Username -Password -CustomerId
They will also set you up with an account so that you can connect to our cloud based servers.
How it works
In order to run the application on your devices, you need to do the following steps.
- Download the Mobile Elements server and client projects from <Link> and open the two solutions in Visual Studio.
- You need to build the Mobile Elements server solution first and make sure that it is up and running. See this Outbound Calling
- The Mobile Elements solution has six different folders which includes shared project, Android, iOS, UWP, Windows and Windows phone. Currently, the outbound calls are supported only in Android, iOS and UWP target platforms. All these projects have to be compiled and executed individually. To enable your outbound calling feature, you need to configure few parameters in “UserCredential.cs” file in the client shared project. See platform specific pages below for more details. Set the URI and host of your server application in order to open the web socket for outbound calls.
- Whenever the user places an outbound call, the web socket is opened to connect the server application. The call credentials are sent to the server application through this socket. Then the call details are sent to the Voice Elements server platform from the server application. The two lines are routed to establish the outbound call for the user.
- Below are the two screenshots of the outbound call page and the keypad during the outbound call. These screenshots are taken from the running Mobile Elements application in an Android device.
- To run Mobile Elements on Android platform and to make outbound calls, follow the steps provided in this page .
- To run Mobile Elements on iOS platform and to make outbound calls, follow the steps provided in this page .
- To run Mobile Elements on UWP platform and to make outbound calls, follow the steps provided in this page .
- The Mobile Elements application works with the push notification services on different platforms to support the inbound calling feature. In order to establish an inbound call, first you need to contact firstname.lastname@example.org. They will assign your receiving device with a phone number. Currently, the inbound calling is supported only in Android and UWP target platforms.
- Before you start, you need to create and configure your project details in GCM/WNS/APNS cloud services. To enable the inbound calling, you need to set the flag ENABLE_REGISTRATION as a conditional compilation symbol in build options inside the platform specific projects and you are also required to configure few parameters in “UserCredential.cs” file in the client shared project. See platform specific pages below for more information.
- The client application request the GCM/WNS/APNS cloud services for a registration token/device token/channel URI during the launch of application on your device. This device token is sent to the server application through a web socket for further communication. The device token and the username are stored at the server application and the username is validated.
- Whenever an inbound call arrives at Voice Elements server platform through the carrier services, the server application is informed by the Voice Elements server. Then the server application sends the push notification to the could services using the device id and other secret/application keys. Then the cloud services send the push message to the client application.
- When the client application receives the push notification, it launches a page to answer the inbound call. Once the call is answered, a web socket is opened to route and establish the inbound call. An global unique identifier is used for each call.
- Below is a screenshot of inbound call page in a running Mobile Elements application on Android device.
- To make the inbound calls on Android platforms, follow the steps provided in this page .
- Currently the inbound calling is not supported in iOS devices.
- To make the inbound calls on UWP platforms, follow the steps provided in this page .
- If the keypad page is opened during the call, then the numbers dialed over there are not passed to the ongoing call.
- If the user rejects the call without answering in case of an inbound call, then the call never gets disconnected from the calling side.
Android Platform Specific Issues
- Multiple missed calls from a single number are not supported.
UWP Platform Specific Issues
- Missed calls are not supported.
- If the application is running and minimized, then the notification wont be visible until the application is maximized.
- The caller id is not shown in case of a toast notification.
- You need to configure Mail Box of Windows 10, in order to email the logs from the Mobile Elements application.
iOS Platform Specific Issues
- Inbound calls through push notifications are not supported in iOS target platform.
- Splash screen is not working in iOS.