[Asterisk-code-review] app confbridge: Add the Muted header to ConfbridgeJoin AMI e... (asterisk[master])

Richard Mudgett asteriskteam at digium.com
Thu Feb 1 14:15:22 CST 2018


Richard Mudgett has uploaded this change for review. ( https://gerrit.asterisk.org/8140


Change subject: app_confbridge: Add the Muted header to ConfbridgeJoin AMI event.
......................................................................

app_confbridge: Add the Muted header to ConfbridgeJoin AMI event.

ASTERISK-27651

Change-Id: Idef2ca54d242d1b894efd3fc7b360bc6fd5bdc34
---
M CHANGES
M apps/app_confbridge.c
M apps/confbridge/confbridge_manager.c
3 files changed, 39 insertions(+), 13 deletions(-)



  git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/40/8140/1

diff --git a/CHANGES b/CHANGES
index b9d8032..f747e1e 100644
--- a/CHANGES
+++ b/CHANGES
@@ -74,6 +74,11 @@
    extension and include.  These messages are no longer printed by the
    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
 ------------------
  * Added a new prompt, connecting-prompt, which will be played
diff --git a/apps/app_confbridge.c b/apps/app_confbridge.c
index 7e6f94c..e2b87ca 100644
--- a/apps/app_confbridge.c
+++ b/apps/app_confbridge.c
@@ -530,9 +530,9 @@
 {
 	struct ast_json *json_object;
 
-	json_object = ast_json_pack("{s: b}",
-		"admin", ast_test_flag(&user->u_profile, USER_OPT_ADMIN)
-	);
+	json_object = ast_json_pack("{s: b s: b}",
+		"admin", ast_test_flag(&user->u_profile, USER_OPT_ADMIN),
+		"muted", user->muted);
 	if (!json_object) {
 		return;
 	}
diff --git a/apps/confbridge/confbridge_manager.c b/apps/confbridge/confbridge_manager.c
index e5db648..0f3c7fb 100644
--- a/apps/confbridge/confbridge_manager.c
+++ b/apps/confbridge/confbridge_manager.c
@@ -81,6 +81,13 @@
 						<enum name="No"/>
 					</enumlist>
 				</parameter>
+				<parameter name="Muted">
+					<para>The joining mute status.</para>
+					<enumlist>
+						<enum name="Yes"/>
+						<enum name="No"/>
+					</enumlist>
+				</parameter>
 			</syntax>
 			<see-also>
 				<ref type="managerEvent">ConfbridgeLeave</ref>
@@ -252,20 +259,33 @@
 		"%s",
 		conference_name,
 		ast_str_buffer(bridge_text),
-		S_COR(channel_text, ast_str_buffer(channel_text), ""),
-		S_COR(extra_text, ast_str_buffer(extra_text), ""));
+		channel_text ? ast_str_buffer(channel_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)
 {
-	const struct ast_bridge_blob *blob = stasis_message_data(message);
-	const struct ast_json *admin = ast_json_object_get(blob->blob, "admin");
-	if (!admin) {
-		return -1;
-	}
+	return get_bool_header(extra_text, message, "admin", "Admin");
+}
 
-	return ast_str_append_event_header(extra_text, "Admin",
-		S_COR(ast_json_is_true(admin), "Yes", "No"));
+static int get_muted_header(struct ast_str **extra_text, struct stasis_message *message)
+{
+	return get_bool_header(extra_text, message, "muted", "Muted");
 }
 
 static void confbridge_start_cb(void *data, struct stasis_subscription *sub,
@@ -296,7 +316,8 @@
 {
 	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);
 	}
 	ast_free(extra_text);

-- 
To view, visit https://gerrit.asterisk.org/8140
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Idef2ca54d242d1b894efd3fc7b360bc6fd5bdc34
Gerrit-Change-Number: 8140
Gerrit-PatchSet: 1
Gerrit-Owner: Richard Mudgett <rmudgett at digium.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20180201/10e0732d/attachment.html>


More information about the asterisk-code-review mailing list