mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 20:04:50 +00:00
app_confbridge: Add the Muted header to ConfbridgeJoin AMI event.
ASTERISK-27651 Change-Id: Idef2ca54d242d1b894efd3fc7b360bc6fd5bdc34
This commit is contained in:
5
CHANGES
5
CHANGES
@@ -74,6 +74,11 @@ Core
|
|||||||
extension and include. These messages are no longer printed by the
|
extension and include. These messages are no longer printed by the
|
||||||
verbose loggers, they are now only logged as debug messages.
|
verbose loggers, they are now only logged as debug messages.
|
||||||
|
|
||||||
|
app_confbridge
|
||||||
|
------------------
|
||||||
|
* Added the Muted header to the ConfbridgeJoin AMI event to indicate the
|
||||||
|
participant's starting mute status.
|
||||||
|
|
||||||
app_followme
|
app_followme
|
||||||
------------------
|
------------------
|
||||||
* Added a new prompt, connecting-prompt, which will be played
|
* Added a new prompt, connecting-prompt, which will be played
|
||||||
|
@@ -530,9 +530,9 @@ static void send_join_event(struct confbridge_user *user, struct confbridge_conf
|
|||||||
{
|
{
|
||||||
struct ast_json *json_object;
|
struct ast_json *json_object;
|
||||||
|
|
||||||
json_object = ast_json_pack("{s: b}",
|
json_object = ast_json_pack("{s: b, s: b}",
|
||||||
"admin", ast_test_flag(&user->u_profile, USER_OPT_ADMIN)
|
"admin", ast_test_flag(&user->u_profile, USER_OPT_ADMIN),
|
||||||
);
|
"muted", user->muted);
|
||||||
if (!json_object) {
|
if (!json_object) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -81,6 +81,13 @@
|
|||||||
<enum name="No"/>
|
<enum name="No"/>
|
||||||
</enumlist>
|
</enumlist>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
<parameter name="Muted">
|
||||||
|
<para>The joining mute status.</para>
|
||||||
|
<enumlist>
|
||||||
|
<enum name="Yes"/>
|
||||||
|
<enum name="No"/>
|
||||||
|
</enumlist>
|
||||||
|
</parameter>
|
||||||
</syntax>
|
</syntax>
|
||||||
<see-also>
|
<see-also>
|
||||||
<ref type="managerEvent">ConfbridgeLeave</ref>
|
<ref type="managerEvent">ConfbridgeLeave</ref>
|
||||||
@@ -252,20 +259,33 @@ static void confbridge_publish_manager_event(
|
|||||||
"%s",
|
"%s",
|
||||||
conference_name,
|
conference_name,
|
||||||
ast_str_buffer(bridge_text),
|
ast_str_buffer(bridge_text),
|
||||||
S_COR(channel_text, ast_str_buffer(channel_text), ""),
|
channel_text ? ast_str_buffer(channel_text) : "",
|
||||||
S_COR(extra_text, ast_str_buffer(extra_text), ""));
|
extra_text ? ast_str_buffer(extra_text) : "");
|
||||||
|
}
|
||||||
|
|
||||||
|
static int get_bool_header(struct ast_str **extra_text, struct stasis_message *message,
|
||||||
|
const char *json_key, const char *ami_header)
|
||||||
|
{
|
||||||
|
const struct ast_bridge_blob *blob = stasis_message_data(message);
|
||||||
|
const struct ast_json *obj;
|
||||||
|
|
||||||
|
obj = ast_json_object_get(blob->blob, json_key);
|
||||||
|
if (!obj) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ast_str_append_event_header(extra_text, ami_header,
|
||||||
|
AST_YESNO(ast_json_is_true(obj)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int get_admin_header(struct ast_str **extra_text, struct stasis_message *message)
|
static int get_admin_header(struct ast_str **extra_text, struct stasis_message *message)
|
||||||
{
|
{
|
||||||
const struct ast_bridge_blob *blob = stasis_message_data(message);
|
return get_bool_header(extra_text, message, "admin", "Admin");
|
||||||
const struct ast_json *admin = ast_json_object_get(blob->blob, "admin");
|
}
|
||||||
if (!admin) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ast_str_append_event_header(extra_text, "Admin",
|
static int get_muted_header(struct ast_str **extra_text, struct stasis_message *message)
|
||||||
S_COR(ast_json_is_true(admin), "Yes", "No"));
|
{
|
||||||
|
return get_bool_header(extra_text, message, "muted", "Muted");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void confbridge_start_cb(void *data, struct stasis_subscription *sub,
|
static void confbridge_start_cb(void *data, struct stasis_subscription *sub,
|
||||||
@@ -296,7 +316,8 @@ static void confbridge_join_cb(void *data, struct stasis_subscription *sub,
|
|||||||
{
|
{
|
||||||
struct ast_str *extra_text = NULL;
|
struct ast_str *extra_text = NULL;
|
||||||
|
|
||||||
if (!get_admin_header(&extra_text, message)) {
|
if (!get_admin_header(&extra_text, message)
|
||||||
|
&& !get_muted_header(&extra_text, message)) {
|
||||||
confbridge_publish_manager_event(message, "ConfbridgeJoin", extra_text);
|
confbridge_publish_manager_event(message, "ConfbridgeJoin", extra_text);
|
||||||
}
|
}
|
||||||
ast_free(extra_text);
|
ast_free(extra_text);
|
||||||
|
Reference in New Issue
Block a user