-
Notifications
You must be signed in to change notification settings - Fork 408
Description
Hi all,
I am using RTPEngine and OpenSIPS. It working great. But it is not working properly on Re-Invite cases.
Here is my scenario :
A initiates a Video call to B.
B accepts only audio call without video. Now both are connected. B can see A's Video and A can hear B's audio.
Now B sends Re Invite with Video option. A accept the call. Now in this case A can see B's video but B can't see A's video. It is completly frozen. But after sometime like 90 sec or more video started transmitting properly.
I am using RTPEngine and OpenSIPS and SIP.js as client side library.
RTPEngine Version : git-master-cdcf2ff
OpenSIPS version : opensips 2.3.0-dev (x86_64/linux)
Here is the OpenSIPS script :
if (has_totag()) {
# sequential requests within a dialog should
# take the path determined by record-routing
if (loose_route()) {
if (is_method("INVITE")) {
fix_nated_contact();
t_on_branch("handle_reinvite");
# even if in most of the cases is useless, do RR for
# re-INVITEs alos, as some buggy clients do change route set
# during the dialog.
xlog(" Re Invite is called ");
record_route();
}
}
}
if (is_method("INVITE"))
{
t_on_branch("handle_nat");
t_on_reply("handle_nat");
}
branch_route[handle_nat] {
if (!is_method("INVITE") || !has_body("application/sdp"))
return;
$var(rtpengine_flags) = "ICE=force DTLS=passive";
rtpengine_offer("$var(rtpengine_flags)");
}
branch_route[handle_reinvite] {
if (!is_method("INVITE") || !has_body("application/sdp"))
return;
t_on_reply("handle_reinvite");
$var(rtpengine_flags) = "ICE=force DTLS=passive";
rtpengine_offer("$var(rtpengine_flags)");
}
onreply_route[handle_nat] {
fix_nated_contact();
if (!has_body("application/sdp"))
return;
fix_nated_sdp("3");
$var(rtpengine_flags) = "ICE=force DTLS=passive";
rtpengine_offer("$var(rtpengine_flags)");
}
onreply_route[handle_reinvite] {
if (!has_body("application/sdp"))
return;
fix_nated_sdp("3");
$var(rtpengine_flags) = "ICE=force DTLS=passive";
rtpengine_answer("$var(rtpengine_flags)");
}
I am also attaching RTPEngine dubug log.
RTPEngine ReInvite issue.txt
Thank you in Advance.