diff --git a/daemon/src/sip/sipvoiplink.cpp b/daemon/src/sip/sipvoiplink.cpp index fd7e7f729123cffa137030f7f1f9ffdbdfd09489..f54a1425c8fcf9f09a9eeb36a6f6595368d8902c 100644 --- a/daemon/src/sip/sipvoiplink.cpp +++ b/daemon/src/sip/sipvoiplink.cpp @@ -36,6 +36,7 @@ #include "config.h" #endif + #include "sipvoiplink.h" #include "manager.h" @@ -1231,7 +1232,14 @@ bool SIPVoIPLink::SIPNewIpToIpCall(const std::string& id, const std::string& to) pj_bool_t stun_sock_on_status_cb(pj_stun_sock *stun_sock UNUSED, pj_stun_sock_op op UNUSED, pj_status_t status) { - return status == PJ_SUCCESS; + // What ever is the status, we want the keep-alive timer to be rescheduled + status = PJ_TRUE; + + if(status != PJ_SUCCESS) { + ERROR("Error STUN session failed because %s failed", pj_stun_sock_op_name(op)); + } + + return status; } pj_bool_t stun_sock_on_rx_data_cb(pj_stun_sock *stun_sock UNUSED, void *pkt UNUSED, unsigned pkt_len UNUSED, const pj_sockaddr_t *src_addr UNUSED, unsigned addr_len UNUSED)