diff --git a/daemon/src/sip/siptransport.cpp b/daemon/src/sip/siptransport.cpp index 8c6b65fbf757ab18e5dfa8bb68527ab5132deb34..ff208b3326fdc33051086d25279ab917e21f096b 100644 --- a/daemon/src/sip/siptransport.cpp +++ b/daemon/src/sip/siptransport.cpp @@ -237,7 +237,6 @@ SipTransportBroker::transportStateChanged(pjsip_transport* tp, pjsip_transport_s RING_WARN("UDP transport destroy"); transports_.erase(transport_key->second); udpTransports_.erase(transport_key); - transportDestroyedCv_.notify_all(); } } } @@ -282,25 +281,6 @@ SipTransportBroker::shutdown() } } -void -SipTransportBroker::waitForReleased(const SipTransportDescr& tp, std::function<void(bool)> released_cb) -{ - std::vector<std::pair<SipTransportDescr, pjsip_transport*>> to_destroy_all; - bool destroyed = false; - { - std::unique_lock<std::mutex> lock(transportMapMutex_); - auto check_destroyed = [&](){ - return udpTransports_.find(tp) == udpTransports_.end(); - }; - destroyed = transportDestroyedCv_.wait_for(lock, std::chrono::seconds(10), check_destroyed); - if (!destroyed) - destroyed = check_destroyed(); - } - - if (released_cb) - released_cb(destroyed); -} - std::shared_ptr<SipTransport> SipTransportBroker::getUdpTransport(const SipTransportDescr& descr) { @@ -459,38 +439,6 @@ SipTransportBroker::getIceTransport(const std::shared_ptr<IceTransport> ice, uns } #endif -std::vector<pj_sockaddr> -SipTransportBroker::getSTUNAddresses(const pj_str_t serverName, pj_uint16_t port, std::vector<long> &socketDescriptors) const -{ - const size_t ip_num = socketDescriptors.size(); - pj_sockaddr_in ipv4[ip_num]; - pj_status_t ret = pjstun_get_mapped_addr(&cp_.factory, - socketDescriptors.size(), &socketDescriptors[0], - &serverName, port, &serverName, port, ipv4); - - if (ret != PJ_SUCCESS) { - RING_ERR("STUN query to server \"%.*s\" failed", serverName.slen, serverName.ptr); - switch (ret) { - case PJLIB_UTIL_ESTUNNOTRESPOND: - RING_ERR("No response from STUN server(s)"); - break; - case PJLIB_UTIL_ESTUNSYMMETRIC: - RING_ERR("Different mapped addresses are returned by servers."); - break; - default: - break; - } - throw std::runtime_error("Can't resolve STUN request"); - } - - std::vector<pj_sockaddr> result(ip_num); - for(size_t i=0; i<ip_num; i++) { - result[i].ipv4 = ipv4[i]; - RING_WARN("STUN PORTS: %ld", pj_sockaddr_get_port(&result[i])); - } - return result; -} - #define RETURN_IF_NULL(A, M, ...) if ((A) == NULL) { RING_ERR(M, ##__VA_ARGS__); return; } void diff --git a/daemon/src/sip/siptransport.h b/daemon/src/sip/siptransport.h index bca0197a53e7bdf608a9558f1e91ca2c3c6459fd..3ff992d671691a9d95b95dd35c606be380c41452 100644 --- a/daemon/src/sip/siptransport.h +++ b/daemon/src/sip/siptransport.h @@ -173,11 +173,6 @@ public: return tp; } - /** - * This function returns a list of STUN mapped sockets for - * a given set of socket file descriptors */ - std::vector<pj_sockaddr> getSTUNAddresses(const pj_str_t serverName, pj_uint16_t port, std::vector<long> &socks) const; - /** * Get the correct address to use (ie advertised) from * a uri. The corresponding transport that should be used @@ -191,14 +186,6 @@ public: void findLocalAddressFromSTUN(pjsip_transport *transport, pj_str_t *stunServerName, int stunPort, std::string &address, pj_uint16_t &port) const; - /** - * Call released_cb(success) when transport tp is destroyed, making the - * socket available for a new similar transport. - * success is true if the transport is actually released. - * TODO: make this call non-blocking. - */ - void waitForReleased(const SipTransportDescr& tp, std::function<void(bool)> released_cb); - /** * Start gracefull shutdown procedure for all transports */ @@ -226,7 +213,6 @@ private: */ std::map<pjsip_transport*, std::weak_ptr<SipTransport>> transports_ {}; std::mutex transportMapMutex_ {}; - std::condition_variable transportDestroyedCv_ {}; /** * Transports are stored in this map in order to retreive them in case