I would like to have a single inbound route which would allow users to enter an account number, then prompt them to record their greeting followed by #, then save each one to a different folder. So for instance customer 43223 calls in, enters their number, records their greetings and lets them hear it, re record / accept it.
[inbound-record]
exten => s,1,Set(TIMEOUT(digit)=5)
exten => s,n,Set(TIMEOUT(response)=15)
exten => s,n,Read(ACCOUNTNUM,5,i)
exten => s,n,AGI(createDirectory.agi,${ACCOUNTNUM})
exten => s,1,Wait(1)
exten => s,n,Playback(vm-record-prepend)
exten => s,n,Record(43223/tmp_greeting:wav)
exten => s,n,Wait(2)
exten => s,n,Playback(43223/tmp_greeting)
exten => s,n,Playback(press)
exten => s,n,Playback(digits/1)
exten => s,n,Playback(to-accept-recording)
exten => s,n,Playback(press)
exten => s,n,Playback(digits/2)
exten => s,n,Playback(cancel)
exten=> 1,1,AGI(saveFile.agi,${ACCOUNTNUM})
exten=> 2,1,Goto(inbound-record,s,1)
exten => s,n,wait(2)
exten => s,n,Hangup
The createDirectory.agi script should look something like this:
#!/usr/bin/php -q
<?php
$ACCOUNTNUM= $argv[1];
shell_exec("mkdir /var/asterisk/sounds/customers/" . $ACCOUNTNUM);
?>
The saveFile.agi script should look something like this:
#!/usr/bin/php -q
<?php
$ACCOUNTNUM= $argv[1];
shell_exec("mv /var/asterisk/sounds/customers/" . $ACCOUNTNUM. "/tmp_greeting /var/asterisk/sounds/customers/" . $ACCOUNTNUM. "/greeting");
?>
I can’t figure out though how to route the incoming calls from outside in. I got this basic one to work on internal calls, but I don’t know where to put it for external calls to work.
[from-internal-custom]
exten => 1234,1,Wait(2)
exten => 1234,2,Record(outboundmsgs/msg4:wav)
exten => 1234,3,Wait(2)
exten => 1234,4,Playback(outboundmsgs/msg4)
exten => 1234,5,wait(2)
exten => 1234,6,Hangup
include => agentlogin
include => conferences
include => calendar-event
include => weather-wakeup