summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua-lib
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2013-09-06 10:04:39 +0000
committerNanang Izzuddin <nanang@teluu.com>2013-09-06 10:04:39 +0000
commit65f8e930c65b43912d7db6b728538e371b0ecc41 (patch)
tree4e102139cb80b6a500baec31be69f1f10789249e /pjsip/src/pjsua-lib
parenta190a7c679e04645e8c76e8c15729302ed22efa8 (diff)
Fixed #1698: Follow account config in generating contact's secure scheme and deprecate PJSUA_SECURE_SCHEME.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4592 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua-lib')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_acc.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c
index 328d41e6..77d9a12c 100644
--- a/pjsip/src/pjsua-lib/pjsua_acc.c
+++ b/pjsip/src/pjsua-lib/pjsua_acc.c
@@ -201,6 +201,7 @@ static pj_status_t initialize_acc(unsigned acc_id)
acc->srv_domain = sip_uri->host;
acc->srv_port = 0;
}
+ acc->is_sips = PJSIP_URI_SCHEME_IS_SIPS(name_addr);
/* Parse registrar URI, if any */
@@ -911,6 +912,7 @@ PJ_DEF(pj_status_t) pjsua_acc_modify( pjsua_acc_id acc_id,
pj_strdup_with_null(acc->pool, &acc->user_part, &id_sip_uri->user);
pj_strdup_with_null(acc->pool, &acc->srv_domain, &id_sip_uri->host);
acc->srv_port = 0;
+ acc->is_sips = PJSIP_URI_SCHEME_IS_SIPS(id_name_addr);
update_reg = PJ_TRUE;
unreg_first = PJ_TRUE;
}
@@ -1704,6 +1706,10 @@ static pj_bool_t acc_check_nat_addr(pjsua_acc *acc,
const char *beginquote, *endquote;
char transport_param[32];
int len;
+ pj_bool_t secure;
+
+ secure = pjsip_transport_get_flag_from_type(tp->key.type) &
+ PJSIP_TRANSPORT_SECURE;
/* Enclose IPv6 address in square brackets */
if (tp->key.type & PJSIP_TRANSPORT_IPV6) {
@@ -1727,7 +1733,8 @@ static pj_bool_t acc_check_nat_addr(pjsua_acc *acc,
tmp = (char*) pj_pool_alloc(pool, PJSIP_MAX_URL_SIZE);
len = pj_ansi_snprintf(tmp, PJSIP_MAX_URL_SIZE,
- "<sip:%.*s%s%s%.*s%s:%d%s%.*s%s>%.*s",
+ "<%s:%.*s%s%s%.*s%s:%d%s%.*s%s>%.*s",
+ ((secure && acc->is_sips)? "sips" : "sip"),
(int)acc->user_part.slen,
acc->user_part.ptr,
(acc->user_part.slen? "@" : ""),
@@ -3079,7 +3086,7 @@ PJ_DEF(pj_status_t) pjsua_acc_create_uac_contact( pj_pool_t *pool,
(int)acc->display.slen,
acc->display.ptr,
(acc->display.slen?"\" " : ""),
- (secure ? PJSUA_SECURE_SCHEME : "sip"),
+ ((secure && acc->is_sips)? "sips" : "sip"),
(int)acc->user_part.slen,
acc->user_part.ptr,
(acc->user_part.slen?"@":""),
@@ -3250,7 +3257,7 @@ PJ_DEF(pj_status_t) pjsua_acc_create_uas_contact( pj_pool_t *pool,
(int)acc->display.slen,
acc->display.ptr,
(acc->display.slen?"\" " : ""),
- (secure ? PJSUA_SECURE_SCHEME : "sip"),
+ ((secure && acc->is_sips)? "sips" : "sip"),
(int)acc->user_part.slen,
acc->user_part.ptr,
(acc->user_part.slen?"@":""),