Implement flags for AGI in the channel structure so taht "show channels" and

AMI commands can display that a channel is under control of an AGI.

Work inspired by work at customer site, but paid for by Edvina AB


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@128240 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Olle Johansson
2008-07-05 20:54:30 +00:00
parent 0fd94cb93d
commit 45e79490ba
7 changed files with 58 additions and 9 deletions

View File

@@ -2901,6 +2901,18 @@ static void pbx_substitute_variables(char *passdata, int datalen, struct ast_cha
pbx_substitute_variables_helper(c, e->data, passdata, datalen - 1);
}
/*! \brief report AGI state for channel */
const char *agi_state(struct ast_channel *chan)
{
if (ast_test_flag(chan, AST_FLAG_AGI))
return "AGI";
if (ast_test_flag(chan, AST_FLAG_FASTAGI))
return "FASTAGI";
if (ast_test_flag(chan, AST_FLAG_ASYNCAGI))
return "ASYNCAGI";
return "";
}
/*!
* \brief The return value depends on the action:
*
@@ -2981,8 +2993,9 @@ static int pbx_extension_helper(struct ast_channel *c, struct ast_context *con,
"Priority: %d\r\n"
"Application: %s\r\n"
"AppData: %s\r\n"
"Uniqueid: %s\r\n",
c->name, c->context, c->exten, c->priority, app->name, passdata, c->uniqueid);
"Uniqueid: %s\r\n"
"AGIstate: %s\r\n",
c->name, c->context, c->exten, c->priority, app->name, passdata, c->uniqueid, agi_state(c));
return pbx_exec(c, app, passdata); /* 0 on success, -1 on failure */
}
} else if (q.swo) { /* not found here, but in another switch */