Added option to perform detailed or summary only dump

git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@255 74dad513-b988-da41-8d7b-12977e46ad98
This commit is contained in:
Benny Prijono 2006-03-01 20:46:13 +00:00
parent 8df5b021c5
commit 1a174142f2
5 changed files with 76 additions and 23 deletions

View File

@ -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

View File

@ -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;

View File

@ -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();

View File

@ -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"));

View File

@ -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) {