aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_dial.c
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-12-18 19:33:42 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-12-18 19:33:42 +0000
commit155014c14e8e2855b50f43630edce84143eb9ad2 (patch)
tree8df8a6f08733bc20953ce3dbc4125ecb520e35b3 /apps/app_dial.c
parent2653105176373b7f55e0002d7b2f9731024e2f08 (diff)
Remove the need for AST_PBX_KEEPALIVE with the GoSub option from Dial.
This is part of an effort to completely remove AST_PBX_KEEPALIVE and other similar return codes from the source. While this usage was perfectly safe, there are others that are problematic. Since we know ahead of time that we do not want to PBX to destroy the channel, the PBX API has been changed so that information can be provided as an argument, instead, thus removing the need for the KEEPALIVE return value. Further changes to get rid of KEEPALIVE and related code is being done by murf. There is a patch up for that on review 29. Review: http://reviewboard.digium.com/r/98/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@165723 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_dial.c')
-rw-r--r--apps/app_dial.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/apps/app_dial.c b/apps/app_dial.c
index 08e86466a..fa4ee7a4b 100644
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
@@ -2082,7 +2082,11 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
if (gosub_args) {
res9 = pbx_exec(peer, theapp, gosub_args);
if (!res9) {
- ast_pbx_run(peer);
+ struct ast_pbx_args args;
+ /* A struct initializer fails to compile for this case ... */
+ memset(&args, 0, sizeof(args));
+ args.no_hangup_chan = 1;
+ ast_pbx_run_args(peer, &args);
}
ast_free(gosub_args);
if (option_debug)
@@ -2428,7 +2432,7 @@ static int load_module(void)
if (!con)
ast_log(LOG_ERROR, "Dial virtual context 'app_dial_gosub_virtual_context' does not exist and unable to create\n");
else
- ast_add_extension2(con, 1, "s", 1, NULL, NULL, "KeepAlive", ast_strdup(""), ast_free_ptr, "app_dial");
+ ast_add_extension2(con, 1, "s", 1, NULL, NULL, "NoOp", ast_strdup(""), ast_free_ptr, "app_dial");
res = ast_register_application_xml(app, dial_exec);
res |= ast_register_application_xml(rapp, retrydial_exec);