summaryrefslogtreecommitdiff
path: root/pjsip/src
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-11-25 14:50:25 +0000
committerBenny Prijono <bennylp@teluu.com>2006-11-25 14:50:25 +0000
commit0bda7ac4e953db4a1c6dc1fff1d2c0959ee81ebb (patch)
tree86acf0170dfef8b3adbf2561c72b978261ac0ee1 /pjsip/src
parent3db966e7ebb20d9bb51cdb3a3b6d1993984ab547 (diff)
Print media statistic when call is disconnected in pjsua, to assist tracing media problems
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@831 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src')
-rw-r--r--pjsip/src/pjsip-ua/sip_inv.c8
-rw-r--r--pjsip/src/pjsua-lib/pjsua_call.c12
2 files changed, 14 insertions, 6 deletions
diff --git a/pjsip/src/pjsip-ua/sip_inv.c b/pjsip/src/pjsip-ua/sip_inv.c
index 8c6b4ccd..b6215d4b 100644
--- a/pjsip/src/pjsip-ua/sip_inv.c
+++ b/pjsip/src/pjsip-ua/sip_inv.c
@@ -35,10 +35,10 @@
static const char *inv_state_names[] =
{
- "NULL ",
- "CALLING ",
- "INCOMING ",
- "EARLY ",
+ "NULL",
+ "CALLING",
+ "INCOMING",
+ "EARLY",
"CONNECTING",
"CONFIRMED ",
"DISCONNCTD",
diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c
index d5530570..679bc6fd 100644
--- a/pjsip/src/pjsua-lib/pjsua_call.c
+++ b/pjsip/src/pjsua-lib/pjsua_call.c
@@ -90,6 +90,10 @@ static void reset_call(pjsua_call_id id)
call->conf_slot = PJSUA_INVALID_ID;
call->last_text.ptr = call->last_text_buf_;
call->last_text.slen = 0;
+ call->conn_time.sec = 0;
+ call->conn_time.msec = 0;
+ call->res_time.sec = 0;
+ call->res_time.msec = 0;
}
@@ -1776,7 +1780,7 @@ PJ_DEF(pj_status_t) pjsua_call_dump( pjsua_call_id call_id,
*p++ = '\n';
/* Calculate call duration */
- if (call->inv->state >= PJSIP_INV_STATE_CONFIRMED) {
+ if (call->conn_time.sec != 0) {
pj_gettimeofday(&duration);
PJ_TIME_VAL_SUB(duration, call->conn_time);
con_delay = call->conn_time;
@@ -1787,7 +1791,7 @@ PJ_DEF(pj_status_t) pjsua_call_dump( pjsua_call_id call_id,
}
/* Calculate first response delay */
- if (call->inv->state >= PJSIP_INV_STATE_EARLY) {
+ if (call->res_time.sec != 0) {
res_delay = call->res_time;
PJ_TIME_VAL_SUB(res_delay, call->start_time);
} else {
@@ -1976,6 +1980,10 @@ static void pjsua_call_on_state_changed(pjsip_inv_session *inv,
/* Free call */
call->inv = NULL;
--pjsua_var.call_cnt;
+
+ /* Reset call */
+ reset_call(call->index);
+
}
PJSUA_UNLOCK();