using vicidial to send simple prerecorded messages

Posted in tech by ytcracker on March 21st, 2007

i own a small, 12-seat outbound call center running centos, asterisk, and vicidial - a $0 solution that eats fools up proper. holler at me if you want to pay me to teach you how to ball off VoIP too aka consulting lol.

recently, i encountered a sales campaign basically consisting of follow-up calls where a rep would be nice to have but absolutely not cost effective or necessary. i decided i would just go the vocal spam route and record one of my female representatives giving the canned script as a prerecorded message. in this case, everything is completely FTC compliant because it is a follow-up call based on an online application they filled out so DNC rules do not apply.

first off, you will need to create a phantom agent. after logging into the /vicidial/admin.php with my admin account, i created an agent named phillip nis from the users tab.

after adding phillip nis, i needed to make him a remote user, so i clicked on the “remote agents” tab. from here, you click “add new remote agents.” in the “user id start” field, put the id number of the phillip nis rep (in my case it was 6667 because IRC ports holla you know how we do). put 1 in the “number of lines” field, select the asterisk server you are using in the server IP. for the external extension i just put 00 because it really doesn’t do anything - you’re going to have a recording talking to these people, so a real remote agent doesn’t need to be contacted. select the campaign you will be doing this on and leave the user as inactive for now.

from one of your phones connected to the matrix, dial 8168. a friendly voice will tell you to enter a pin. here you will enter 4321. the voice will tell you how to record a voice prompt. after recording the message that you want to spam, hit # - pressing 1 will save the prompt, pressing 2 will play the recording back, 3 will rerecord. for some stupid reason, i don’t see a way to delete stuff from this particular interface - just make sure you record something that you’re absolutely in love with. the recordings made in this fashion are numbered starting from 85100001, so as you make jokes and stupid recordings for whatever purpose the recorded filenames are incremented. to access what a recording sounds like at a later time, you can dial the prompt number from a phone on your network (i.e. dialing 85100001 will play that recording through your handset/headset). in my case, my recorded message was saved as 85100003.

i configured my dialplan to basically wait for a couple seconds of silence and then play the recorded message to the recipient. the silence is basically in place so that way when the person on the other end says “hello?” or the answering machine beeps it won’t be talking over them. i added the unassigned extension 8329 to /etc/asterisk/extensions.conf using the following format:

exten => 8329,1,WaitForSilence(1000,2)
exten => 8329,2,Playback(85100003)
exten => 8329,3,AGI(VD_amd_post.agi,${EXTEN})
exten => 8329,4,Playback(85100003)
exten => 8329,5,Hangup

the waitforsilence command waits for 1000ms, twice. the playback function plays the recorded message. the AGI script changes the status of the lead to “AL” and then the message is played again in case someone missed it the first time. the extension then hangs up and moves on.

reload your asterisk configuration files through the asterisk console.

in your campaign configuration, using the detail view, enter 8329 (or whatever unused extension you chose) in the “campaign vdad exten” field. save the changes.

log into your /vicidial/vdremote.php interface using the phillip nis-esque user id and password you created. switch this user’s status to active and the campaign will begin dialing automatically with the lists you have loaded.

i think that’s comprehensive enough.

*** MINI UPDATE ***

utilizing this method only dispositions leads that have actually listened to the first instance of the recording, so i just jerry-rigged the VD_amd_post.agi script to change the status of the lead after waitforsilence() is executed.

open VD_amd_post.agi in /var/lib/asterisk/agi-bin/ and replace all instances of ‘AL’ with ‘PICKUP’. save the file as VD_pickup.agi, or whatever you feel like. make sure it’s chmodded rx all.

change your extensions.conf section for the auto message campaign to:

exten => 8329,1,WaitForSilence(1000,2)
exten => 8329,2,AGI(VD_pickup.agi,${EXTEN})
exten => 8329,3,Playback(85100003)
exten => 8329,4,AGI(VD_amd_post.agi,${EXTEN})
exten => 8329,5,Playback(85100003)
exten => 8329,6,Hangup

that way the lead is coded as ‘PICKUP’ if the line was live but the entirety of the recording was not listened to.

bookmark to:        

Leave a Reply