Index: res/res_rtp_asterisk.c =================================================================== --- res/res_rtp_asterisk.c (revision 371894) +++ res/res_rtp_asterisk.c (working copy) @@ -882,13 +882,20 @@ if (rtp->ice) { pj_str_t combined = pj_str(ast_sockaddr_stringify(sa)); pj_sockaddr address; + int status; pj_thread_register_check(); pj_sockaddr_parse(pj_AF_UNSPEC(), 0, &combined, &address); - if (pj_ice_sess_on_rx_pkt(rtp->ice, rtcp ? COMPONENT_RTCP : COMPONENT_RTP, rtcp ? TRANSPORT_SOCKET_RTCP : TRANSPORT_SOCKET_RTP, - buf, len, &address, pj_sockaddr_get_len(&address)) != PJ_SUCCESS) { + status = pj_ice_sess_on_rx_pkt(rtp->ice, rtcp ? COMPONENT_RTCP : COMPONENT_RTP, + rtcp ? TRANSPORT_SOCKET_RTCP : TRANSPORT_SOCKET_RTP, buf, len, &address, + pj_sockaddr_get_len(&address)); + if (status != PJ_SUCCESS) { + char buf[100]; + + pj_strerror(status, buf, sizeof(buf)); + ast_log(LOG_WARNING, "PJ ICE Rx error status code: %d '%s'.\n", status, buf); return -1; } if (!rtp->passthrough) { @@ -2481,7 +2488,8 @@ 0, &addr)) < 0) { ast_assert(errno != EBADF); if (errno != EAGAIN) { - ast_log(LOG_WARNING, "RTCP Read error: %s. Hanging up.\n", strerror(errno)); + ast_log(LOG_WARNING, "RTCP Read error: %s. Hanging up.\n", + (errno) ? strerror(errno) : "Likely an ICE or SRTP failure"); return NULL; } return &ast_null_frame; @@ -2874,7 +2882,8 @@ &addr)) < 0) { ast_assert(errno != EBADF); if (errno != EAGAIN) { - ast_log(LOG_WARNING, "RTP Read error: %s. Hanging up.\n", strerror(errno)); + ast_log(LOG_WARNING, "RTP Read error: %s. Hanging up.\n", + (errno) ? strerror(errno) : "Likely an ICE or SRTP failure"); return NULL; } return &ast_null_frame;