summaryrefslogtreecommitdiff
path: root/apps/app_dial.c
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2011-09-19 19:03:38 +0000
committerRichard Mudgett <rmudgett@digium.com>2011-09-19 19:03:38 +0000
commit5c71a502a7c318d7efd33d8cb2f348fb710940e3 (patch)
tree2485c14ed0c9e00f2ba49bfc6aa05dc52671e4e6 /apps/app_dial.c
parentf2fe72628e196ade288bc2c3b91d3bd7c56bdfeb (diff)
Merged revisions 336659 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/10 ................ r336659 | rmudgett | 2011-09-19 13:51:19 -0500 (Mon, 19 Sep 2011) | 38 lines Merged revisions 336658 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r336658 | rmudgett | 2011-09-19 13:46:40 -0500 (Mon, 19 Sep 2011) | 31 lines Made Dial d and H options no longer immediately auto-answer the calling leg. The Dial d and H options break DTMF attended transfer atxferdropcall option. 1) Party A calls party B. 2) Party B does a DTMF attended transfer to Party C. If the dialplan uses the Dial d or H options to call Party C then the Dial application answers the call immediately before initiating the call leg to Party C. The premature answer causes the transfer code to not invoke the atxferdropcall=no behavior for a blonde transfer since Party C has "answered". The transfer code thinks that Party B has "consulted" with Party C when Party B hangs up and completes the transfer to Party A. Party A now hears ringback until Party C actually answers. ASTERISK-13294 Dial d option. ASTERISK-11067 Dial H option to disconnect before answer. The referenced issues made Dial answer with the d and H options because many SIP and ISDN phones cannot send DTMF before the call is connected. * Made require the dialplan to control when or if the call needs to be answered to use the Dial application d and H options. (The call is no longer surprise answered when using the Dial d or H options.) Review: https://reviewboard.asterisk.org/r/1381/ JIRA AST-623 JIRA AST-666 ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@336662 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps/app_dial.c')
-rw-r--r--apps/app_dial.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/apps/app_dial.c b/apps/app_dial.c
index 3867ebc76..de8deb682 100644
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
@@ -120,6 +120,11 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
a call to be answered. Exit to that extension if it exists in the
current context, or the context defined in the <variable>EXITCONTEXT</variable> variable,
if it exists.</para>
+ <note>
+ <para>Many SIP and ISDN phones cannot send DTMF digits until the call is
+ connected. If you wish to use this option with these phones, you
+ can use the <literal>Answer</literal> application before dialing.</para>
+ </note>
</option>
<option name="D" argsep=":">
<argument name="called" />
@@ -170,10 +175,18 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
</note>
</option>
<option name="h">
- <para>Allow the called party to hang up by sending the <literal>*</literal> DTMF digit.</para>
+ <para>Allow the called party to hang up by sending the DTMF sequence
+ defined for disconnect in <filename>features.conf</filename>.</para>
</option>
<option name="H">
- <para>Allow the calling party to hang up by hitting the <literal>*</literal> DTMF digit.</para>
+ <para>Allow the calling party to hang up by sending the DTMF sequence
+ defined for disconnect in <filename>features.conf</filename>.</para>
+ <note>
+ <para>Many SIP and ISDN phones cannot send DTMF digits until the call is
+ connected. If you wish to allow DTMF disconnect before the dialed
+ party answers with these phones, you can use the <literal>Answer</literal>
+ application before dialing.</para>
+ </note>
</option>
<option name="i">
<para>Asterisk will ignore any forwarding requests it may receive on this dial attempt.</para>
@@ -2070,10 +2083,6 @@ static int dial_exec_full(struct ast_channel *chan, const char *data, struct ast
res = -1; /* reset default */
}
- if (ast_test_flag64(&opts, OPT_DTMF_EXIT) || ast_test_flag64(&opts, OPT_CALLER_HANGUP)) {
- __ast_answer(chan, 0, 0);
- }
-
if (continue_exec)
*continue_exec = 0;