aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2014-09-25 09:46:08 +0300
committerTimo Teräs <timo.teras@iki.fi>2014-09-25 09:46:08 +0300
commited2eb0483ad45b7886519a3b8a997b85e12758a5 (patch)
tree03ef98695bcec8bacfb4bd9e265ab68cbf58edc5
parent07e6144b76bad51a8dfcfae1eade5b4571c534c3 (diff)
downloadaports-ed2eb0483ad45b7886519a3b8a997b85e12758a5.tar.bz2
aports-ed2eb0483ad45b7886519a3b8a997b85e12758a5.tar.xz
main/asterisk: upgrade to 12.16.0
rebase the conference 'deafen' patch
-rw-r--r--main/asterisk/APKBUILD17
-rw-r--r--main/asterisk/ASTERISK-19109.patch267
2 files changed, 150 insertions, 134 deletions
diff --git a/main/asterisk/APKBUILD b/main/asterisk/APKBUILD
index 7b026e6003..aa31af64e6 100644
--- a/main/asterisk/APKBUILD
+++ b/main/asterisk/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Timo Teras <timo.teras@iki.fi>
# Maintainer: Timo Teras <timo.teras@iki.fi>
pkgname=asterisk
-pkgver=12.5.1
+pkgver=12.6.0
pkgrel=0
pkgdesc="Asterisk: A Module Open Source PBX System"
pkgusers="asterisk"
@@ -246,8 +246,7 @@ sound_en() {
chown -R asterisk:asterisk "$subpkgdir"/var/*/asterisk
}
-md5sums="7d39837d7498abebfca9a8b3ec618362 asterisk-12.5.0.tar.gz
-acb5e6c2d1edcc00a7aa0606610491df asterisk-12.5.1-patch.gz
+md5sums="bb5a1dec86f8d9c4ee4108942adb62a6 asterisk-12.6.0.tar.gz
126dd4fba66f4cf9aa94dfd7034e0ec4 asterisk-addon-mp3-r201.patch.gz
a66f192623276530eeb6d722ee35bee9 musl-libcap.patch
b4211313aae31efa8c3c1931ba47dbf9 musl-includes.patch
@@ -255,13 +254,12 @@ b4211313aae31efa8c3c1931ba47dbf9 musl-includes.patch
10b84632764a6f05ec9973c31f5e82fb musl-outofmem-handling.patch
1ca5e8326dc03c963a7ce5455d0f21ba musl-mutex-init.patch
bc6713f5434e07b79d3afdd155461d72 ASTERISK-18995.patch
-8499917c1476953cdc2f5c94c0581775 ASTERISK-19109.patch
+e985bc8e25ed3e4c7a0a608bac58ba80 ASTERISK-19109.patch
676ca42ee1859d8a7bae4345ede5eb89 ASTERISK-20527.patch
74cd25a5638a94ef51e9f4ede2fd28f2 asterisk.initd
ed31d7ba37bcf8b0346dcf8593c395f0 asterisk.confd
3e65172275684373e1a25c8a11224411 asterisk.logrotate"
-sha256sums="8355ccd815f2715ff49bf70c2480b5ea895e0a75250d0f111b1cae5af5acf06f asterisk-12.5.0.tar.gz
-ec68a6b361fb463121b760b6085e149fc7b0e7fcc7814f2450370ff7d1049142 asterisk-12.5.1-patch.gz
+sha256sums="5de33e0f2fc46266097891e80f7d0e9d0371bf5a43ecbd7084bfc6f8fd8f9fe8 asterisk-12.6.0.tar.gz
d32a5a695cee1699011d0e9ad02eb43af612def06f92017627194099edf98e3f asterisk-addon-mp3-r201.patch.gz
ba8334d855191af3fa662931244b6fea4ffc9eec84e40e1a52d6b3c0186d2005 musl-libcap.patch
e3b7128813d0452b152d3af5015da927b07849e7f33de9f80f1d10f65907d268 musl-includes.patch
@@ -269,13 +267,12 @@ c6a5c32646b767f09ebffccc49cac6a4ff9181498499e4453300775e75284b52 musl-glob-comp
235b9c339793c02d1d80ac37d308cf14dc3e86fe8ccbe757e9855b186d9c164b musl-outofmem-handling.patch
a5205ed44b57a72934baf8cde543ddb179f277494181818905110bfdcccfe7d9 musl-mutex-init.patch
7a7140156ae7fc7e833035db1e428db8d90159579cd2678c4b5cc829ded47485 ASTERISK-18995.patch
-8970797d4812a751968c0db83816fe2bc05c8b01dba7f64f21c197807528d234 ASTERISK-19109.patch
+0a9a5afbf23902f48e172cd600ca4466245e1b6ab77e6c785eb586f5eac4d668 ASTERISK-19109.patch
1f822e618554e9962fe4599975bdcc24413e087dbd7ea4ce0305ecb7ea9bef94 ASTERISK-20527.patch
13bcc98f2a78d4dd41e810232979eb83044e9166302bfb5b971315f2a82af36f asterisk.initd
d221148583b57f9c37d7160f2493f0d204ad11f7abb17e3a3534e108ad5452d7 asterisk.confd
77b253b6db71460acf9a51e87ad4c8582027a46db01a4c50fb048bada58c19d1 asterisk.logrotate"
-sha512sums="b94379038f102afec656a6c0097e094bd68c18e3ccd0d88cf541f40fafe1d209c0fb4c4bd0dfcf741c4f6b4021e41e2708ffc9b3b5e17d268c76dd6ea8e8e95a asterisk-12.5.0.tar.gz
-43bddf8a96a19e2af3ec2b0efe9e06ffc5db823175487ef90fce54f313bda3d42f8f57c2c23e25c80d2cd8cdcb074825a23870632f75c54f49d6e96cf1862d6e asterisk-12.5.1-patch.gz
+sha512sums="df340f1d4536598f3b54da55ffe2b8bd10e0ce54c1989970fdb6ff671bda92be33dfaa61dab363532c3333682220d6a588193df63bfd7e223c84494fe4a21103 asterisk-12.6.0.tar.gz
aacef3f4796fb1abd33266998b53909cb4b36e7cc5ad2f7bac68bdc43e9a9072d9a4e2e7e681bddfa31f3d04575eb248afe6ea95da780c67e4829c1e22adfe1b asterisk-addon-mp3-r201.patch.gz
d30d1be03cbc637f1d05e6897efa2e1fae560ac2c48124a9636c5ff390c81b8c07cf9cef6d930e71eb59cb932f234284a0390487ec257e0fa45ec11d294c106c musl-libcap.patch
878b8cddc5af338a07658c388d42a7f9ddf3edcf302ca8b294adcf278b6ceacd463d279cb716b0b6b059f47eb287803bc15a7f36a403c66697f466ff3cd5a6e4 musl-includes.patch
@@ -283,7 +280,7 @@ edf65eba44e8f1f0e78671aba312bcff2090134cf94e89ebb4b6beef7b2d57b24381ae9511cbf9ff
7cbbad2c16d89b0b4ea45257a44c25ea96ca6ecb1f5bf7707656dfa3957cae34d1dca404b3d62baca8b55cea6f9fa39819bef48a1f4dad0124da95d6c80a294e musl-outofmem-handling.patch
f72c2e04de80d3ed9ce841308101383a1655e6da7a3c888ad31fffe63d1280993e08aefcf8e638316d439c68b38ee05362c87503fca1f36343976a01af9d6eb1 musl-mutex-init.patch
42b2385d88e72473fe34c63e1be8cdf7f37688649fe5bf033b5ba17627008b771aec8f0a583e9ad483a20f9e1f7c33922cb42bf5b73adc68aa43fd46c5da1daa ASTERISK-18995.patch
-875dcd976b82b554157c5539df6fae0082b072c81d4db12827d1fc41c00e8dc0118b3bf7359f30e3b49051de27a85394ff30d08e62cde811a7c197b41f1f313a ASTERISK-19109.patch
+6d990d95f4b26a0024893d36e6e6d7b79985b57f29021b83fbc2c84ea08130aa3eee70193fbfe03b6df9681b89e67a7253d55e9e69d55e942e30efe85a661a12 ASTERISK-19109.patch
6edd8e0a1dce326aadf659c8bf8ed34083e8247b6c0f032d097c77df25feb93107375ba505e9076c084fe80676336d6c863e04c3c6808a850e24257fd7a7702d ASTERISK-20527.patch
e29477aa57d88fedc96d13751f68f302d3892c70b5ea5b5a8cc85d0439335fc1a6847648447b443a074c0877718f23295e3752056a108301d340d1e2919465b1 asterisk.initd
ab6b6f08ff43268cbb1abb7ed7d678949991ba495682a644bbaeb017d6adbff0a43297905fd73ae8db1786a28d5b5904f1bc253209a0e388c8a27f26c6ce14ed asterisk.confd
diff --git a/main/asterisk/ASTERISK-19109.patch b/main/asterisk/ASTERISK-19109.patch
index 09491bd8b6..2e812f78e0 100644
--- a/main/asterisk/ASTERISK-19109.patch
+++ b/main/asterisk/ASTERISK-19109.patch
@@ -1,21 +1,21 @@
-diff -ru asterisk-12.2.0.orig/CHANGES asterisk-12.2.0/CHANGES
---- asterisk-12.2.0.orig/CHANGES 2014-04-22 00:02:00.000000000 -0300
-+++ asterisk-12.2.0/CHANGES 2014-05-03 11:54:02.079108226 -0300
-@@ -10,6 +10,10 @@
-
-
+diff -ru asterisk-12.6.0.orig/CHANGES asterisk-12.6.0/CHANGES
+--- asterisk-12.6.0.orig/CHANGES 2014-08-05 23:10:52.000000000 -0300
++++ asterisk-12.6.0/CHANGES 2014-09-25 09:22:51.419497839 -0300
+@@ -8,6 +8,10 @@
+ ===
+ ==============================================================================
+
+ * Added support for deaf participants with CLI commands, manager actions
+ and ConfBridge DTMF actions to toggle the deaf state.
+
------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 12.1.0 to Asterisk 12.2.0 ------------
+ --- Functionality changes from Asterisk 12.4.0 to Asterisk 12.5.0 ------------
------------------------------------------------------------------------------
-diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_confbridge.c
---- asterisk-12.2.0.orig/apps/app_confbridge.c 2014-03-21 00:54:59.000000000 -0200
-+++ asterisk-12.2.0/apps/app_confbridge.c 2014-05-03 11:53:14.806030993 -0300
-@@ -215,6 +215,30 @@
+diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_confbridge.c
+--- asterisk-12.6.0.orig/apps/app_confbridge.c 2014-08-30 20:28:04.000000000 -0300
++++ asterisk-12.6.0/apps/app_confbridge.c 2014-09-25 09:38:27.299505944 -0300
+@@ -219,6 +219,30 @@
<description>
</description>
</manager>
@@ -46,7 +46,7 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
<manager name="ConfbridgeKick" language="en_US">
<synopsis>
Kick a Confbridge user.
-@@ -311,6 +335,13 @@
+@@ -318,6 +342,13 @@
CONF_RECORD_STOP,
};
@@ -60,7 +60,7 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
/*! \brief Container to hold all conference bridges in progress */
struct ao2_container *conference_bridges;
-@@ -382,6 +413,10 @@
+@@ -389,6 +420,10 @@
return S_OR(custom_sounds->muted, "conf-muted");
case CONF_SOUND_UNMUTED:
return S_OR(custom_sounds->unmuted, "conf-unmuted");
@@ -71,8 +71,8 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
case CONF_SOUND_ONLY_ONE:
return S_OR(custom_sounds->onlyone, "conf-onlyone");
case CONF_SOUND_THERE_ARE:
-@@ -495,6 +530,16 @@
- send_conf_stasis(conference, chan, confbridge_unmute_type(), NULL, 1);
+@@ -539,6 +574,16 @@
+ ast_json_unref(json_object);
}
+static void send_deafen_event(struct ast_channel *chan, struct confbridge_conference *conference)
@@ -88,7 +88,7 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
static void set_rec_filename(struct confbridge_conference *conference, struct ast_str **filename, int is_new)
{
char *rec_file = conference->b_profile.rec_file;
-@@ -1657,6 +1702,11 @@
+@@ -1697,6 +1742,11 @@
/* Set user level mute request. */
user.muted = 1;
}
@@ -100,7 +100,7 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
/* Look for a conference bridge matching the provided name */
if (!(conference = join_conference_bridge(args.conf_name, &user))) {
-@@ -1846,6 +1896,30 @@
+@@ -1885,6 +1935,30 @@
return 0;
}
@@ -131,7 +131,7 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
static int action_playback(struct ast_bridge_channel *bridge_channel, const char *playback_file)
{
char *file_copy = ast_strdupa(playback_file);
-@@ -2034,6 +2108,11 @@
+@@ -2071,6 +2145,11 @@
case MENU_ACTION_PARTICIPANT_COUNT:
announce_user_count(conference, user);
break;
@@ -143,88 +143,107 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
case MENU_ACTION_PLAYBACK:
if (!stop_prompts) {
res |= action_playback(bridge_channel, menu_action->data.playback_file);
-@@ -2380,14 +2459,29 @@
- return res;
+@@ -2446,38 +2525,65 @@
}
+ /* \internal
+- * \brief Mute/unmute a single user.
++ * \brief Send feature change test event.
+ */
+-static void generic_mute_unmute_user(struct confbridge_conference *conference, struct confbridge_user *user, int mute)
+static void test_suite_feature_action_event_notify(
+ struct confbridge_conference *conference,
+ struct confbridge_user *user,
+ const char *state, const char *verb)
-+{
+ {
+- /* Set user level mute request. */
+- user->muted = mute ? 1 : 0;
+-
+- conf_update_user_mute(user);
+- ast_test_suite_event_notify("CONF_MUTE",
+ ast_test_suite_event_notify(state,
-+ "Message: participant %s %s\r\n"
-+ "Conference: %s\r\n"
-+ "Channel: %s",
-+ ast_channel_name(user->chan),
+ "Message: participant %s %s\r\n"
+ "Conference: %s\r\n"
+ "Channel: %s",
+ ast_channel_name(user->chan),
+- mute ? "muted" : "unmuted",
+ verb,
-+ conference->b_profile.name,
-+ ast_channel_name(user->chan));
+ conference->b_profile.name,
+ ast_channel_name(user->chan));
+- if (mute) {
+- send_mute_event(user, conference);
+- } else {
+- send_unmute_event(user, conference);
+}
+
++/* \internal
++ * \brief Change a feature for one conference user.
++ */
++static void generic_feature_action_helper_user(
++ struct confbridge_conference *conference, struct confbridge_user *user,
++ enum confbridge_feature_action action)
++{
++ switch (action) {
++ case CONFBRIDGE_FEATURE_DEAFEN:
++ user->features.deaf = 1;
++ test_suite_feature_action_event_notify(conference, user, "CONF_DEAF", "deafened");
++ send_deafen_event(user->chan, conference);
++ break;
++ case CONFBRIDGE_FEATURE_UNDEAFEN:
++ user->features.deaf = 0;
++ test_suite_feature_action_event_notify(conference, user, "CONF_DEAF", "undeafened");
++ send_undeafen_event(user->chan, conference);
++ break;
++ case CONFBRIDGE_FEATURE_MUTE:
++ user->muted = 1;
++ conf_update_user_mute(user);
++ test_suite_feature_action_event_notify(conference, user, "CONF_MUTE", "muted");
++ send_mute_event(user->chan, conference);
++ break;
++ case CONFBRIDGE_FEATURE_UNMUTE:
++ default:
++ user->muted = 0;
++ conf_update_user_mute(user);
++ test_suite_feature_action_event_notify(conference, user, "CONF_MUTE", "unmuted");
++ send_unmute_event(user->chan, conference);
++ break;
+ }
+ }
+
/* \internal
- * \brief finds a conference user by channel name and mutes/unmutes them.
+- *
+ * \brief finds a conference user by channel name and changes feature bits on it.
- *
* \retval 0 success
* \retval -1 conference not found
* \retval -2 user not found
*/
--static int generic_mute_unmute_helper(int mute, const char *conference_name, const char *chan_name)
-+static int generic_feature_action_helper(enum confbridge_feature_action action, const char *conference_name, const char *chan_name)
+-static int generic_mute_unmute_helper(int mute, const char *conference_name,
+- const char *chan_name)
++static int generic_feature_action_helper(enum confbridge_feature_action action,
++ const char *conference_name, const char *chan_name)
{
- struct confbridge_conference *conference;
+ RAII_VAR(struct confbridge_conference *, conference, NULL, ao2_cleanup);
struct confbridge_user *user;
-@@ -2404,25 +2498,33 @@
- }
- }
- if (user) {
-- /* Set user level mute request. */
-- user->muted = mute ? 1 : 0;
--
-- conf_update_user_mute(user);
-- ast_test_suite_event_notify("CONF_MUTE",
-- "Message: participant %s %s\r\n"
-- "Conference: %s\r\n"
-- "Channel: %s",
-- ast_channel_name(user->chan),
-- mute ? "muted" : "unmuted",
-- conference->b_profile.name,
-- ast_channel_name(user->chan));
-- if (mute) {
-+ switch (action) {
-+ case CONFBRIDGE_FEATURE_DEAFEN:
-+ user->features.deaf = 1;
-+ test_suite_feature_action_event_notify(conference, user, "CONF_DEAF", "deafened");
-+ send_deafen_event(user->chan, conference);
-+ break;
-+ case CONFBRIDGE_FEATURE_UNDEAFEN:
-+ user->features.deaf = 0;
-+ test_suite_feature_action_event_notify(conference, user, "CONF_DEAF", "undeafened");
-+ send_undeafen_event(user->chan, conference);
-+ break;
-+ case CONFBRIDGE_FEATURE_MUTE:
-+ user->muted = 1;
-+ conf_update_user_mute(user);
-+ test_suite_feature_action_event_notify(conference, user, "CONF_MUTE", "muted");
- send_mute_event(user->chan, conference);
-- } else {
-+ break;
-+ case CONFBRIDGE_FEATURE_UNMUTE:
-+ default:
-+ user->muted = 0;
-+ conf_update_user_mute(user);
-+ test_suite_feature_action_event_notify(conference, user, "CONF_MUTE", "unmuted");
- send_unmute_event(user->chan, conference);
-+ break;
- }
- } else {
-- res = -2;;
-+ res = -2;
- }
- ao2_unlock(conference);
- ao2_ref(conference, -1);
-@@ -2430,9 +2532,10 @@
+@@ -2497,7 +2603,7 @@
+ strlen(chan_name));
+ if (match || all
+ || (participants && !ast_test_flag(&user->u_profile, USER_OPT_ADMIN))) {
+- generic_mute_unmute_user(conference, user, mute);
++ generic_feature_action_helper_user(conference, user, action);
+ res = 0;
+ if (match) {
+ return res;
+@@ -2510,7 +2616,7 @@
+ strlen(chan_name));
+ if (match || all
+ || (participants && !ast_test_flag(&user->u_profile, USER_OPT_ADMIN))) {
+- generic_mute_unmute_user(conference, user, mute);
++ generic_feature_action_helper_user(conference, user, action);
+ res = 0;
+ if (match) {
+ return res;
+@@ -2522,9 +2628,10 @@
return res;
}
@@ -237,8 +256,8 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
if (res == -1) {
ast_cli(a->fd, "No conference bridge named '%s' found!\n", a->argv[2]);
-@@ -2441,7 +2544,24 @@
- ast_cli(a->fd, "No channel named '%s' found in conference %s\n", a->argv[3], a->argv[2]);
+@@ -2537,7 +2644,24 @@
+ }
return -1;
}
- ast_cli(a->fd, "%s %s from confbridge %s\n", mute ? "Muting" : "Unmuting", a->argv[3], a->argv[2]);
@@ -263,7 +282,7 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
return 0;
}
-@@ -2470,7 +2590,7 @@
+@@ -2567,7 +2691,7 @@
return CLI_SHOWUSAGE;
}
@@ -272,7 +291,7 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
return CLI_SUCCESS;
}
-@@ -2500,7 +2620,53 @@
+@@ -2598,7 +2722,53 @@
return CLI_SHOWUSAGE;
}
@@ -327,16 +346,16 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
return CLI_SUCCESS;
}
-@@ -2655,6 +2821,8 @@
+@@ -2753,6 +2923,8 @@
AST_CLI_DEFINE(handle_cli_confbridge_kick, "Kick participants out of conference bridges."),
- AST_CLI_DEFINE(handle_cli_confbridge_mute, "Mute a participant."),
- AST_CLI_DEFINE(handle_cli_confbridge_unmute, "Unmute a participant."),
+ AST_CLI_DEFINE(handle_cli_confbridge_mute, "Mute participants."),
+ AST_CLI_DEFINE(handle_cli_confbridge_unmute, "Unmute participants."),
+ AST_CLI_DEFINE(handle_cli_confbridge_deafen, "Deafen a participant."),
+ AST_CLI_DEFINE(handle_cli_confbridge_undeafen, "Undeafen a participant."),
AST_CLI_DEFINE(handle_cli_confbridge_lock, "Lock a conference."),
AST_CLI_DEFINE(handle_cli_confbridge_unlock, "Unlock a conference."),
AST_CLI_DEFINE(handle_cli_confbridge_start_record, "Start recording a conference"),
-@@ -2805,10 +2973,11 @@
+@@ -2905,10 +3077,11 @@
return 0;
}
@@ -349,7 +368,7 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
int res = 0;
if (ast_strlen_zero(conference_name)) {
-@@ -2824,7 +2993,7 @@
+@@ -2924,7 +3097,7 @@
return 0;
}
@@ -358,7 +377,7 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
if (res == -1) {
astman_send_error(s, m, "No Conference by that name found.");
-@@ -2834,17 +3003,41 @@
+@@ -2934,17 +3107,41 @@
return 0;
}
@@ -403,7 +422,7 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
}
static int action_lock_unlock_helper(struct mansession *s, const struct message *m, int lock)
-@@ -3197,6 +3390,8 @@
+@@ -3297,6 +3494,8 @@
ast_manager_unregister("ConfbridgeListRooms");
ast_manager_unregister("ConfbridgeMute");
ast_manager_unregister("ConfbridgeUnmute");
@@ -412,7 +431,7 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
ast_manager_unregister("ConfbridgeKick");
ast_manager_unregister("ConfbridgeUnlock");
ast_manager_unregister("ConfbridgeLock");
-@@ -3266,6 +3461,8 @@
+@@ -3366,6 +3565,8 @@
res |= ast_manager_register_xml("ConfbridgeListRooms", EVENT_FLAG_REPORTING, action_confbridgelistrooms);
res |= ast_manager_register_xml("ConfbridgeMute", EVENT_FLAG_CALL, action_confbridgemute);
res |= ast_manager_register_xml("ConfbridgeUnmute", EVENT_FLAG_CALL, action_confbridgeunmute);
@@ -421,9 +440,9 @@ diff -ru asterisk-12.2.0.orig/apps/app_confbridge.c asterisk-12.2.0/apps/app_con
res |= ast_manager_register_xml("ConfbridgeKick", EVENT_FLAG_CALL, action_confbridgekick);
res |= ast_manager_register_xml("ConfbridgeUnlock", EVENT_FLAG_CALL, action_confbridgeunlock);
res |= ast_manager_register_xml("ConfbridgeLock", EVENT_FLAG_CALL, action_confbridgelock);
-diff -ru asterisk-12.2.0.orig/apps/confbridge/conf_config_parser.c asterisk-12.2.0/apps/confbridge/conf_config_parser.c
---- asterisk-12.2.0.orig/apps/confbridge/conf_config_parser.c 2014-03-27 21:15:35.000000000 -0200
-+++ asterisk-12.2.0/apps/confbridge/conf_config_parser.c 2014-05-03 11:51:44.939851173 -0300
+diff -ru asterisk-12.6.0.orig/apps/confbridge/conf_config_parser.c asterisk-12.6.0/apps/confbridge/conf_config_parser.c
+--- asterisk-12.6.0.orig/apps/confbridge/conf_config_parser.c 2014-05-10 01:39:22.000000000 -0300
++++ asterisk-12.6.0/apps/confbridge/conf_config_parser.c 2014-09-25 09:22:51.419497839 -0300
@@ -862,6 +862,10 @@
ast_string_field_set(sounds, muted, sound_file);
} else if (!strcasecmp(sound_name, "sound_unmuted")) {
@@ -480,10 +499,10 @@ diff -ru asterisk-12.2.0.orig/apps/confbridge/conf_config_parser.c asterisk-12.2
aco_option_register(&cfg_info, "music_on_hold_when_empty", ACO_EXACT, user_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct user_profile, flags), USER_OPT_MUSICONHOLD);
aco_option_register(&cfg_info, "quiet", ACO_EXACT, user_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct user_profile, flags), USER_OPT_QUIET);
aco_option_register_custom(&cfg_info, "announce_user_count_all", ACO_EXACT, user_types, "no", announce_user_count_all_handler, 0);
-diff -ru asterisk-12.2.0.orig/apps/confbridge/confbridge_manager.c asterisk-12.2.0/apps/confbridge/confbridge_manager.c
---- asterisk-12.2.0.orig/apps/confbridge/confbridge_manager.c 2013-09-30 21:48:57.000000000 -0300
-+++ asterisk-12.2.0/apps/confbridge/confbridge_manager.c 2014-05-03 11:51:44.939851173 -0300
-@@ -161,6 +161,38 @@
+diff -ru asterisk-12.6.0.orig/apps/confbridge/confbridge_manager.c asterisk-12.6.0/apps/confbridge/confbridge_manager.c
+--- asterisk-12.6.0.orig/apps/confbridge/confbridge_manager.c 2014-08-27 20:21:57.000000000 -0300
++++ asterisk-12.6.0/apps/confbridge/confbridge_manager.c 2014-09-25 09:22:51.419497839 -0300
+@@ -189,6 +189,38 @@
</see-also>
</managerEventInstance>
</managerEvent>
@@ -522,8 +541,8 @@ diff -ru asterisk-12.2.0.orig/apps/confbridge/confbridge_manager.c asterisk-12.2
<managerEvent language="en_US" name="ConfbridgeTalking">
<managerEventInstance class="EVENT_FLAG_CALL">
<synopsis>Raised when a confbridge participant unmutes.</synopsis>
-@@ -271,6 +303,18 @@
- confbridge_publish_manager_event(message, "ConfbridgeUnmute", NULL);
+@@ -338,6 +370,18 @@
+ ast_free(extra_text);
}
+static void confbridge_deafen_cb(void *data, struct stasis_subscription *sub,
@@ -541,7 +560,7 @@ diff -ru asterisk-12.2.0.orig/apps/confbridge/confbridge_manager.c asterisk-12.2
static void confbridge_talking_cb(void *data, struct stasis_subscription *sub,
struct stasis_message *message)
{
-@@ -297,6 +341,8 @@
+@@ -366,6 +410,8 @@
STASIS_MESSAGE_TYPE_DEFN(confbridge_stop_record_type);
STASIS_MESSAGE_TYPE_DEFN(confbridge_mute_type);
STASIS_MESSAGE_TYPE_DEFN(confbridge_unmute_type);
@@ -550,7 +569,7 @@ diff -ru asterisk-12.2.0.orig/apps/confbridge/confbridge_manager.c asterisk-12.2
STASIS_MESSAGE_TYPE_DEFN(confbridge_talking_type);
void manager_confbridge_shutdown(void) {
-@@ -308,6 +354,8 @@
+@@ -377,6 +423,8 @@
STASIS_MESSAGE_TYPE_CLEANUP(confbridge_stop_record_type);
STASIS_MESSAGE_TYPE_CLEANUP(confbridge_mute_type);
STASIS_MESSAGE_TYPE_CLEANUP(confbridge_unmute_type);
@@ -559,7 +578,7 @@ diff -ru asterisk-12.2.0.orig/apps/confbridge/confbridge_manager.c asterisk-12.2
STASIS_MESSAGE_TYPE_CLEANUP(confbridge_talking_type);
if (bridge_state_router) {
-@@ -331,6 +379,8 @@
+@@ -400,6 +448,8 @@
STASIS_MESSAGE_TYPE_INIT(confbridge_stop_record_type);
STASIS_MESSAGE_TYPE_INIT(confbridge_mute_type);
STASIS_MESSAGE_TYPE_INIT(confbridge_unmute_type);
@@ -568,7 +587,7 @@ diff -ru asterisk-12.2.0.orig/apps/confbridge/confbridge_manager.c asterisk-12.2
STASIS_MESSAGE_TYPE_INIT(confbridge_talking_type);
bridge_state_router = stasis_message_router_create(
-@@ -397,6 +447,20 @@
+@@ -466,6 +516,20 @@
return -1;
}
if (stasis_message_router_add(bridge_state_router,
@@ -589,7 +608,7 @@ diff -ru asterisk-12.2.0.orig/apps/confbridge/confbridge_manager.c asterisk-12.2
confbridge_talking_type(),
confbridge_talking_cb,
NULL)) {
-@@ -467,6 +531,20 @@
+@@ -536,6 +600,20 @@
NULL)) {
manager_confbridge_shutdown();
return -1;
@@ -610,9 +629,9 @@ diff -ru asterisk-12.2.0.orig/apps/confbridge/confbridge_manager.c asterisk-12.2
}
if (stasis_message_router_add(channel_state_router,
confbridge_talking_type(),
-diff -ru asterisk-12.2.0.orig/apps/confbridge/include/confbridge.h asterisk-12.2.0/apps/confbridge/include/confbridge.h
---- asterisk-12.2.0.orig/apps/confbridge/include/confbridge.h 2014-02-10 17:54:45.000000000 -0200
-+++ asterisk-12.2.0/apps/confbridge/include/confbridge.h 2014-05-03 11:51:44.939851173 -0300
+diff -ru asterisk-12.6.0.orig/apps/confbridge/include/confbridge.h asterisk-12.6.0/apps/confbridge/include/confbridge.h
+--- asterisk-12.6.0.orig/apps/confbridge/include/confbridge.h 2014-06-04 10:23:58.000000000 -0300
++++ asterisk-12.6.0/apps/confbridge/include/confbridge.h 2014-09-25 09:22:51.419497839 -0300
@@ -58,6 +58,7 @@
USER_OPT_DTMF_PASS = (1 << 13), /*!< Sets if dtmf should be passed into the conference or not */
USER_OPT_ANNOUNCEUSERCOUNTALL = (1 << 14), /*!< Sets if the number of users should be announced to everyone. */
@@ -656,9 +675,9 @@ diff -ru asterisk-12.2.0.orig/apps/confbridge/include/confbridge.h asterisk-12.2
/*! \brief Looks to see if sound file is stored in bridge profile sounds, if not
* default sound is provided.*/
-diff -ru asterisk-12.2.0.orig/bridges/bridge_softmix.c asterisk-12.2.0/bridges/bridge_softmix.c
---- asterisk-12.2.0.orig/bridges/bridge_softmix.c 2014-03-17 18:52:12.000000000 -0200
-+++ asterisk-12.2.0/bridges/bridge_softmix.c 2014-05-03 11:51:44.943184488 -0300
+diff -ru asterisk-12.6.0.orig/bridges/bridge_softmix.c asterisk-12.6.0/bridges/bridge_softmix.c
+--- asterisk-12.6.0.orig/bridges/bridge_softmix.c 2014-05-10 01:39:22.000000000 -0300
++++ asterisk-12.6.0/bridges/bridge_softmix.c 2014-09-25 09:22:51.419497839 -0300
@@ -926,16 +926,23 @@
ast_mutex_lock(&sc->lock);
@@ -692,9 +711,9 @@ diff -ru asterisk-12.2.0.orig/bridges/bridge_softmix.c asterisk-12.2.0/bridges/b
ast_mutex_unlock(&sc->lock);
-diff -ru asterisk-12.2.0.orig/configs/confbridge.conf.sample asterisk-12.2.0/configs/confbridge.conf.sample
---- asterisk-12.2.0.orig/configs/confbridge.conf.sample 2014-02-10 17:54:45.000000000 -0200
-+++ asterisk-12.2.0/configs/confbridge.conf.sample 2014-05-03 11:51:44.943184488 -0300
+diff -ru asterisk-12.6.0.orig/configs/confbridge.conf.sample asterisk-12.6.0/configs/confbridge.conf.sample
+--- asterisk-12.6.0.orig/configs/confbridge.conf.sample 2014-02-10 17:54:45.000000000 -0200
++++ asterisk-12.6.0/configs/confbridge.conf.sample 2014-09-25 09:22:51.419497839 -0300
@@ -20,6 +20,7 @@
;admin=yes ; Sets if the user is an admin or not. Off by default.
;marked=yes ; Sets if this is a marked user or not. Off by default.
@@ -721,10 +740,10 @@ diff -ru asterisk-12.2.0.orig/configs/confbridge.conf.sample asterisk-12.2.0/con
; no_op ; This action does nothing (No Operation). Its only real purpose exists for
; being able to reserve a sequence in the config as a menu exit sequence.
-diff -ru asterisk-12.2.0.orig/include/asterisk/bridge_features.h asterisk-12.2.0/include/asterisk/bridge_features.h
---- asterisk-12.2.0.orig/include/asterisk/bridge_features.h 2013-08-21 18:51:19.000000000 -0300
-+++ asterisk-12.2.0/include/asterisk/bridge_features.h 2014-05-03 11:51:44.943184488 -0300
-@@ -253,6 +253,8 @@
+diff -ru asterisk-12.6.0.orig/include/asterisk/bridge_features.h asterisk-12.6.0/include/asterisk/bridge_features.h
+--- asterisk-12.6.0.orig/include/asterisk/bridge_features.h 2014-08-07 18:19:53.000000000 -0300
++++ asterisk-12.6.0/include/asterisk/bridge_features.h 2014-09-25 09:22:51.419497839 -0300
+@@ -273,6 +273,8 @@
unsigned int usable:1;
/*! TRUE if the channel/bridge is muted. */
unsigned int mute:1;
@@ -733,10 +752,10 @@ diff -ru asterisk-12.2.0.orig/include/asterisk/bridge_features.h asterisk-12.2.0
/*! TRUE if DTMF should be passed into the bridge tech. */
unsigned int dtmf_passthrough:1;
};
-diff -ru asterisk-12.2.0.orig/main/bridge_channel.c asterisk-12.2.0/main/bridge_channel.c
---- asterisk-12.2.0.orig/main/bridge_channel.c 2014-03-17 18:52:12.000000000 -0200
-+++ asterisk-12.2.0/main/bridge_channel.c 2014-05-03 11:51:44.943184488 -0300
-@@ -756,7 +756,21 @@
+diff -ru asterisk-12.6.0.orig/main/bridge_channel.c asterisk-12.6.0/main/bridge_channel.c
+--- asterisk-12.6.0.orig/main/bridge_channel.c 2014-08-13 18:21:07.000000000 -0300
++++ asterisk-12.6.0/main/bridge_channel.c 2014-09-25 09:22:51.422831171 -0300
+@@ -903,7 +903,21 @@
return 0;
}