You are nesting one problem description into another and it all does not
makes any sense to me.
Anyways, what i understand is that you are trying to engage two RTP proxies
in series from WAN to LAN to WAN again. So you need to create media bridge
at each kamailio instance that routes RTP traffic from WAN to LAN and
vice versa. This can NOT be achieved with rtp_manage(), you have to call
rtp_offer() and rtp_answer() for INVITE and its replies appropriately.
Additionally, read the RTP proxy module documentation, i think there is an
option to allow creation of RTP Proxy chains which will remove rtp proxy
markers and allow two proxies to coexist.
Hope this helps.
On Wed, 26 Feb 2020, 22:37 Voip support, <voipexpert0(a)gmail.com> wrote:
Dear Community,
I have a problem with rtpproxy not changing the SDP IP in connection
information in following scenario:
SIP1 -> kamailio1 + rtpproxy1 -> kamailio2 + rtpproxy2 -> SIP2
The first kamailio put SDP IP correctly (from rtpproxy) then the second
kamailio does not change SDP connection information.
I think its related to SDP body which has:
a=nortpproxy:yes
line added by kamailio1.
So i tried to remove the a=nortpproxy:yes line from SDP before calling
rtpproxy_manage.
But it looks like no difference in working - i think the SDP sent to
rtpproxy is still having the line even when i removed it.
The issue is not happening when i remove kamailio1 + rtpproxy1. In that
case my IP is put correctly in SDP in INVITE and in 200 OK.
In case of two kamailio with rtpproxy (kamailio1 and kamailio2) in
signalling path i am getting:
rtpproxy [rtpproxy.c:2586]: force_rtp_proxy(): incorrect port 0 in reply
from rtp proxy
for replies (SIP2 IP address in 200OK SDP is present instead of kamailio2
IP address).
For request INVITE i am not getting the error but the IP in SDP doesn't
change.
kamailio2 config is now like below (but the attempt to remove
a=nortpproxy:yes, did not work for me)
# RTPProxy control and signaling updates for NAT traversal
route[NATMANAGE] {
#!ifdef WITH_NAT
if (is_request()) {
if(has_totag()) {
if(check_route_param("nat=yes")) {
setbflag(FLB_NATB);
}
}
}
# if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB))) return; --
commented this out because sometimes rtpproxy was not used and i wanted to
use it always
# added below code to remove a=nortpproxy:yes from SDP before
rtpproxy_manage but its still not working
if( has_body("application/sdp") && (1 ==
sdp_get_line_startswith("$avp(nortpproxy)", "a=nortpproxy" )) ){
sdp_remove_line_by_prefix("a=nortpproxy:yes");
xlog("removed nortpproxy:yes from SDP");
}
if(nat_uac_test("8")) {
xlog("rtpproxy CO");
rtpproxy_manage("co","MY_PUBLIC_IP_HERE");
} else {
xlog("rtpproxy COR");
rtpproxy_manage("cor"," MY_PUBLIC_IP_HERE ");
}
if (is_request()) {
if (!has_totag()) {
if(t_is_branch_route()) {
add_rr_param(";nat=yes");
}
}
}
if (is_reply()) {
if(isbflagset(FLB_NATB)) {
if(is_first_hop())
set_contact_alias();
}
}
if(isbflagset(FLB_NATB)) {
# no connect message in a dialog involving NAT traversal
if (is_request()) {
if(has_totag()) {
set_forward_no_connect();
}
}
}
#!endif
return;
}
Best regards,
Tom
PS. thanks for any hints to resolve the issue.
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users