RTP packets with timestamp == 0 are not identified as valid RTP packets
A java PCAP and DPI library
Brought to you by:
voytechs
RTP packets with the timestamp = 0 are not identified as valid RTP packets.
The validation of rtp packets is done inside of the function validate_rtp() of packet_protocol.cpp file (line 371 for version 1.4.r1425-1).
The following lines show that the timestamp rtp->rtp_ts is checked for 0.
/*
* Modified check for rtp->rtp_type > 25 per Bug#3482647, which prevented DTMF payload
* Removed check for rtp->rtp_seq == 0 per Bug#3482648
*
* Bug# 118 DTMF RTP paylaod is not supported
*/
if ( /* 1st CHECK header properties */
rtp->rtp_ver != 2
|| rtp->rtp_cc > 15
|| rtp->rtp_ts == 0
|| rtp->rtp_type > 34 && rtp->rtp_type < 96
|| rtp->rtp_type > 127
) {
TRACE("1st check", "FAILED - header flags");
EXIT("validate_rtp");
return INVALID;
}
This timestamp check seems to be wrong as there are cases where this timestamp actually can be 0. Please have a look at the attached trace.