mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
Extend bindaddr to RTP connections on SIP (bug #1989 et al)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3393 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
10
rtp.c
10
rtp.c
@@ -786,7 +786,7 @@ static struct ast_rtcp *ast_rtcp_new(void)
|
||||
return rtcp;
|
||||
}
|
||||
|
||||
struct ast_rtp *ast_rtp_new(struct sched_context *sched, struct io_context *io, int rtcpenable, int callbackmode)
|
||||
struct ast_rtp *ast_rtp_new_with_bindaddr(struct sched_context *sched, struct io_context *io, int rtcpenable, int callbackmode, struct in_addr addr)
|
||||
{
|
||||
struct ast_rtp *rtp;
|
||||
int x;
|
||||
@@ -817,6 +817,7 @@ struct ast_rtp *ast_rtp_new(struct sched_context *sched, struct io_context *io,
|
||||
for (;;) {
|
||||
/* Must be an even port number by RTP spec */
|
||||
rtp->us.sin_port = htons(x);
|
||||
rtp->us.sin_addr = addr;
|
||||
if (rtp->rtcp)
|
||||
rtp->rtcp->us.sin_port = htons(x + 1);
|
||||
if (!(first = bind(rtp->s, (struct sockaddr *)&rtp->us, sizeof(rtp->us))) &&
|
||||
@@ -861,6 +862,13 @@ struct ast_rtp *ast_rtp_new(struct sched_context *sched, struct io_context *io,
|
||||
return rtp;
|
||||
}
|
||||
|
||||
struct ast_rtp *ast_rtp_new(struct sched_context *sched, struct io_context *io, int rtcpenable, int callbackmode)
|
||||
{
|
||||
struct in_addr ia;
|
||||
memset(&ia, 0, sizeof(ia));
|
||||
return ast_rtp_new_with_bindaddr(sched, io, rtcpenable, callbackmode, ia);
|
||||
}
|
||||
|
||||
int ast_rtp_settos(struct ast_rtp *rtp, int tos)
|
||||
{
|
||||
int res;
|
||||
|
Reference in New Issue
Block a user