WebRTC for Android (newbe) - android

I am trying to build a WebRTC Android app in order to exchange data between two (or more) android handsets.
However, I cannot work out from where I should start.
should I start by :
building a TURN & STUN signaling servers, or ...
creating the Android-app interface through which I should use GetUserMedia, or ...
using RTCPeerConnection for candidates discovery?
I kindly asking for some tutorials. I am really confused about how to use WebRTC APIs. I am looking for a practical example of how to integrate WebRTC functionality in an android app. Thank you.

Related

Flutter - Azure Communication Services Platform Integration (android, ios)

I want to make a interview app with services like group calling for chatting involving multiple users, for android and ios using Azure Communication Services in Flutter.
There is no direct sdk in flutter for azure communication services.
As I solution I have to write custom platform specific code for android and ios, official documentation.
There are platform channels to communicate between native and flutter, I am not able to get started with them and how to use them to communicate, and send streams to native code. There are very less examples available regarding platform integration. Any help appreciated.
Especially the event channels, it will be better if i can stream camera feed from ACS Call object and render it on the dart ui?
Abbr: ACS -> Azure Communication Services
I have tried to follow offical documentation but not able to use it well because is are not much detail also I am noticing same example almost everywhere, so I need a better material to follow.

How to implement WebRTC on android for app to app calling?

I am really new to WebRTC. What i need is to implement app to app voice calling (not video calling) feature in my android app. I want to call randomly among my app users by webRTC on android. I implemented appRTC sdk in android studio and made an app. By this app i can create or join in a room. And then i can create peer to peer connection (voice call). Its 1 to 1 calling in same room. But how to implement random calling. I just want to know the way i can achieve it. Thank you
I've been playing with webRTC quite a lot recently and created videochat-roullete as a sample for our webRTC wrapper, you might want to take a look into it : https://github.com/netguru/videochatguru-android
WebRTC can be problematic in many cases as it lacks of good documentation, hope it helps.
Use easyRTC which is built on webRTC. I have personally applied it in one of our project for audio /video and chat communication. Use this link https://demo.easyrtc.com/demos/index.html
There is only one challenge I am facing right now, how to make it work on iOS

Using Restcomm SIP & Webrtc without the platform

I am looking for a way to use SIP as signalling protocol for Webrtc in Android. I saw the RestComm open source code and I think it fits my needs. But I already have the infrastructure setup for TURN and SIP server. We use FreeSwitch for that purpose. My Question is, is it possible to use the restcomm android sdk with a infrastructure that is not from restcomm platform? Will it work?
Is there any other library or way that could be used for the purpose? Infrastructure is fixed and couldn't be changed. I need webrtc with SIP or SIP over websocket as the signalling method.
Restcomm Android SDK essentially offers VoIP functionality using SIP for signaling and WebRTC for media, so you shouldn't have any issues integrating with different server components.
Notice though that so far it's tested with Restcomm platform for the most part.
For more information on how to do that you can check Quickstart Guide and also refer to the code for Hello World and Olympus Apps

Custom WebRTC SDK for 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

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/

Categories

Resources