Implement voice communication and video calling on android?


I wanted to know what to start studying to implement features like video calling and voice calling on android. Which libraries to study and tals. Give me a north. :)

asked by anonymous 14.01.2017 / 03:12

1 answer


Just to clarify the comment of @mauhumor, VOIP is not a protocol, VOIP is an IP technology that defines the ability to transmit VOICE over IP, we usually use the protocol UDP as data transport, this protocol is not reliable, that is, it does not have any mechanism for controlling and retransmitting data, that is to say that if a particular packet gets lost it will not be retransmitted and it is really the best choice when we talk about real-time transmissions and some loss of data does not affect so much communication it is the obvious choice as it will not add latency during a transmission attempting to retransmit packets as is done in the TCP protocol.

Well now that you know which protocol to use for stream communication, there are some voice call signaling protocols, this signaling is nothing more than a conversation between the A point and the B point that defines when a connection has been received from A to make the B touch point, if the A and B point are still on an active call, if one of the points has shut down to be able to terminate the sockets etc, etc ... The most current and most used signaling protocol nowadays is SIP but you can also find H323 and IAX or it is just the control signaling on the course of the call. The transport of the media itself will be done in another protocol that will be responsible for the transmission of the media (voice or video), nowadays the RTP - (Real-time Transport Protocol) protocol is very common.

This explanation above defines an excellent architecture for voice or video transmission, and this is certainly implemented in large-scale broadcasts (whats, skype, etc.). Now if you just want to learn the basics, play a voice over IP broadcast from your computer or Smartphone to someone else, you can open your microphone, capture the voice, send the VOICE packets inside a UDP socket, the other side your other application will receive the UDP packets and play on the received audio so you can listen, ready you are doing a real-time audio transmission over IP.

This is the basics of basic, if you want to go deep into it you have to eat with flour, sockets, DSP, data compression (decrease data sent to save bandwidth), IP architecture.

As you must be aware the subject is too broad to enter into all the fields mentioned above, I hope it will at least help you understand and know which way to go.

PS: I do not know any library ready to do this on android, if you think coldly you need some server or some method that collects and updates the information of the ips of the clients, of course you need to know in which IP the client Y is to be able to call you.

14.01.2017 / 12:03