diff --git a/daemon/src/sip/siptransport.cpp b/daemon/src/sip/siptransport.cpp index cc78e96245e5c5098d1afcbda8c221d7963ff165..f89b5a70fe8a362e8747ba7b9d3ec28330d3d359 100644 --- a/daemon/src/sip/siptransport.cpp +++ b/daemon/src/sip/siptransport.cpp @@ -85,14 +85,14 @@ transportMapKey(const std::string &interface, int port, pjsip_transport_type_e t /** Static tranport state change callback */ void -SipTransport::tp_state_callback(pjsip_transport *tp, pjsip_transport_state state, const pjsip_transport_state_info* /* info */) +SipTransport::tp_state_callback(pjsip_transport *tp, pjsip_transport_state state, const pjsip_transport_state_info* info) { SipTransport& this_ = *getSIPVoIPLink()->sipTransport; - this_.transportStateChanged(tp, state); + this_.transportStateChanged(tp, state, info); } void -SipTransport::transportStateChanged(pjsip_transport* tp, pjsip_transport_state state) +SipTransport::transportStateChanged(pjsip_transport* tp, pjsip_transport_state state, const pjsip_transport_state_info* info) { std::lock_guard<std::mutex> lock(transportMapMutex_); auto transport_key = map_utils::findByValue(transportMap_, tp); @@ -103,7 +103,16 @@ SipTransport::transportStateChanged(pjsip_transport* tp, pjsip_transport_state s #else if (tp->is_shutdown || tp->is_destroying) { #endif - WARN("Transport was destroyed: {%s}", tp->info); + char err_msg[128]; + err_msg[0] = '\0'; + + pj_str_t description; + if (info) { + description = pjsip_strerror(info->status,err_msg,128); + } + + WARN("Transport was destroyed: {%s} %.*s", + tp->info,info && description.slen>0?description.slen:0, err_msg); transportMap_.erase(transport_key++); transportDestroyedCv_.notify_all(); } diff --git a/daemon/src/sip/siptransport.h b/daemon/src/sip/siptransport.h index a592b03ba351af90c774958bb29fe4b3ca23e131..8ff9b93fb041863f72afa9fa4c7e25ff1b2c7ed8 100644 --- a/daemon/src/sip/siptransport.h +++ b/daemon/src/sip/siptransport.h @@ -152,7 +152,7 @@ class SipTransport { static void tp_state_callback(pjsip_transport *, pjsip_transport_state, const pjsip_transport_state_info *); - void transportStateChanged(pjsip_transport* tp, pjsip_transport_state state); + void transportStateChanged(pjsip_transport* tp, pjsip_transport_state state, const pjsip_transport_state_info* info); /** * UDP Transports are stored in this map in order to retreive them in case