What are the available API or existing technologies on android that can help one make call using the internet, more like VOIP. I checked out documentation online including this
. Kinda confused where to start. Can anyone help with a better guideline ? Thanks.
PJSIP is one of the better media libraries available on Android. you may want to google the pro and cons of this vs the native android SIP Api and based on your project pick one over the other.
There are a few others, but PJSIP is one comprehensive solution.
There are plenty of support for VOIP on android. You can try the following options
For Android 2.3 or higher you can use inbuilt SIP stack Documentation here
PJSIP (example implementation Project for Android is CSIPsimple)
MJSIP (example implementation Project for Android is Sip Droid)
Doubango (example implementation Project for Android is IMSDroid)
Linphone
I have used almost all of the above and they all are good and do the intended.
There are plenty of Paid SDK in market too which promise to do the job for you.
Related
I'm working on a project which is to implement a VoIP client for android which uses SIP. My target is an application which allows users to register on a server and to make call with other registered users only. Its my first time to use Android Studio and also to deal with Java.
I concluded from searching that there are SIP libraries that i could use as PJSIP which i have some questions about
1- I read that i should build the PJSIP library following the steps in the following link https://trac.pjsip.org/repos/wiki/Getting-Started
im working on a windows based laptop, i've never built a source code before, so i just chose to build the PJSIP for android, should i do this using a virtual machine with linux ? is there any other way to get an already built pjsip library to work with? or any other easier library?
2- how do i know the functions that are in the PJSIP library and the files that i'll need to import, should these links help? whats PJSUA2?
http://www.pjsip.org/pjsip/docs/html/group__PJSUA__LIB.htm
http://www.pjsip.org/docs/book-latest/html/
3-I also checked the Csipsimple application, its code is very complicated for me to understand, are there any easier open source apps that i can check?
1- Yes, you should build PJSIP from the link you provided and follow the process step by step carefully. It's the best way because of official documentation. You have to build PJSIP library on a linux machine to make it work properly. If you need an already build library for Android, you can follow this link. Note that it's a PJSUA2 which is a best practice for the Android applications.
2- PJSUA2 is a high level API and is kind of translation from C++ language to object-oriented Java. It should simplify for you to implement library and use it in Android, because of same programming language and good library packaging.
3- There are not a lot of open source VoIP clients based on PJSIP which are easy to understand. If you are new in business, I should strongly recommend to build first of all sample application which is provided by PJSIP official web site. Then you have take a look at PJSUA2 documentation to understand where to begin, for example register sip account, receive and make a new call etc.
Need help with a working example of native android bluetooth support for codenameone apps. I have one working in android but having a problem integrating with codenameone.Thanks in advance.
If you have working code in Android already, you just need to create a Native Interface to handle the API calls and callbacks you need. You'll be able to use most of your Android code, a few modifications will be needed to strip out the parts that control the UI. Check the developer guide, it discusses this. I believe that there's also a tutorial video.
There is also a CN1Lib or extension for Bluetooth Low Energy, if that's what you're developing.
I am trying to develop my own sdk webrtc for android based on WebRTC.
I have my own signalling server and STUN/TURN server.
I need pointers on how to start to develop the sdk which the third party developers will use to develop their apps using my sdk.
Currently, I am exploring the WebRTC sdk and the demo app for android.
Mine specific questions are:
How would I provide the SO(libjingle_peerconnectcion_so.so) and JAR(my own java implementation for signalling and STUN/TURN and other app specific things) files together as one JAR file?
Is there any other alternative for the above said scenario?
Any help/resources are welcome.
Regards
Maybe you could check these projects whose aim is to provide a cordova plugin for WebRTC (both for iOS and Android):
https://github.com/alongubkin/phonertc
https://github.com/remotium/cordova-plugin-webrtc
I see a lot of tutorials in the Internet teaching about android to browser or browser to browser webrtc application. Is it possible to build a native android-to-android video chat app using webrtc?
Well, for establishing a connection between the devices before the call via peer-to-peer WebRTC solution you need STUN/TURN/ICE servers.
They establish the route for communication between the devices.
Once the route is established the devices communicate directly without participation of a server for passing the media streams.
To make it easier for you, you can look at or try some existing solutions, like ConnectyCube.
They have peer-to-peer WebRTC solution for Android already implemented.
So, maybe there is not need to reinvent the wheel.
There is an official Android sample project AppRTCMobile provided here - https://webrtc.org/native-code/android/. However, the build process is tedious and the total download size exceeds 20 GB. The recommended way is to use the following dependency in your project.
implementation 'org.webrtc:google-webrtc:1.0.+'
However, for video chat functionality you will need to refer AppRTCMobile source code. There is a clone of this project on GitHub updated for Oreo and ready to import in Android Studio. Check out this link.
WebRTC uses ICE protocol for creating connection between two peers. It uses DTLS-SRTP for creating secure data exchange between peers.
Now both ICE protocol and DTLS-SRTP are protocols that can be implemented on any devices no matter what platform. You implement or use existing implementation of
ICE and DTLS-SRTP protocol on your android apps and communicate with each other.
When you read tutorials about implementation of WebRTC for communication between android app and browser, there the android app has the implementation of both ICE and DTLS-SRTP. So this android app can communicate with other android app having similar implementation.
in addition to #tahlil great answer, you can also use a number of open source SDKs out there that already took the burden on bundling the WebRTC libraries and offering simple APIs for you to integrate Real Time Communications in your native app. One example of such SDK is the RestComm Android SDK
See https://github.com/Mobicents/restcomm-android-sdk and http://www.telestax.com/restcomm-client-android-sdk-beta-2-is-out/
How to integrate Aweber in android ,i research lot but there is no source code for this, so please help and should be appreciated
AWeber doesn't currently have a ready-made Android client library. You can approach this in a couple of ways:
One possibility is to implement your own API code. AWeber's API uses REST-based resources over standard HTTPS, and uses oAuth 1.0a for authentication. There should be libraries available for Android development that can accomodate your needs - I know that there have been successful "home-rolled" Java, .Net, and other integrations done by third parties so I don't see why Android should be any different.
In this case, I would suggest using the official Python or PHP library as an example of how your code can be implemented. In particular the PHP library has all of the oAuth code out "in plain sight" so it's useful in gaining insight into how authentication works.
Another interesting possibility is to attempt to use the AWeber Python module along with some of the open source projects out there that purport to allow developers to use Python on Android. I find this possibility personally intriguing but I haven't had the spare time to try it out.
While AWeber doesn't currently offer support for Android itself, the API team has documented the authentication process in some detail here:
https://labs.aweber.com/docs/authentication
That reference may help you out if you decide to go the route of rolling your own library.
If you run into any issues with your library, definitely contact the API Support team at api#aweber.com - while they may not have direct support for Android right now, they can often be of assistance in debugging your own library based on what they see on the server side.