summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2013-02-28 21:59:56 +0000
committerJoshua Colp <jcolp@digium.com>2013-02-28 21:59:56 +0000
commit3a8caa351e6b7a3d19f7f542e873ffba3099a587 (patch)
tree7edba011ae1666cb84a925545fef04bd65a6782d
parent50a74cbd2a29b237e6d835310a11de8624d2d8e1 (diff)
While the ICE negotiation is occurring leave strictrtp in an open state, media can and will come from different places.
........ Merged revisions 382298 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@382299 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--res/res_rtp_asterisk.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c
index 560314fe4..fadace763 100644
--- a/res/res_rtp_asterisk.c
+++ b/res/res_rtp_asterisk.c
@@ -536,6 +536,7 @@ static void ast_rtp_ice_start(struct ast_rtp_instance *instance)
pj_ice_sess_start_check(rtp->ice);
pj_timer_heap_poll(timerheap, NULL);
rtp->ice_started = 1;
+ rtp->strict_rtp_state = STRICT_RTP_OPEN;
}
}
@@ -1026,7 +1027,7 @@ static void ast_rtp_on_ice_complete(pj_ice_sess *ice, pj_status_t status)
{
struct ast_rtp *rtp = ice->user_data;
- if (status != PJ_SUCCESS || !strictrtp) {
+ if (!strictrtp) {
return;
}
@@ -3955,7 +3956,7 @@ static void ast_rtp_remote_address_set(struct ast_rtp_instance *instance, struct
rtp->rxseqno = 0;
- if (strictrtp) {
+ if (strictrtp && rtp->strict_rtp_state != STRICT_RTP_OPEN) {
rtp->strict_rtp_state = STRICT_RTP_LEARN;
rtp_learning_seq_init(rtp, rtp->seqno);
}