Create Local channel messages on the Stasis message bus and produce AMI events

This patch does the following:

* It adds a virtual table of callbacks to core_unreal. These callbacks can be
  supplied by concrete implementations of "unreal" channel drivers, which lets
  the unreal channel driver call specific functionality when it performs some
  action. Currently, this is done to notify implementations when an
  optimization operation has begun, and when an optimization operation has
  succeeded.

* It adds Stasis-Core messages for Local channel bridging and Local channel
  optimization. Local channel optimization is now two events: a Begin and an
  End. Some consumers of Stasis-Core may want to know when an operation is
  beginning so that they can 'prepare' their information; others will be more
  concerned about when the operation has completed, so that they can 'fix up'
  information. Stasis-Core allows for both, as does AMI.

Review: https://reviewboard.asterisk.org/r/2552



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393801 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Matthew Jordan
2013-07-08 14:26:40 +00:00
parent 7fdeb52910
commit 30d379851e
7 changed files with 310 additions and 66 deletions

11
CHANGES
View File

@@ -270,6 +270,17 @@ AMI (Asterisk Manager Interface)
* AMI events now contain a SystemName field, if available.
* Local channel optimization is now conveyed in two events:
LocalOptimizationBegin and LocalOptimizationEnd. The Begin event is sent
when the Local channel driver begins attempting to optimize itself out of
the media path; the End event is sent after the channel halves have
successfully optimized themselves out of the media path.
* Local channel information in events is now prefixed with "LocalOne" and
"LocalTwo". This replaces the suffix of "1" and "2" for the two halves of
the Local channel. This affects the LocalBridge, LocalOptimizationBegin,
and LocalOptimizationEnd events.
AGI (Asterisk Gateway Interface)
------------------
* The manager event AGIExec has been split into AGIExecStart and AGIExecEnd.