I’m getting closer to the functionality I need for our outbound safety check system. A few more things that I’m having trouble with that you might have suggestions for:
1. I need to dial calls more frequently than BroadcastByPhone allows (once per hour), so I was looking at using Task Scheduler as suggested by your support department, however because I’m using an IVRStudio application I need to use a .VOC file so the correct application is selected. It appears that after importing numbers via vcast, they are saved in the .VOC file — any way to prevent this? (i.e. I just want to call the numbers in the CSV at the time I call vcast, so I can maintain the call list from the CSV)
No. But this should be easily handled.
First, create a .VOC file with or without phone number, select your message, save it. When a new call is scheduled, first copy the .voc file to a new file, then issue the vcast.exe command line with the newly created file, delete the file after.
2. The parameter ${__VG__LAST_RESULT__} doesn’t appear to work when there is an exception during the call. Is there another variable I can use to determine why the call failed? (It’s available within the designer, but then gives an error in the log)
The ${__VG__LAST_RESULT__} is used to hold caller response, such as the key presses or voice recording. However, if there is an exception, the value is not defined. What this means is that you need to handle the exception in IVR Studio. Simply create another child element, and then select the system throws an exception for transition from parent element
3. Alternately to the above items, I was thinking of running all my logic through Visual Studio and simply calling the command line for each call, however I would need to pass in the called number and name and get back the call result — is there some method via vcast (undocumented or otherwise) that accomplishes this? Alternately, do you have some other method to make individual phone calls from within a VB / VC# application?
Yes, there are two methods.
The first one is use the command line you have for question 1. You simply call the command with one phone number, and after the call, call the command line again to export the result, then read call result from the exported file.
The second method involves interfacing directly with Voicent gateway. This method gives you total control over the call and interaction. However, it uses a lower level interface using VoiceXML, a W3C standard for interactive voice application. This interface is actually what BroadcastByPhone and IVR Studio use. The BBP program calls the outbound call interface of the gateway, specifing the phone number, and VoiceXML application to use. IVR Studio automatically converts your application call flow to a set of VoiceXML files when deployed to the gateway.
The second method definitely will be more flexible, but it requires more lower level coding. For more details, please take a look at the Voicent Gateway Tutorial and Voicent Gateway Outbound Call Tutorial