[asterisk-commits] rmudgett: trunk r302732 - in /trunk: ./ main/features.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Jan 19 15:35:33 CST 2011
Author: rmudgett
Date: Wed Jan 19 15:35:28 2011
New Revision: 302732
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=302732
Log:
Merged revisions 302713 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8
................
r302713 | rmudgett | 2011-01-19 15:29:22 -0600 (Wed, 19 Jan 2011) | 29 lines
Merged revisions 302693 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r302693 | rmudgett | 2011-01-19 15:25:41 -0600 (Wed, 19 Jan 2011) | 22 lines
Merged revisions 302671 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r302671 | rmudgett | 2011-01-19 15:21:56 -0600 (Wed, 19 Jan 2011) | 15 lines
DTMF transfer plays the wrong sounds for wrong number or other call failure.
* Set the default for features.conf.sample xferfailsound option to "beeperr"
as documented instead of "pbx-invalid" and corrected the use of it in DTMF
blind transfer (#1).
* Improved DTMF blind transfer handling of wrong numbers.
Most of the concerns in this issue were taken care of by the patch for
issue 17999: Issues with DTMF triggered attended transfers.
(closes issue #18379)
Reported by: gincantalupo
Tested by: rmudgett
........
................
................
Modified:
trunk/ (props changed)
trunk/main/features.c
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.
Modified: trunk/main/features.c
URL: http://svnview.digium.com/svn/asterisk/trunk/main/features.c?view=diff&rev=302732&r1=302731&r2=302732
==============================================================================
--- trunk/main/features.c (original)
+++ trunk/main/features.c Wed Jan 19 15:35:28 2011
@@ -1872,9 +1872,21 @@
ast_stopstream(transferer);
res = ast_app_dtget(transferer, transferer_real_context, xferto, sizeof(xferto), 100, transferdigittimeout);
- if (res < 0) { /* hangup, would be 0 for invalid and 1 for valid */
+ if (res < 0) { /* hangup or error, (would be 0 for invalid and 1 for valid) */
finishup(transferee);
- return res;
+ return -1;
+ }
+ if (res == 0) {
+ if (xferto[0]) {
+ ast_log(LOG_WARNING, "Extension '%s' does not exist in context '%s'\n",
+ xferto, transferer_real_context);
+ } else {
+ /* Does anyone care about this case? */
+ ast_log(LOG_WARNING, "No digits dialed.\n");
+ }
+ ast_stream_and_wait(transferer, "pbx-invalid", "");
+ finishup(transferee);
+ return AST_FEATURE_RETURN_SUCCESS;
}
found_lot = ao2_callback(parkinglots, 0, find_parkinglot_by_exten_cb, &xferto);
@@ -1883,9 +1895,8 @@
.parkinglot = found_lot,
};
res = finishup(transferee);
- if (res)
- res = -1;
- else if (!(parkstatus = masq_park_call_announce(transferee, transferer, &args))) { /* success */
+ if (res) {
+ } else if (!(parkstatus = masq_park_call_announce(transferee, transferer, &args))) { /* success */
/* We return non-zero, but tell the PBX not to hang the channel when
the thread dies -- We have to be careful now though. We are responsible for
hanging up the channel, else it will never be hung up! */
@@ -1894,9 +1905,8 @@
} else {
ast_log(LOG_WARNING, "Unable to park call %s, parkstatus = %d\n", transferee->name, parkstatus);
}
- /*! \todo XXX Maybe we should have another message here instead of invalid extension XXX */
- } else if (ast_exists_extension(transferee, transferer_real_context, xferto, 1,
- S_COR(transferer->caller.id.number.valid, transferer->caller.id.number.str, NULL))) {
+ ast_autoservice_start(transferee);
+ } else {
ast_cel_report_event(transferer, AST_CEL_BLINDTRANSFER, NULL, xferto, transferee);
pbx_builtin_setvar_helper(transferer, "BLINDTRANSFER", transferee->name);
pbx_builtin_setvar_helper(transferee, "BLINDTRANSFER", transferer->name);
@@ -1937,10 +1947,9 @@
}
check_goto_on_transfer(transferer);
return res;
- } else {
- ast_verb(3, "Unable to find extension '%s' in context '%s'\n", xferto, transferer_real_context);
- }
- if (parkstatus != AST_FEATURE_RETURN_PARKFAILED && ast_stream_and_wait(transferer, xferfailsound, AST_DIGIT_ANY) < 0) { /* Play 'extension does not exist' */
+ }
+ if (parkstatus != AST_FEATURE_RETURN_PARKFAILED
+ && ast_stream_and_wait(transferer, xferfailsound, "")) {
finishup(transferee);
return -1;
}
@@ -4786,7 +4795,7 @@
strcpy(pickup_ext, "*8");
courtesytone[0] = '\0';
strcpy(xfersound, "beep");
- strcpy(xferfailsound, "pbx-invalid");
+ strcpy(xferfailsound, "beeperr");
pickupsound[0] = '\0';
pickupfailsound[0] = '\0';
adsipark = 0;
More information about the asterisk-commits
mailing list