Custom WebRTC SDK for Android - android

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

Related

Video chat IOS/Android Webrtc. GoogleWebRTC exampes

I have android video chat app using android pristine libjingle from 2015.
Now I need to create the same app for IOS. I consider to use the newest pod 'GoogleWebRTC'. The question is - will there be problems to communicate between android/IOS users because of older Webrtc version in android app?
I also cannot find any good GoogleWebRTC example. There is more examples and information about how to use the oldest pristine libjingle both in IOS and android.
Signaling does not work as i hoped.
update 31/08/2018
Failed to set remote video description send parameters
you can use the source code in github:https://github.com/webrtc/samples
and http://psrd.it

Voip using sip from android app to web app

I want to integrate voice and video call feature in my android as well as web app using sip.The scenario is like the end user can call from android app or web app to my support team which would be on web app.The scenario is similar to a call center where user call from app to support team.I did some research on found lot of javascript and android sdks available but they don't provide cross platform functionality.Is there any open source library which could be used to achieve cross platform functionality and flexibility to use our own sip server.
Please have a look at the Restcomm platform
It contains Android SDK that uses SIP, Web SDK (that uses sip over websockets) and a Telephony Application SIP Server called Restcomm-Connect that allows you to build applications very easily through HTTP APIs or Visual Designer
TBH, the only thing I found till now is Linphone. They use an LibLinPhone SDK to implement things, but it is open sourced under GNU. I am still looking for other SDK alternatives, as they don't have the best documentation in the world.

Is it possible to build a native android-to-android video chat app using 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/

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.

Categories

Resources