mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-20 00:30:20 +00:00
Refactor operations to access the stasis cache instead of objects directly when retrieving information.
(closes issue ASTERISK-21883) Review: https://reviewboard.asterisk.org/r/2645/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393831 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -2753,16 +2753,18 @@ static int handle_setcallerid(struct ast_channel *chan, AGI *agi, int argc, cons
|
||||
|
||||
static int handle_channelstatus(struct ast_channel *chan, AGI *agi, int argc, const char * const argv[])
|
||||
{
|
||||
struct ast_channel *c;
|
||||
if (argc == 2) {
|
||||
/* no argument: supply info on the current channel */
|
||||
ast_agi_send(agi->fd, chan, "200 result=%d\n", ast_channel_state(chan));
|
||||
return RESULT_SUCCESS;
|
||||
} else if (argc == 3) {
|
||||
RAII_VAR(struct stasis_message *, msg, NULL, ao2_cleanup);
|
||||
|
||||
/* one argument: look for info on the specified channel */
|
||||
if ((c = ast_channel_get_by_name(argv[2]))) {
|
||||
ast_agi_send(agi->fd, chan, "200 result=%d\n", ast_channel_state(c));
|
||||
c = ast_channel_unref(c);
|
||||
if ((msg = stasis_cache_get(ast_channel_topic_all_cached_by_name(), ast_channel_snapshot_type(), argv[2]))) {
|
||||
struct ast_channel_snapshot *snapshot = stasis_message_data(msg);
|
||||
|
||||
ast_agi_send(agi->fd, chan, "200 result=%d\n", snapshot->state);
|
||||
return RESULT_SUCCESS;
|
||||
}
|
||||
/* if we get this far no channel name matched the argument given */
|
||||
|
||||
Reference in New Issue
Block a user