Related to #911:
- added subscription state name string in pjsua_buddy_info and display this in pjsua
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2824 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/pjsip-apps/src/pjsua/pjsua_app.c b/pjsip-apps/src/pjsua/pjsua_app.c
index 8be930f..4f534f9 100644
--- a/pjsip-apps/src/pjsua/pjsua_app.c
+++ b/pjsip-apps/src/pjsua/pjsua_app.c
@@ -2533,11 +2533,12 @@
pjsua_buddy_info info;
pjsua_buddy_get_info(buddy_id, &info);
- PJ_LOG(3,(THIS_FILE, "%.*s status is %.*s",
+ PJ_LOG(3,(THIS_FILE, "%.*s status is %.*s (subscription state is %s)",
(int)info.uri.slen,
info.uri.ptr,
(int)info.status_text.slen,
- info.status_text.ptr));
+ info.status_text.ptr,
+ info.sub_state_name));
}
diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h
index 8744e9a..1ea6f9e 100644
--- a/pjsip/include/pjsua-lib/pjsua.h
+++ b/pjsip/include/pjsua-lib/pjsua.h
@@ -2896,6 +2896,11 @@
pjsip_evsub_state sub_state;
/**
+ * String representation of subscription state.
+ */
+ const char *sub_state_name;
+
+ /**
* Specifies the last presence subscription terminatino reason. If
* presence subscription is currently active, the value will be empty.
*/
diff --git a/pjsip/src/pjsua-lib/pjsua_pres.c b/pjsip/src/pjsua-lib/pjsua_pres.c
index 797fb84..b9c11ae 100644
--- a/pjsip/src/pjsua-lib/pjsua_pres.c
+++ b/pjsip/src/pjsua-lib/pjsua_pres.c
@@ -195,6 +195,7 @@
/* subscription state and termination reason */
if (buddy->sub) {
info->sub_state = pjsip_evsub_get_state(buddy->sub);
+ info->sub_state_name = pjsip_evsub_get_state_name(buddy->sub);
if (info->sub_state == PJSIP_EVSUB_STATE_TERMINATED &&
total < sizeof(info->buf_))
{
@@ -207,11 +208,13 @@
info->sub_term_reason = pj_str("");
}
} else if (total < sizeof(info->buf_)) {
+ info->sub_state_name = "NULL";
info->sub_term_reason.ptr = info->buf_ + total;
pj_strncpy(&info->sub_term_reason, &buddy->term_reason,
sizeof(info->buf_) - total);
total += info->sub_term_reason.slen;
} else {
+ info->sub_state_name = "NULL";
info->sub_term_reason = pj_str("");
}