.... kamailio.cfg ...
# RTPProxy control
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;
rtpproxy_manage();
if (is_request()) {
if (!has_totag()) {
add_rr_param(";nat=yes");
}
}
if (is_reply()) {
if(isbflagset(FLB_NATB)) {
fix_nated_contact();
}
}
#!endif
return;
}
Testing call:
Whe User 1-100 calling User 1-101, on Asterisk side I see:
-- Called SIP/
1-100@sip1.somedomain.com.ua
-- SIP/sip1.somedomain.com.ua-000004cf is ringing
-- SIP/sip1.somedomain.com.ua-000004cf answered
SIP/1-101-000004ce
> 0x15bc370 -- Probation passed - setting RTP source
address to
1.1.1.1:50868
> 0x7f2b6044bd10 -- Probation passed - setting RTP
source address to
1.1.1.1:35082
Got RTP packet from
1.1.1.1:50868 (type 00, seq
027109, ts 000160, len 000160)
Sent RTP packet to
1.1.1.1:35082 (type 00, seq
037469, ts 000160, len 000160)
Got RTP packet from
1.1.1.1:50868 (type 00, seq
027110, ts 000320, len 000160)
Sent RTP packet to
1.1.1.1:35082 (type 00, seq
037470, ts 000320, len 000160)
Got RTP packet from
1.1.1.1:50868 (type 00, seq
027111, ts 000480, len 000160)
Sent RTP packet to
1.1.1.1:35082 (type 00, seq
037471, ts 000480, len 000160)
Got RTP packet from
1.1.1.1:50868 (type 00, seq
027112, ts 000640, len 000160)
Sent RTP packet to
1.1.1.1:35082 (type 00, seq
037472, ts 000640, len 000160)
Voice transfers OK.
But why not Kamailio LAN ip I receiving on the Asterisk side
with the same LAN?
And Kamailio log grep:
skynet:~ # tail -f /var/log/messages | grep rtpproxy
2013-08-05T19:18:17.508760+03:00 skynet kamailio[25462]:
3(25481) DEBUG: rtpproxy [rtpproxy_funcs.c:148]:
check_content_type(): type <application/sdp> found valid
2013-08-05T19:18:17.508875+03:00 skynet kamailio[25462]:
3(25481) DEBUG: rtpproxy [rtpproxy.c:2624]: force_rtp_proxy():
proxy reply: 63566 1.1.1.1
2013-08-05T19:18:17.530765+03:00 skynet kamailio[25462]:
6(25484) DEBUG: rtpproxy [rtpproxy_funcs.c:148]:
check_content_type(): type <application/sdp> found valid
2013-08-05T19:18:17.530876+03:00 skynet kamailio[25462]:
6(25484) DEBUG: rtpproxy [rtpproxy.c:2624]: force_rtp_proxy():
proxy reply: 41958 1.1.1.1
2013-08-05T19:18:18.625815+03:00 skynet kamailio[25462]:
4(25482) DEBUG: rtpproxy [rtpproxy_funcs.c:148]:
check_content_type(): type <application/sdp> found valid
2013-08-05T19:18:18.627131+03:00 skynet kamailio[25462]:
4(25482) DEBUG: rtpproxy [rtpproxy.c:2624]: force_rtp_proxy():
proxy reply: 39876 1.1.1.1
2013-08-05T19:18:18.632649+03:00 skynet kamailio[25462]:
a=nortpproxy:yes
2013-08-05T19:18:18.648075+03:00 skynet kamailio[25462]:
6(25484) DEBUG: rtpproxy [rtpproxy_funcs.c:148]:
check_content_type(): type <application/sdp> found valid
2013-08-05T19:18:18.649615+03:00 skynet kamailio[25462]:
6(25484) DEBUG: rtpproxy [rtpproxy.c:2624]: force_rtp_proxy():
proxy reply: 43500 1.1.1.1
2013-08-05T19:18:18.653948+03:00 skynet kamailio[25462]:
a=nortpproxy:yes
2013-08-05T19:18:18.688603+03:00 skynet kamailio[25462]:
4(25482) DEBUG: rtpproxy [rtpproxy_funcs.c:148]:
check_content_type(): type <application/sdp> found valid
2013-08-05T19:18:18.689762+03:00 skynet kamailio[25462]:
4(25482) DEBUG: rtpproxy [rtpproxy.c:2624]: force_rtp_proxy():
proxy reply: 63566 1.1.1.1
2013-08-05T19:18:18.701062+03:00 skynet kamailio[25462]:
6(25484) DEBUG: rtpproxy [rtpproxy_funcs.c:148]:
check_content_type(): type <application/sdp> found valid
2013-08-05T19:18:18.701405+03:00 skynet kamailio[25462]:
6(25484) DEBUG: rtpproxy [rtpproxy.c:2624]: force_rtp_proxy():
proxy reply: 43500 1.1.1.1
2013-08-05T19:18:18.705506+03:00 skynet kamailio[25462]:
a=nortpproxy:yes
My goal is using Asterisk boxes behind Kamailio with the
same LAN or even OpeVPN Lan2Lan, with Public IP on Kamailio
WAN for users registration and RTP routing. So is strange to
my, why RTPproxy not rewrite source of RTP traffic from PUBLIC
Kamailio IP to LAN Kamailio IP when user A calls B via
Asterisk?