[Asterisk-code-review] app originate: Add async option. (asterisk[master])

Joshua Colp asteriskteam at digium.com
Mon Apr 9 10:32:39 CDT 2018


Joshua Colp has submitted this change and it was merged. ( https://gerrit.asterisk.org/8623 )

Change subject: app_originate: Add async option.
......................................................................

app_originate: Add async option.

Add an option to make app_originate not wait for the created channel
to answer.

Change-Id: I7fc2facd77079abc6321f44e8bcd4e39298de2ae
Requested-by: Frederic Steinfels <fst at highdefinition.ch>
Signed-off-by: Russell Bryant <russell at russellbryant.net>
---
M CHANGES
M apps/app_originate.c
2 files changed, 17 insertions(+), 2 deletions(-)

Approvals:
  George Joseph: Looks good to me, but someone else must approve
  Joshua Colp: Looks good to me, approved; Approved for Submit



diff --git a/CHANGES b/CHANGES
index 09a7659..ac50a6d 100644
--- a/CHANGES
+++ b/CHANGES
@@ -17,6 +17,13 @@
  * The app_fax module is now deprecated, users should migrate to the
    replacement module res_fax.
 
+app_originate
+------------------
+ * An 'a' option has been added to the Originate dialplan application which
+   will execute the originate in an asynchronous fashion. If set then the
+   application will return immediately without waiting for the originated
+   channel to answer.
+
 Build System
 ------------------
  * MALLOC_DEBUG no longer has an effect on Asterisk's ABI.  Asterisk built
diff --git a/apps/app_originate.c b/apps/app_originate.c
index 30fa565..107be84 100644
--- a/apps/app_originate.c
+++ b/apps/app_originate.c
@@ -74,6 +74,10 @@
 			</parameter>
 			<parameter name="options" required="false">
 				<optionlist>
+				<option name="a">
+					<para>Originate asynchronously.  In other words, continue in the dialplan
+					without waiting for the originated channel to answer.</para>
+				</option>
 				<option name="b" argsep="^">
 					<para>Before originating the outgoing call, Gosub to the specified
 					location using the newly created channel.</para>
@@ -123,6 +127,7 @@
 enum {
 	OPT_PREDIAL_CALLEE =    (1 << 0),
 	OPT_PREDIAL_CALLER =    (1 << 1),
+	OPT_ASYNC =             (1 << 2),
 };
 
 enum {
@@ -133,6 +138,7 @@
 };
 
 AST_APP_OPTIONS(originate_exec_options, BEGIN_OPTIONS
+	AST_APP_OPTION('a', OPT_ASYNC),
 	AST_APP_OPTION_ARG('b', OPT_PREDIAL_CALLEE, OPT_ARG_PREDIAL_CALLEE),
 	AST_APP_OPTION_ARG('B', OPT_PREDIAL_CALLER, OPT_ARG_PREDIAL_CALLER),
 END_OPTIONS );
@@ -250,7 +256,8 @@
 
 		res = ast_pbx_outgoing_exten_predial(chantech, cap_slin, chandata,
 				timeout * 1000, args.arg1, exten, priority, &outgoing_status,
-				AST_OUTGOING_WAIT, NULL, NULL, NULL, NULL, NULL, 0, NULL,
+				ast_test_flag64(&opts, OPT_ASYNC) ? AST_OUTGOING_NO_WAIT : AST_OUTGOING_WAIT,
+				NULL, NULL, NULL, NULL, NULL, 0, NULL,
 				predial_callee);
 	} else {
 		ast_debug(1, "Originating call to '%s/%s' and connecting them to %s(%s)\n",
@@ -258,7 +265,8 @@
 
 		res = ast_pbx_outgoing_app_predial(chantech, cap_slin, chandata,
 				timeout * 1000, args.arg1, args.arg2, &outgoing_status,
-				AST_OUTGOING_WAIT, NULL, NULL, NULL, NULL, NULL, NULL,
+				ast_test_flag64(&opts, OPT_ASYNC) ? AST_OUTGOING_NO_WAIT : AST_OUTGOING_WAIT,
+				NULL, NULL, NULL, NULL, NULL, NULL,
 				predial_callee);
 	}
 

-- 
To view, visit https://gerrit.asterisk.org/8623
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I7fc2facd77079abc6321f44e8bcd4e39298de2ae
Gerrit-Change-Number: 8623
Gerrit-PatchSet: 2
Gerrit-Owner: Russell Bryant <russell at russellbryant.net>
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Jenkins2
Gerrit-Reviewer: Joshua Colp <jcolp at digium.com>
Gerrit-Reviewer: Leif Madsen <leif at leifmadsen.com>
Gerrit-Reviewer: Russell Bryant <russell at russellbryant.net>
Gerrit-Reviewer: Sean Bright <sean.bright at gmail.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20180409/b89845d4/attachment.html>


More information about the asterisk-code-review mailing list