mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 04:11:08 +00:00
Merge nicolasg's manager/cli patch (bug #2207)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3575 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
8
cli.c
8
cli.c
@@ -523,11 +523,17 @@ static int handle_nodebugchan(int fd, int argc, char *argv[])
|
||||
static int handle_showchan(int fd, int argc, char *argv[])
|
||||
{
|
||||
struct ast_channel *c=NULL;
|
||||
struct timeval now;
|
||||
long elapsed_seconds=0;
|
||||
if (argc != 3)
|
||||
return RESULT_SHOWUSAGE;
|
||||
gettimeofday(&now, NULL);
|
||||
c = ast_channel_walk_locked(NULL);
|
||||
while(c) {
|
||||
if (!strcasecmp(c->name, argv[2])) {
|
||||
if(c->cdr) {
|
||||
elapsed_seconds = now.tv_sec - c->cdr->start.tv_sec;
|
||||
}
|
||||
ast_cli(fd,
|
||||
" -- General --\n"
|
||||
" Name: %s\n"
|
||||
@@ -544,6 +550,7 @@ static int handle_showchan(int fd, int argc, char *argv[])
|
||||
" Frames in: %d%s\n"
|
||||
" Frames out: %d%s\n"
|
||||
" Time to Hangup: %ld\n"
|
||||
"Elapsed Seconds: %ld\n"
|
||||
" -- PBX --\n"
|
||||
" Context: %s\n"
|
||||
" Extension: %s\n"
|
||||
@@ -559,6 +566,7 @@ static int handle_showchan(int fd, int argc, char *argv[])
|
||||
(c->dnid ? c->dnid : "(N/A)" ), ast_state2str(c->_state), c->_state, c->rings, c->nativeformats, c->writeformat, c->readformat,
|
||||
c->fds[0], c->fin & 0x7fffffff, (c->fin & 0x80000000) ? " (DEBUGGED)" : "",
|
||||
c->fout & 0x7fffffff, (c->fout & 0x80000000) ? " (DEBUGGED)" : "", (long)c->whentohangup,
|
||||
(long)elapsed_seconds,
|
||||
c->context, c->exten, c->priority, c->callgroup, c->pickupgroup, ( c->appl ? c->appl : "(N/A)" ),
|
||||
( c-> data ? (!ast_strlen_zero(c->data) ? c->data : "(Empty)") : "(None)"),
|
||||
c->stack, (c->blocking ? c->blockproc : "(Not Blocking)"));
|
||||
|
10
manager.c
10
manager.c
@@ -649,6 +649,10 @@ static int action_status(struct mansession *s, struct message *m)
|
||||
char idText[256] = "";
|
||||
struct ast_channel *c;
|
||||
char bridge[256];
|
||||
struct timeval now;
|
||||
long elapsed_seconds=0;
|
||||
|
||||
gettimeofday(&now, NULL);
|
||||
astman_send_ack(s, m, "Channel status will follow");
|
||||
c = ast_channel_walk_locked(NULL);
|
||||
if (id && !ast_strlen_zero(id))
|
||||
@@ -672,6 +676,9 @@ static int action_status(struct mansession *s, struct message *m)
|
||||
else
|
||||
bridge[0] = '\0';
|
||||
if (c->pbx) {
|
||||
if (c->cdr) {
|
||||
elapsed_seconds = now.tv_sec - c->cdr->start.tv_sec;
|
||||
}
|
||||
ast_cli(s->fd,
|
||||
"Event: Status\r\n"
|
||||
"Channel: %s\r\n"
|
||||
@@ -681,6 +688,7 @@ static int action_status(struct mansession *s, struct message *m)
|
||||
"Context: %s\r\n"
|
||||
"Extension: %s\r\n"
|
||||
"Priority: %d\r\n"
|
||||
"Seconds: %ld\r\n"
|
||||
"%s"
|
||||
"Uniqueid: %s\r\n"
|
||||
"%s"
|
||||
@@ -688,7 +696,7 @@ static int action_status(struct mansession *s, struct message *m)
|
||||
c->name, c->callerid ? c->callerid : "<unknown>",
|
||||
c->accountcode,
|
||||
ast_state2str(c->_state), c->context,
|
||||
c->exten, c->priority, bridge, c->uniqueid, idText);
|
||||
c->exten, c->priority, (long)elapsed_seconds, bridge, c->uniqueid, idText);
|
||||
} else {
|
||||
ast_cli(s->fd,
|
||||
"Event: Status\r\n"
|
||||
|
Reference in New Issue
Block a user