How to implement VoIP sip client on android studio - android

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.

Related

How to build a simple Native WebRTC Android application that can do basic video call?

Recently I've been struggling a lot with WebRTC, I was able to build a very simple WebRTC web application based on the WebRTC codelab which consists of a simple signaling server (basically step 8 in the codelab tutorial).
My next target is to build a native Android application that does the same thing which is to be able to make video call with the web application using the same simple signaling server. I am very new to WebRTC and I could not find any good tutorial or guide that allows me to build a simple native Android application.
I've searched for similar questions on Stackoverflow but most of them are outdated and do not provide useful answers that I need.
I'm hoping the Stackoverflow community who knows any good source or tutorial on how to build a simple and basic native WebRTC Android application can share with me their knowledge and information. Thank you so much.
I suggest you build the AppRTCMobile target in WebRTC (see https://webrtc.org/native-code/android for details on how to build etc) then deploy your own instance of AppRTC (https://github.com/webrtc/apprtc) if you wan to have full control over the signaling. Otherwise you can just use the one publicly available at https://appr.tc.

Making calls via internet in android

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.

Opentok module for Titanium SDK that supports both Android and IOS?

I am developing a mobile application using Titanium SDK. This is my first mobile app. Most of the app is done successfully. The only module that remains is Video conference support. The company I am working in has chosen to use Opentok SDK. I finished the web application and it works fine. Now I've hit a wall in mobile app and can't move further. The problem is Opentok provides a module to use for Titanium, But it only supports build to IOS not Android. The reason we chose Titanium is for cross platform support.
Is there any module available to use or any other way to implement Opentok with Titanium that builds into both Android and IOS.
I have already tried using a WebView to open the conference module of web application. But bad luck, Opentok only works with chrome browser in mobile. But WebView utilizes native stock browser which does not support WEBRTC. So, opentok doesn't work with webview too.
Please help me. This is my first app and I am stuck at this point.
To Create a Module for OpenTok Android:
These are the steps I would follow.
Create a new Android module: titanium.py create --type=module --id=com.tokbox.ti.opentok --platform=android --name=opentok-titanium
Follow the installation instructions from OpenTok for Android. (Hint: I added a separate section down below to help you get through their instructions.)
Make sure the module runs: ant run.emulator or ant install.
Try running their sample, fully in JAVA, completely separate from Titanium. Make sure it works, and you know what it should look like. Then, figure out what exactly you need from their API. Or, if you're feeling ambitious, decide you want everything. Work to strip down the example to just the surface area that you need. Simplify it down to the least number of files you feel makes sense.
Write an example/app.js that demonstrates how you want the module to be used. For example, maybe you'd start off by requiring the module, then setting some API + Session keys, then calling some API, etc.
Based on the documentation, port what you need in to your module. Reference the Appcelerator Android module dev guide and open source Android modules for inspiration.
Write documentation for the module to specify what the various properties, methods, etc are, so that other developers can figure out how to use the module.
When you're done, submit a PR to OpenTok and revel in your creation and contribution.
Some Hints for Step 2:
.jar files go in lib/.
.so files go in platform/android/libs/armeabi/
Permissions go in timodule.xml, and you can see an example in the open source PayPal module for Android
OpenTok does not work with WebView. OpenTok support for Titanium Android does not currently exist because it is currently in beta and we don't currently have engineering bandwidth to build a Titanium Android integration. However, if you are familiar with Titanium, you are more than welcome to add the integration yourself and send a pull request. You can get the Android beta here and you can get titanium source code here
If you are in a hurry and open to trying other frameworks, our PhoneGap Plugin currently supports both android and ios.

Integrate Aweber in Android?

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.

Tips to shift from App Inventor to Eclipse

I am very good with AppInventor to build Android apps. I have good knowledge of C++ and little knowledge of Java and GUI building in Java. Suggest me how should I shift from App Inventor to Eclipse to build Android apps? Which path should I follow? Is building in Eclipse similar to building in AppInventor like defining different components and then handling their events? Or is it much more than that? Please guide me.
There is also the AppInventor to Java Bridge project at java.appinventor.org, details see below
About:
The AppInventor to Java Bridge project is an addition to
AppInventor that creates a Java written version of the application
from an existing application created through AppInventor. After
creating an application through AppInventor,the user can download a
version of the application that is written in Java, which uses the
JavaBridge* library .
What Our Application Can Do:
Create an Android project in JavaBridge using AppInventor
Applications that use texting, internet and/or sound are supported
Limitations:
- Location aware applications not yet supported
- Nested lists are not yet supported, and will produce incorrect code
UPDATE: the newest version of that tool can be found here: java.appinventor.org
Definitely you should check out the "ALTERNATE Java Bridge". The regular one, built originally by the app inventor team has long since been abandoned. Another programmer picked up the torch and has steadily been using, and improving the bridge for some time. I have been using it myself for 2 years and it is fantastic.
The google project is at: https://code.google.com/p/alternate-java-bridge-library/
and the google discussion group is at : http://groups.google.com/group/alternate-java-bridge-library-discussion
I would just go to the google project site above and ready the tutorial. It is very easy to get started, and he is really good about answering questions for newbies (and i can assist with that as well).
You could take a look at the App Inventor Java Bridge. Check out the link for lots of information, also see here...
The Google App Inventor Java Bridge The App Inventor Java Bridge helps
make a transition from developing Android applications with App
Inventor for Android, to developing with Java and the Android SDK. It
lets you incorporate App Inventor components into apps that you create
in Java with the standard Android SDK tools. If you’ve been using App
Inventor and know some Java, then the Java Bridge is a good way to get
started with the SDK, because building with App Inventor components
hides many of the complexities of the Android framework. As you gain
experience, you can switch over to regular SDK development and create
apps that harness the full power of Android.
Here another link:
http://code.google.com/p/apptomarket/ and you also find videos about the Java Bridge on Youtube, for example this one

Categories

Resources