Call management applications

Call management applications

What’s about

The Call management blocks can be used to set the actions and steps of the IVR project from a Telephony perspective.

For additional information please refer to the Asterisk Applications Guide

 

Answer

This block picks up the call and opens the voice channel as well.

image-20240530-132632.png
  • Label: here you can type a short description

  • Timeout: set a timeout in seconds the customer will wait before the system picks up the call. During that period the customer will hear to the “Music On Hold” if it is configured on your server.

 

Exit Arrows

This block provides just one arrow out to the next step

Hangup

This block hangs up the call to the customer on the remote party.

image-20240530-132941.png

Label: here you can type a brief description of the block

 

Exit Arrows

 This block has no exit arrow

Internal Dial

Schermata 2020-11-12 alle 14.20.41.png

This block performs the standard Asterisk Dial command towards an internal phone.

image-20240530-133220.png
  • Label: here you can type a brief block description

  • SIP: select the agent that you would like to call

  • Timeout: set the maximum dial time in seconds (default is 60 s). 

  • Options: here you can type the Asterisk dial options parameter (optional).

  • URL: this parameter will also be sent to the called party upon successful connection (optional)

 

Exit Arrows

This block provides just one arrow out to the next step

External Dial

This block performs the standard Asterisk Dial command towards an external phone.

image-20240530-133445.png
  • Label: here you can type a brief block description

  • Phone: type the number that you would like to call

  • Trunk: select the trunk from the dropdown list

  • Timeout: set the maximum dial time in seconds (default is 60 s). 

  • Options: here you can type the Asterisk dial options parameter (optional). Refer to the Asterisk wiki.

  • URL: this parameter will also be sent to the called party upon successful connection (optional)

Queue

This block performs the standard Asterisk Queue command to manage calls to a Queue (especially useful for ACD or Asterisk call center applications).

image-20240530-133930.png

 

  • Label: here you can type a brief block description

  • Queue: select the queue from the dropdown list

  • Options: queue command options. See below some examples:

    • d: data-quality (modem) call (minimum delay)

    • h: it allows the callee to hang up by pressing *

    • H: it allows the caller to hang up by pressing *

    • n: no retries on the timeout: it exits this application and goes to the next step

    • r: ringing instead of playing MOH

    • R: stops moh and rings once an agent is ringing (Asterisk Trunk)

    • t: it allows the called user to transfer the calling user

    • T: it allows the calling user to transfer the call.

    • w: it allows the called user to write the conversation to disk via Monitor

    • W: it allows the calling user to write the conversation to disk via Monitor

    • c: continuing in the dialplan if the callee hangs up (Asterisk 1.6.0 and above)

    • i: it ignores the call forward requests from queue members and do nothing when they are requested (Asterisk 1.6.0 and above)

    • k: it allows the called party to enable parking of the call by sending the DTMF sequence defined for call parking in features.conf (Asterisk 1.6.0 and above)

    • K: it allows the calling party to enable parking of the call by sending the DTMF sequence defined for call parking in features.conf (Asterisk 1.6.0 and above).

    • x: it allows the called user to write the conversation to disk via MixMonitor (Asterisk 1.6.0 and above).

    • X: it allows the calling user to write the conversation to disk via MixMonitor (Asterisk 1.6.0 and above).

  • URL: external URL (when supported)

  • Audio: you can select the audio file from the dropdown list

  • Timeout: time in seconds a call will wait in the queue before it is routed to the next priority in the dialplan; it is mandatory to insert a value.

  • AGI: AGI script invoked when a queue member answers the call

  • Macro: run a macro on the called party's channel (the queue member) once the parties are connected

  • Gosub: run a gosub on the called party's channel (the queue member) once the parties are connected

  • Position: attempt to enter the caller into the queue at the numerical position specified (e.g.: 1 would attempt to enter the caller at the head of the queue, 3 would attempt to place the caller third in the queue, and so on)

Exit Arrows

This block provides just one arrow out to the next step

How to manage Queue Calls Distribution

Scenario 1: Random distribution between two queues

image-20250430-110038.png

In this example you want to assign 70% of inbound calls to the first queue and 30% of inbound calls to the second queue.

  1. Configure SET block in your project:

image-20250430-110903.png

 

  1. Configure GOTOIF block in your project: change the condition according to your needs. You need to insert the percentage value of the second queue + 1.

image-20250430-110738.png

 

  1. Configure the QUEUE blocks.

 

Scenario 2: Random distribution between three queues

image-20250430-110706.png

In this example, you want to equally distribute inbound calls between three queues.

  1. Configure SET block in your project

image-20250430-110903.png
  1. Configure GOTOIF blocks in your project

image-20250430-111042.png
image-20250430-111130.png
  1. Configure the QUEUE blocks

 

Scenario 3: Round Robin Memory distribution between five queues

image-20250430-111258.png

The calls will be allocated following the Round Robin Memory strategy.

The first call will be sent to the queue 1, the second call to the queue 2 and so on.

1. Configure the GotoIf block (GotoIfExist)

image-20250430-111347.png

2. Set the custom InitDB 

image-20250430-111448.png

3. Configure the GotoIf block (GotoIfMaxN)

image-20250430-111511.png

