Difference between revisions of "IVR system"

From Kolmisoft Wiki
Jump to navigationJump to search
 
(76 intermediate revisions by 11 users not shown)
Line 1: Line 1:
This system lets configure advanced IVR systems.
[[Image:ivr_example.png|right|500px]]This system makes it possible to configure advanced IVR ('''Interactive Voice Response''') systems.


=== Definitions ===
This functionality can be used by the system owner (admin), [[Reseller_Pro_Addon|Resellers PRO]] and Accountant with [[Accountant_permissions | a '''Manage PBX functions''' permission]].


* '''Voices''' - set of audio files which together forms a "voice", e.g. some female/male set of recordings for same IVR
IVRs and IVR Time Periods are located in '''ADDONS -> PBX functions -> IVR''' and Voices can be found at '''SETTINGS''' -> '''Setup''' -> '''Voices'''
* '''Time Periods''' - start date/time and end date/time which describes some time period
* '''IVR''' - set of IVR blocks
** '''Blocks''' - part of IVR, where caller can take some action (press a button-extension, listen to recording, etc)
** '''Extensions''' - possible button presses (0-9, *, # and some other special cases)
** '''Actions''' - what action system should do when some extension is activated


<br><br>
== Definitions ==


=== Setup logic ===
* '''Voices''' – a set of audio files, such as male/female recordings, that together form a "voice" for the same IVR.
* '''Time Periods''' – a start date/time and end date/time that describe a time period.
* '''IVR''' – a set of IVR blocks.
** '''Blocks''' – a part of IVR in which the caller can take some action (press a button extension, listen to a recording, etc). Basically, a block in IVR is a "set of rules".
** '''Extensions''' – possible button presses (0-9, *, # and some other special cases).
** '''Actions''' – what action the system should take when a new Block is reached.
 
<br><br>
== Setup logic ==


* Create Voice
* Create Voice
** Record/Upload necessary sound files to Voice
** Record and upload the necessary sound files to Voice.
* Create Time Period(s)
* Create Time Period(s).
* Create IVR
* Create IVR.
** Create and configure Block(s)
** Create and configure Block(s).
* Create IVR Dial Plan
* Create the IVR Dial Plan.
* Assign this IVR Dial Plan to some DID
* Assign this IVR Dial Plan to a DID.
* Call this DID to test
* Call this DID to test it.
 


=== IVR Voices ===
<br><br>
== Voices ==


'''SETTINGS - Setup - IVR - Voices'''
'''SETTINGS''' -> '''Setup''' -> '''Voices''' for the System Admin, Reseller PROs, and Accountants (with an [[Accountant_permissions|IVR > Manage IVR Voices]] permission).


Here it is possible to create several Voices. Voice is set of sound files. Usually all sound files in one Voice is recorded by one person to keep it sound correctly.
Here it is possible to create several Voices. A Voice consists of a set of sound files. Usually, all the sound files in one Voice are recorded by one person to keep the sound consistent.


Multiple operations can be performed with Voices:
Multiple operations can be performed with Voices:


* View a detailed list of the system Voices
* View a detailed list of the system Voices.
* Add a new sound Voice
* Add a new sound Voice.
* View the sounds that have files in different Voices
* View the sounds that have files in different Voices.
* Upload new sound files for Voices
* Upload new sound files for Voices.
* Delete Voices and voice files from the system  
* Delete Voices and voice files from the system.


You cannot remove sounds that are currently used.
You cannot remove sounds that are currently used.


<br><br>
== Time Periods ==
Go to '''ADDONS -> PBX functions -> IVR''' –> Time Periods'''
<br><br>
[[File:ivr_time_perionds_path.png]]
<br><br>
Here you will see the Time Periods list. Click [[Image:icon_add.png]]'''New Time Period''' to create a new period or click on [[image:icon_edit.png]] icon to edit the old one to set time periods.
<br><br>
[[File:ivr_time_perionds.png]]
<br><br>
Time period defines the exact time period IVR will be active. There is a limit of three periods in [[IVR Dial Plan]]. There is a fourth period, but it only consists of all the remaining time that is not covered by the previous three periods.
<br><br>
===Examples===
# Select '''Date''' from 1 of January to 28 of February and choose '''Hour : Minute''' from 09:00 to 18:59. Action will be active from 1 of January to 28 of February at a time from 09:00 till 18:59.
# Select just '''Hour : Minute''' from 19:00 to 08:59 and the action will be active every day at a time from 19:00 till 08:59.
# Select '''Weekday''' from Monday to Friday and choose '''Hour : Minute''' from 13:00 to 15:59. Action will be active every week from Monday to Friday at a time from 13:00 to 15:59.
<br>
'''Note:''' time is in the server's timezone
<br><br>
== IVR Structure ==
* '''IVR''' – consists of a set of IVR blocks.
** '''Blocks''' – part of IVR in which a caller can take some action (press a button extension, listen to a recording, etc).
** '''Extensions''' – possible button presses (0-9, *, # and some other special cases).
** '''Actions''' – what action the system should take when an extension is activated.
The main part of IVR is '''Blocks'''. The whole of IVR is a set of Blocks. A Block can be considered as a part of IVR logic where a caller can take some action.
'''Extension''' is what the user does – presses a button (0-9, *, #), waits (Timeout), or presses any non-described extension – which can be described as an Invalid Extension. We explain this in detail later.
'''Actions''' are actions that will be activated when the caller comes to a Block.
<br><br>
=== Example ===
For example, here is a simple IVR:
* A caller calls a DID and IVR answers with a recording: "Thank you for calling SOME COMPANY. For sales press 1, for management press 2, to speak to a consultant please hold or press 3."
Here we have only one block: the user listens to the recording and can take some Action -> press some button (Extension) or wait (Wait is also Extension but is special - it is called Timeout).
If the user presses something different than 1, 2, or 3, the message will be played again. This is called an Invalid Extension, or (i) for short.
To summarize, we have the following situation:
* 1 Block.
* Extensions: 1, 2, 3, t (timeout), i (invalid).
* Actions: call to sales, call to management, call to a consultant, play recording again.
This example is to illustrate the main IVR building parts. We will show how they operate together to build a working IVR.
<br><br>
== Extensions ==
Extensions are button presses on the dial pad: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, * and # and two special extensions:
* t - means "timeout", when no extension is pressed in a determined time period.
* i - means "invalid". This extension becomes active when a caller presses some extensions that are not described in the IVR block configuration.
The 'i' (invalid) extension in the previous example could be triggered when buttons 4, 5, 6, 7, 8, 9, 0, *, # are pressed because only 1, 2, and 3 are described.
<br><br>
== Actions ==
An Action is some (yes...) action which is executed when a new Block is reached.
Possible Actions:
* Playback – plays a sound file.
* Delay – delays execution by some seconds.
* Change Voice – changes IVR Voice.
* Hangup – finishes the call.
* Transfer to – transfers the call to:
** Another IVR
** DID
** Device
** Block
** Extension - in an opened text field you can enter anything.
* Conditional Transfer – if the Caller ID matches some defined value, the call is transferred to:
** Another IVR
** DID
** Device
** Block
** Extension - in an opened text field you can enter anything.
* Debug – text message to Asterisk CLI which helps to debug.
* Set Accountcode - sets ownership for the call to some other user.
* Set CallerID (Number) - Sets incoming calls to IVR, callerID number to any desired value. Usage example can be found [[How_to_request_Authentication_by_PIN_when_call_comes_from_Banned_CallerID | here]]
* Security Code - a caller is asked to enter a specified Security Code (maximum 10 digits). If the code is entered correctly IVR proceeds to the next step, otherwise, the workflow is transferred to another block.
* [[Dial_Extension|Dial Extension]]
* [[Random_play|Random Play]] - This action plays a random sound file from the selected '''IVR Voice''' file group.
* Set CID Name Prefix - The CID Name Prefix is used to prefix the caller ID of the caller.
<br><br>
== Timeouts ==


=== Time Periods ===
=== Timeout digits ===


'''SETTINGS - Setup - IVR - Time Periods'''
The maximum amount of time permitted between digits when the
user is typing in an extension. When this timeout expires
after the user has started to type in an extension, the
extension will be considered complete and will be
interpreted. Note that if an extension typed in is valid,
it will not have to timeout to be tested, so typically at
the expiry of this timeout, the extension will be considered
invalid (and thus control would be passed to the 'i'
extension, or if none exists the call would be
terminated). The default timeout (in MOR IVR) is 3 seconds.


Here time periods can be set. They determine some time period.
<br>
=== Timeout Response===


The maximum amount of time permitted after falling through a
series of priorities for a channel in which the user may
begin typing an extension. If the user does not begin typing an
extension in this amount of time, control will pass to the
't' extension if one exists, or if none exists, the call would be
terminated. Once the user begins to type an extension, Asterisk
will wait for digit timeout to be reached, and response timeout has
no effect. The default timeout (in MOR IVR) is 10 seconds.


=== IVR Structure ===
<br><br>


* '''IVR'''  - set of IVR blocks
== Deleting IVR ==
** '''Blocks''' - part of IVR, where caller can take some action (press a button-extension, listen to recording, etc)
** '''Extensions''' - possible button presses (0-9, *, # and some other special cases)
** '''Actions''' - what action system should do when some extension is activated


The main part of IVR is '''Block'''. Whole IVR is set of Blocks. Block can be considered as some part at IVR logic where caller can take some action.
* If an IVR is not assigned to any Dial Plan, you can delete the IVR by clicking the [[Image:icon_delete.png]] icon near an IVR in the IVR menu.
* If the IVR is assigned to a Dial Plan, you need to unassign the IVR from the Dial Plan to be able to delete it.


'''Extension''' is what user does - presses some button (0-9, *, #), waits (Timeout) or presses any non described extension - which can be described as Invalid Extension - we will explain this in details later.
<br><br>
== Setup Hints/Tips ==


'''Actions''' are some actions which will be activated when user presses some Extension.
* If you want to play a sound file, make sure you have set the correct Voice. By default, Voice = 'en'. If you have uploaded a sound file for a different Voice, select it before playing your Sound File:


==== Example ====
[[Image:ivr_select_voice_before_playback.png]]


For example we have simple IVR:
<br><br>
* when caller calls some DID and IVR answers with recording "Thank you for calling SOME COMPANY, for sales press 1, for management press 2, to get to live person please hold or press 3"


Here we have only 1 block: user listens to recording and can take some Action -> press some button (Extension) or wait (Wait is also Extension but special - it is called Timeout).
* You can let simple users use your created IVR. You can let all users use it or you can choose specific users.


If user presses something different then 1, 2 or 3 - then message will be played again. This is called Invalid extension (i).
[[Image:Ivr_user_assign.png]]


To summarize we have such situation:
<br><br>


* 1 Block
=See also=
* Extensions: 1, 2, 3, t (timeout), i (invalid)
* [[IVR for Calling Cards]]
* Actions: call to sales, call to management, call to live person, play recording again
* [[IVR Greeting for DID]]
* [[Dial Local]]
* [[I have a problem with IVR]]
* [[Sound files]]
* [[Asterisk Languages]]
*[[IVR setup example]]


This example is to illustrate main IVR building parts. We will show how they play together to build working IVR.
*[[Random_play|Random Play IVR Campaign]]

Latest revision as of 13:19, 29 December 2022

Ivr example.png

This system makes it possible to configure advanced IVR (Interactive Voice Response) systems.

This functionality can be used by the system owner (admin), Resellers PRO and Accountant with a Manage PBX functions permission.

IVRs and IVR Time Periods are located in ADDONS -> PBX functions -> IVR and Voices can be found at SETTINGS -> Setup -> Voices



Definitions

  • Voices – a set of audio files, such as male/female recordings, that together form a "voice" for the same IVR.
  • Time Periods – a start date/time and end date/time that describe a time period.
  • IVR – a set of IVR blocks.
    • Blocks – a part of IVR in which the caller can take some action (press a button extension, listen to a recording, etc). Basically, a block in IVR is a "set of rules".
    • Extensions – possible button presses (0-9, *, # and some other special cases).
    • Actions – what action the system should take when a new Block is reached.



Setup logic

  • Create Voice
    • Record and upload the necessary sound files to Voice.
  • Create Time Period(s).
  • Create IVR.
    • Create and configure Block(s).
  • Create the IVR Dial Plan.
  • Assign this IVR Dial Plan to a DID.
  • Call this DID to test it.



Voices

SETTINGS -> Setup -> Voices for the System Admin, Reseller PROs, and Accountants (with an IVR > Manage IVR Voices permission).

Here it is possible to create several Voices. A Voice consists of a set of sound files. Usually, all the sound files in one Voice are recorded by one person to keep the sound consistent.

Multiple operations can be performed with Voices:

  • View a detailed list of the system Voices.
  • Add a new sound Voice.
  • View the sounds that have files in different Voices.
  • Upload new sound files for Voices.
  • Delete Voices and voice files from the system.

You cannot remove sounds that are currently used.



Time Periods

Go to ADDONS -> PBX functions -> IVR –> Time Periods

Ivr time perionds path.png

Here you will see the Time Periods list. Click Icon add.pngNew Time Period to create a new period or click on Icon edit.png icon to edit the old one to set time periods.

Ivr time perionds.png

Time period defines the exact time period IVR will be active. There is a limit of three periods in IVR Dial Plan. There is a fourth period, but it only consists of all the remaining time that is not covered by the previous three periods.

Examples

  1. Select Date from 1 of January to 28 of February and choose Hour : Minute from 09:00 to 18:59. Action will be active from 1 of January to 28 of February at a time from 09:00 till 18:59.
  2. Select just Hour : Minute from 19:00 to 08:59 and the action will be active every day at a time from 19:00 till 08:59.
  3. Select Weekday from Monday to Friday and choose Hour : Minute from 13:00 to 15:59. Action will be active every week from Monday to Friday at a time from 13:00 to 15:59.


Note: time is in the server's timezone



IVR Structure

  • IVR – consists of a set of IVR blocks.
    • Blocks – part of IVR in which a caller can take some action (press a button extension, listen to a recording, etc).
    • Extensions – possible button presses (0-9, *, # and some other special cases).
    • Actions – what action the system should take when an extension is activated.

The main part of IVR is Blocks. The whole of IVR is a set of Blocks. A Block can be considered as a part of IVR logic where a caller can take some action.

Extension is what the user does – presses a button (0-9, *, #), waits (Timeout), or presses any non-described extension – which can be described as an Invalid Extension. We explain this in detail later.

Actions are actions that will be activated when the caller comes to a Block.



Example

For example, here is a simple IVR:

  • A caller calls a DID and IVR answers with a recording: "Thank you for calling SOME COMPANY. For sales press 1, for management press 2, to speak to a consultant please hold or press 3."

Here we have only one block: the user listens to the recording and can take some Action -> press some button (Extension) or wait (Wait is also Extension but is special - it is called Timeout).

If the user presses something different than 1, 2, or 3, the message will be played again. This is called an Invalid Extension, or (i) for short.

To summarize, we have the following situation:

  • 1 Block.
  • Extensions: 1, 2, 3, t (timeout), i (invalid).
  • Actions: call to sales, call to management, call to a consultant, play recording again.

This example is to illustrate the main IVR building parts. We will show how they operate together to build a working IVR.



Extensions

Extensions are button presses on the dial pad: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, * and # and two special extensions:

  • t - means "timeout", when no extension is pressed in a determined time period.
  • i - means "invalid". This extension becomes active when a caller presses some extensions that are not described in the IVR block configuration.

The 'i' (invalid) extension in the previous example could be triggered when buttons 4, 5, 6, 7, 8, 9, 0, *, # are pressed because only 1, 2, and 3 are described.




Actions

An Action is some (yes...) action which is executed when a new Block is reached.

Possible Actions:

  • Playback – plays a sound file.
  • Delay – delays execution by some seconds.
  • Change Voice – changes IVR Voice.
  • Hangup – finishes the call.
  • Transfer to – transfers the call to:
    • Another IVR
    • DID
    • Device
    • Block
    • Extension - in an opened text field you can enter anything.
  • Conditional Transfer – if the Caller ID matches some defined value, the call is transferred to:
    • Another IVR
    • DID
    • Device
    • Block
    • Extension - in an opened text field you can enter anything.
  • Debug – text message to Asterisk CLI which helps to debug.
  • Set Accountcode - sets ownership for the call to some other user.
  • Set CallerID (Number) - Sets incoming calls to IVR, callerID number to any desired value. Usage example can be found here
  • Security Code - a caller is asked to enter a specified Security Code (maximum 10 digits). If the code is entered correctly IVR proceeds to the next step, otherwise, the workflow is transferred to another block.
  • Dial Extension
  • Random Play - This action plays a random sound file from the selected IVR Voice file group.
  • Set CID Name Prefix - The CID Name Prefix is used to prefix the caller ID of the caller.



Timeouts

Timeout digits

The maximum amount of time permitted between digits when the
user is typing in an extension. When this timeout expires
after the user has started to type in an extension, the
extension will be considered complete and will be
interpreted. Note that if an extension typed in is valid,
it will not have to timeout to be tested, so typically at
the expiry of this timeout, the extension will be considered
invalid (and thus control would be passed to the 'i'
extension, or if none exists the call would be
terminated). The default timeout (in MOR IVR) is 3 seconds.


Timeout Response

The maximum amount of time permitted after falling through a
series of priorities for a channel in which the user may
begin typing an extension. If the user does not begin typing an
extension in this amount of time, control will pass to the
't' extension if one exists, or if none exists, the call would be
terminated. Once the user begins to type an extension, Asterisk
will wait for digit timeout to be reached, and response timeout has
no effect. The default timeout (in MOR IVR) is 10 seconds. 



Deleting IVR

  • If an IVR is not assigned to any Dial Plan, you can delete the IVR by clicking the Icon delete.png icon near an IVR in the IVR menu.
  • If the IVR is assigned to a Dial Plan, you need to unassign the IVR from the Dial Plan to be able to delete it.



Setup Hints/Tips

  • If you want to play a sound file, make sure you have set the correct Voice. By default, Voice = 'en'. If you have uploaded a sound file for a different Voice, select it before playing your Sound File:

Ivr select voice before playback.png



  • You can let simple users use your created IVR. You can let all users use it or you can choose specific users.

Ivr user assign.png



See also