I’m Using Asterisk-1.4.13 in Intel® Core™2 CPU 6600 @ 2.40GHz. When My call terminate to an SIP gateway I got rtp.c:891 ast_rtcp_read: RTCP Read too short WARNING. And im Ny side I can hear other party’s voice but other party couldn’t hear me. Using Codec G723.1 or G723.
Can Anybody give me any solution of it? Thanks.
Suberna
system
February 20, 2010, 4:30pm
2
When My call terminate to an SIP gateway I got rtp.c:891 ast_rtcp_read: RTCP Read too short WARNING.
Can Anybody give me any solution of it? Thanks.
faisal
nauliv
September 2, 2011, 12:40am
3
We have the same problem with asterisk 1.4.21.2, using ulaw, on inbound and outbound SIP trunk…
Has anyone been able to find out more about this ?
Here is the portion of rtp.c around line 891:
/* Process a compound packet */
position = 0;
while (position < packetwords) {
i = position;
length = ntohl(rtcpheader[i]);
pt = (length & 0xff0000) >> 16;
rc = (length & 0x1f000000) >> 24;
length &= 0xffff;
if ((i + length) > packetwords) {
[b]ast_log(LOG_WARNING, "RTCP Read too short\n");[/b]
return &ast_null_frame;
}
if (rtcp_debug_test_addr(&sin)) {
ast_verbose("\n\nGot RTCP from %s:%d\n", ast_inet_ntoa(sin.sin_addr), ntohs(sin.sin_port));
ast_verbose("PT: %d(%s)\n", pt, (pt == 200) ? "Sender Report" : (pt == 201) ? "Receiver Report" : (pt == 192) ? "H.\
261 FUR" : “Unknown”);
ast_verbose(“Reception reports: %d\n”, rc);
ast_verbose(“SSRC of sender: %u\n”, rtcpheader[i + 1]);
}
i += 2; /* Advance past header and ssrc */
switch (pt) {
case RTCP_PT_SR:
gettimeofday(&rtp->rtcp->rxlsr,NULL); /* To be able to populate the dlsr */
rtp->rtcp->spc = ntohl(rtcpheader[i+3]);
rtp->rtcp->soc = ntohl(rtcpheader[i + 4]);
rtp->rtcp->themrxlsr = ((ntohl(rtcpheader[i]) & 0x0000ffff) << 16) | ((ntohl(rtcpheader[i + 1]) & 0xffff0000) >> 16\
); /* Going to LSR in RR*/
if (rtcp_debug_test_addr(&sin)) {
ast_verbose("NTP timestamp: %lu.%010lu\n", (unsigned long) ntohl(rtcpheader[i]), (unsigned long) ntohl(rtcp\
header[i + 1]) * 4096);
ast_verbose(“RTP timestamp: %lu\n”, (unsigned long) ntohl(rtcpheader[i + 2]));
ast_verbose(“SPC: %lu\tSOC: %lu\n”, (unsigned long) ntohl(rtcpheader[i + 3]), (unsigned long) ntohl(rtcphea
der[i + 4]));
}
i += 5;
if (rc < 1)
break;