voximplant

Managing 2 conferences with Voximplant scenario


I am trying to make conference with Voximplant, and when user makes a call to another user, while the call is still going on, it makes another call to another user making two calls and the callees is added to a video conferencing. But it seems the caller is billed twice and the scenerio doesnt look optimised. What should i do to bill once and optimize it?

Scenario:

require(Modules.Conference);
var call, conf = null;
VoxEngine.addEventListener(AppEvents.Started, handleConferenceStarted);
function handleConferenceStarted(e) {
    // Create 2 conferences right after session to manage audio in the right way
    if( conf === null ){
     conf = VoxEngine.createConference(); // create conference
    }
    conf.addEventListener(CallEvents.Connected,function(){
       Logger.write('Conference started')
    })


}
  VoxEngine.addEventListener(AppEvents.CallAlerting, function(e) {

    e.call.addEventListener(CallEvents.Connected, handleCallConnected);

    let new_call = VoxEngine.callUser(e.destination,e.callerid,e.displayName,{},true)
    new_call.addEventListener(CallEvents.Connected,handleCallConnected);
    e.call.answer();

});

function handleCallConnected(e) {
  Logger.write('caller connected');
  conf.add({
      call: e.call,
      mode: "FORWARD",
      direction: "BOTH", scheme: e.scheme
     });

}

Solution

  • You need to end the conference when there are no participants. Refer to the following article in our documentation: https://voximplant.com/docs/guides/conferences/howto. You can find the full scenario code there.

    Additionally, I recommend to add some handlers for the CallEvents.Disconnected and the CallEvent.Failed events right after

    new_call.addEventListener(CallEvents.Connected,handleCallConnected); 
    

    because sometimes the callee may be offline or press a reject button. 🙂