From 7ec3f703f5b46646b637148f837098b308f01810 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Fri, 2 Feb 2018 11:44:21 +0100 Subject: [PATCH] Fix multicast tester. --- src/call/call.cpp | 5 ++++- src/chat/chat-room/client-group-chat-room.cpp | 1 + src/conference/session/call-session-p.h | 2 +- src/conference/session/call-session.cpp | 13 +++++-------- src/conference/session/media-session.cpp | 6 ++++++ tester/tester.c | 2 +- 6 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/call/call.cpp b/src/call/call.cpp index a180842e2..4e00dcf2b 100644 --- a/src/call/call.cpp +++ b/src/call/call.cpp @@ -72,7 +72,10 @@ void CallPrivate::initiateIncoming () { } bool CallPrivate::initiateOutgoing () { - return getActiveSession()->initiateOutgoing(); + shared_ptr session = getActiveSession(); + bool defer = session->initiateOutgoing(); + session->getPrivate()->createOp(); + return defer; } void CallPrivate::iterate (time_t currentRealTime, bool oneSecondElapsed) { diff --git a/src/chat/chat-room/client-group-chat-room.cpp b/src/chat/chat-room/client-group-chat-room.cpp index 258076fc9..bf6c6e13c 100644 --- a/src/chat/chat-room/client-group-chat-room.cpp +++ b/src/chat/chat-room/client-group-chat-room.cpp @@ -72,6 +72,7 @@ shared_ptr ClientGroupChatRoomPrivate::createSession () { myCleanedAddress.removeUriParam("gr"); // Remove gr parameter for INVITE session->configure(LinphoneCallOutgoing, nullptr, nullptr, myCleanedAddress, focus->getPrivate()->getDevices().front()->getAddress()); session->initiateOutgoing(); + session->getPrivate()->createOp(); return session; } diff --git a/src/conference/session/call-session-p.h b/src/conference/session/call-session-p.h index 752a82288..091fd20ca 100644 --- a/src/conference/session/call-session-p.h +++ b/src/conference/session/call-session-p.h @@ -42,6 +42,7 @@ public: bool startPing (); void setPingTime (int value) { pingTime = value; } + void createOp (); CallSessionParams *getCurrentParams () const { return currentParams; } LinphoneProxyConfig * getDestProxy () const { return destProxy; } SalCallOp * getOp () const { return op; } @@ -95,7 +96,6 @@ protected: private: void completeLog (); - void createOp (); void createOpTo (const LinphoneAddress *to); LinphoneAddress * getFixedContact () const; diff --git a/src/conference/session/call-session.cpp b/src/conference/session/call-session.cpp index 33be3b4c0..97aa06f6f 100644 --- a/src/conference/session/call-session.cpp +++ b/src/conference/session/call-session.cpp @@ -212,6 +212,10 @@ void CallSessionPrivate::setParams (CallSessionParams *csp) { params = csp; } +void CallSessionPrivate::createOp () { + createOpTo(log->to); +} + bool CallSessionPrivate::isInConference () const { return params->getPrivate()->getInConference(); } @@ -735,10 +739,6 @@ void CallSessionPrivate::completeLog () { linphone_core_report_call_log(q->getCore()->getCCore(), log); } -void CallSessionPrivate::createOp () { - createOpTo(log->to); -} - void CallSessionPrivate::createOpTo (const LinphoneAddress *to) { L_Q(); if (op) @@ -1014,10 +1014,7 @@ bool CallSession::initiateOutgoing () { d->log->start_date_time = ms_time(nullptr); if (!d->destProxy) defer = d->startPing(); - if (d->direction == LinphoneCallOutgoing) { - d->createOpTo(d->log->to); - } - return defer; + return defer; } void CallSession::iterate (time_t currentRealTime, bool oneSecondElapsed) { diff --git a/src/conference/session/media-session.cpp b/src/conference/session/media-session.cpp index 861f9d24f..013406e9f 100644 --- a/src/conference/session/media-session.cpp +++ b/src/conference/session/media-session.cpp @@ -999,8 +999,12 @@ void MediaSessionPrivate::fillMulticastMediaAddresses () { L_Q(); if (getParams()->audioMulticastEnabled()) mediaPorts[mainAudioStreamIndex].multicastIp = linphone_core_get_audio_multicast_addr(q->getCore()->getCCore()); + else + mediaPorts[mainAudioStreamIndex].multicastIp.clear(); if (getParams()->videoMulticastEnabled()) mediaPorts[mainVideoStreamIndex].multicastIp = linphone_core_get_video_multicast_addr(q->getCore()->getCCore()); + else + mediaPorts[mainVideoStreamIndex].multicastIp.clear(); } int MediaSessionPrivate::selectFixedPort (int streamIndex, pair portRange) { @@ -4022,6 +4026,7 @@ void MediaSession::configure (LinphoneCallDir direction, LinphoneProxyConfig *cf if (direction == LinphoneCallOutgoing) { d->selectOutgoingIpVersion(); d->getLocalIp(to); + d->initializeStreams(); // Reserve the sockets immediately d->getCurrentParams()->getPrivate()->setUpdateCallWhenIceCompleted(d->getParams()->getPrivate()->getUpdateCallWhenIceCompleted()); d->fillMulticastMediaAddresses(); if (d->natPolicy && linphone_nat_policy_ice_enabled(d->natPolicy)) @@ -4049,6 +4054,7 @@ void MediaSession::configure (LinphoneCallDir direction, LinphoneProxyConfig *cf lWarning() << "ICE not supported for incoming INVITE without SDP"; } } + d->initializeStreams(); // Reserve the sockets immediately if (d->natPolicy) d->runStunTestsIfNeeded(); d->discoverMtu(cleanedFrom); diff --git a/tester/tester.c b/tester/tester.c index 6acc43382..0b8a86d36 100644 --- a/tester/tester.c +++ b/tester/tester.c @@ -602,7 +602,7 @@ void liblinphone_tester_add_suites() { #ifdef VIDEO_ENABLED bc_tester_add_suite(&video_test_suite); #endif // ifdef VIDEO_ENABLED - //bc_tester_add_suite(&multicast_call_test_suite); + bc_tester_add_suite(&multicast_call_test_suite); bc_tester_add_suite(&proxy_config_test_suite); #if HAVE_SIPP bc_tester_add_suite(&complex_sip_call_test_suite);