[Freeswitch-users] problem with failover routes for LCR A-Z scenario

Rupa Schomaker rupa at rupa.com
Thu Nov 5 05:17:58 PST 2009


Now that user rates are supported in mod_lcr, how about an option that
says to drop the route if the user_rate is < rate ?

This 1) requires you to use custom sql and 2) be able to represent
your user rates in that sql (join to user rate table perhaps?)

On Thu, Nov 5, 2009 at 1:44 AM, Hound Dog <d_hound at ymail.com> wrote:
> I have a general question regrading MOD_LCR and the way it chooses main and failover routes ( backups )
>
> it came out a little long , sorry for that :)
>
>
> I found that it difficult/impossible to make LCR use only carriers that I choose
>
> scenario is as follows , taking the UK as example for a destination  ( prices are not real , just an example )
>
> I have 2 carriers offering routes to the UK , landline and mobile
>
> my buying prices
>
> Destination       carrier1 Price    carrier2 price
> 44  (all UK)      $0.01             $0.01
> 447 (UK mobile)   $0.15             $0.19
>
> my selling prices
>
> Destination         price
> 44  (all UK)        $0.015
> 447 (UKmobile)      $0.17
>
> so for UK landline both carrier 1 and carrier 2 are good for me , so I use them and be profitable
>
> for UK mobile I can ** only ** make a profit if I use carrier 1   ( if I use carrier2 I actually lose money on every calls since I sell the call for 17 cents but buy for 19 cents so I LOSE 2 cents a minute)
>
>
> translating it to MOD_LCR information
>
> digits     rate        carrier_id       ( other columns ignored )
> 44         0.01        1
> 44         0.01        2
> 447        0.015       1
>
> this looks good :
>     44 prefix will be shared between carrier 1 and 2
>     447 prefix will only go to carreir 1
>
> so it fits perfectly - BUT
>
> testing this I get -
>
> API CALL [lcr(447965404547)] output:
>  | Digit Match | Carrier | Rate     | Codec | CID Regexp | Dialstring |
>  | 447         | carr1   | 0.15     | G711  |            | [lcr_carrier=carr1,lcr_rate=1.00000,absolute_codec_string=G729]sofia/external/447965404547 at 10.10.10.1 |
>  | 44          | carr2   | 0.01     | G711  |            | [lcr_carrier=carr2,lcr_rate=1.00000,absolute_codec_string=G729]sofia/external/447965404547 at 10.10.10.2 |
>
> Notice the lcr engine is using carrier2 to route the call as backup for carrier1 , because it has coverage of that range ( 44 covers 447xxxx )  - it all makes sense
>
>
> ** BUT ** carrier2 should not be used for 447 range , I will lose money on each call I send there , and I actually prefer calls to fail
>
>
> so far I didnt find a solution for that , so if there is one I love bo pointed there
>
>
>
>
>
>
> I did think it over a little and came up with 2 options that could be used ,
>  and I am also planning to code them and propose patch to maintainers ,
>  I would love to get comments on those ( in case there are no existing solution )
>
>
> option 1 - setting some routes as last option , add another param to the LCR table called  last_route ,
>  when hitting a route with last_route=1,  stop processing additional routes and return your routing decision so far
>  so in our case the route entry with 44 to carrier1 will have last_route=1  , the other 44 routes will have last_route=0 to allow for failover
>
> option 2 - don't allow shorter prefixes , once a prefix match was found with a N digits length , do not accept less digits prefix matches.
> in other words dont failover from a finer route to a wider route.
> it will need to be a global option and I will be quite simple to use,
>  but will require entering mutiple entries of the same length prefix for each carrier you would like to use
>  its intutive and relatively simple to manage , but requires more lcr entries to get you where you want
>
>
>
>
>
> _______________________________________________
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>



-- 
-Rupa




More information about the FreeSWITCH-users mailing list