1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
--- rtp.c.orig Tue Apr 26 10:00:28 2005
+++ rtp.c Tue Apr 26 10:06:35 2005
@@ -127,7 +127,7 @@
{
switch(buf & TYPE_MASK) {
case TYPE_DONTSEND:
- return 0;
+ return 2;
break;
case TYPE_SILENCE:
return 4;
@@ -351,9 +351,7 @@
0, (struct sockaddr *)&sin, &len);
if (res < 0) {
- if (errno == EAGAIN)
- ast_log(LOG_NOTICE, "RTP: Received packet with bad UDP checksum\n");
- else
+ if (errno != EAGAIN)
ast_log(LOG_WARNING, "RTP Read error: %s\n", strerror(errno));
if (errno == EBADF)
CRASH;
@@ -431,9 +429,7 @@
rtpheader = (unsigned int *)(rtp->rawdata + AST_FRIENDLY_OFFSET);
if (res < 0) {
- if (errno == EAGAIN)
- ast_log(LOG_NOTICE, "RTP: Received packet with bad UDP checksum\n");
- else
+ if (errno != EAGAIN)
ast_log(LOG_WARNING, "RTP Read error: %s\n", strerror(errno));
if (errno == EBADF)
CRASH;
@@ -862,8 +858,10 @@
/* Must be an even port number by RTP spec */
rtp->us.sin_port = htons(x);
rtp->us.sin_addr = addr;
- if (rtp->rtcp)
+ if (rtp->rtcp) {
rtp->rtcp->us.sin_port = htons(x + 1);
+ rtp->rtcp->us.sin_addr = addr;
+ }
if (!(first = bind(rtp->s, (struct sockaddr *)&rtp->us, sizeof(rtp->us))) &&
(!rtp->rtcp || !bind(rtp->rtcp->s, (struct sockaddr *)&rtp->rtcp->us, sizeof(rtp->rtcp->us))))
break;
|