summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2006-11-01 18:40:13 +0000
committerRussell Bryant <russell@russellbryant.com>2006-11-01 18:40:13 +0000
commit4ffc38835891febe6810e5de84ab3c6b5c693ded (patch)
treeb87ee6317daeb086a816e3a103d3b100dce54480
parent63ff3c85da33a8e340e7644343ea8c8f29b5c15d (diff)
Add the ability to pass options to the Dial application when using the DUNDi
switch in the dialplan by setting the DUNDIDIALARGS channel variable. (issue #8084, patch by bluecrow76, with small modifications and documentation updates) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46781 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--doc/channelvariables.txt6
-rw-r--r--pbx/pbx_dundi.c5
2 files changed, 10 insertions, 1 deletions
diff --git a/doc/channelvariables.txt b/doc/channelvariables.txt
index 0a859ef90..b9b355bd5 100644
--- a/doc/channelvariables.txt
+++ b/doc/channelvariables.txt
@@ -696,6 +696,12 @@ DUNDiLookup() uses the following variables
${DUNDTECH} * The Technology of the result from a call to DUNDiLookup()
${DUNDDEST} * The Destination of the result from a call to DUNDiLookup()
+The DUNDi dialplan switch uses the following variables
+---------------------------------------------------------
+${DUNDIDIALARGS} Settings this variable allows you to provide options to be
+ passed to the Dial application for calls being placed using
+ the DUNDi switch.
+
The Zaptel channel sets the following variables:
---------------------------------------------------------
${ANI2} * The ANI2 Code provided by the network on the incoming call.
diff --git a/pbx/pbx_dundi.c b/pbx/pbx_dundi.c
index dba8607d5..e947e56f6 100644
--- a/pbx/pbx_dundi.c
+++ b/pbx/pbx_dundi.c
@@ -4276,6 +4276,7 @@ static int dundi_exec(struct ast_channel *chan, const char *context, const char
int res;
int x=0;
char req[1024];
+ const char *dundiargs;
struct ast_app *dial;
if (!strncasecmp(context, "macro-", 6)) {
@@ -4313,7 +4314,9 @@ static int dundi_exec(struct ast_channel *chan, const char *context, const char
}
if (x < res) {
/* Got a hit! */
- snprintf(req, sizeof(req), "%s/%s", results[x].tech, results[x].dest);
+ dundiargs = pbx_builtin_getvar_helper(chan, "DUNDIDIALARGS");
+ snprintf(req, sizeof(req), "%s/%s||%s", results[x].tech, results[x].dest,
+ S_OR(dundiargs, ""));
dial = pbx_findapp("Dial");
if (dial)
res = pbx_exec(chan, dial, req);