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
Related
I'm working on an Android application that uses VOIP. I found a few established SIP Stacks/libraries out there (PJSIP, JAIN SIP, MJSIP). Android seems to also have its own Android SIP API/SDK.
I was wondering if anyone had some experience using either Android's native solution or one of these libraries. If so, what are the main technical and practical differences between both?
There are also a few popular SIP Client projects out there, such as Jami, SIPDroid and Linphone when it comes to app development on Android.
In this case, would implementing an existing SIP Client, instead of developing a new one using SIP libraries offer significant advantages?
I am mainly coding in Java and planning on using Asterisk as a SIP Server.
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.
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.
I m new to here so maybe my question is also looks silly.
If so, please teach me then I will very appreciate for it.
question:
I m going to build webrtc android client for my kamilio/freeswitch.
So I've built webrtc for android and tested AppRTC demo and made video call.
What I want to know is can I integrate this demo with my own kamilio/freeswitch?
Hope to hearing from you soon.
Regards
Yes, of course. From the server point of view, WebRTC is WebRTC regardless if you are running it from app or from browser. Just make that your client is using SIP (clear SIP or SIP over websocket as described in RFC 7118 since this is the most popular signaling protocol supported also by Kamailio/FreeSWITCH.
Definitely yes. Take a look at FreeSWITCH VerTo protocol which is specifically designed for WebRTC : https://freeswitch.org/confluence/display/FREESWITCH/mod_verto.
Also you can check out this demo on google play, where this protocol implemented with native Android WebRTC SDK:
https://play.google.com/store/apps/details?id=xyz.vertoandroid.vertoandroidlibdemo. (ahem, shameless plug, sorry).
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/