Page tree

Applies to VoipNow 3 and higher!

This article describes all the actions available for an IVR extension and provides several examples of IVR scenarios based on such actions. 

IVR actions

Alter CallerID Name with content of variable

You can choose one of the available actions (Prepend, Append, Replace) to modify the CallerID name using a recorded variable.

This action is recommended if you want to modify the CallerID of the person calling the IVR. For example, you can Prepend the CallerID name with the sales value, recorded with the Record digits to variable action.

Alter CallerID Name with static value

You can choose one of the available actions (Prepend, Append, Replace) to modify the CallerID name using a static value.

This action is recommended if you want to modify the CallerID name of the person calling the IVR. For example, you can Prepend the CallerID name with the Sales value. When a call is placed to the IVR and then transferred to the Sales extension, the CallerID name will be read: Sales{callerid_name}, where {callerid_name} is the initial CallerID name.

Alter CallerID Number with content of variable

You can choose one of the available actions (Prepend, Append, Replace) to modify the CallerID using a recorded variable.

This action is recommended if you want to modify the CallerID number with a specific variable taken from the Record digits to variable action. For example, you can Prepend the CallerID number with the recorded value021. When a call is made, the CallerID number will contain 021.

Alter CallerID Number with static value

Choose one of the available actions (Prepend, Append, Replace) to modify the CallerID using a static value.

This action is recommended if you want to modify the CallerID number of the person calling the IVR with a static value. For example, you can Prepend the CallerID with the 12345 value. When a call is placed to the IVR and then transferred to an extension, the CallerID number will be read: 12345{callerid_number}, where{callerid_number} is the initial CallerID number.

CallAPI interactive

You can use the CallAPI mechanism to program the IVR to behave in a certain way using HTTP REST interaction with a remote application.

Both request methods are available:

  • GET - This method requests a representation of the specified resource. This is the default value.
  • POST - This method submits data to be processed (e.g. from a HTML form) to the specified resource. The data is included in the body of the request and may lead to the creation of a new resource, the revision of current resources or both.

You need to define the URL address you want the IVR to send the request to. For more details, check the CallAPI documentation.

CallerID Number based jump

This action enables jumping to another context, based on the CallerID number of the received call.

This action is recommended if you want to have a call sent to a different context, based on the CallerID number. For example, if the CallerID number is 123456789, then the call will be sent to the selected destination of the specified context. You can also set the context and the destination of the call if the CallerID number is not 123456789. Here are the available options:

  • start
  • timeout
  • invalid
  • 0-9, *, #

Any of these options can be configured with one of the available actions, depending on the purpose of the context.

In the example below, if the CallerID number is 123456789, then the call will be sent to option * of context1. If the CallerID number is different, then the call will be redirected to option 4 of context3.

CallerID Name based jump

This action enables jumping to another context, based on the CallerID name of the received call.

This action is recommended if you want to have a call sent to a different context, based on the CallerID name. For example, if the CallerID name is John Doe, then the call will be sent to the selected destination of the specified context. You can also set the context and the destination of the call if the CallerID name is not John Doe. Here are the available options:

  • start
  • timeout
  • invalid
  • 0-9, *, #

Any of these options can be configured with one of the available actions, depending on the purpose of the context.

In the example below, if the CallerID name is John Doe, then the call will get sent to option <b2<>of context2. If the CallerID name is different, then the call will be redirected to the start option of context3.

Set variable

This action is useful if you want to replace the content of a variable with a string.

This action is recommended if you want to have the content of the variable replaced with a different string. It can be used when setting the language of the IVR. For more details, see Scenario #1.

Hangup after [X] seconds

This action allows you to terminate a call within a specific period of time.

This action is useful if you want to set specific Timeouts for calls. For example, in a context, you can add a Hangup after X seconds action for the Timeout option. In this way, the call will be hung up after the priorly set number of seconds.

Jump to context

This action enables jumping to another context, based on the evaluation of a given condition.

This action is recommended if you want to evaluate different conditions of a given Recorded variable. For example, if you record a variable such as 1234, then a specific context will be used if that variable satisfies the condition you have selected from the drop-down list.

Play company directory

This action transfers the call to one of the extensions in the company directory. The caller selects the destination extension through the phone keypad.

This action is useful if you know the name of the extension, yet you do not know its number. To see how a directory works, you can dial *22 and follow the instructions.

Play digits

This action plays one or several sound files to communicate a given value.

This action is useful if you want to verify the recorded value.

Play digits contained in variable

This action plays a given value contained in a variable using one or several sound files.

You can associate a numeric value to a variable using the Record digits to variable or the Set variable options.

Play sound

This action plays a given sound file for the caller. You can select from the drop-down list if you want the sound to be played either in background or in foreground.

If foreground is selected, then the caller will have to wait for the whole sound to be played before initiating a new action.

