From 6392e452f2cd70d85c06ce52c9b93e29ff392f16 Mon Sep 17 00:00:00 2001
From: Alexei Gradinari <alex2grad@gmail.com>
Date: Fri, 7 Dec 2018 15:22:29 -0500
Subject: [PATCH] confbridge: announce to the marked users when they join an
 empty conference

Currently the file sound_only_person is not played when a marked
user (with announce_only_user=yes) joins an empty conference.

This patch fixes it.

ASTERISK-28201 #close

Change-Id: I85b67687e6b220939c3af8091d83a70a7b174cf4
---
 apps/app_confbridge.c                 | 2 +-
 apps/confbridge/conf_state_empty.c    | 3 ++-
 apps/confbridge/conf_state_inactive.c | 2 +-
 apps/confbridge/include/confbridge.h  | 8 +++-----
 4 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/apps/app_confbridge.c b/apps/app_confbridge.c
index d07c1568b8..c44375bf89 100644
--- a/apps/app_confbridge.c
+++ b/apps/app_confbridge.c
@@ -1343,7 +1343,7 @@ int conf_handle_inactive_waitmarked(struct confbridge_user *user)
 	return 0;
 }
 
-int conf_handle_only_unmarked(struct confbridge_user *user)
+int conf_handle_only_person(struct confbridge_user *user)
 {
 	/* If audio prompts have not been quieted or this prompt quieted play it on out */
 	if (!ast_test_flag(&user->u_profile, USER_OPT_QUIET | USER_OPT_NOONLYPERSON)) {
diff --git a/apps/confbridge/conf_state_empty.c b/apps/confbridge/conf_state_empty.c
index 285f22abbe..d2f4c8d109 100644
--- a/apps/confbridge/conf_state_empty.c
+++ b/apps/confbridge/conf_state_empty.c
@@ -56,7 +56,7 @@ static void join_unmarked(struct confbridge_user *user)
 {
 	conf_add_user_active(user->conference, user);
 	conf_handle_first_join(user->conference);
-	conf_add_post_join_action(user, conf_handle_only_unmarked);
+	conf_add_post_join_action(user, conf_handle_only_person);
 
 	conf_change_state(user, CONF_STATE_SINGLE);
 }
@@ -73,6 +73,7 @@ static void join_marked(struct confbridge_user *user)
 {
 	conf_add_user_marked(user->conference, user);
 	conf_handle_first_join(user->conference);
+	conf_add_post_join_action(user, conf_handle_only_person);
 
 	conf_change_state(user, CONF_STATE_SINGLE_MARKED);
 }
diff --git a/apps/confbridge/conf_state_inactive.c b/apps/confbridge/conf_state_inactive.c
index bc41e611a9..b1a4a2ee2a 100644
--- a/apps/confbridge/conf_state_inactive.c
+++ b/apps/confbridge/conf_state_inactive.c
@@ -51,7 +51,7 @@ struct confbridge_state *CONF_STATE_INACTIVE = &STATE_INACTIVE;
 static void join_unmarked(struct confbridge_user *user)
 {
 	conf_add_user_active(user->conference, user);
-	conf_add_post_join_action(user, conf_handle_only_unmarked);
+	conf_add_post_join_action(user, conf_handle_only_person);
 
 	conf_change_state(user, CONF_STATE_SINGLE);
 }
diff --git a/apps/confbridge/include/confbridge.h b/apps/confbridge/include/confbridge.h
index a1f9f4a087..f87a57bed9 100644
--- a/apps/confbridge/include/confbridge.h
+++ b/apps/confbridge/include/confbridge.h
@@ -472,13 +472,11 @@ void conf_handle_first_join(struct confbridge_conference *conference);
  */
 int conf_handle_inactive_waitmarked(struct confbridge_user *user);
 
-/*! \brief Handle actions whenever an unmarked user joins an inactive conference
- * \note These actions seem like they could apply just as well to a marked user
- * and possibly be made to happen any time transitioning to a single state.
+/*! \brief Handle actions whenever an user joins an empty conference
  *
- * \param user The unmarked user
+ * \param user The user
  */
-int conf_handle_only_unmarked(struct confbridge_user *user);
+int conf_handle_only_person(struct confbridge_user *user);
 
 /*! \brief Handle when a conference moves to having more than one active participant
  * \param conference The conference bridge with more than one active participant
-- 
GitLab