VoIP Mailing List Archives
Mailing list archives for the VoIP community |
|
View previous topic :: View next topic |
Author |
Message |
d_hound at ymail.com Guest
|
Posted: Thu Nov 05, 2009 2:52 am Post subject: [Freeswitch-users] problem with failover routes for LCR A-Z |
|
|
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@10.10.10.1 |
| 44 | carr2 | 0.01 | G711 | | [lcr_carrier=carr2,lcr_rate=1.00000,absolute_codec_string=G729]sofia/external/447965404547@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@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org |
|
Back to top |
|
|
rupa at rupa.com Guest
|
Posted: Thu Nov 05, 2009 8:30 am Post subject: [Freeswitch-users] problem with failover routes for LCR A-Z |
|
|
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@ymail.com> wrote:
Quote: | 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@10.10.10.1 |
| 44 | carr2 | 0.01 | G711 | | [lcr_carrier=carr2,lcr_rate=1.00000,absolute_codec_string=G729]sofia/external/447965404547@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@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
_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org |
|
Back to top |
|
|
rupa at rupa.com Guest
|
Posted: Thu Nov 05, 2009 8:39 am Post subject: [Freeswitch-users] problem with failover routes for LCR A-Z |
|
|
Actually, using custom sql, you can implement the filter yourself in
the where clause. No need for code changes.
On Thu, Nov 5, 2009 at 7:17 AM, Rupa Schomaker <rupa@rupa.com> wrote:
Quote: | 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@ymail.com> wrote:
Quote: | 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@10.10.10.1 |
| 44 | carr2 | 0.01 | G711 | | [lcr_carrier=carr2,lcr_rate=1.00000,absolute_codec_string=G729]sofia/external/447965404547@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@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
|
--
-Rupa
_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org |
|
Back to top |
|
|
d_hound at ymail.com Guest
|
Posted: Thu Nov 05, 2009 11:07 am Post subject: [Freeswitch-users] problem with failover routes for LCR A-Z |
|
|
thanks Rupa ,
its very creative
I saw the new feature of user rates on the trunk , but havent worked with it as im using 1.0.4
will have a look and see if it can be used
BTW - I already implemented anti-loop on the LCR with custom-sql , adding the incoming carrier-id to a variable on the incoming dial plan and filtering the LCR carriers not to include same carrier , solved some issues for me when carriers send me traffic that they actually supply
will document and send it to you soon
thank you v much
Ori
----- Original Message ----
From: Rupa Schomaker <rupa@rupa.com>
To: freeswitch-users@lists.freeswitch.org
Sent: Thu, November 5, 2009 1:31:00 PM
Subject: Re: [Freeswitch-users] problem with failover routes for LCR A-Z scenario
Actually, using custom sql, you can implement the filter yourself in
the where clause. No need for code changes.
On Thu, Nov 5, 2009 at 7:17 AM, Rupa Schomaker <rupa@rupa.com> wrote:
Quote: | 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@ymail.com> wrote:
Quote: | 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@10.10.10.1 |
| 44 | carr2 | 0.01 | G711 | | [lcr_carrier=carr2,lcr_rate=1.00000,absolute_codec_string=G729]sofia/external/447965404547@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@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
|
--
-Rupa
_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org |
|
Back to top |
|
|
rupa at rupa.com Guest
|
Posted: Thu Nov 05, 2009 11:17 am Post subject: [Freeswitch-users] problem with failover routes for LCR A-Z |
|
|
On Thu, Nov 5, 2009 at 9:46 AM, Hound Dog <d_hound@ymail.com> wrote:
Quote: | thanks Rupa ,
its very creative
I saw the new feature of user rates on the trunk , but havent worked with it as im using 1.0.4
will have a look and see if it can be used
|
Cool, if you have issues let me know. We can work through 'em.
Quote: | BTW - I already implemented anti-loop on the LCR with custom-sql , adding the incoming carrier-id to a variable on the incoming dial plan and filtering the LCR carriers not to include same carrier , solved some issues for me when carriers send me traffic that they actually supply
will document and send it to you soon
|
custom sql really is a powerful feature. It does require a bit of
thinking, but since it can use any channel variable it is very
flexible.
Quote: |
thank you v much
Ori
----- Original Message ----
From: Rupa Schomaker <rupa@rupa.com>
To: freeswitch-users@lists.freeswitch.org
Sent: Thu, November 5, 2009 1:31:00 PM
Subject: Re: [Freeswitch-users] problem with failover routes for LCR A-Z scenario
Actually, using custom sql, you can implement the filter yourself in
the where clause. No need for code changes.
On Thu, Nov 5, 2009 at 7:17 AM, Rupa Schomaker <rupa@rupa.com> wrote:
Quote: | 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@ymail.com> wrote:
Quote: | 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@10.10.10.1 |
| 44 | carr2 | 0.01 | G711 | | [lcr_carrier=carr2,lcr_rate=1.00000,absolute_codec_string=G729]sofia/external/447965404547@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@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
|
--
-Rupa
_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@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
_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org |
|
Back to top |
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|