Filter channels used as internal mechanisms

This adds new flags to the channel tech properties that flag it as
different types of implementation detail used exclusively to provide a
feature. Examples of channels that would have these flags include the
announcement and recording channels used by confbridge which are the
only two marked as such by this patch.

Review: https://reviewboard.asterisk.org/r/2633/
(closes issue ASTERISK-21873)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@394808 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Kinsey Moore
2013-07-19 19:23:39 +00:00
parent 0b83761f9a
commit 5a8f32703c
11 changed files with 90 additions and 11 deletions

View File

@@ -134,6 +134,7 @@ static struct ast_channel_tech announce_tech = {
.send_text = ast_unreal_sendtext,
.queryoption = ast_unreal_queryoption,
.setoption = ast_unreal_setoption,
.properties = AST_CHAN_TP_ANNOUNCER,
};
struct ast_channel_tech *conf_announce_get_tech(void)

View File

@@ -86,6 +86,7 @@ static struct ast_channel_tech record_tech = {
.call = rec_call,
.read = rec_read,
.write = rec_write,
.properties = AST_CHAN_TP_RECORDER,
};
struct ast_channel_tech *conf_record_get_tech(void)

View File

@@ -195,14 +195,17 @@ static void confbridge_publish_manager_event(
{
struct ast_bridge_blob *blob = stasis_message_data(message);
const char *conference_name;
RAII_VAR(struct ast_str *, bridge_text,
ast_manager_build_bridge_state_string(blob->bridge, ""),
ast_free);
RAII_VAR(struct ast_str *, bridge_text, NULL, ast_free);
RAII_VAR(struct ast_str *, channel_text, NULL, ast_free);
ast_assert(blob != NULL);
ast_assert(event != NULL);
bridge_text = ast_manager_build_bridge_state_string(blob->bridge, "");
if (!bridge_text) {
return;
}
conference_name = ast_json_string_get(ast_json_object_get(blob->blob, "conference"));
ast_assert(conference_name != NULL);