summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua-lib/pjsua_pres.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip/src/pjsua-lib/pjsua_pres.c')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_pres.c53
1 files changed, 52 insertions, 1 deletions
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) {