How to implement ringing in outgoing Android VOIP call

Issue

We are using agora.io for voice calling in our app(VOIP). The calls between two people are going seemless. But when I am dialing person B, I am not able to hear the dial tone while the call is being connected. I basically want to hear the ringing when the call is being connect. However, the person is getting the incoming caller tune while his phone is ringing.

Can you anyone help me how to do this?

We are building Android App, Java, Kotlin, and Agora.io SDK

Solution

Currently Agora.io’s Android SDK does not directly support playing audio on the caller side. This would need to be achieved using Android’s Telcom package, more specifically implementing Connection, ConnectionService and ToneGenerator classes.

Whenever you start your call you may want to create a new tone, replacing <AUDIO STREAM> below with the stream that you want to play the tone within, and replacing <VOLUME LEVEL> with an integer (or enum) to set the volume level.

ToneGenerator dtmfGenerator = new ToneGenerator(<AUDIO STREAM>,<VOLUME LEVEL>);
dtmfGenerator.startTone(ToneGenerator.TONE_DTMF_0, 1000); 
dtmfGenerator.stopTone();

For example if you want to leverage the Call tone using the above example, you would use ToneGenerator.TONE_SUP_RINGTONE

ToneGenerator dtmfGenerator = new ToneGenerator(ToneGenerator.TONE_SUP_RINGTONE,ToneGenerator.MAX_VOLUME);
dtmfGenerator.startTone(ToneGenerator.TONE_DTMF_0, 1000); 
dtmfGenerator.stopTone();

Answered By – Hermes

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published