diff --git a/rtp.c b/rtp.c index 9e6395bb6cfc680df3cfb35dff0e14daa0c6244a..a6c63005451d0c9d90c584ef9c0550d0c0b09790 100755 --- a/rtp.c +++ b/rtp.c @@ -413,6 +413,12 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp) ast_log(LOG_WARNING, "RTP Read too short\n"); return &null_frame; } + + /* Ignore if the other side hasn't been given an address + yet. */ + if (!rtp->them.sin_addr.s_addr || !rtp->them.sin_port) + return &null_frame; + if (rtp->nat) { /* Send to whoever sent to us */ if ((rtp->them.sin_addr.s_addr != sin.sin_addr.s_addr) || @@ -421,10 +427,6 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp) ast_log(LOG_DEBUG, "RTP NAT: Using address %s:%d\n", inet_ntoa(rtp->them.sin_addr), ntohs(rtp->them.sin_port)); } } - /* Ignore if the other side hasn't been given an address - yet. */ - if (!rtp->them.sin_addr.s_addr || !rtp->them.sin_port) - return &null_frame; /* Get fields */ seqno = ntohl(rtpheader[0]);