aboutsummaryrefslogtreecommitdiffstats
path: root/cli.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-08-03 17:48:18 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-08-03 17:48:18 +0000
commitd3c5020bf34d3572a6de773244181e9ad4675d2d (patch)
treee3810a67dc1574671ed0c43bc599cc73b7e4c3c9 /cli.c
parent0b53dcb60a74a412afcb311ea212f7d69c537db9 (diff)
Merge nicolasg's manager/cli patch (bug #2207)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3575 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'cli.c')
-rwxr-xr-xcli.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/cli.c b/cli.c
index dcc88072a..8b132d22a 100755
--- a/cli.c
+++ b/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)"));