Arun:
This depends a little on your configuration. Generally speaking the !load_gws and !next_gw would be in route block 0. You will most likely want to do any per-call checks or rewrites before determining which gateway should receive the call. The failure_route can be inserted after your route blocks.
-Steve
Arun Kumar wrote:
Hi,
thanks, One more thing can you please guide me where do I've to place this code in my ser.cfg.
thanks
arun
On 1/10/07, *Steve Blair * <blairs@isc.upenn.edu mailto:blairs@isc.upenn.edu> wrote:
Arun: I would try something like the following: if (!load_gws()) { sl_send_reply("500", "Server Internal Error - Cannot load gateways"); break; } else { xlog("L_INFO", "\n[SER]: - [$Tf] Method: <$rm> R-uri: <$ru> From: <$fu> To <$tu> : Successfully Loaded Gateway List\n"); }; ...... if (!next_gw()) { t_reply("503", "Service not available - No more gateways"); break; } else { t_on_failure("2"); <--- This will be where you load the next gateway t_relay(); break; }; failure_route[2] { if (!next_gw()) { xlog("L_CRIT","No more gateways for <$tu>\n"); t_reply("503", "Service not available - No more gateways"); break; } else { t_on_failure("2"); t_relay(); break; } } -Steve Arun Kumar wrote: > Hi > > thanks for your prompt reply but I've already checked and I'm not able > to make my lcr working by seeing these two pages I got this conf but > > This config is sending the call to my first gateway but when My first > gateway is down its not sending the calls to other gateways. Plese > help me to make this working. Here is my config file. > > ------------------------ > debug=3 > fork=no > log_stderror=yes > > listen= 192.168.2.210 <http://192.168.2.210> <http://192.168.2.210/> # INSERT YOUR IP > ADDRESS HERE > port=5060 > children=4 > > dns=no > rev_dns=no > fifo="/tmp/ser_fifo" > fifo_db_url="mysql://ser:pass@localhost/ser" > > loadmodule "/usr/local/lib/ser/modules > /mysql.so" > loadmodule "/usr/local/lib/ser/modules/sl.so" > loadmodule "/usr/local/lib/ser/modules/tm.so" > loadmodule "/usr/local/lib/ser/modules/rr.so" > loadmodule "/usr/local/lib/ser/modules/maxfwd.so" > loadmodule "/usr/local/lib/ser/modules/usrloc.so" > loadmodule "/usr/local/lib/ser/modules/registrar.so" > loadmodule "/usr/local/lib/ser/modules/auth.so" > loadmodule "/usr/local/lib/ser/modules/auth_db.so" > loadmodule "/usr/local/lib/ser/modules/uri.so" > loadmodule "/usr/local/lib/ser/modules/uri_db.so" > loadmodule "/usr/local/lib/ser/modules/domain.so" > loadmodule "/usr/local/lib/ser/modules/nathelper.so" > loadmodule "/usr/local/lib/ser/modules/avpops.so" > loadmodule "/usr/local/lib/ser/modules/textops.so" > loadmodule "/usr/local/lib/ser/modules/mediaproxy.so" > loadmodule "/usr/local/lib/ser/modules/permissions.so" > loadmodule "/usr/local/lib/ser/modules/acc.so" > loadmodule "/usr/local/lib/ser/modules/auth_radius.so" > loadmodule "/usr/local/lib/ser/modules/lcr.so" > > > modparam("auth_db|permissions|uri_db|usrloc|domain", "db_url", " > mysql://ser:pass@localhost/ser") > modparam("auth_db", "calculate_ha1", 1) > modparam("auth_db", "password_column", "password") > modparam("nathelper", "rtpproxy_disable", 1) > modparam("nathelper", "natping_interval", 0) > > modparam("mediaproxy","natping_interval", 30) > modparam("mediaproxy","mediaproxy_socket", "/var/run/mediaproxy.sock") > # > modparam("mediaproxy","sip_asymmetrics","/usr/local/etc/ser/sip-clients") > # > modparam("mediaproxy","rtp_asymmetrics","/usr/local/etc/ser/rtp-clients") > > modparam("usrloc", "db_mode", 2) > > modparam("registrar", "nat_flag", 6) > > modparam("rr", "enable_full_lr", 1) > > modparam("tm", "fr_inv_timer", 120) > modparam("tm", "fr_inv_timer_avp", "inv_timeout") > > modparam("permissions", "db_mode", 1) > modparam("permissions", "trusted_table", "trusted") > > modparam("lcr","db_url", "mysql://ser:pass@localhost/ser") > modparam("lcr","gw_table","gw") > modparam("lcr","gw_name_column","gw_name") > modparam("lcr","ip_addr_column","ip_addr") > modparam("lcr","port_column","port") > modparam("lcr","grp_id_column","grp_id") > modparam("lcr","lcr_table","lcr") > modparam("lcr","prefix_column","prefix") > modparam("lcr","from_uri_column","from_uri") > modparam("lcr","priority_column","priority") > modparam("lcr","contact_avp","1401") > modparam("lcr","fr_inv_timer_avp","fr_inv_timer_avp") > modparam("lcr","fr_inv_timer",90) > modparam("lcr","fr_inv_timer_next",60) > # ------ Account and Radius modules-------------- > modparam("acc", "db_url", " mysql://ser:pass@localhost/ser") > > modparam("acc","log_level",1) > modparam("acc","log_flag",1) > modparam("acc", "db_flag", 1) > > modparam("acc","radius_flag",1) > modparam("acc","service_type",15) > #modparam("acc","radius_config","/usr/local/etc/radiusclient-ng/radiusclient.conf") > > > route { > > # ----------------------------------------------------------------- > # Sanity Check Section > # ----------------------------------------------------------------- > if (!mf_process_maxfwd_header("10")) { > sl_send_reply("483", "Too Many Hops"); > break; > }; > > if (msg:len > max_len) { > sl_send_reply("513", "Message Overflow"); > break; > }; > > # ----------------------------------------------------------------- > # Record Route Section > # ----------------------------------------------------------------- > if (method=="INVITE" && client_nat_test("3")) { # setflag(1); > # INSERT YOUR IP ADDRESS HERE > record_route_preset("192.168.2.210:5060 <http://192.168.2.210:5060> > <http://192.168.2.210:5060/>;nat=yes"); > } else if (method!="REGISTER") { > record_route(); > }; > # ----------------------------------------------------------------- > # Call Tear Down Section > # ----------------------------------------------------------------- > if (method=="BYE" || method=="CANCEL") { setflag(1); > end_media_session(); > }; > > # ----------------------------------------------------------------- > # Loose Route Section > # ----------------------------------------------------------------- > if (loose_route()) { > > if ((method=="INVITE" || method=="REFER") && !has_totag()) { > sl_send_reply("403", "Forbidden Cant cross 1st bridge"); > break; > }; > > if (method=="INVITE") { > > if (!allow_trusted()) { > > if (!proxy_authorize("","subscriber")) { > proxy_challenge("","0"); > break; > } else if (!check_from()) { > sl_send_reply("403", "Use From=ID"); > break; > }; > > consume_credentials(); > }; > > if (client_nat_test("3")||search("^Route:.*;nat=yes")){ > setflag(6); > use_media_proxy(); > }; > }; > > route(1); > break; > }; > # ----------------------------------------------------------------- > # Call Type Processing Section > # ----------------------------------------------------------------- > if (!is_uri_host_local()) { > if (is_from_local() || allow_trusted()) { > sl_send_reply("404", "I am trusted host, "); > route(4); > route(1); > } else { > sl_send_reply("403", "Forbidden, I am here"); > }; > break; > }; > > if (method=="ACK") { setflag(1); > route(1); > break; > } if (method=="CANCEL") { setflag(1); > route(1); > break; > } else if (method=="INVITE") { setflag(1); > # sl_send_reply("410", "I am sending your call, "); > route(3); > break; > } else if (method=="REGISTER") { > route(2); > break; > }; > > lookup("aliases"); > if (!is_uri_host_local()) { > route(4); > route(1); > break; > }; > > if (!lookup("location")) { > sl_send_reply("404", "User Not Found"); > break; > }; > > route(1); > } > > route[1] { > > # ----------------------------------------------------------------- > # Default Message Handler > # ----------------------------------------------------------------- > > t_on_reply("1"); > > if (!t_relay()) { > > if (method=="INVITE" || method=="ACK") { setflag(1); > end_media_session(); > }; > > sl_reply_error(); > }; > } > > route[2] { > > # ----------------------------------------------------------------- > # REGISTER Message Handler > # ----------------------------------------------------------------- > > sl_send_reply("100", "Trying"); > > if (!search("^Contact:[ ]*\*") && client_nat_test("7")) { > setflag(6); > fix_nated_register(); > force_rport(); > }; > > if (!www_authorize("","subscriber")) { > www_challenge("","0"); > break; > }; > if (!check_to()) { > sl_send_reply("401", "Unauthorized"); > break; > }; > > consume_credentials(); > > if (!save("location")) { > sl_reply_error(); > }; > } > > route[3] { > > # ----------------------------------------------------------------- > # INVITE Message Handler > # ----------------------------------------------------------------- > > if (client_nat_test("3")) { > setflag(7); > force_rport(); > fix_nated_contact(); > }; > > if (!allow_trusted()) { > > if (!proxy_authorize("","subscriber")) { > proxy_challenge("","0"); > break; > } else if (!check_from()) { > sl_send_reply("403", "Use From=ID"); > break; > }; > > consume_credentials(); > }; > > route(4); > > if(!load_gws()){ > sl_send_reply("500", "Internal server error, unable to load gateways"); > break; > } > if(!next_gw()){ > sl_send_reply("503", "Service not available, no gateways found"); > break; > }; > > if (!is_uri_host_local()) { > route(4); > route(1); > break; > }; > > > # route(1); > } > > route[4] { > > # ----------------------------------------------------------------- > # NAT Traversal Section > # ----------------------------------------------------------------- > > if (isflagset(6) || isflagset(7)) { > if (!isflagset(8)) { > setflag(8); > use_media_proxy(); > }; > }; > } > > onreply_route[1] { > > if ((isflagset(6) || isflagset(7)) && > (status=~"(180)|(183)|2[0-9][0-9]")) { > > if (!search("^Content-Length:[ ]*0")) { > use_media_proxy(); > }; > }; > > if (client_nat_test("1")) { > fix_nated_contact(); > }; > } > > > thanks very much > > arun > > On 1/10/07, * Greger V. Teigre* <greger@teigre.com <mailto:greger@teigre.com> > <mailto: greger@teigre.com <mailto:greger@teigre.com>>> wrote: > > A quick search on iptel.org <http://iptel.org> <http://iptel.org> would have given > you these: > http://www.iptel.org/lcr_module_drop_in_for_0_9_x > http://www.iptel.org/lcr_with_mysql_accounting <http://www.iptel.org/lcr_with_mysql_accounting> > > > Arun Kumar wrote: >> Hi >> >> please help with LCR can some one show his lcr config file >> please. I'm not able to make it working. >> >> please help >> >> thanks >> arun >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Serusers mailing list >> Serusers@lists.iptel.org <mailto:Serusers@lists.iptel.org> <mailto:Serusers@lists.iptel.org <mailto:Serusers@lists.iptel.org>> >> http://lists.iptel.org/mailman/listinfo/serusers >> > > > ------------------------------------------------------------------------ > > _______________________________________________ > Serusers mailing list > Serusers@lists.iptel.org <mailto:Serusers@lists.iptel.org> > http://lists.iptel.org/mailman/listinfo/serusers >