MT#63557 AmB2BSession::onB2BEvent: don't prevent non-fwd updates

If this is an SDP answer (provided by non-fwd 200OK),
don't hesitate to update the original leg originated this
INVITE transaction.

Originally this was prevented by the
56115ed5dd00f7ce9271e97e5933a9745eb31435
of the original (root) SEMS project, in order to fix
some of the Click2Dial scenarios of the according
Click2Dial app. Original message from it:

    don't refresh for establishing transaction

    fixes click2dial application.

    In the B2BUA, usually a refresh is done if the established session
    description has changed on the other leg (e.g. initiated by SST
    refresh from the middle). This fix prevents that refresh for the
    initial transaction, where the re-INVITE to caller is done explicitely.

It seems that this commit somehow introduces this logic also
for those legs, which aren't actually establishing but are in need
for the SDP media updates. So just remove it.

Change-Id: I3acf7d3d9ceaa3c8d7a8ba0f7a5c6973646bc2af
mr14.1
Donat Zenichev 9 months ago
parent 50bc94cadd
commit 1609823c1a

@ -537,16 +537,16 @@ void AmB2BSession::onB2BEvent(B2BEvent* ev)
{
if (updateSessionDescription(reply_ev->reply.body)) {
if (reply_ev->reply.cseq != est_invite_cseq) {
if (dlg->getUACInvTransPending()) {
ILOG_DLG(L_DBG, "changed session, but UAC INVITE trans pending\n");
/* todo(?): save until trans is finished? */
return;
}
ILOG_DLG(L_DBG, "session description changed - refreshing\n");
sendEstablishedReInvite();
} else {
ILOG_DLG(L_DBG, "reply to establishing INVITE request - not refreshing\n");
if (dlg->getUACInvTransPending()) {
ILOG_DLG(L_DBG, "changed session, but UAC INVITE trans pending\n");
/* TODO: save until trans is finished? */
return;
}
ILOG_DLG(L_DBG, "session description changed - refreshing\n");
if (sendEstablishedReInvite() < 0) {
ILOG_DLG(L_ERR, "could not re-Invite after locally initiated request"
"in B2B leg changed session (this='%s', other='%s')\n",
getLocalTag().c_str(), other_id.c_str());
}
}

Loading…
Cancel
Save