summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorMatthew Jordan <mjordan@digium.com>2013-03-07 15:48:06 +0000
committerMatthew Jordan <mjordan@digium.com>2013-03-07 15:48:06 +0000
commit80b8c2349c427a94a428670f1183bdc693936813 (patch)
tree0a07c07c194da424f97295fa2a8df3538823fb58 /channels
parenta3a2b995197103fb1d613121daab2b8320de622b (diff)
Add a 'secret' probation strictrtp mode to handle delayed changes in RTP source
Often, Asterisk may realize that a change in the source of an RTP stream is about to occur and ask that the RTP engine reset it's lock on the current RTP source. In certain scenarios, it may take awhile for the new remote system to send RTP packets, while the old remote system may continue providing RTP during that time period. This causes Asterisk to re-lock onto the old source, thereby rejecting the new source when the old source stops sending RTP and the new source begins. This patch prevents that by having a constant secondary, 'secret' probation mode enabled when an RTP source has been chosen. RTP packets from other sources are always considered, but never chosen unless the current RTP source stops sending RTP. Review: https://reviewboard.asterisk.org/r/2364 (closes issue AST-1124) Reported by: John Bigelow Tested by: John Bigelow (closes issue AST-1125) Reported by: John Bigelow Tested by: John Bigelow ........ Merged revisions 382573 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@382589 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 953844192..627924bed 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -25310,13 +25310,13 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, str
if (get_ip_and_port_from_sdp(req, SDP_AUDIO, &addr)) {
ast_log(LOG_WARNING, "Failed to set an alternate media source on glared reinvite. Audio may not work properly on this call.\n");
} else {
- ast_rtp_instance_set_alt_remote_address(p->rtp, &addr);
+ ast_rtp_instance_set_remote_address(p->rtp, &addr);
}
if (p->vrtp) {
if (get_ip_and_port_from_sdp(req, SDP_VIDEO, &addr)) {
ast_log(LOG_WARNING, "Failed to set an alternate media source on glared reinvite. Video may not work properly on this call.\n");
} else {
- ast_rtp_instance_set_alt_remote_address(p->vrtp, &addr);
+ ast_rtp_instance_set_remote_address(p->vrtp, &addr);
}
}
}