aboutsummaryrefslogtreecommitdiffstats
path: root/manager.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 /manager.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 'manager.c')
-rwxr-xr-xmanager.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/manager.c b/manager.c
index c3265f2bc..0db032a98 100755
--- a/manager.c
+++ b/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"