[Kamailio-Users] [Solved] How to configure alias_db_lookup in config script

Alex Balashov abalashov at evaristesys.com
Wed Nov 18 23:31:22 CET 2009


Aha.  Makes sense.

JR Richardson wrote:

> Good question.  This configuration is to route certain DID's over to 
> specific application servers and the rest of the calls process through 
> to the load balancer for general traffic.
>  
> For instance, I want fax DID's to route over to a specific fax server, 
> so I have to distinguish which DID's are for fax calls.  I load the fax 
> DID's into the database and point them over the fax server.
>  
> JR
> 
> On Wed, Nov 18, 2009 at 4:21 PM, Alex Balashov 
> <abalashov at evaristesys.com <mailto:abalashov at evaristesys.com>> wrote:
> 
>     This is curious logic.  This code causes the call to roll to another
>     branch (via dispatcher) if the user part of the RURI cannot be found
>     in the 'dbaliases' table -- are you sure this is what you want?  One
>     would think if the number is not in the aliases table, it cannot be
>     to any server?  Or am I misunderstanding?
> 
>     JR Richardson wrote:
> 
>         Thanks for your quick replys.
>          Here is the syntax that is working for me:
>          route{
>                # initial sanity checks -- messages with
>                # max_forwards==0, or excessively long requests
>                if (!mf_process_maxfwd_header("10")) {
>                        sl_send_reply("483","Too Many Hops");
>                        exit;
>                };
>                if (msg:len >=  2048 ) {
>                        sl_send_reply("513", "Message too big");
>                        exit;
>                };
> 
>                if(alias_db_lookup("dbaliases")) {
>                t_relay();
>                  }else{
>                  ds_select_dst("1", "4");
>                t_on_failure("1");
>                t_relay();
>                }
>         }
> 
>         failure_route[1] {
>                ds_next_dst();
>                forward();
>                }
> 
>         On Wed, Nov 18, 2009 at 3:45 PM, Alex Balashov
>         <abalashov at evaristesys.com <mailto:abalashov at evaristesys.com>
>         <mailto:abalashov at evaristesys.com
>         <mailto:abalashov at evaristesys.com>>> wrote:
> 
>            JR,
> 
>            Like many lookup functions, the alias_db_lookup() function has a
>            return value.  You should check it for a negative result before
>            proceeding further in the script:
> 
>            Example:
> 
>              if(!alias_db_lookup("dbaliases")) {
>                      sl_send_reply("404", "Not Found");
>                      exit;
>              }
> 
>            Error handling in general is a must.
> 
>            -- Alex
> 
>            JR Richardson wrote:
> 
>                Hi All,
>                 I have a real simple load balancer proxy setup using the
>                dispatcher module, works great.  I want to do an alias lookup
>                before I send the calls through to the dispatcher, but I
>         can't
>                seem to find a good example of how that should be setup
>         in the
>                config script.  I've tried different things, the
>                aliase_db_lookup is working but if a user is not in the
>                database, the call loops and does not continue on to the
>                dispatcher.  Here is my current route script (this does
>         not work):
>                 route{
>                       # initial sanity checks -- messages with
>                       # max_forwards==0, or excessively long requests  
>                                   if (!mf_process_maxfwd_header("10")) {
>                               sl_send_reply("483","Too Many Hops");
>                               exit;
>                       };
>                       if (msg:len >=  2048 ) {
>                               sl_send_reply("513", "Message too big");
>                               exit;
>                       };
> 
>                       alias_db_lookup("dbaliases");
>                       t_on_failure("1");
>                       t_relay();
>                         ds_select_dst("1", "4");
>                       t_on_failure("1");
>                       t_relay();
>                }
> 
>                failure_route[1] {
>                       ds_next_dst();
>                       forward();
>                       }
>                I think there should be an 'if' 'then' or 'if' 'else'
>         separating
>                the alias_db_lookup and the ds_select functions, but I'm not
>                sure of the syntax and where the curly brackets need to be.
>                 Thanks.
>                 JR
>                --        JR Richardson
>                Engineering for the Masses
> 
> 
>              
>          ------------------------------------------------------------------------
> 
>                _______________________________________________
>                Kamailio (OpenSER) - Users mailing list
>                Users at lists.kamailio.org
>         <mailto:Users at lists.kamailio.org>
>         <mailto:Users at lists.kamailio.org <mailto:Users at lists.kamailio.org>>
> 
>                http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
>              
>          http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
> 
> 
> 
>            --    Alex Balashov - Principal
>            Evariste Systems
>            Web     : http://www.evaristesys.com/
>            Tel     : (+1) (678) 954-0670
>            Direct  : (+1) (678) 954-0671
> 
> 
>         -- 
>         JR Richardson
>         Engineering for the Masses
> 
> 
>         ------------------------------------------------------------------------
> 
>         _______________________________________________
>         Kamailio (OpenSER) - Users mailing list
>         Users at lists.kamailio.org <mailto:Users at lists.kamailio.org>
>         http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
>         http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
> 
> 
> 
>     -- 
>     Alex Balashov - Principal
>     Evariste Systems
>     Web     : http://www.evaristesys.com/
>     Tel     : (+1) (678) 954-0670
>     Direct  : (+1) (678) 954-0671
> 
> 
> 
> 
> -- 
> JR Richardson
> Engineering for the Masses


-- 
Alex Balashov - Principal
Evariste Systems
Web     : http://www.evaristesys.com/
Tel     : (+1) (678) 954-0670
Direct  : (+1) (678) 954-0671



More information about the Users mailing list