IVR - How to create (without 2N® IVR Editor)

IMPORTANT!!! READ IT FIRST!!!

This FAQ explains how to prepare an IVR script and voice messages for an OFR IVR. This document became almost obsolete when 2N® IVR Editor has been issued (http://www.2n.cz/en/products/umts/officeroute/downloads/ – Software). Anyway, it is still useful because you can find the detailed description how to prepare correct voice message files, as well as to understand internal structure of IVR.

Creating voice  files

The format for IVR messages into 2N® OfficeRoute is 8bit, 8kHz, mono, Alaw. You can record it (or edit recorded samples) in GoldWave audio editor (http://www.goldwave.com/).

Record a new message

Highlight the part of the recorded voice which you can save.

Choose File – Save Selection as...

Choose Attributes as A-Law, 8000Hz, 64kbps, mono

Rename type of file from *.wav to *.Alaw

Creating an IVR script

Record all messages in audio files. Messages must be in ISDN A-law raw format. Create IVR script named script.disa, according to the following example. Put all messages and script.disa to one zipped file using tar.gz. Files must be zipped without folders. This file package should be stored in the internal FLASH memory. After upgrade to this version it is necessary to upload package of voicemail messages (in Telephony services > Devices > DISA lines > Upload DISA/IVR package to internal flash).

IVR Commands

  • WAIT

- waits without starting audio message
- parameters:

  • TIMEOUT – waiting interval

- example:
WAIT TIMEOUT=1s

  • CALL_ANSWER

- picks the incoming ringing call up
- parameters: none

  • CALL_RINGING

- changes the incoming call’s status to RINGING, e.g. if the call is received from SIP (VoIP) side, calling party receives SIP message 180 Ringing and hears a ringing tone
- parameters: none

  • CALL_PROGRESS

- changes the incoming call’s status to RINGING with the voice channel connected, e.g. if the call is received from SIP (VoIP) side, calling party receives SIP message 183 Session progress and any audio file could be played to it
- parameters: none

  • CALL_HANGUP

- hangups a current call
- parameters: none

  • AUDIO

- plays an audio file (message)
- parameters:
SRC – file name (file must be coded in A-law format); be careful to write a correct path
BARGEIN - {TRUE|FALSE} – if TRUE and a DTMF code is received, playing of the audio file is immediately cancelled and script jumps to the next line
- example:
AUDIO SRC=Welcome.Alaw BARGEIN=TRUE

  • WAIT_DTMF

- waits to receive a DTMF code and stores it in the variable DTMF
- parameters:
TIMEOUT – maximal time waiting for DTMF
MAXCNT – maximal count of digits (characters) waiting for
ENDCHAR – the end-of-receive character
STRIPENDCHAR - {TRUE|FALSE} – if TRUE, the end character will not be stored to the DTMF variable
- example:
WAIT_DTMF TIMEOUT=10s MAXCNT=1 STRIPENDCHAR=FALSE
- waits for only one character

  • TRANSFER

- transfers call to the certain number
- parameters:
DEST – the number a calling party should be transferred to
- example:
TRANSFER DEST=100
- transfers call to line 100
TRANSFER DEST=$DTMF
- transfers call to a line number, stored in DTMF variable

  • GOTO

- jumps to the certain raw of the script
- parameters:
DESTID – a raw ID
- example:
GOTO DESTID=begin
- jumps to the raw that has parameter ID=begin

  • GOTO_IF

- conditional jump – jumps if variable gets a certain value
- parameters:
DESTID – a raw ID
VAR – a variable to be compared to
VALUE – a value to be compared to
- example:
GOTO_IF VAR=DTMF VALUE=1 DESTID=sales
- if the DTMF variable has value 1, jump to the raw with ID=sales

An Example of the IVR Script (script.disa):

WAIT TIMEOUT=1s
CALL_ANSWER
WAIT ID=begin TIMEOUT=1s
AUDIO SRC=1-Welcome.Alaw BARGEIN=TRUE
WAIT_DTMF TIMEOUT=10s MAXCNT=1 STRIPENDCHAR=FALSE
GOTO_IF VAR=DTMF VALUE=1 DESTID=czech
GOTO_IF VAR=DTMF VALUE=2 DESTID=english
GOTO_IF VAR=DTMF VALUE=3 DESTID=deutsch
GOTO_IF VAR=DTMF VALUE=4 DESTID=espagnol
GOTO DESTID=begin
WAIT ID=czech TIMEOUT=1s
AUDIO SRC=menu-czech.Alaw BARGEIN=FALSE
GOTO DESTID=begin
WAIT ID=english TIMEOUT=1s
AUDIO SRC=menu-english.Alaw BARGEIN=TRUE
WAIT_DTMF TIMEOUT=10s MAXCNT=1 STRIPENDCHAR=FALSE
GOTO_IF VAR=DTMF VALUE=1 DESTID=sales
GOTO_IF VAR=DTMF VALUE=2 DESTID=nobody
GOTO_IF VAR=DTMF VALUE=3 DESTID=nobody
GOTO_IF VAR=DTMF VALUE=4 DESTID=nobody
GOTO_IF VAR=DTMF VALUE=5 DESTID=operator
GOTO DESTID=begin
WAIT ID=sales TIMEOUT=1s
AUDIO SRC=sales.Alaw BARGEIN=FALSE
TRANSFER DEST=202
GOTO DESTID=begin
WAIT ID=nobody TIMEOUT=1s
AUDIO SRC=nobody.Alaw BARGEIN=FALSE
GOTO DESTID=begin
WAIT ID=operator TIMEOUT=1s
AUDIO SRC=operator.Alaw BARGEIN=FALSE
GOTO DESTID=begin
WAIT ID=deutsch TIMEOUT=1s
AUDIO SRC=deutsch.Alaw BARGEIN=FALSE
GOTO DESTID=begin
WAIT ID=espagnol TIMEOUT=1s
AUDIO SRC=espagnol.Alaw BARGEIN=FALSE
GOTO DESTID=begin

Creating IVR package *.tar.gz

Open Power Archiver 2007 (http://powerarchiver.brothersoft.com/powerarchiver2007-10.2) and Create a new archive.

Enter name for a new archive and choose Type of archive TAR

Find folder with IVR files (script, audio files)