Add multi-channel Stasis messages; refactor Dial AMI events to Stasis

This patch does the following:
 * A new Stasis payload has been defined for multi-channel messages. This
   payload can store multiple ast_channel_snapshot objects along with a single
   JSON blob. The payload object itself is opaque; the snapshots are stored
   in a container keyed by roles. APIs have been provided to query for and
   retrieve the snapshots from the payload object.
 * The Dial AMI events have been refactored onto Stasis. This includes dial
   messages in app_dial, as well as the core dialing framework. The AMI events
   have been modified to send out a DialBegin/DialEnd events, as opposed to
   the subevent type that was previously used.
 * Stasis messages, types, and other objects related to channels have been
   placed in their own file, stasis_channels. Unit tests for some of these
   objects/messages have also been written.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@384910 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Matthew Jordan
2013-04-08 14:26:37 +00:00
parent a2a53cc306
commit b8d4e573f1
17 changed files with 1350 additions and 472 deletions

View File

@@ -3626,9 +3626,7 @@ static int feature_interpret_helper(struct ast_channel *chan, struct ast_channel
ast_rwlock_unlock(&features_lock);
ast_assert(dynamic_features_buf != NULL);
if (!ast_str_strlen(dynamic_features_buf) || feature_detected) {
if (!dynamic_features_buf || !ast_str_strlen(dynamic_features_buf) || feature_detected) {
return res;
}
@@ -3745,7 +3743,6 @@ static int feature_interpret(struct ast_channel *chan, struct ast_channel *peer,
int ast_feature_detect(struct ast_channel *chan, struct ast_flags *features, const char *code, struct ast_call_feature *feature) {
return feature_interpret_helper(chan, NULL, NULL, code, 0, NULL, features, FEATURE_INTERPRET_DETECT, feature);
}