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.
What do you need?
You’ll want to contact firstname.lastname@example.org and let them know that you are interested in creating a Mobile application.
They will set you up with a demo account so that you can connect to our cloud based servers and provide you a Username, Password and CustomerId.
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 Mobile Elements Server Configuration for detailed information.
- See the below sections Outbound Calling and Inbound Calling in this page in order to build and configure your client application for outbound and inbound calls.
- Once you are able to run the application on your device, then you need to register your application with the assigned username and password. See the The Login Page screenshot. This is just a one time registration, but you can change your credentials from the Settings page. These credentials get validated by the server every time you open the application. You need to make sure that your Internet service is available all the time.
- You need to wait until you receive a status as Registration Ok on the Main page your application. See the above screenshot The Main Page With Tabs for the confirmation message.
- You can also check for your recent call list in the Recent tab of your Main page.
- In case you face any issues in running the application, you need to email the logs to the support team from the Settings page. It will automatically attach the log file.
- 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 in this article: Placing Outbound Calls with Mobile Elements on Android Device.
- To run Mobile Elements on iOS platform and to make outbound calls, follow the steps in this article: Placing Outbound Calls with Mobile Elements on iOS Device.
- To run Mobile Elements on UWP platform and to make outbound calls, follow the steps in this article: Placing Outbound Calls with Mobile Elements on UWP Device].
- 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 email@example.com. 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 Receiving Inbound Calls with Mobile Elements on Android Device.
- Currently the inbound calling is not supported on iOS devices.
- To make the inbound calls on UWP platforms, follow the steps provided in this page Receiving Inbound Calls with Mobile Elements on UWP Device.
- 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.