--- a/pjsip/src/pjsua-lib/pjsua_acc.c
+++ b/pjsip/src/pjsua-lib/pjsua_acc.c
-@@ -430,7 +430,7 @@
+@@ -511,7 +511,7 @@ PJ_DEF(pj_status_t) pjsua_acc_add_local(
"<sip:%s%.*s%s:%d%s>",
beginquote,
(int)t->local_name.host.slen,
endquote,
t->local_name.port,
transport_param);
-@@ -1158,18 +1158,18 @@
+@@ -1327,19 +1327,19 @@ static pj_bool_t acc_check_nat_addr(pjsu
len = pj_ansi_snprintf(tmp, PJSIP_MAX_URL_SIZE,
- "<sip:%.*s%s%s%.*s%s:%d;transport=%s%.*s>%.*s",
+ "<sip:%.*s%s%s%.*s%s:%d;transport=%s%.*s%s>%.*s",
(int)acc->user_part.slen,
- acc->user_part.ptr,
+ acc->user_part.slen ? acc->user_part.ptr : "",
(int)acc->cfg.contact_uri_params.slen,
- acc->cfg.contact_uri_params.ptr,
+ acc->cfg.contact_uri_params.slen ? acc->cfg.contact_uri_params.ptr : "",
+ ob,
(int)acc->cfg.contact_params.slen,
- acc->cfg.contact_params.ptr);
+ acc->cfg.contact_params.slen ? acc->cfg.contact_params.ptr : "");
if (len < 1) {
PJ_LOG(1,(THIS_FILE, "URI too long"));
pj_pool_release(pool);
-@@ -2233,22 +2233,22 @@
+@@ -2467,23 +2467,23 @@ PJ_DEF(pj_status_t) pjsua_acc_create_uac
contact->slen = pj_ansi_snprintf(contact->ptr, PJSIP_MAX_URL_SIZE,
- "%.*s%s<%s:%.*s%s%s%.*s%s:%d%s%.*s>%.*s",
+ "%.*s%s<%s:%.*s%s%s%.*s%s:%d%s%.*s%s>%.*s",
(int)acc->display.slen,
- acc->display.ptr,
+ acc->display.slen ? acc->display.ptr : "",
(int)acc->cfg.contact_uri_params.slen,
- acc->cfg.contact_uri_params.ptr,
+ acc->cfg.contact_uri_params.slen ? acc->cfg.contact_uri_params.ptr : "",
+ ob,
(int)acc->cfg.contact_params.slen,
- acc->cfg.contact_params.ptr);
+ acc->cfg.contact_params.slen ? acc->cfg.contact_params.ptr : "");
return PJ_SUCCESS;
}
-@@ -2390,22 +2390,22 @@
+@@ -2625,22 +2625,22 @@ PJ_DEF(pj_status_t) pjsua_acc_create_uas
contact->slen = pj_ansi_snprintf(contact->ptr, PJSIP_MAX_URL_SIZE,
"%.*s%s<%s:%.*s%s%s%.*s%s:%d%s%.*s>%.*s",
(int)acc->display.slen,