New features for telephony currently in use at KCLS user/senator/telephony-update
authorLebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Fri, 17 Feb 2012 17:37:15 +0000 (12:37 -0500)
committerLebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Mon, 20 Feb 2012 19:42:06 +0000 (14:42 -0500)
commit3525a532698edef9ea2b392dddfc7c2aea4a45eb
tree0ceb72f88d47d416f4adc21bd74876c3ea317c6e
parent881b4669725e84df992f0ad5ffff82a61ab401e7
New features for telephony currently in use at KCLS

I must ask the community's forgiveness for sitting on this for so long.
This code was developed in fits over time, and it had to be disentangled
from some site-specific configuration and workarounds before it could
be usefully published.

Enhancements over what's already committed to master include:

- a feature that allows an Evergreen system to query the PBX (where
  PBX here refers to an Asterisk system plus the eg-pbx-* scripts from
  Evergreen - particularly eg-pbx-mediator.pl) for the A/T event IDs
  associated with failed notifcations, so that those A/T events can be
  "rolled over" into new ones with a different event definition, and
  thus a different notification method

- holiday awareness in eg-pbx-allocator (the piece run by cron whose
  main responsibility is dripping files from a staging directory into
  Asterisk's real spool for call files).  There's a script (set_pbx_holidays)
  that can be run by cron on an Evergreen system to periodically update the
  PBX's table of holidays based on a given org unit's closed_date ranges.

- smart retry.  In certain situations, if you put too many callfiles
  into Asterisk's spool at once, Asterisk will try to make too many
  calls at once, and all such calls just fail.  That's what the
  allocator is meant to prevent.  Smart retry is about moving calls that
  have been tried once, and will be retried again later due to resulting
  in a busy signal or other problem, out of the spool to make room for
  other calls that could be made in the mean time.

- miscellaneous helper scripts and tricks for spreading more
  reportable/greppable information among A/T output and cleaning up
  callfiles that result in no-op's for Asterisk. Lock file checking for
  the allocator. Etc.

I also have tried to throw in some useful documentation.  I admit things
look a bit jumbled, but I'll be as available as I can make myself to help
anyone who steps up to clarify documentation or improve code in order to
make general adoption of these features a little easier.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
13 files changed:
Open-ILS/src/asterisk/asterisk-1.6.2.18-accountcode.patch [new file with mode: 0644]
Open-ILS/src/asterisk/pbx-daemon/eg-pbx-allocator.pl
Open-ILS/src/asterisk/pbx-daemon/eg-pbx-daemon.conf
Open-ILS/src/asterisk/pbx-daemon/eg-pbx-mediator.pl
Open-ILS/src/asterisk/pbx-daemon/eg-pbx-preclean.sh [new file with mode: 0755]
Open-ILS/src/asterisk/pbx-daemon/eg-pbx-smart-retry.pl [new file with mode: 0755]
Open-ILS/src/asterisk/pbx-daemon/nagios_plugins/check_asterisk_spool.pl [new file with mode: 0755]
Open-ILS/src/asterisk/pbx-daemon/test_client.pl
Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Reactor/AstCall.pm
Open-ILS/src/support-scripts/rollover_phone_to_print.pl [new file with mode: 0755]
Open-ILS/src/support-scripts/set_pbx_holidays.pl [new file with mode: 0755]
docs/TechRef/Telephony/telephony-overview.svg [new file with mode: 0644]
docs/TechRef/Telephony/telephony-setup-guide.txt [new file with mode: 0644]