Conferencing Use Cases in iraDialer

1 Introduction

Conferencing is a standard feature in iraDialer, where you can take any call and add it to a new conference or existing conference. However, it is very complex in the back-end because of the many combinations that exist. This document will discuss the various use cases.

2 Conferencing agents with customers

These are cases where the calls are either a new or a single leg call which are not part of a conference. The calls in a conference room could be coming from different iraDialers. The call coming across from another iraDialer to join a conference room will have 3 call legs. However, the API users will be exposed only to the original call_uuid and will issue commands using only that call_uuid.

2.1 Create a new call and add it to a new conference room

This is done using the makecall API, where join_conf option is set to yes. This is usually done for creating a nailed agent. Event CONF-add-member will be sent as confirmation.

2.2 Create a new call and add it to a new conference room along with an existing call.

This is done using the makecall API, where join_conf option is set to yes, and add_to_conf specifies the existing call to add the same conference. The existing call could be in the same iraDialer or a different iraDialer in the same hive. The iraDialer manages it creating a cross-connect between the two iraDialers.  Event CONF-add-member will be sent as confirmation.

2.3 Add an existing call to an existing conference room

This is done using bridgecall API, specifying the call using call_uuid, and the conference using the conf_uuid. The existing call could be in the same iraDialer or a different iraDialer in the same hive. The iraDialer manages it creating a cross-connect between the two iraDialers.  Event CONF-add-member will be sent as confirmation.

2.4 Add an existing call to a new conference room

This is done using bridgecall API, specifying the call using call_uuid, and the conf_uuid left empty.  Event CONF-add-member will be sent as confirmation.

3 Conferencing agents with other agents

These are cases where a call to be conferenced is already in a conference room. This section will discuss the various combinations. There could be two types, (a) the ones where there is only one occupant, like a nailed agent who is free, (b) the other where there is a customer along with the agent. For simplicity sake, let's call them single-occupancy and multi-occupancy conferences. 

There is another covenant that is true to all conferences. In a given iraDialer, a single call can only belong to one conference. A call can be transferred between two conference rooms, but it cannot be in two rooms at the same time. However, if the conference room is in another iraDialer, that restriction won't apply.

3.1 Add a call in a single-occupancy conference to another conference room

This is done using bridgecall API, specifying the call using call_uuid, and the conference using the conf_uuid. The call specified in the call_uuid will leave the original conference room and join the conference room specified in conf_uuid.  Event CONF-add-member will be sent as confirmation, and event CONF-del-member will be sent from the original conference room. As the single occupant has left, the original conference will also cease to exist.

3.2 Add a call in a multi-occupancy conference to another conference room

This is done using bridgecall API, specifying the call using call_uuid, and the conference using the conf_uuid. The call specified in the call_uuid will leave the original conference room and join the conference room specified in conf_uuid.  Event CONF-add-member will be sent as confirmation, and event CONF-del-member will be sent from the original conference room. Since the original conference still has a member left, the original conference will continue to exist.

4 Exiting strategy for the conferenced agents

The API for adding an existing call to a new or existing conference, whether the conference room exists in the same iraDialer or a different iraDialer is the same. However, the construction of the conference could be quite different for different cases. And it complicates the exit from the conference, since the conditions are different. If the agent call added for consultation has to be removed and send back to where it came from, the following situations can exist:


  1. As a result of the case described in 3.1 section, the original conference room that the agent left to join the current conference doesn't exist. So the call has to be sent to a new conference. It can be achieved by using bridgecall API as described in the 2.4 section.

  2. As a result of the case described in 3.2 section, the original conference room that the agent left to join the current conference does exist. If the call has to be sent to the original conference room,it can be done using the bridgecall API as described in the 2.3 section.

  3. If a call needs to be moved out of the conference room and parked independently, it can be done using parkcall API.