If background is selected, then the caller can stop the sound by pressing a key and other actions may be initiated.

Record digits to variable

This action stores the digits typed by the caller on the phone keypad to a given variable.

You can specify the number of digits to be recorded and the name of the value for the digits. To stop recording after a period of time, you just need to fill in a value in the Stop recording after X seconds of inactivity field. The accepted values range from 1 to 9. The default value is 5 seconds.

You can also specify if you want a specific sound to be played before the digits get recorded.

Set language to content of variableYou can use this action to set the language of the call. All sounds will be played to the caller in the selected language.
Set language to static valueYou can use this action to set the language of the call by using the contents of a given variable. All sounds will be played to the caller in the language that you select from the available drop-down list.
Time interval based call transferBased on the time interval during which the call is received, this action transfers the call to another extension on the client account.
Time interval based context jumpThis action enables jumping to another context, based on the time interval during which the call is received.
Transfer call to extension number

This action transfers a call to another extension on the client account.

This action handles transfers from the IVR to different extensions. Any IVR scenario should include this option among its 0-9 actions.

Transfer to number contained in variableThis action can transfer the call to another extension on the same client or to an external phone number using the contents of a given variable.
Wait for [X] secondsThis action introduces a delay between two consecutive actions.

IVR acenarios

Scenario #1

The call flow is:

  1. First, call the IVR.
  2. The welcome sound will be played, asking you to enter the 3-digit short number of the extension and to press 0, 1, 2 to get transferred to the desired extension.
  3. If you do not enter the required number or you do not press 0, 1, 2 , the options context will be played.
  4. If you press 3, the welcome sound will be played again.

To implement the functionality described earlier, you have to build 2 contexts:

Main Context

Here are the actions for the start option:

Play sound file in background

Here you will define a message that will be played to the caller. For example:

Thank you for calling company X. If you know your party's 3-digit extension, please dial it now. For front desk dial 1, for back desk dial 2, and for the operator dial 0.

Record digits to variable

Fill in the options as follows:

Record 3 digits to variable transfer

Stop recording after 3 seconds of inactivity

Play before starting recording - This option is not mandatory.

Transfer call to number contained in variable

Fill in the options as follows:

Transfer call to number contained in variable transfer

Time-interval based context jump

Fill in the options as follows:

If in time interval - You must first define the desired interval, for example Full month.

Jump to context - Select Options, at option - select start.

Else jump to context - Select main, at option - select start.

The actions for the invalid option are:

Record digits to variable

Fill in the options as follows:

Record 3 digits to variable transferext2

Stop recording after 3 seconds of inactivity

Play before starting recording - If you wish, it is not required.

Options context

The actions for the start option are:

Play sound in backgroundAs you wish.

The actions for the timeout option are:

Play sound in backgroundAs you wish.
Hangup after [X] secondsDefine a value, for example 5 seconds.

The actions for the invalid option are:

Play sound in backgroundAs you wish.
Time-interval based jump

Fill in the options as follows:

Jump to context - Select Options, at option - select start.

The actions for the 0 option are:

Time-interval based call transfer

Fill in the options as follows:

If in time interval - Select the Full month interval.

Transfer to - Fill in your front desk extension's number.

Else transfer to - Fill in the number of the extension where you want the calls to be transferred to.


The actions for the 1 option are:

Time-interval based call transfer

Fill in the options as follows:

If in time interval - Select the Full month interval.

Transfer to - Fill in your front desk extension's number.

Else transfer to - Fill in the number of the extension where you want the calls to be transferred to.


The actions for the 2 option are:

Time-interval based call transfer

Fill in the options as follows:

If in time interval - Select the Full month interval.

Transfer to - Fill in the number of your back desk extension.

Else transfer to - Fill in the number of the extension you want to get calls transferred to.

The actions for the 3 option are:

Time-interval based context jump

Fill in the options as follows:

Jump to context - Select Options, at option - Select start.

Scenario #2

Change the language of playing sounds.

To implement this scenario, you have to build one context with the following actions:

The actions for the start option are:

Record digits to variable

Fill in the options as follows:

Record 1 digits to variable var

Stop recording after 9 seconds of inactivity

Play before recording starts - This option is not mandatory.

This action will store the digits typed by the caller on their phone keypad to a given variable. In our case, it will save 1 digit to variable var. The recording will stop after 9 seconds of inactivity. (The default value is 5 seconds).

Set variable

Fill in the options as follows:

Associate variable var

With string pt

This will replace the content of the variable with a different string. In our case, the var variable will be replaced with pt.

Set language to content of variable

Fill in the options as follows:

Set language to content of variable 1

This will set the language of the call to the one we set at step 2. If the IVR is called and 1 is typed, then the language will be set to pt.

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))

Except where otherwise noted, content in this space is licensed under a Creative Commons Attribution 4.0 International.