Hi Raul Here it is,
# ----------- global configuration parameters ------------------------ debug=3 fork=yes log_stderror=yes children=1 disable_tcp=no log_facility=LOG_LOCAL0 # ------------------ module loading ---------------------------------- #set module path mpath="/usr/lib/kamailio/modules/" loadmodule "sl.so" loadmodule "tm.so" modparam("tm", "fr_timer", 5) modparam("tm", "fr_inv_timer_avp", "$avp(i:704)") loadmodule "rr.so" loadmodule "usrloc.so" loadmodule "maxfwd.so" loadmodule "textops.so" loadmodule "xlog.so" loadmodule "avpops.so" loadmodule "registrar.so" loadmodule "uri_db.so" loadmodule "db_mysql.so" loadmodule "siputils.so" loadmodule "auth.so" loadmodule "auth_db.so" loadmodule "mi_fifo.so" loadmodule "acc.so" loadmodule "pv.so" modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo") loadmodule "lcr.so" modparam("lcr", "db_url", "mysql://root:myp...@localhost/openser") modparam("lcr", "gw_uri_avp", "$avp(i:709)") modparam("lcr", "ruri_user_avp", "$avp(i:500)") modparam("lcr", "rpid_avp", "$avp(i:302)") modparam("lcr", "flags_avp", "$avp(i:712)") # ------------------------- request routing logic ------------------- route{ if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); exit; } route(4); if (has_totag()) { if (loose_route()) { if (is_method("BYE")) { setflag(1); setflag(3); } route(1); } else { if (is_method("SUBSCRIBE") && uri == myself) { route(2); exit; } if ( is_method("ACK") ) { if ( t_check_trans() ) { t_relay(); exit; } else { exit; } } sl_send_reply("404","Not here"); } exit; } if (is_method("CANCEL")) { if (t_check_trans()) t_relay(); exit; } t_check_trans(); route(3); if (!is_method("REGISTER|MESSAGE")) record_route(); if (is_method("INVITE")) { setflag(1); } if (!uri==myself) if( is_method("PUBLISH|SUBSCRIBE")) route(2); if (is_method("REGISTER")) { if (!save("location")) sl_reply_error(); exit; } if ($rU==NULL) { # request with no Username in RURI sl_send_reply("484","Address Incomplete"); exit; } if (!lookup("location")) { switch ($retcode) { case -1: case -3: t_newtran(); t_reply("404", "Not Found"); exit; case -2: sl_send_reply("405", "Method Not Allowed"); exit; } } setflag(2); route(1); } route[1] { if (!t_relay()) { sl_reply_error(); }; exit; } route[2] { if (!load_gws()) { sl_send_reply("503", "Unable to load gateways"); exit; } else { $var(i) = 0; while(is_avp_set("$(avp(i:709)[$var(i)])")) { xlog("L_INFO", "loading gw_uri_avp[$var(i)]='$(avp(i:709)[$var(i)])'\n"); $var(i) = $var(i) + 1; }; if(is_avp_set("$avp(i:709)")) { xlog("L_INFO", "trying gateway '$avp(i:709)'\n"); } else { xlog("L_INFO", "no available gateways ...\n"); }; if (next_gw()) { xlog("L_INFO", "ruri_user_avp='$avp(i:500)'\n"); t_on_failure("2"); route(1); } else { sl_send_reply("503", "No available gateways"); exit; }; }; exit; } failure_route[2] { xlog("L_INFO", "entering failure_route[2] for reply code '$T_reply_code'\n"); if (t_check_status("408|50[34]")) { if(is_avp_set("$avp(i:709)")) { xlog("L_INFO", "trying next gateway '$avp(i:709)'\n"); } else { xlog("L_INFO", "no more gateways to try ...\n"); }; if (next_gw()) { t_on_failure("2"); route(1); } else { t_reply("503", "No gateways"); exit; }; exit; }; } Rafael Moreno Matrix Telecom www.matrixtelecom.net.br / Phone: 55.11.3323-9207
_______________________________________________ Kamailio (OpenSER) - Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users http://lists.openser-project.org/cgi-bin/mailman/listinfo/users