[asterisk-commits] rmudgett: branch 1.8 r336658 - in /branches/1.8: UPGRADE.txt apps/app_dial.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Sep 19 13:46:44 CDT 2011


Author: rmudgett
Date: Mon Sep 19 13:46:40 2011
New Revision: 336658

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=336658
Log:
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

Modified:
    branches/1.8/UPGRADE.txt
    branches/1.8/apps/app_dial.c

Modified: branches/1.8/UPGRADE.txt
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/UPGRADE.txt?view=diff&rev=336658&r1=336657&r2=336658
==============================================================================
--- branches/1.8/UPGRADE.txt (original)
+++ branches/1.8/UPGRADE.txt Mon Sep 19 13:46:40 2011
@@ -147,6 +147,12 @@
   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,

Modified: branches/1.8/apps/app_dial.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/apps/app_dial.c?view=diff&rev=336658&r1=336657&r2=336658
==============================================================================
--- branches/1.8/apps/app_dial.c (original)
+++ branches/1.8/apps/app_dial.c Mon Sep 19 13:46:40 2011
@@ -120,6 +120,11 @@
 					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 @@
 					</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 @@
 		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;
 




More information about the asterisk-commits mailing list