diff --git a/daemon/src/sip/siptransport.cpp b/daemon/src/sip/siptransport.cpp index e3791b5b2304a8bbdaf48e011d817a5c16e41797..8d5806ebb6b6dd86fc348e78369cec66fc5cf6bc 100644 --- a/daemon/src/sip/siptransport.cpp +++ b/daemon/src/sip/siptransport.cpp @@ -436,11 +436,10 @@ SipTransport::findLocalAddressFromSTUN(pjsip_transport *transport, // Update address and port with active transport RETURN_IF_NULL(transport, "Transport is NULL in findLocalAddress, using local address %s:%d", addr.c_str(), port); - pj_sockaddr_in mapped_addr; + pj_sockaddr mapped_addr; pj_sock_t sipSocket = pjsip_udp_transport_get_socket(transport); const pjstun_setting stunOpt = {PJ_TRUE, *stunServerName, stunPort, *stunServerName, stunPort}; - const pj_status_t stunStatus = pjstun_get_mapped_addr2(&cp_.factory, - &stunOpt, 1, &sipSocket, &mapped_addr); + const pj_status_t stunStatus = pjstun_get_mapped_addr2(&cp_.factory, &stunOpt, 1, &sipSocket, &mapped_addr.ipv4); switch (stunStatus) { case PJLIB_UTIL_ESTUNNOTRESPOND: @@ -449,14 +448,15 @@ SipTransport::findLocalAddressFromSTUN(pjsip_transport *transport, case PJLIB_UTIL_ESTUNSYMMETRIC: ERROR("Different mapped addresses are returned by servers."); return; + case PJ_SUCCESS: + port = pj_sockaddr_get_port(&mapped_addr); + addr = ip_utils::addrToStr(mapped_addr); default: break; } - port = pj_sockaddr_get_port(&mapped_addr); - - WARN("Using address %s:%d provided by STUN server %.*s", - addr.c_str(), port, stunServerName->slen, stunServerName->ptr); + WARN("Using address %s provided by STUN server %.*s", + ip_utils::addrToStr(mapped_addr, true, true).c_str(), stunServerName->slen, stunServerName->ptr); } #undef RETURN_IF_NULL