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!!??