summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-03-01 20:46:13 +0000
committerBenny Prijono <bennylp@teluu.com>2006-03-01 20:46:13 +0000
commit066a3287c184cbfdc5d7edb973c480c3a81d6e45 (patch)
treed5bae090ebed868494602516da2f139835819a0d
parent2c5a0a8b70a04c11b85498562d3e1361a4b7ad7d (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
-rw-r--r--pjsip/include/pjsua-lib/pjsua.h6
-rw-r--r--pjsip/src/pjsua-lib/pjsua_call.c2
-rw-r--r--pjsip/src/pjsua-lib/pjsua_core.c2
-rw-r--r--pjsip/src/pjsua-lib/pjsua_opt.c36
-rw-r--r--pjsip/src/pjsua-lib/pjsua_pres.c53
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) {