summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2010-09-07 05:10:25 +0000
committerLiong Sauw Ming <ming@teluu.com>2010-09-07 05:10:25 +0000
commit72549c62dbda8bcdc5afab24c468f701728fb3d7 (patch)
tree2c7e7d181b19cffc67e426d759328e6d8446e4d6 /pjsip
parent061b74f3c8012fc45586e18a5f0edc33e7959f3b (diff)
Fixed #1118: Add last error code to PJSUA-LIB account info structure
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3303 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/include/pjsua-lib/pjsua.h8
-rw-r--r--pjsip/src/pjsua-lib/pjsua_acc.c8
2 files changed, 11 insertions, 5 deletions
diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h
index 7c770e05..7510a4fc 100644
--- a/pjsip/include/pjsua-lib/pjsua.h
+++ b/pjsip/include/pjsua-lib/pjsua.h
@@ -2341,6 +2341,14 @@ typedef struct pjsua_acc_info
pjsip_status_code status;
/**
+ * Last registration error code. When the status field contains a SIP
+ * status code that indicates a registration failure, last registration
+ * error code contains the error code that causes the failure. In any
+ * other case, its value is zero.
+ */
+ pj_status_t reg_last_err;
+
+ /**
* String describing the registration status.
*/
pj_str_t status_text;
diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c
index 62c2451a..5597dad1 100644
--- a/pjsip/src/pjsua-lib/pjsua_acc.c
+++ b/pjsip/src/pjsua-lib/pjsua_acc.c
@@ -1799,14 +1799,12 @@ PJ_DEF(pj_status_t) pjsua_acc_get_info( pjsua_acc_id acc_id,
else
info->online_status_text = pj_str("Offline");
- if (acc->reg_last_err) {
- info->status = (pjsip_status_code) acc->reg_last_err;
- pj_strerror(acc->reg_last_err, info->buf_, sizeof(info->buf_));
- info->status_text = pj_str(info->buf_);
- } else if (acc->reg_last_code) {
+ if (acc->reg_last_code) {
if (info->has_registration) {
info->status = (pjsip_status_code) acc->reg_last_code;
info->status_text = *pjsip_get_status_text(acc->reg_last_code);
+ if (acc->reg_last_err)
+ info->reg_last_err = acc->reg_last_err;
} else {
info->status = (pjsip_status_code) 0;
info->status_text = pj_str("not registered");