diff --git a/daemon/src/sip/sdp.cpp b/daemon/src/sip/sdp.cpp index baf845593c320616a2ea4fb5f8f65aed724ecc77..147246149cd517178b9bebdefed3acad89902bc4 100644 --- a/daemon/src/sip/sdp.cpp +++ b/daemon/src/sip/sdp.cpp @@ -378,8 +378,13 @@ Sdp::updatePorts(const std::vector<pj_sockaddr> &sockets) { localAudioDataPort_ = pj_sockaddr_get_port(&sockets[0]); localAudioControlPort_ = pj_sockaddr_get_port(&sockets[1]); - localVideoDataPort_ = pj_sockaddr_get_port(&sockets[2]); - localVideoControlPort_ = pj_sockaddr_get_port(&sockets[3]); + if (sockets.size() > 3) { + localVideoDataPort_ = pj_sockaddr_get_port(&sockets[2]); + localVideoControlPort_ = pj_sockaddr_get_port(&sockets[3]); + } else { + localVideoDataPort_ = 0; + localVideoControlPort_ = 0; + } if (localSession_) { if (localSession_->media[0]) { diff --git a/daemon/src/sip/siptransport.cpp b/daemon/src/sip/siptransport.cpp index 8d5806ebb6b6dd86fc348e78369cec66fc5cf6bc..d4a6d17d3d690d4b84935905dcad9c14fc965b6a 100644 --- a/daemon/src/sip/siptransport.cpp +++ b/daemon/src/sip/siptransport.cpp @@ -381,9 +381,8 @@ SipTransport::getSTUNAddresses(const SIPAccount &account, std::vector<pj_sockaddr> result(ip_num); for(size_t i=0; i<ip_num; i++) { - result[i].addr.sa_family = pj_AF_INET(); result[i].ipv4 = ipv4[i]; - WARN("STUN PORTS: %ld", pj_ntohs(ipv4[i].sin_port)); + WARN("STUN PORTS: %ld", pj_sockaddr_get_port(&result[i])); } return result; } diff --git a/daemon/src/sip/sipvoiplink.cpp b/daemon/src/sip/sipvoiplink.cpp index dd69d36b9f8673842333eb9e477d978984dda9c3..2b3f8eb66a67f2a6ef9636dec3bb1d4d393cc1fa 100644 --- a/daemon/src/sip/sipvoiplink.cpp +++ b/daemon/src/sip/sipvoiplink.cpp @@ -199,7 +199,7 @@ void updateSDPFromSTUN(SIPCall &call, SIPAccount &account, const SipTransport &t std::vector<pj_sockaddr> stunPorts(transport.getSTUNAddresses(account, socketDescriptors)); // FIXME: get video sockets - stunPorts.resize(4); + //stunPorts.resize(4); account.setPublishedAddress(stunPorts[0]); // published IP MUST be updated first, since RTCP depends on it