[OPEN-ILS-DEV] Telephone notification

Ingalls, Niles nilesi at zionsville.lib.in.us
Wed Feb 6 14:21:49 EST 2008

On 2/6/08 1:10 PM, "Bill Ott" <bott at grpl.org> wrote:

> 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?

Thanks to the flexibility of Asterisk AGI, interaction between Asterisk and
Evergreen can be done one of many ways.  Using AGI & Perl, there should be
no difficulty interacting between the two.

My library relies heavily on Asterisk, and this task is on our agenda as
soon as we migrate to the Evergreen ILS.

> 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.

It would be much easier to to interact with Asterisk through the Manager
API. http://www.voip-info.org/wiki-Asterisk+manager+API
For scheduled calls, a custom AGI script could be triggered via the manager
API to write the requested .call file, schedule the time of the call via
unix touch command, and copy them to the spool directory. Asterisk will
ignore call files with future timestamps, so moving the files via cron
wouldn't be necessary.
Sending SMS messages via way of of email could turn into a daunting task,
since there is no simple way to identify a particular carrier based on the
phone number. It may be easier to use a SMS gateway.

My Library just recently migrated 100% of our phone system to Asterisk (we
were hybrid between the two) and we already automate a number of tasks by
way of Asterisk.  If I had an outline of what most libraries could expect
from the phone notifications, I can incorporate that into the work I'm
already being tasked with and will update the Wiki with my progress.

> 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})

Festival, although a great speech synthesizer, is a little rough sounding.
We're planning to use custom audio script with generic notifications.

Niles Ingalls
UNIX & Web Administrator
Hussey-Mayfield Memorial Public Library
250 N. Fifth Street
P.O. Box 840
Zionsville, IN. 46077

Phone   317-873-3149 x13280
Fax     317-873-8339

"Confidence is what you have before you understand the problem." - Woody

More information about the Open-ils-dev mailing list