Merged revisions 336659 via svnmerge from
authorRichard Mudgett <rmudgett@digium.com>
Mon, 19 Sep 2011 19:03:38 +0000 (19:03 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Mon, 19 Sep 2011 19:03:38 +0000 (19:03 +0000)
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

UPGRADE-1.8.txt
apps/app_dial.c

index ebafedd..230a5ef 100644 (file)
@@ -143,6 +143,12 @@ From 1.6.2 to 1.8:
   events/responses output the connected line ID as caller ID.  These party ID's
   are now separate.
 
+* The Dial application d and H options do not automatically answer the call
+  anymore.  It broke DTMF attended transfers.  Since many SIP and ISDN phones
+  cannot send DTMF before a call is connected, you need to answer the call
+  leg to those phones before using Dial with these options for them to have
+  any effect before the dialed party answers.
+
 * The outgoing directory (where .call files are read) now uses inotify to
   detect file changes instead of polling the directory on a regular basis.
   If your outgoing folder is on a NFS mount or another network file system,
index 3867ebc..de8deb6 100644 (file)
@@ -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;