summaryrefslogtreecommitdiff
path: root/pjsip-apps/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-apps/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-apps/src')
-rw-r--r--pjsip-apps/src/pjsua/pjsua_app.c38
1 files changed, 35 insertions, 3 deletions
diff --git a/pjsip-apps/src/pjsua/pjsua_app.c b/pjsip-apps/src/pjsua/pjsua_app.c
index 94dfa548..f79bf6f9 100644
--- a/pjsip-apps/src/pjsua/pjsua_app.c
+++ b/pjsip-apps/src/pjsua/pjsua_app.c
@@ -1327,6 +1327,16 @@ static void on_call_state(pjsua_call_id call_id, pjsip_event *e)
find_next_call();
}
+ /* Dump media state upon disconnected */
+ if (1) {
+ char buf[1024];
+ pjsua_call_dump(call_id, PJ_TRUE, buf,
+ sizeof(buf), " ");
+ PJ_LOG(5,(THIS_FILE,
+ "Call %d disconnected, dumping media stats\n%s",
+ call_id, buf));
+ }
+
} else {
if (app_config.duration!=NO_LIMIT &&
@@ -1343,9 +1353,31 @@ static void on_call_state(pjsua_call_id call_id, pjsip_event *e)
pjsip_endpt_schedule_timer(endpt, &cd->timer, &delay);
}
- PJ_LOG(3,(THIS_FILE, "Call %d state changed to %s",
- call_id,
- call_info.state_text.ptr));
+ if (call_info.state == PJSIP_INV_STATE_EARLY) {
+ int code;
+ pj_str_t reason;
+ pjsip_msg *msg;
+
+ /* This can only occur because of TX or RX message */
+ pj_assert(e->type == PJSIP_EVENT_TSX_STATE);
+
+ if (e->body.tsx_state.type == PJSIP_EVENT_RX_MSG) {
+ msg = e->body.tsx_state.src.rdata->msg_info.msg;
+ } else {
+ msg = e->body.tsx_state.src.tdata->msg;
+ }
+
+ code = msg->line.status.code;
+ reason = msg->line.status.reason;
+
+ PJ_LOG(3,(THIS_FILE, "Call %d state changed to %s (%d %.*s)",
+ call_id, call_info.state_text.ptr,
+ code, (int)reason.slen, reason.ptr));
+ } else {
+ PJ_LOG(3,(THIS_FILE, "Call %d state changed to %s",
+ call_id,
+ call_info.state_text.ptr));
+ }
if (current_call==PJSUA_INVALID_ID)
current_call = call_id;