diff options
author | Timo Teräs <timo.teras@iki.fi> | 2014-09-25 09:46:08 +0300 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2014-09-25 09:46:08 +0300 |
commit | ed2eb0483ad45b7886519a3b8a997b85e12758a5 (patch) | |
tree | 03ef98695bcec8bacfb4bd9e265ab68cbf58edc5 | |
parent | 07e6144b76bad51a8dfcfae1eade5b4571c534c3 (diff) | |
download | aports-ed2eb0483ad45b7886519a3b8a997b85e12758a5.tar.bz2 aports-ed2eb0483ad45b7886519a3b8a997b85e12758a5.tar.xz |
main/asterisk: upgrade to 12.16.0
rebase the conference 'deafen' patch
-rw-r--r-- | main/asterisk/APKBUILD | 17 | ||||
-rw-r--r-- | main/asterisk/ASTERISK-19109.patch | 267 |
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; } |