diff options
-rw-r--r-- | pjsip/include/pjsua-lib/pjsua.h | 8 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_acc.c | 8 |
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"); |