diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-03-01 20:46:13 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-03-01 20:46:13 +0000 |
commit | 066a3287c184cbfdc5d7edb973c480c3a81d6e45 (patch) | |
tree | d5bae090ebed868494602516da2f139835819a0d /pjsip | |
parent | 2c5a0a8b70a04c11b85498562d3e1361a4b7ad7d (diff) |
Added option to perform detailed or summary only dump
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@255 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r-- | pjsip/include/pjsua-lib/pjsua.h | 6 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_call.c | 2 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_core.c | 2 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_opt.c | 36 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_pres.c | 53 |
5 files changed, 76 insertions, 23 deletions
diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h index c7cdc124..b6d2fcd6 100644 --- a/pjsip/include/pjsua-lib/pjsua.h +++ b/pjsip/include/pjsua-lib/pjsua.h @@ -356,7 +356,7 @@ void pjsua_call_xfer(int call_index, const char *dest); /** * Terminate all calls. */ -void pjsua_inv_shutdown(void); +void pjsua_call_hangup_all(void); /***************************************************************************** @@ -401,7 +401,7 @@ void pjsua_pres_shutdown(void); /** * Dump presence subscriptions. */ -void pjsua_pres_dump(void); +void pjsua_pres_dump(pj_bool_t detail); /***************************************************************************** @@ -460,7 +460,7 @@ pj_status_t pjsua_verify_sip_url(const char *c_url); /* * Dump application states. */ -void pjsua_dump(void); +void pjsua_dump(pj_bool_t detail); PJ_END_DECL diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c index 49b7dfd5..1862e380 100644 --- a/pjsip/src/pjsua-lib/pjsua_call.c +++ b/pjsip/src/pjsua-lib/pjsua_call.c @@ -1048,7 +1048,7 @@ void pjsua_call_xfer(int call_index, const char *dest) /* * Terminate all calls. */ -void pjsua_inv_shutdown() +void pjsua_call_hangup_all() { int i; diff --git a/pjsip/src/pjsua-lib/pjsua_core.c b/pjsip/src/pjsua-lib/pjsua_core.c index 775c96ba..4b8b763d 100644 --- a/pjsip/src/pjsua-lib/pjsua_core.c +++ b/pjsip/src/pjsua-lib/pjsua_core.c @@ -867,7 +867,7 @@ pj_status_t pjsua_destroy(void) pjsua.quit_flag = 1; /* Terminate all calls. */ - pjsua_inv_shutdown(); + pjsua_call_hangup_all(); /* Terminate all presence subscriptions. */ pjsua_pres_shutdown(); diff --git a/pjsip/src/pjsua-lib/pjsua_opt.c b/pjsip/src/pjsua-lib/pjsua_opt.c index c8b0adac..f9bada9d 100644 --- a/pjsip/src/pjsua-lib/pjsua_opt.c +++ b/pjsip/src/pjsua-lib/pjsua_opt.c @@ -576,7 +576,7 @@ static void dump_media_session(pjmedia_session *session) /* * Dump application states. */ -void pjsua_dump(void) +void pjsua_dump(pj_bool_t detail) { char buf[128]; unsigned old_decor; @@ -586,37 +586,39 @@ void pjsua_dump(void) old_decor = pj_log_get_decor(); pj_log_set_decor(old_decor & (PJ_LOG_HAS_NEWLINE | PJ_LOG_HAS_CR)); - pjsip_endpt_dump(pjsua.endpt, 1); + pjsip_endpt_dump(pjsua.endpt, detail); pjmedia_endpt_dump(pjsua.med_endpt); - pjsip_tsx_layer_dump(1); - pjsip_ua_dump(1); + pjsip_tsx_layer_dump(detail); + pjsip_ua_dump(detail); /* Dump all invite sessions: */ - PJ_LOG(3,(THIS_FILE, "Dumping invite sessions:")); + if (detail) { + PJ_LOG(3,(THIS_FILE, "Dumping invite sessions:")); - if (pjsua.call_cnt == 0) { + if (pjsua.call_cnt == 0) { - PJ_LOG(3,(THIS_FILE, " - no sessions -")); + PJ_LOG(3,(THIS_FILE, " - no sessions -")); - } else { - int i; + } else { + int i; - for (i=0; i<pjsua.max_calls; ++i) { + for (i=0; i<pjsua.max_calls; ++i) { - if (pjsua.calls[i].inv == NULL) - continue; + if (pjsua.calls[i].inv == NULL) + continue; - print_call(" ", i, buf, sizeof(buf)); - PJ_LOG(3,(THIS_FILE, "%s", buf)); + print_call(" ", i, buf, sizeof(buf)); + PJ_LOG(3,(THIS_FILE, "%s", buf)); - if (pjsua.calls[i].session) - dump_media_session(pjsua.calls[i].session); + if (pjsua.calls[i].session) + dump_media_session(pjsua.calls[i].session); + } } } /* Dump presence status */ - pjsua_pres_dump(); + pjsua_pres_dump(detail); pj_log_set_decor(old_decor); PJ_LOG(3,(THIS_FILE, "Dump complete")); diff --git a/pjsip/src/pjsua-lib/pjsua_pres.c b/pjsip/src/pjsua-lib/pjsua_pres.c index 9f307c6c..174a106d 100644 --- a/pjsip/src/pjsua-lib/pjsua_pres.c +++ b/pjsip/src/pjsua-lib/pjsua_pres.c @@ -454,12 +454,55 @@ void pjsua_pres_shutdown(void) /* * Dump presence status. */ -void pjsua_pres_dump(void) +void pjsua_pres_dump(pj_bool_t detail) { int acc_index; int i; + + /* + * When no detail is required, just dump number of server and client + * subscriptions. + */ + if (detail == PJ_FALSE) { + + int count = 0; + + for (acc_index=0; acc_index < pjsua.acc_cnt; ++acc_index) { + + if (!pj_list_empty(&pjsua.acc[acc_index].pres_srv_list)) { + struct pjsua_srv_pres *uapres; + + uapres = pjsua.acc[acc_index].pres_srv_list.next; + while (uapres != &pjsua.acc[acc_index].pres_srv_list) { + ++count; + uapres = uapres->next; + } + } + } + + PJ_LOG(3,(THIS_FILE, "Number of server/UAS subscriptions: %d", + count)); + + count = 0; + + for (i=0; i<pjsua.buddy_cnt; ++i) { + if (pjsua.buddies[i].sub) { + ++count; + } + } + + PJ_LOG(3,(THIS_FILE, "Number of client/UAC subscriptions: %d", + count)); + return; + } + + + /* + * Dumping all server (UAS) subscriptions + */ PJ_LOG(3,(THIS_FILE, "Dumping pjsua server subscriptions:")); + for (acc_index=0; acc_index < pjsua.acc_cnt; ++acc_index) { PJ_LOG(3,(THIS_FILE, " %.*s", @@ -467,7 +510,9 @@ void pjsua_pres_dump(void) pjsua.acc[acc_index].local_uri.ptr)); if (pj_list_empty(&pjsua.acc[acc_index].pres_srv_list)) { + PJ_LOG(3,(THIS_FILE, " - none - ")); + } else { struct pjsua_srv_pres *uapres; @@ -483,9 +528,15 @@ void pjsua_pres_dump(void) } } + /* + * Dumping all client (UAC) subscriptions + */ PJ_LOG(3,(THIS_FILE, "Dumping pjsua client subscriptions:")); + if (pjsua.buddy_cnt == 0) { + PJ_LOG(3,(THIS_FILE, " - no buddy list - ")); + } else { for (i=0; i<pjsua.buddy_cnt; ++i) { |