Share This Post:

Multiple Stage IVR application

What we need:

1) Your application should call first number using BroadcastByPhone in the list and (if human) say a text (it works fine) then it should wait for user answer (here is the problem).

If user press 1 it will hang up the phone and:

A) start my application with phone number as command line parameter and wait when it will close (I found that and configured)

B) wait for X minutes, call that number again and retreive a code that will be provided by a human. I mean human will enter some digits on phone’s keyboard and we must get them. Then hang up the phone

C) start my application with retreived code as command line parameter and wait when it will close

If user press 0 or Answering machine detected them just say some text and hang up the phone.

2) Call next phone number and repeat step 1 for new phone number.

That’s all that we need. I would be really appreciated if you help us out or point me some really useful samples, docs, links.

This is not a trivial applicaiton since you need multiple IVR applications to achieve what you want.

First you need a BroadcastByPhone outbound IVR application. Let’s call it ivr-application-1. This application will do the following:

For live human pickup:

1. Asks the person called to press 1 or 0.

This should be accomplished with a Choice element, with two child elements. Please see the previous post or IVR Studio tutorial for details of specifying a Choice element.

2. Under the child element corresponds to “press 1″, add a prompt element for the actions. The action is for invoking your application as defined in A).

Add another action to introduce some X minutes of delay as defined in B).

Add another action to call a batch file. In the batch file, call BroadcastByPhone, using the second IVR application defined below. Let’s name the second IVR application ivr-application-2. Retrieve the user input

Add another action to collect the user input as in defined in C).

For answering machine:

Just add a Prompt element under element labeled Answering machine

Now you need design your second ivr application: ivr-application-2.

The application should be similar to the sample application for collecting password.

WHAT I DID:

1) Created ivr-application-1 (call_1.ivr) that asks human for 1 or 0. If human press 1 then start my 1st program with _VG_CALLED_NUMBER_ as command line parameter. My 1st program waits for X minutes and starts not a batch file, but handles a command line start:

“c:\Program Files\Voicent\BroadcastByPhone\bin\vcast.exe” “C:\Callback.voc” -startnow -cleanstatus -numbers “{called number metioned above}”.

Callback.voc is described in 4).

2) Created BBP project (Call.voc) and set up mentioned above ivr-application-1 (call_1.ivr) as a message. Filled phone numbers list with i.e. thousands of phone numbers.

3) Created second ivr-application-2 (call_2.ivr) that retreives human’s input and starts my 2nd program with _VG_LAST_RESULT_ as command line parameter.

4) Created BBP project (Callback.voc) with empty phone list and set up ivr-application-2 (call_2.ivr) as a message.

HOW THIS SHOULD WORK:

1) I start BBP using Call.voc which contains thousands of phone numbers and retreives human’s input: 1 or 0.When human enter 1 it start my 1st application. That works.

2) 1st application waits for X minutes and start another BBP instance using Callback.voc. Phone # to call to is provided in command line. Callback.voc should call that single phone # immediately.

PROBLEM:

The problem is that 2nd BBP instance (Callback.voc) do not call until 1st BBP instance (Call.voc) finish calling all numbers in list.

QUESTION:

How can I pause 1st broadcast until 2nd calls single phone #? Or maybe insert this call in VG queue somehow.

All I need is when (if) 2nd BBP starts (it starts with just one phone # in the list) it waits for 1st BBP to finish current “In Progress” calls and make just one call to single number. My call list is huge and people will not sit whole day against their phone to answer our 2nd call.

There is no “Pause” in between broadcast calls. The moment a call is finished, BBP sends another one.

When the second BBP instance is launched, it is supposed to schedule the call immediately and you should see the “in progress” status shown. There is no guarantee the call will be the next one. One way to solve this is to setup another system on a different computer. So instead of launch the second BBP on the first computer, you launch it on the second computer.

Or you can write a script to start the first call list one number at a time, and when your second BBP is finished, go back and lauch the first BBP again with the next number.

Share This Post:

This entry was posted in IVR Developer. Bookmark the permalink.