diff --git a/rtp.c b/rtp.c index 555b7cf1c02fb0c7c9cfb2f6ec49f4be98c550b7..af65250cdfa96f03d113b76c054775e1dcbc1993 100755 --- a/rtp.c +++ b/rtp.c @@ -749,6 +749,10 @@ int ast_rtp_write(struct ast_rtp *rtp, struct ast_frame *_f) /* If we have no peer, return immediately */ if (!rtp->them.sin_addr.s_addr) return 0; + + /* If there is no data length, return immediately */ + if (!_f->datalen) + return 0; /* Make sure we have enough space for RTP header */ if (_f->frametype != AST_FRAME_VOICE) { @@ -756,6 +760,7 @@ int ast_rtp_write(struct ast_rtp *rtp, struct ast_frame *_f) return -1; } + codec = ast_rtp_lookup_code(rtp, 1, _f->subclass); if (codec < 0) { ast_log(LOG_WARNING, "Don't know how to send format %d packets with RTP\n", _f->subclass);