Hi serusers another simple problem making me crazy. I can't get my NATed clients to send ACKs and BYEs thru ser. After inviting another uac with ser taking care of the relay (setting up rtpproxy and fixing nat), any other signaling message doesn't even hit ser and gets lost. My configuration is the following: I have ser running on a machine with only private ip, but reachable from the internet via router public ip and port forwarding. I noticed that the INVITE is sent by uacs to the right public ip but then every other signal (ACKs, BYEs, CANCELs) is sent by uacs to ser private ip. Let me understand something more about ser, please. Any ideas why BYEs are sent to private ip? Is ser forcing the uacs to modify sip header whith its own ip? where is it doing this? maybe in record_route or in fix_nated_contact?
Thanks in advance to everyone who will make some light on my doubts.
Here is the stripped ser.cfg
listen=192.168.1.100
if (nat_uac_test("3")) { if (method == "REGISTER" || !search("^Record-Route:")) { fix_nated_contact(); if (method == "INVITE") { fix_nated_sdp("1"); }; force_rport(); setflag(6); }; };
record_route(); if (loose_route()) { route(1); };
if (method=="INVITE") { if (lookup("location")) { setflag(1); route(1); break; }; };
route[1] {
if (isflagset(6)){ force_rtp_proxy(); t_on_reply("1"); };
if (method == "BYE" || method == "CANCEL"){ setflag(1); };
if (!t_relay()){ sl_reply_error(); }; break; }