[Serusers] Please help with LCR
Steve Blair
blairs at isc.upenn.edu
Wed Jan 10 14:46:37 CET 2007
Great! The only other advice I'd give you is to think about the gateway
list, from matching and prefix. I ran into a few odd cases after
deploying LCR where I had to define additional rules to handle URIs with
slightly different syntax.
-Steve
Arun Kumar wrote:
> Hi Steve,
>
> thanks very much your code is working fine now ser is able to use my
> both gw and able to send calls on both gw if first fail then it will
> send to other.
>
> thanks very much for helping me.
>
> thanks
> arun
>
> On 1/10/07, *Steve Blair* <blairs at isc.upenn.edu
> <mailto:blairs at isc.upenn.edu>> wrote:
>
>
> 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 at isc.upenn.edu
> <mailto:blairs at isc.upenn.edu>
> > <mailto: blairs at isc.upenn.edu <mailto:blairs at 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>
> > <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>
> > > <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 at teigre.com
> <mailto:greger at teigre.com>
> > <mailto: greger at teigre.com <mailto:greger at teigre.com>>
> > > <mailto: greger at teigre.com <mailto:greger at teigre.com>
> <mailto:greger at teigre.com <mailto:greger at teigre.com>>>> wrote:
> > >
> > > A quick search on iptel.org <http://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>
> > <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 at lists.iptel.org
> <mailto:Serusers at lists.iptel.org> <mailto:Serusers at lists.iptel.org
> <mailto:Serusers at lists.iptel.org>>
> > <mailto:Serusers at lists.iptel.org
> <mailto:Serusers at lists.iptel.org> <mailto:Serusers at lists.iptel.org
> <mailto:Serusers at lists.iptel.org>>>
> > >> http://lists.iptel.org/mailman/listinfo/serusers
> > >>
> > >
> > >
> > >
> >
> ------------------------------------------------------------------------
> > >
> > > _______________________________________________
> > > Serusers mailing list
> > > Serusers at lists.iptel.org <mailto:Serusers at lists.iptel.org>
> <mailto: Serusers at lists.iptel.org <mailto:Serusers at lists.iptel.org>>
> > > http://lists.iptel.org/mailman/listinfo/serusers
> > >
> >
> >
>
>
More information about the sr-users
mailing list