summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua-lib
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip/src/pjsua-lib')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_core.c13
-rw-r--r--pjsip/src/pjsua-lib/pjsua_media.c12
2 files changed, 17 insertions, 8 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_core.c b/pjsip/src/pjsua-lib/pjsua_core.c
index f86eadf1..f0b44119 100644
--- a/pjsip/src/pjsua-lib/pjsua_core.c
+++ b/pjsip/src/pjsua-lib/pjsua_core.c
@@ -1922,6 +1922,8 @@ static pj_status_t create_sip_udp_sock(int af,
pj_sockaddr_set_port(p_pub_addr, (pj_uint16_t)port);
} else if (stun_srv.slen) {
+ pjstun_setting stun_opt;
+
/*
* STUN is specified, resolve the address with STUN.
*/
@@ -1931,10 +1933,13 @@ static pj_status_t create_sip_udp_sock(int af,
return PJ_EAFNOTSUP;
}
- status = pjstun_get_mapped_addr(&pjsua_var.cp.factory, 1, &sock,
- &stun_srv, pj_ntohs(pjsua_var.stun_srv.ipv4.sin_port),
- &stun_srv, pj_ntohs(pjsua_var.stun_srv.ipv4.sin_port),
- &p_pub_addr->ipv4);
+ pj_bzero(&stun_opt, sizeof(stun_opt));
+ stun_opt.use_stun2 = pjsua_var.ua_cfg.stun_map_use_stun2;
+ stun_opt.srv1 = stun_opt.srv2 = stun_srv;
+ stun_opt.port1 = stun_opt.port2 =
+ pj_ntohs(pjsua_var.stun_srv.ipv4.sin_port);
+ status = pjstun_get_mapped_addr2(&pjsua_var.cp.factory, &stun_opt,
+ 1, &sock, &p_pub_addr->ipv4);
if (status != PJ_SUCCESS) {
pjsua_perror(THIS_FILE, "Error contacting STUN server", status);
pj_sock_close(sock);
diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c
index 24f0ee61..4bd80337 100644
--- a/pjsip/src/pjsua-lib/pjsua_media.c
+++ b/pjsip/src/pjsua-lib/pjsua_media.c
@@ -328,15 +328,19 @@ static pj_status_t create_rtp_rtcp_sock(pjsua_call_media *call_med,
{
char ip_addr[32];
pj_str_t stun_srv;
+ pjstun_setting stun_opt;
pj_ansi_strcpy(ip_addr,
pj_inet_ntoa(pjsua_var.stun_srv.ipv4.sin_addr));
stun_srv = pj_str(ip_addr);
- status=pjstun_get_mapped_addr(&pjsua_var.cp.factory, 2, sock,
- &stun_srv, pj_ntohs(pjsua_var.stun_srv.ipv4.sin_port),
- &stun_srv, pj_ntohs(pjsua_var.stun_srv.ipv4.sin_port),
- mapped_addr);
+ pj_bzero(&stun_opt, sizeof(stun_opt));
+ stun_opt.use_stun2 = pjsua_var.ua_cfg.stun_map_use_stun2;
+ stun_opt.srv1 = stun_opt.srv2 = stun_srv;
+ stun_opt.port1 = stun_opt.port2 =
+ pj_ntohs(pjsua_var.stun_srv.ipv4.sin_port);
+ status=pjstun_get_mapped_addr2(&pjsua_var.cp.factory, &stun_opt,
+ 2, sock, mapped_addr);
if (status != PJ_SUCCESS) {
pjsua_perror(THIS_FILE, "STUN resolve error", status);
goto on_error;