thanks a lot.
I use the following and everything seems Ok ...
onreply_route[1] { if (status=~"(180)|(183)|2[0-9][0-9]") { if (!search("^Content-Length:[ ]*0")) { if (nat_uac_test("13")) { log(1, " - Reply behind NAT..."); setflag(7); force_rport(); fix_nated_contact(); fix_nated_sdp("3"); }; }; };
}
Kostas
samuel wrote:
I would add a condition like
if (!search("^Content-Length:[ ]*0")) { fix_mated_sdp() }
So replies without body (180,100,101,...) will not raise the ERROR you have in the logs.
It would be also nice to check wether the reply is not an error (>299) so you do not need to use NAT transversal for error replies. if (status=~"(180)|(183)|2[0-9][0-9]") {
} I recommend you to check www.onsip.org and the discussion about the on_reply route in the getting started and the config files.
Hope it helps,
Samuel.
2006/5/3, Kostas Marneris K.Marneris@otenet.gr:
Hello all,
I'm trying to find a solution to overcome the NAT issue using only the nathelper module. (I've already successfully worked with 'STUN' & 'MediaProxy' solutions but I'm trying also this).
- OUTBOUND direction:
--- INVITE handler --- ... # NAT Traversal mechanism for INVITEs if (nat_uac_test("19")) { setflag(7); force_rport(); fix_nated_contact(); fix_nated_sdp("3"); }; # ...
The solution above works fine for OUTBOUND calls, either on-net (a) or off-net (b). (For off-net calls I use a Cisco GW).
a/ SIP_UA_behind_NAT -------- SER ------- SIP_UA_on_public_IP b/ SIP_UA_behind_NAT -------- SER ------- Cisco_PSTN_GW ------- PSTN
- INBOUND direction:
route[1] { # Default Message Handler t_on_reply("1"); if (!t_relay()) { log(1, " - Cannot RELAY !!!"); sl_reply_error(); }; }
onreply_route[1] { if (nat_uac_test("19")) { log(1, " - Response behind NAT..."); setflag(7); force_rport(); fix_nated_contact(); fix_nated_sdp("3"); };
}
Although I have two-way audio between calling and called parties, I get the following logging mesgs :
May 3 17:22:26 server ./ser[13705]: ERROR: extract_body: message body has length zero May 3 17:22:26 server ./ser[13705]: ERROR: fix_nated_sdp: cannot extract body from msg! May 3 17:22:26 server ./ser[13705]: ERROR: on_reply processing failed
My question is : Is the above the correct way for NAT traversal of SIP Responses (200 OK) ? Do I have to add something else somewhere in ser.cfg ? Any idea on the log mesgs above ?
thanks in advance for any help, Kostas
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers