summaryrefslogtreecommitdiff
path: root/res
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2007-09-05 20:58:19 +0000
committerRussell Bryant <russell@russellbryant.com>2007-09-05 20:58:19 +0000
commit8bcfddc8ecd9568c26709a6032b435d5e1957b41 (patch)
treea7f23b0e5e3f8d490abe51d42907b7b86adf7c21 /res
parent01c1449d9838a3310914bd7514c2f94478127768 (diff)
Merged revisions 81599 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r81599 | russell | 2007-09-05 15:53:41 -0500 (Wed, 05 Sep 2007) | 11 lines Fix an issue that can occur when you do an attended transfer to parking. If you complete the transfer before the announcement of the parking spot finishes, then the channel being parked will hear the remainder of the announcement. These changes make it so that will not happen anymore. Basically, res_features sets a flag on the channel is playing the announcement to so that the file streaming core knows that it needs to watch out for a channel masquerade, and if it occurs, to abort the announcement. (closes BE-182) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81600 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res')
-rw-r--r--res/res_features.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/res/res_features.c b/res/res_features.c
index f8ff92446..a9c252b7e 100644
--- a/res/res_features.c
+++ b/res/res_features.c
@@ -491,8 +491,12 @@ int ast_park_call(struct ast_channel *chan, struct ast_channel *peer, int timeou
if (!con) /* Still no context? Bad */
ast_log(LOG_ERROR, "Parking context '%s' does not exist and unable to create\n", parking_con);
/* Tell the peer channel the number of the parking space */
- if (peer && pu->parkingnum != -1) /* Only say number if it's a number */
+ if (peer && pu->parkingnum != -1) { /* Only say number if it's a number */
+ /* Make sure we don't start saying digits to the channel being parked */
+ ast_set_flag(peer, AST_FLAG_MASQ_NOSTREAM);
ast_say_digits(peer, pu->parkingnum, "", peer->language);
+ ast_clear_flag(peer, AST_FLAG_MASQ_NOSTREAM);
+ }
if (con) {
if (!ast_add_extension2(con, 1, pu->parkingexten, 1, NULL, NULL, parkedcall, ast_strdup(pu->parkingexten), ast_free, registrar))
notify_metermaids(pu->parkingexten, parking_con, AST_DEVICE_INUSE);