Merge "udptl: Don't eat sequence numbers until OK is received"

This commit is contained in:
Joshua Colp 2016-05-19 05:33:13 -05:00 committed by Gerrit Code Review
commit acbaa1b0cf
1 changed files with 12 additions and 0 deletions

View File

@ -769,6 +769,18 @@ struct ast_frame *ast_udptl_read(struct ast_udptl *udptl)
return &ast_null_frame;
}
/*
* If early media isn't turned on for the channel driver, it's going to
* drop this frame. By that time though, udptl has already incremented
* the expected sequence number so if the CPE re-sends, the second frame
* will be dropped as a dup even though the first frame never went through.
* So we drop the frame here if the channel isn't up. 'tag' is set by the
* channel drivers on T38_ENABLED or T38_PEER_REINVITE.
*/
if (udptl->tag == NULL) {
return &ast_null_frame;
}
if (udptl->nat) {
/* Send to whoever sent to us */
if (ast_sockaddr_cmp(&udptl->them, &addr)) {