[OPEN-ILS-DEV] Telephone notification
Bill Ott
bott at grpl.org
Wed Feb 6 13:10:29 EST 2008
I've come across a very basic and flexible form of a possible telephone
notification system.
As briefly discussed back in Dec., this is only a piece of what would be
much more useful as a fully interactive telephony information and
renewal system, but for my current situation, it would answer the
question of what to do with our 300-400 calls that are currently being
placed each day by a similar system.
Asterisk has a very simple method to "auto-dial out and deliver message".
see:
http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out+deliver+message&view_comment_id=13733
This could deliver pre-recorded messages, or could be used in
conjunction with something like CMU's text-to-speech project, Festival,
to add dynamic data to the call. A script to format the .call file,
possibly time stamping it for the future and/or using a cron job to move
the files accordingly, and a second script to record the call result and
return that data to action.hold_notification, where the results would
appear in the staff client just like email notification.
See some Asterisk notes below.
Now, the part I'm trying to wrap my head around. How could the Asterisk
server receive and return call info?
The MacGyver side of me has crazy ideas about using an email from the
current notification system to trigger a procmail script to initiate the
call. The only thing that makes that a bit less crazy is the fact that
many cell phone providers allow email to SMS messaging, so email could
be the "base" notification, triggering text messages or phone calls.
Returning to reality, I think about the possibility of using the
Asterisk-jabber module to receive messages.
http://www.voip-info.org/wiki/view/Asterisk+Jabber
Then there's that possibility of OpenSRF over HTTP.
Thoughts on my ramblings?
My basic testing on the Asterisk end has used the following for an
extensions.conf. I'm using both text-to-speech and a pre-recorded message.
[default]
exten = s,1,Answer
exten = s,n,AGI(festival-script.pl|This is the Grand Rapids Public
Library\, you have items available for pick-up.)
exten = s,n,Background(vm-goodbye)
exten = s,n,AGI(record-result.pl|${CHANNEL}-${id})
exten = s,n,Hangup
exten = failed,1,AGI(record-result.pl|${CHANNEL}-${id})
My festival-script.pl is a minor modification of the example given here:
http://www.voip-info.org/wiki/index.php?page=Asterisk+festival+installation
My record-result.pl is simply logging the results to a text file.
The .call file I'm testing with consists of the following. Copied into
/var/spool/asterisk/outgoing, these are processed much like queued email
or lpd jobs.
Channel: Zap/g1/5480 ; outgoing channel and phone number to dial
Set: id=555 ; local variable to identify hold
WaitTime: 30 ; total time allowed to complete call
MaxRetries: 1 ; retry attempts that is, initial call plus
1 retry = 2 calls
RetryTime: 600 ; time between retries
Context: default ; see extensions.conf
Extension: s ; see extensions.conf
Priority: 1
More information about the Open-ils-dev
mailing list