I've found that there was a similar problem to mine here: http://www.nabble.com/openser-as-proxy-relay-t4384188.html. Here is my openser.cfg:
# ----------- global configuration parameters ------------------------
debug=3 # debug level (cmd line: -dddddddddd) fork=yes log_stderror=no # (cmd line: -E) children=4 sip_warning=yes log_facility=LOG_LOCAL7 disable_dns_blacklist=true
dns=no rev_dns=no
port=5060
#set module path mpath="/usr/local/lib/openser/modules/"
loadmodule "mysql.so" loadmodule "sl.so" loadmodule "tm.so" loadmodule "rr.so" loadmodule "maxfwd.so" loadmodule "usrloc.so" loadmodule "registrar.so" loadmodule "auth.so" loadmodule "auth_db.so" loadmodule "uri.so" loadmodule "uri_db.so" loadmodule "nathelper.so" loadmodule "textops.so" loadmodule "mi_fifo.so"
#modparam("auth_db|uri_db|usrloc", "db_url", "mysql://ser:heslo@localhost/ser") #modparam("auth_db", "calculate_ha1", 1) #modparam("auth_db", "password_column", "password")
modparam("nathelper", "natping_interval", 30) modparam("nathelper", "ping_nated_only", 1) modparam("nathelper", "rtpproxy_sock", "unix:/var/run/rtpproxy.sock")
modparam("usrloc", "db_mode", 0)
modparam("usrloc", "nat_bflag", 6)
modparam("rr", "enable_full_lr", 1)
modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
route {
# ----------------------------------------------------------------- # Sanity Check Section # ----------------------------------------------------------------- if (!mf_process_maxfwd_header("10")) { sl_send_reply("483", "Too Many Hops"); exit; };
if (msg:len > max_len) { sl_send_reply("513", "Message Overflow"); exit; };
# ----------------------------------------------------------------- # Record Route Section # ----------------------------------------------------------------- if (method!="REGISTER") { record_route(); };
if (method=="BYE" || method=="CANCEL") { unforce_rtp_proxy(); }
# ----------------------------------------------------------------- # Loose Route Section # ----------------------------------------------------------------- if (loose_route()) {
if ((method=="INVITE" || method=="REFER") && !has_totag()) { sl_send_reply("403", "Forbidden"); exit; };
if (method=="INVITE") {
if (nat_uac_test("19")) { setflag(6); force_rport(); fix_nated_contact(); }; force_rtp_proxy("l"); }; route(1); exit; };
# ----------------------------------------------------------------- # Call Type Processing Section # ----------------------------------------------------------------- if (uri!=myself) { route(4); route(1); exit; };
if (method=="ACK") { route(1); exit; } else if (method=="CANCEL") { route(1); exit; } else if (method=="INVITE") { route(3); exit; } else if (method=="REGISTER") { route(2); exit; };
lookup("aliases"); if (uri!=myself) { route(4); route(1); exit; };
if (!lookup("location")) { sl_send_reply("404", "User Not Found"); exit; };
route(1); }
route[1] {
# ----------------------------------------------------------------- # Default Message Handler # -----------------------------------------------------------------
t_on_reply("1");
if (!t_relay()) { if (method=="INVITE" && isflagset(6)) { unforce_rtp_proxy(); }; sl_reply_error(); }; }
route[2] {
# ----------------------------------------------------------------- # REGISTER Message Handler # ----------------------------------------------------------------
if (!search("^Contact:[ ]**") && nat_uac_test("19")) { setflag(6); fix_nated_contact(); force_rport(); };
sl_send_reply("100", "Trying"); route(1);
if (!save("location")) { sl_reply_error(); }; }
route[3] {
# ----------------------------------------------------------------- # INVITE Message Handler # ----------------------------------------------------------------- if (nat_uac_test("19")) { setflag(6); }
lookup("aliases"); if (uri!=myself) { route(4); route(1); exit; };
if (!lookup("location")) { sl_send_reply("404", "User Not Found"); exit; };
route(4); route(1); }
route[4] {
# ----------------------------------------------------------------- # NAT Traversal Section # -----------------------------------------------------------------
if (isflagset(6)) { force_rport(); fix_nated_contact(); force_rtp_proxy(); } }
onreply_route[1] {
if (isflagset(6) && status=~"(180)|(183)|2[0-9][0-9]") { if (!search("^Content-Length:[ ]*0")) { force_rtp_proxy(); }; };
if (nat_uac_test("1")) { fix_nated_contact(); }; }
Hello,
I'm trying to make outbound proxy for my network using OpenSER. Currently I've configured OpenSER as sip registrar/rtpproxy and it works fine even with NAT traversal. The problem is that I don't how shuould I reconfigure my config to make it work as outbound proxy. I've tried many changes with no results. The first problem is how to correctly handle the register method. My config is based on: http://siprouter.onsip.org/doc/gettingstarted/ch08s02.html
Can anyone help me?
Best regards, Dawid Jaroslawski
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users