You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm testing transfers with b2b on opensips+rtpengine setup.
The scenario is:
A -INVITE--> Opensips -INVITE--> B
A <-200OK-- Opensips <-200OK-- B
------ Opensips <-REFER/302-- B
------ Opensips --INVITE-> C
------ Opensips <-200OK-- C
------ Opensips --BYE-> B
A <-re-INVITE-- Opensips --re-INVITE-> B
I'm using rtp_relay for SDP processing on new leg. Here is brief config i use:
route{
rtp_relay_engage("rtpengine", 0);
...
if (!has_totag()) {
b2b_server_new("caller",,$avp(extra_hdrs),$avp(extra_hdr_bodies));
b2b_client_new("callee", "$ru",,,,$avp(b2b_hdrs),$avp(b2b_hdr_bodies));
# initialize B2B session
xlog("L_INFO","[$ci] [$rm] [ROUTE] B2B logic key: $b2b_logic.key");
b2b_init_request("refer");
exit;
}
}
...
route[b2b_logic_request] {
if ($rm != "REFER") {
# for requests other than REFER, no special actions needs to be done,
# just pass the request to the peer
xlog("L_INFO", "[$ci] [$rm] [B2B_LOGIC_REQUEST] Passing request - From-tag: $ft, To-tag: $tt");
b2b_pass_request();
exit;
}
xlog("L_INFO", "[$ci] [$rm] [B2B_LOGIC_REQUEST] BLIND TRANSFER - Refer-To: $hdr(Refer-To)");
xlog("L_INFO", "[$ci] [$rm] [B2B_LOGIC_REQUEST] Refer-To: $hdr(Refer-To)");
xlog("L_INFO", "[$ci] [$rm] [B2B_LOGIC_REQUEST] PEER: $var(peer) CLIENT: $var(new_client)");
# Создаем новый INVITE третьей стороне
b2b_client_new($var(new_client), $hdr(refer-to),,,, $avp(b2b_hdrs), $avp(b2b_hdr_bodies));
# bridge the referrer's peer with the referee
b2b_bridge("peer",$var(new_client),,"notify,no-late-sdp");
}
route[b2b_logic_reply] {
if ( t_check_status("30[12]") ) {
xlog("L_INFO", "[$ci] [$rm] [B2B_LOGIC_REPLY] DIVERSION - From-tag: $ft, To-tag: $tt");
...
b2b_client_new("diversion", $var(redirected_contact),,,, $avp(b2b_hdrs), $avp(b2b_hdr_bodies));
b2b_bridge_retry("diversion");
}
b2b_handle_reply();
}
Describe the bug
I encountered and issue with incorrect SDP on re-invites on new leg either using REFER or 302 Moved for transfers.
In the scenario above INVITE from A to opensips and new leg on B is processed correctly, SDP is updated and rtpengine's IP is set.
New leg to C is created with correct SDP, rtpengine's IP. However if reINVITE from A comes later to update session SDP is not updated and IP of A is passed to C. The issue is present when using REFER with no-late-sdp or 302 Moved. When using default REFER behavior with late offer SDP in ACK is not updated by rtpengine's IP as well.
To Reproduce
Call from A to B via opensips
B sends REFER to transfer the call to C
Opensips accepts REFER and send INVITE to C
C accepts the call
Call with B is hung up
Opensips sends re-INVITE to both A and C with incorrect SDP
Expected behavior
re-INVITE sends rtpengine IP in SDP
Relevant System Logs
OS/environment information
Operating System: Ubuntu 22.04.1 LTS
OpenSIPS installation: git
Additional context
There was an issue opened by me with earlier version before which was closed. The problem persists.
The text was updated successfully, but these errors were encountered:
I'm testing transfers with b2b on opensips+rtpengine setup.
The scenario is:
A -INVITE--> Opensips -INVITE--> B
A <-200OK-- Opensips <-200OK-- B
------ Opensips <-REFER/302-- B
------ Opensips --INVITE-> C
------ Opensips <-200OK-- C
------ Opensips --BYE-> B
A <-re-INVITE-- Opensips --re-INVITE-> B
I'm using rtp_relay for SDP processing on new leg. Here is brief config i use:
OpenSIPS version you are running
Describe the bug
I encountered and issue with incorrect SDP on re-invites on new leg either using REFER or 302 Moved for transfers.
In the scenario above INVITE from A to opensips and new leg on B is processed correctly, SDP is updated and rtpengine's IP is set.
New leg to C is created with correct SDP, rtpengine's IP. However if reINVITE from A comes later to update session SDP is not updated and IP of A is passed to C. The issue is present when using REFER with
no-late-sdp
or 302 Moved. When using default REFER behavior with late offer SDP in ACK is not updated by rtpengine's IP as well.To Reproduce
Expected behavior
re-INVITE sends rtpengine IP in SDP
Relevant System Logs
OS/environment information
Additional context
There was an issue opened by me with earlier version before which was closed. The problem persists.
The text was updated successfully, but these errors were encountered: