Merged revisions 165723 via svnmerge from

https://origsvn.digium.com/svn/asterisk/trunk

........
r165723 | russell | 2008-12-18 13:33:42 -0600 (Thu, 18 Dec 2008) | 14 lines

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: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@165726 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Russell Bryant
2008-12-18 19:40:14 +00:00
parent 9ca178a9be
commit ca1c37e47c
3 changed files with 64 additions and 24 deletions

View File

@@ -1833,7 +1833,11 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
if (gosub_args) {
res = pbx_exec(peer, theapp, gosub_args);
if (!res) {
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)
@@ -2154,7 +2158,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(app, dial_exec, synopsis, descrip);
res |= ast_register_application(rapp, retrydial_exec, rsynopsis, rdescrip);