Now I need to hide local topology: rewrite public ip addresses in sip/sdp headers with internal kamailio address (10.10.10.7) for incoming requests, rewrite internal softswitch address with public kamailio ip address (10.7.7.7) and forward rtp packets. So, I have rtpproxy running:
$ ps aux | grep rtpproxy rtpproxy 12568 97.8 0.0 98588 988 ? Ssl 13:57 14:02 /usr/bin/rtpproxy -p /var/run/rtpproxy.pid -u rtpproxy -F -s udp:127.0.0.1 22222 -l 10.7.7.7 10.10.10.7 -d DBUG LOG_LOCAL0 -u rtpproxy
My kamailio configuration looks like:
loadmodule "mi_fifo.so" loadmodule "kex.so" loadmodule "tm.so" loadmodule "sl.so" loadmodule "pv.so" loadmodule "nathelper.so" loadmodule "rtpproxy.so"
modparam("mi_fifo", "fifo_name", "/tmp/kamailio_fifo")
modparam("nathelper", "received_avp", "$avp(RECEIVED)")
modparam("rtpproxy", "rtpproxy_sock", "udp:127.0.0.1:22222")
route { force_rport(); if (nat_uac_test("19")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); } } rtpproxy_manage("cwei"); $du = "sip:10.10.10.50:5060;transport=udp"; forward(); }
onreply_route { rtpproxy_manage("cwie"); fix_nated_contact(); return(1); }
I see additional Via header with internal kamailio address in forwarded REGISTER, but all other headers contains public ip addresses.
What is wrong in my configuration and how to fix it?