Real time video communication functionality in android without 3rd party services

android

I have added video calling functionality to my android app using sinch, I was wondering, what kind of technology-infrastructure is needed to do such a thing without using any 3rd party services? Assuming I have a server with a public IP which I can install any server software on, to provide signalling etc., whatever is required.

I have read up on webrtc, which sinch uses too. From what I vaguely understand, I need a signaling server, plus a TURN server, maybe plus a STUN server, plus client code which can talk to that servers. I guess these are the things provided by sinch out of the box.

Webrtc has a javascript API on supported browsers, with related objects and methods implementing the protocol. I guess I need java equivalent of that API, which wraps the protocol and is able to talk to servers I stated above.

If there are viable (easier) alternatives to webrtc for this job, or I will be happy to learn about them too. A better approach to the problem than mine is welcome too.

Best Answer

Check https://quickblox.com, it is free if users are less than 20k. Moreover, WebRTC is based on TCP and UDP you can implement your own SIP server. Please visit the https://xmpp.org/about/technology-overview.html for more information.