From: Kinsey Moore Date: Fri, 3 Oct 2014 13:33:11 +0000 (+0000) Subject: Manager: Add missing fields and documentation for CoreShowChannels X-Git-Tag: 14.0.0-beta1~1603 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4246652603d8ad45eb69d02738834d84e82bbca6;p=thirdparty%2Fasterisk.git Manager: Add missing fields and documentation for CoreShowChannels This corrects some issues introduced in the responses to the CoreShowChannels AMI command as well as adding documentation for the responses. The command in Asterisk 12 was missing the following fields: Duration, Application, ApplicationData, and BridgedChannel and BridgedUniqueID (replaced with BridgeId). ASTERISK-24262 #close Reported by: Mitch Claborn Review: https://reviewboard.asterisk.org/r/4040/ ........ Merged revisions 424423 from http://svn.asterisk.org/svn/asterisk/branches/12 ........ Merged revisions 424424 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@424425 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/manager.c b/main/manager.c index 9744ab6140..c4ab2723f0 100644 --- a/main/manager.c +++ b/main/manager.c @@ -820,6 +820,49 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") Send a reload event. + + + Raised in response to a CoreShowChannels command. + + + + + Identifier of the bridge the channel is in, may be empty if not in one + + + Application currently executing on the channel + + + Data given to the currently executing application + + + The amount of time the channel has existed + + + + CoreShowChannels + CoreShowChannelsComplete + + + + + + Raised at the end of the CoreShowChannel list produced by the CoreShowChannels command. + + + + Conveys the status of the command reponse list + + + The total number of list items produced + + + + CoreShowChannels + CoreShowChannel + + + List currently active channels. @@ -830,6 +873,12 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") List currently defined channels and some information about them. + + + + + + @@ -5528,18 +5577,37 @@ static int action_coreshowchannels(struct mansession *s, const struct message *m for (; (msg = ao2_iterator_next(&it_chans)); ao2_ref(msg, -1)) { struct ast_channel_snapshot *cs = stasis_message_data(msg); struct ast_str *built = ast_manager_build_channel_state_string_prefix(cs, ""); + char durbuf[10] = ""; if (!built) { continue; } + if (!ast_tvzero(cs->creationtime)) { + int duration, durh, durm, durs; + + duration = (int)(ast_tvdiff_ms(ast_tvnow(), cs->creationtime) / 1000); + durh = duration / 3600; + durm = (duration % 3600) / 60; + durs = duration % 60; + snprintf(durbuf, sizeof(durbuf), "%02d:%02d:%02d", durh, durm, durs); + } + astman_append(s, "Event: CoreShowChannel\r\n" "%s" "%s" + "Application: %s\r\n" + "ApplicationData: %s\r\n" + "Duration: %s\r\n" + "BridgeId: %s\r\n" "\r\n", idText, - ast_str_buffer(built)); + ast_str_buffer(built), + cs->appl, + cs->data, + durbuf, + cs->bridgeid); numchans++;