From 89d43744f5bc37f68a27c1901be7b155c64771bc Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Thu, 12 Apr 2018 17:59:42 +0200 Subject: [PATCH] Rewrite of commit 419281 from master branch (fix ICE bug and leak in test) --- src/conference/session/media-session.cpp | 2 ++ tester/call_multi_tester.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/conference/session/media-session.cpp b/src/conference/session/media-session.cpp index 29beeb763..694ef27fd 100644 --- a/src/conference/session/media-session.cpp +++ b/src/conference/session/media-session.cpp @@ -279,6 +279,7 @@ void MediaSessionPrivate::remoteRinging () { getCurrentParams()->setPrivacy((LinphonePrivacyMask)op->get_privacy()); SalMediaDescription *md = op->get_final_media_description(); if (md) { + SalMediaDescription *rmd = op->get_remote_media_description(); /* Initialize the remote call params by invoking linphone_call_get_remote_params(). This is useful as the SDP may not be present in the 200Ok */ q->getRemoteParams(); /* Accept early media */ @@ -300,6 +301,7 @@ void MediaSessionPrivate::remoteRinging () { if (listener) listener->onStopRinging(q->getSharedFromThis()); lInfo() << "Doing early media..."; + iceAgent->updateFromRemoteMediaDescription(localDesc, rmd, !op->is_offerer()); updateStreams(md, state); if ((q->getCurrentParams()->getAudioDirection() == LinphoneMediaDirectionInactive) && audioStream) { if (listener) diff --git a/tester/call_multi_tester.c b/tester/call_multi_tester.c index da58f20eb..913eb43ec 100644 --- a/tester/call_multi_tester.c +++ b/tester/call_multi_tester.c @@ -1151,10 +1151,12 @@ void do_not_stop_ringing_when_declining_one_of_two_incoming_calls(void) { pauline_called_by_marie=linphone_core_get_current_call(marie->lc); linphone_call_decline(pauline_called_by_laure, LinphoneReasonDeclined); BC_ASSERT_TRUE(wait_for(laure->lc,pauline->lc,&pauline->stat.number_of_LinphoneCallEnd,1)); + BC_ASSERT_TRUE(wait_for(laure->lc,pauline->lc,&pauline->stat.number_of_LinphoneCallReleased,1)); BC_ASSERT_TRUE(linphone_ringtoneplayer_is_started(linphone_core_get_ringtoneplayer(pauline->lc))); linphone_call_terminate(pauline_called_by_marie); BC_ASSERT_TRUE(wait_for(marie->lc,pauline->lc,&pauline->stat.number_of_LinphoneCallEnd,2)); + BC_ASSERT_TRUE(wait_for(marie->lc,pauline->lc,&pauline->stat.number_of_LinphoneCallReleased,2)); linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline);