Merge another big set of changes from team/russell/events
commitbc00afe1c9f8930d236dd8fc5c32dfaaf1a91d1e
authorrussell <russell@614ede4d-c843-0410-af14-a771ab80d22e>
Tue, 10 Jun 2008 15:12:17 +0000 (10 15:12 +0000)
committerrussell <russell@614ede4d-c843-0410-af14-a771ab80d22e>
Tue, 10 Jun 2008 15:12:17 +0000 (10 15:12 +0000)
treed87634ac06f4e43877c9790c9f70d61d70b246f1
parent93dfca9371d2bd9da6f124e54ffa5bcc56903434
Merge another big set of changes from team/russell/events

This commit merges in the rest of the code needed to support distributed device
state.  There are two main parts to this commit.

Core changes:
 - The device state handling in the core has been updated to understand device
   state across a cluster of Asterisk servers.  Every time the state of a device
   changes, it looks at all of the device states on each node, and determines the
   aggregate device state.  That resulting device state is what is provided to
   modules in Asterisk that take actions based on the state of a device.

New module, res_ais:
 - A module has been written to facilitate the communication of events between
   nodes in a cluster of Asterisk servers.  This module uses the SAForum AIS
   (Service Availability Forum Application Interface Specification) CLM and EVT
   services (Cluster Management and Event) to handle this task.  This module
   currently supports sharing Voicemail MWI (Message Waiting Indication) and
   device state events between servers.  It has been tested with openais, though
   other implementations of the spec do exist.

For more information on testing distributed device state, see the following doc:
  - doc/distributed_devstate.txt

git-svn-id: http://svn.digium.com/svn/asterisk/trunk@121559 614ede4d-c843-0410-af14-a771ab80d22e
14 files changed:
CHANGES
apps/app_queue.c
configs/ais.conf.sample [new file with mode: 0644]
doc/distributed_devstate.txt [new file with mode: 0644]
main/devicestate.c
main/pbx.c
res/Makefile
res/ais/ais.h [new file with mode: 0644]
res/ais/amf.c [new file with mode: 0644]
res/ais/ckpt.c [new file with mode: 0644]
res/ais/clm.c [new file with mode: 0644]
res/ais/evt.c [new file with mode: 0644]
res/ais/lck.c [new file with mode: 0644]
res/res_ais.c [new file with mode: 0644]