MT#62876 Call transfer: force reconnected to rtp direct

Force the leg being connected instead of the replaced one
to the rtp_relay_mode = RTP_Direct, because otherwise
legs can get SEMS involved into rtp relay after a transfer
is finished.

Change-Id: Ifb55feaa7813fc303a663ac132b0bfe175772ce0
mr13.5
Donat Zenichev 1 year ago
parent ef86e68338
commit 458f4b7eca

@ -1581,7 +1581,11 @@ void CallLeg::replaceExistingLeg(const string &session_tag, const string &hdrs)
auto rev = std::make_unique<ReconnectLegEvent>(a_leg ? ReconnectLegEvent::B : ReconnectLegEvent::A, getLocalTag(), hdrs, dlg->established_body);
rev->setMedia(b.media_session, rtp_relay_mode);
/* TODO: we don't really want to preserve relay mode, even if it's the case
* better just to keep RTP mode direct, because otherwise SEMS can suddenly get involved
* into RTP relay after transfer is finished */
//rev->setMedia(b.media_session, rtp_relay_mode);
ILOG_DLG(L_INFO, "Force rtp_relay_mode = RTP_Direct for the leg being connected instead.\n");
auto ev = std::make_unique<ReplaceLegEvent>(getLocalTag(), rev.release());

Loading…
Cancel
Save