Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Implementing App-to-App calling on Android

I am trying to implement a scenario whereby App-User A can make a voice (video not so important now) call to App-User B on Android. It seems difficult to come across a good tutorial that covers the whole picture. However, from my research, I have been able to learn couple of things but still not enough to get it done.

From what I learnt so far, to implement App-to-App calling, one can either user SIP or WebRTC. PJSIP seems to be fairly popular. After much effort, I was able to build the pjsip project and also run the sample pjsua2 app on my android device but got stuck in Account Settings section of the sample app as I don't know how to come about the credentials it's requesting for (ID, Registrar, Proxy, Username and Password). Also, I can't seem to get a decent tutorial on learning how to use the pjsip libraries.

I also spent some time looking into WebRTC, which kind of looks simpler than pjsip using jingle, but where I got stuck is getting useful resource or tutorials on how to setup a signalling server and some other required stuffs like STUN, TURN, etc.

Though, I am still battling in thoughts with which (PJSIP or WebRTC using Jingle) will deliver the best experience in terms of voice/sound quality and bandwidth friendliness, but at least I just want to get one up and running without issues.

During my search, I came across Sinch API, which does exactly what I want, but for some reasons, we have been told not to use it.

I will very much appreciate a point in the right direction and links to learning resources as well.

like image 228
Mark Sherman Avatar asked Apr 19 '16 14:04

Mark Sherman


People also ask

How can Android apps communicate with other apps?

To take the user from one activity to another, your app must use an Intent to define your app's "intent" to do something. When you pass an Intent to the system with a method such as startActivity() , the system uses the Intent to identify and start the appropriate app component.

Can an app make phone calls?

You can make phone calls from the Phone app and other apps or widgets that show your contacts. Wherever you see a phone number, you can usually tap it to dial.

How to build a calling app in Android?

Build a calling app 1 Manifest declarations and permissions. getMsisdn () methods. ... 2 Implement the connection service. Your calling app must provide an implemention of the ConnectionService class that the telecom subsystem can bind to. 3 Implement the connection. ... 4 Handle common calling scenarios. ... 5 Calling constraints. ...

What is a calling app?

A calling app allows users to receive or place audio or video calls on their device. Calling apps use their own user interface for the calls instead of using the default Phone app interface, as shown in the following screenshot. An example of a calling app using its own user interface.

Why can’t call your app receive calls from other apps?

It’s so because the telecom subsystem establishes some constraints when there are active calls in other apps. Consider the following two cases: A. No Other App on Call Your App receives a call. Call addNewIncomingCall (PhoneAccountHandle, Bundle) to inform the telecom subsystem about it.

How to make calls from Android applications using intent?

We can make calls from our applications by using the built-in application Intent for calling. We use action Intent for this, which is ACTION_CALL. Get to know in detail about Android Intents with DataFlair.


1 Answers

You can use asterisk server framework like PIAF(pbx in a flash) a very nice collection of very stable product as a SIP server. For client like android, iOS etc you can use pjsip library. csipsimple is one of the best android opensource UI.

Free/Open Source Projects using PJSIP

For PIAF further reading can be found here: Getting Started with PBX in a Flash

like image 59
Dhananjay Kashyap Avatar answered Sep 19 '22 17:09

Dhananjay Kashyap