mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-22 20:56:39 +00:00
message.c: Add option to suppress the Message channel AMI and ARI events
In order to reduce the amount of AMI and ARI events generated, the global "Message/ast_msg_queue" channel can be set to suppress it's normal channel housekeeping events such as "Newexten", "VarSet", etc. This can greatly reduce load on the manager and ARI applications when the Digium Phone Module for Asterisk is in use. To enable, set "hide_messaging_ami_events" in asterisk.conf to "yes" In Asterisk versions <18, the default is "no" preserving existing behavior. Beginning with Asterisk 18, the option will default to "yes". NOTE: This change does not affect UserEvents or the ARI TextMessageReceived events. * Added the "hide_messaging_ami_events" option to asterisk.conf. * Changed message.c to set the AST_CHAN_TP_INTERNAL property on the "Message/ast_msg_queue" channel if the option is set in asterisk.conf. This suppresses the reporting of the events. Change-Id: Ia2e3516d43f4e0df994fc6598565d6bba2d7018b
This commit is contained in:
@@ -509,6 +509,7 @@ static char *handle_show_settings(struct ast_cli_entry *e, int cmd, struct ast_c
|
||||
ast_cli(a->fd, " Transmit silence during rec: %s\n", ast_test_flag(&ast_options, AST_OPT_FLAG_TRANSMIT_SILENCE) ? "Enabled" : "Disabled");
|
||||
ast_cli(a->fd, " Generic PLC: %s\n", ast_test_flag(&ast_options, AST_OPT_FLAG_GENERIC_PLC) ? "Enabled" : "Disabled");
|
||||
ast_cli(a->fd, " Generic PLC on equal codecs: %s\n", ast_test_flag(&ast_options, AST_OPT_FLAG_GENERIC_PLC_ON_EQUAL_CODECS) ? "Enabled" : "Disabled");
|
||||
ast_cli(a->fd, " Hide Msg Chan AMI events: %s\n", ast_opt_hide_messaging_ami_events ? "Enabled" : "Disabled");
|
||||
ast_cli(a->fd, " Min DTMF duration:: %u\n", option_dtmfminduration);
|
||||
#if !defined(LOW_MEMORY)
|
||||
ast_cli(a->fd, " Cache media frames: %s\n", ast_opt_cache_media_frames ? "Enabled" : "Disabled");
|
||||
|
@@ -283,7 +283,7 @@ static int chan_msg_send_digit_end(struct ast_channel *chan, char digit,
|
||||
* This will not be registered as we never want anything to try
|
||||
* to create Message channels other than internally in this file.
|
||||
*/
|
||||
static const struct ast_channel_tech msg_chan_tech_hack = {
|
||||
static struct ast_channel_tech msg_chan_tech_hack = {
|
||||
.type = "Message",
|
||||
.description = "Internal Text Message Processing",
|
||||
.read = chan_msg_read,
|
||||
@@ -685,6 +685,10 @@ static struct ast_channel *create_msg_q_chan(void)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (ast_opt_hide_messaging_ami_events) {
|
||||
msg_chan_tech_hack.properties |= AST_CHAN_TP_INTERNAL;
|
||||
}
|
||||
|
||||
ast_channel_tech_set(chan, &msg_chan_tech_hack);
|
||||
ast_channel_unlock(chan);
|
||||
ast_channel_unlink(chan);
|
||||
|
@@ -457,6 +457,8 @@ void load_asterisk_conf(void)
|
||||
}
|
||||
} else if (!strcasecmp(v->name, "live_dangerously")) {
|
||||
live_dangerously = ast_true(v->value);
|
||||
} else if (!strcasecmp(v->name, "hide_messaging_ami_events")) {
|
||||
ast_set2_flag(&ast_options, ast_true(v->value), AST_OPT_FLAG_HIDE_MESSAGING_AMI_EVENTS);
|
||||
}
|
||||
}
|
||||
if (!ast_opt_remote) {
|
||||
|
Reference in New Issue
Block a user