diff options
author | Richard Mudgett <rmudgett@digium.com> | 2011-09-19 19:03:38 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2011-09-19 19:03:38 +0000 |
commit | 5c71a502a7c318d7efd33d8cb2f348fb710940e3 (patch) | |
tree | 2485c14ed0c9e00f2ba49bfc6aa05dc52671e4e6 /apps/app_dial.c | |
parent | f2fe72628e196ade288bc2c3b91d3bd7c56bdfeb (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.c | 21 |
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; |