diff --git a/src/switch_rtp.c b/src/switch_rtp.c index 87d6526f48..77d2da890c 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -3721,7 +3721,7 @@ static switch_status_t read_rtp_packet(switch_rtp_t *rtp_session, switch_size_t { switch_status_t status = SWITCH_STATUS_FALSE; stfu_frame_t *jb_frame; - uint32_t ts; + uint32_t ts = 0; char *b = NULL; switch_assert(bytes); @@ -3730,6 +3730,10 @@ static switch_status_t read_rtp_packet(switch_rtp_t *rtp_session, switch_size_t status = switch_socket_recvfrom(rtp_session->from_addr, rtp_session->sock_input, 0, (void *) &rtp_session->recv_msg, bytes); + if (rtp_session->flags[SWITCH_RTP_FLAG_UDPTL]) { + goto udptl; + } + if (*bytes) { b = (char *) &rtp_session->recv_msg; @@ -3802,6 +3806,8 @@ static switch_status_t read_rtp_packet(switch_rtp_t *rtp_session, switch_size_t } } + udptl: + ts = ntohl(rtp_session->recv_msg.header.ts); rtp_session->recv_msg.ebody = NULL;