mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 00:04:53 +00:00
Merge "udptl: Don't eat sequence numbers until OK is received" into 13
This commit is contained in:
12
main/udptl.c
12
main/udptl.c
@@ -769,6 +769,18 @@ struct ast_frame *ast_udptl_read(struct ast_udptl *udptl)
|
|||||||
return &ast_null_frame;
|
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) {
|
if (udptl->nat) {
|
||||||
/* Send to whoever sent to us */
|
/* Send to whoever sent to us */
|
||||||
if (ast_sockaddr_cmp(&udptl->them, &addr)) {
|
if (ast_sockaddr_cmp(&udptl->them, &addr)) {
|
||||||
|
Reference in New Issue
Block a user