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@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@evaristesys.com <mailto:abalashov@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@lists.kamailio.org <mailto:Users@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@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