4. Set the RESULT variable

image-20250430-111546.png

5. Configure the MATH block

image-20250430-111602.png

6. Set the new value to the DB (custom application)

image-20250430-111838.png

 

7. Set the SWITCH block:

image-20250430-111914.png

 

8. Configure the queue blocks

 

 

Queue Group

from VERSION 3.39.0

image-20240805-100954.png

This block provides the possibility to add a queue group to the project.

image-20240829-091728.png

 

  • Label: here you can type a brief description

  • Queue Group: here you can select the queue group of interest from the dropdown list

  • Priority: define a global priority

  • Options: insert optional command options

  • Music on hold: select the audio file from the dropdown list

  • Timeout: time in seconds a call will wait in the queue group before it is routed to the next block in the dialplan

 

Exit Arrows

This block provides just one arrow out to the next step

 

Voicemail

This block performs the standard Asterisk Voicemail command to route your call flow to a Voicemail and its context.

image-20240530-134339.png
  • Label: here you can type a brief block description

  • Mailbox: here you can set the voicemail box (mailbox@context) you want to route the call to. You can specify the mailbox you have previously configured in the Voicemail section.

  • Options: Voicemail command options. Refer to the Asterisk wiki

Exit Arrows

This block provides just one arrow out to the next step

Example of Voicemail configuration and IVR project to access it

Access to voicemail can be handled by using an IVR project where the caller is asked to enter the Mailbox number (extension) he/she wants to access and VoiceMailMain custom application is used to retrieve the account's voicemail messages.

 

Step 1: Prerequisites

Before designing the IVR flow, you need to do the following in advance:

  • Upload an audio file to ask the caller to enter the voicemail extension (Tools --> Sounds)

  • Create a variable called EXT (Tools → Variables). 

 

Step 2: Design the IVR Project

  • Create a Cally Square Project with the below structure and save it

The audio file named vm-extension which must be placed intot the GETDIGIT block 'GetVMExtension', it must be taken from /var/lib/asterisk/sounds/en and then it must be placed into Motion GUI in Tools/Sounds

Here we attach the audio file named vm-extension which must be placed intot the GETDIGIT block 'GetVMExtension', it must be placed into Motion GUI in Tools/Sounds

Block details
GetDigits block

CustomApp block

Step 3: Set up the route

To route the calls to the IVR application follow the below steps:

  • From the Voice menu, access to the Internal Routes section and go to the Actions section

  • Add the Cally Square application in the Internal route

  • Select the IVR project you created.

Your remote access to check the Voicemails is ready!

Here are the steps to be followed when hearing the IVR message:

  • 0 for mail options

  • 4 to record your message

  • 1 to accept

  • 2 to listen to it

 

Callback

A callback scenario allows customers waiting in a queue to opt for a callback option. This feature enables customers to leave the queue, and the call center will reach out to them during a period of lower traffic.

image-20240530-134712.png
  • Label: here you can type a brief description of the block

  • Name: Caller name. Default: {CALLERID(name)}

  • Last Name: Caller last name

  • Phone: the phone number of the customer that you want to call back. Default: {CALLERID(num)}.

  • List: selecth the contact manager list where the contact will be added.

  • Delay [min]: time in minutes from NOW (current time) to schedule a contact. Here you can insert a value that defines when the customer will be called. 

  • Priority: add a contact with a specific priority.

Exit Arrows

 This block has one exit arrow

Example of Callback IVR project

Let's consider an example of the Callback in the IVR flow:

  • the caller will hear a playback message set in the Menu block after waiting in the Queue for 20 seconds.The message tells to press "1" if he wants to be called back, avoiding to stay on hold.

  • if the Customer digits "1", he enters in the Callback block

  • the Callback block will then add the contact in the contact manager list and is scheduled to be called after 20 minutes as specified in the delay field. The system will automatically call his phone number if there is at least one available Agent in the queue campaign.

Please remember to associate the list to a queue campaign for Motion Bull to call the contact otherwise the contact will only be added in the list.

 

Step 1: Prerequisites

Before designing the IVR flow, you need to do the following steps in advance:

  • Create a queue (Voice →Queues)

  • Upload the sound files (Tools → Sounds)

  • Create a variable called TIME (Tools →Variables)

  • Create a list (Contact Manager → Lists)

  • Create a queue campaign (Motion Bull → Queue Campaign)

  • Add the list to the queue campaign

 

Step 2: Design the IVR Project

image-20250428-154737.png

Block details

Queue block

image-20250428-155347.png

Menu block

image-20250428-155421.png

Callback block

image-20250428-155442.png

 

Important

This block works only if you are using a plan of XCALLY that includes the Outbound Dialer (Motion Bull).

The callback block will add the contact in the selected contact manager list. Please remember to associate the list to a queue campaign for Motion Bull outbound dialer to call the contact at the scheduled time.

Tip

Suppose the Queue campaign time interval is from 8:00 AM to 6:00 PM, and the Callback Delay is set to 30 minutes. If a customer calls at 5:40 PM and opts for a callback, the contact will be scheduled for 6:10 PM. Since this time is outside the campaign's operating hours, Motion Bull will schedule the callback for the next valid time interval, ensuring that an agent is available to take the call.

Related topics