Hi.
Problem:
SER doesn't talk to rtpproxy or mediaproxy. Nothing even in the syslog
file.
I'm running SER 0.8.14 on debian 2.4.27-1-686 machine. For whatever NAT
support I choose, it seems that I can't get right. I have followed
Paul's post and the default config file without success.
My NAT is a Linux box.
Scernario I: rtpproxy
**ser.cfg snippet - (debug=9)***
if (nat_uac_test("3")) {
log(1, "src address different than via header->NAT detected\n");
log(1, "force_rport and fix_nated_contact and setflag(6)\n");
if (method=="REGISTER" || ! search("^Record-Route:")) {
log(1, " ....it is Register....\n");
fix_nated_contact();# Rewrite contact with source IP of signalling
log(1, ".....fix_nated_contact....\n");
if (method=="INVITE") {
fix_nated_sdp("1");# Add direction=active to SDP
};
force_rport();# Add rport parameter to topmost Via
setflag(6);# Mark as NATed
};
append_hf("P-hint: fixed NAT contact for request\r\n");
};
****Starting rtpproxy****
# ./rtpproxy -f
rtpproxy: rtpproxy started, pid 30483)
****Starting SER****snippet***
1(31771) DEBUG: init_mod_child (-1): nathelper
1(31771) rtpp_test: RTP proxy found, support for it enabled
1(31771) DEBUG: init_mod_child (-1): auth_db
2(31772) DEBUG: init_mod_child (-2): group
2(31772) DEBUG: init_mod_child (-2): uri
2(31772) DEBUG: init_mod_child (-2): acc
2(31772) DEBUG: init_mod_child (-2): nathelper
2(31772) rtpp_test: RTP proxy found, support for it enabled
*****Registering client behind NAT*****snippet**
..............
0(31769) entering main loop
0(31769) DEBUG : is_maxfwd_present: max_forward header already found!
0(31769) DEBUG: is_maxfwd_present: value = 70
0(31769) check_via_address(130.2xx.2xx.xx, 10.0.0.17, 0)
0(31769) src address different than via header->NAT detected
0(31769) force_rport and fix_nated_contact and setflag(6)
0(31769) ....it is Register....
0(31769) parse_headers: flags=64
0(31769) .....fix_nated_contact....
0(31769) parse_headers: flags=-1
0(31769) DEBUG: get_hdr_body : content_length=0
0(31769) found end of header
0(31769) end of header reached, state=9
0(31769) parse_headers: flags=256
0(31769) find_first_route(): No Route headers found
0(31769) loose_route(): There is no Route HF
0(31769) check_self - checking if host==us: 16==14 && [mm.mml.mm.se]
== [192.16.xxx.xx]
0(31769) check_self - checking if port 5060 matches port 5060
0(31769) parse_headers: flags=4096
--------------------------------------------------------------------------
Scernario II: mediaproxy
**ser.cfg snippet - (debug=9)***
# Mark as NAT'ed
if (client_nat_test("3")) {
log(1, "Is NAted\n");
setflag(2);
log(1, "----NAted flag set----\n");
force_rport();
log(1, "...rport forced....\n");
fix_contact();
log(1, "...contact fixed...\n");
#break;
};
****Starting mediaproxy****
Feb 24 16:45:17 voip mediaproxy[29715]: mediaproxy started.
Feb 24 16:45:17 voip mediaproxy[29715]: Listening for commands on local
socket `/var/run/mediaproxy.sock'
Feb 24 16:45:17 voip mediaproxy[29715]: Listening for remote commands is
disabled
Feb 24 16:45:17 voip mediaproxy[29715]: Using IP address `192.16.xxx.xx'
for the RTP/RTCP proxy
Feb 24 16:45:18 voip proxydispatcher[29718]: proxydispatcher started.
Feb 24 16:45:18 voip proxydispatcher[29718]: Listening for commands on
local socket `/var/run/proxydispatcher.sock'
Feb 24 16:45:18 voip proxydispatcher[29718]: Default mediaproxy server
is on `/var/run/mediaproxy.sock'
****Starting SER****snippet***
0(0) fixing /usr/local/lib/ser/modules/maxfwd.so
mf_process_maxfwd_header
0(0) fixing /usr/local/lib/ser/modules/sl.so sl_send_reply
0(0) fixing /usr/local/lib/ser/modules/sl.so sl_send_reply
0(0) fixing /usr/local/lib/ser/modules/mediaproxy.so client_nat_test
0(0) fixing /usr/local/lib/ser/modules/mediaproxy.so fix_contact
0(0) fixing /usr/local/lib/ser/modules/registrar.so save
*****Registering client behind NAT*****snippet**
1(32184) ..............
1(32184) entering main loop
1(32184) DEBUG : is_maxfwd_present: max_forward header already found!
1(32184) DEBUG: is_maxfwd_present: value = 70
1(32184) parse_headers: flags=64
1(32184) Is NAted
1(32184) ----NAted flag set----
1(32184) ...rport forced....
1(32184) parse_headers: flags=64
1(32184) parse_headers: flags=33554432
1(32184) ...contact fixed...
1(32184) check_self - checking if host==us: 16==14 &&
[voip.ssvl.kth.se] == [192.16.xxx.xx]
1(32184) check_self - checking if port 5060 matches port 5060
1(32184) URI myself
1(32184) Method Register
1(32184) parse_headers: flags=-1
1(32184) DEBUG: get_hdr_body : content_length=0
1(32184) found end of header
1(32184) parse_headers: flags=33554432
1(32184) parse_headers: flags=-1
1(32184) check_via_address(130.2xx.2xx.xx, 10.0.0.17, 0)
1(32184) Success - Registration...
***END****
In both cases, tested separately:-
->UA get registered with the local IP,
->Check points set indicate "fix_nated_contact()" passed
Where is the problem!!??