[asterisk-dev] [Code Review] 2383: Refactor Dialing to publish Stasis-Core messages

Matt Jordan reviewboard at asterisk.org
Fri Mar 29 17:33:40 CDT 2013


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/2383/
-----------------------------------------------------------

(Updated March 29, 2013, 10:33 p.m.)


Review request for Asterisk Developers and David Lee.


Changes
-------

This patch has been significantly updated:

1. Dial messages on Stasis Core now use an ast_multi_channel_blob payload. A multi-channel blob is what it sounds like - it's an object that can contain any number of ast_channel_snapshots along with its own ast_json blob.
2. The publishing of dial information has been expanded to dial.c in anticipation of the early bridging work. Note that this means there is a small duplication of code between dial.c and app_dial.c, it is anticipated that as app_dial.c is refactored to use dial.c, this code duplication will be cease to exist. (It's useful for now, however, as it let's us build up tests for app_dial)
3. Stasis-Core data structures/messages regarding channels have been refactored into their own separate file stasis_channels.c
4. Unit tests for the construction of common Stasis-Core channel data objects (ast_channel_blob; ast_multi_channel_blob) have been created


Bugs: ASTERISK-21196
    https://issues.asterisk.org/jira/browse/ASTERISK-21196


Repository: Asterisk


Description
-------

As part of the CDR work for Asterisk 12 (see https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+CDR+Specification), we need Dial information published over Stasis-Core. This patch refactors app_dial to publish the necessary events.

The Dial based events are slightly different in Asterisk 12 than in other previous versions:
 * Dial is now two events, DialBegin and DialEnd. This matches the nomenclature of other AMI events. See https://wiki.asterisk.org/wiki/display/AST/AMI+1.4+Specification for more information.
 * Dial events now occur at the beginning of a dial operation and when the status of the dial operation is known. Previously, it occurred on application exit, which occurred after bridging.

Note that other applications will need refactoring as well (such as the Dial Framework, Queue, FollowMe, etc.) - however, in order to limit the scope of the work, I've kept it only to app_dial at this point.


Diffs (updated)
-----

  /trunk/apps/app_dial.c 384376 
  /trunk/apps/app_userevent.c 384376 
  /trunk/include/asterisk/channel.h 384376 
  /trunk/include/asterisk/stasis_channels.h PRE-CREATION 
  /trunk/main/channel.c 384376 
  /trunk/main/channel_internal_api.c 384376 
  /trunk/main/dial.c 384376 
  /trunk/main/features.c 384376 
  /trunk/main/manager_channels.c 384376 
  /trunk/main/pbx.c 384376 
  /trunk/main/stasis_channels.c PRE-CREATION 
  /trunk/pbx/pbx_realtime.c 384376 
  /trunk/tests/test_stasis_channels.c PRE-CREATION 

Diff: https://reviewboard.asterisk.org/r/2383/diff/


Testing
-------


Thanks,

Matt Jordan

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20130329/d74bf578/attachment.htm>


More information about the asterisk-dev mailing list