Re: [Freeswitch-users] Mod LCR SQL sub-query for better routing
Victor, I take back my initial response on this old email. We ran into a couple of cases with some carriers and multiple matching prefixes. After actually trying your sub query (modified for Mysql), it actually does return the true lowest rate from a carrier while importantly respecting the longest match per carrier. Unlike the reorder_by_rate function that does not respect the longest match per carrier. That function simply returns the lowest rate, period. So thanks! From: hi-tecc@hotmail.com To: freeswitch-users@lists.freeswitch.org Subject: RE: [Freeswitch-users] Mod LCR SQL sub-query for better routing Date: Mon, 16 Dec 2013 18:36:06 -0500 I agree. This definitely sounds like he simply needed the "reorder_by_rate" param. It will reorder the initial sql results strictly by rate: reorder_by_rate - Forces the LCR module to re-order the query strictly on rate basis. By default this is turned off, but enabling this will always prefer rate over anything else. Beware this may have an adverse effect! I initially had this turned on then quickly realized it would sometimes try to route ALL calls by the lowest rate found. Ex: flowroute lists all calls for the US with a default NPA of "1" at .0098. Now a user trying to call Jamaica with "1876" at a rate of 0.19 (or whatever) will get both flowroute rates returned. The reorder by rate will assume 0.0098 is a valid rate since it will now be the "cheapest" in the list and send the call along its way to flowroute, whom will now bill you at 0.19. Now if you have another carrier in your list with 1876 at 0.15 you can see why this would be a problem. In this case you will always want the longest matched NPANXX rate. Date: Fri, 13 Dec 2013 15:58:54 -0500 From: intralanman@freeswitch.org To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Mod LCR SQL sub-query for better routing On 12/12/2013 02:42 PM, Victor Chukalovskiy wrote: Hello, For those interested, I added a piece to mod lcr wiki. It makes sorting / routing logic better than default logic: http://wiki.freeswitch.org/wiki/Mod_lcr#Custom_SQL_with_sub-query_-_for_real... Why it helps: Rates rates can often be given both on per-NPA or per-NPANXX level depending on the carrier and on the NPA. Moreover, some carriers may have NPANXX rate lower than the corresponding NPA rate, while others will have it inverse. Neither simple ORDER BY rate, prefix; nor ORDER BY prefix, rate; give the truly cheapest route. The LCR logic should be two-step process to accommodate this. Cheers, -Victor Unless I misunderstand what you're saying, this is what the reorder_by_rate param does. You'll always want to pick the longest digit match per carrier. Then you probably want to grab the cheapest overall rate of the matches you got back. -Ray _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com 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
You may want to homogenize the rates. As i see, rating list is a tree, and the digits 999 it is only the branch len. Homogenizing lenghts will solve your problem. You may need to code and offline program to do that. Its not that complex. Luis Daniel Lucio Quiroz CISSP, CISM, CISA Linux, VoIP and much more fun www.okay.com.mx Need LCR? Check out LCR for FusionPBX with FreeSWITCH Need Billing? Check out Billing for FusionPBX with FreeSWITCH 2014-11-28 20:05 GMT-05:00 DP . <hi-tecc@hotmail.com>:
Victor, I take back my initial response on this old email.
We ran into a couple of cases with some carriers and multiple matching prefixes. After actually trying your sub query (modified for Mysql), it actually does return the true lowest rate from a carrier while importantly respecting the longest match per carrier. Unlike the reorder_by_rate function that does not respect the longest match per carrier. That function simply returns the lowest rate, period.
So thanks!
________________________________ From: hi-tecc@hotmail.com To: freeswitch-users@lists.freeswitch.org Subject: RE: [Freeswitch-users] Mod LCR SQL sub-query for better routing Date: Mon, 16 Dec 2013 18:36:06 -0500
I agree. This definitely sounds like he simply needed the "reorder_by_rate" param. It will reorder the initial sql results strictly by rate:
reorder_by_rate - Forces the LCR module to re-order the query strictly on rate basis. By default this is turned off, but enabling this will always prefer rate over anything else.
Beware this may have an adverse effect! I initially had this turned on then quickly realized it would sometimes try to route ALL calls by the lowest rate found.
Ex: flowroute lists all calls for the US with a default NPA of "1" at .0098. Now a user trying to call Jamaica with "1876" at a rate of 0.19 (or whatever) will get both flowroute rates returned. The reorder by rate will assume 0.0098 is a valid rate since it will now be the "cheapest" in the list and send the call along its way to flowroute, whom will now bill you at 0.19. Now if you have another carrier in your list with 1876 at 0.15 you can see why this would be a problem.
In this case you will always want the longest matched NPANXX rate.
________________________________ Date: Fri, 13 Dec 2013 15:58:54 -0500 From: intralanman@freeswitch.org To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Mod LCR SQL sub-query for better routing
On 12/12/2013 02:42 PM, Victor Chukalovskiy wrote:
Hello,
For those interested, I added a piece to mod lcr wiki. It makes sorting / routing logic better than default logic:
http://wiki.freeswitch.org/wiki/Mod_lcr#Custom_SQL_with_sub-query_-_for_real...
Why it helps:
Rates rates can often be given both on per-NPA or per-NPANXX level depending on the carrier and on the NPA. Moreover, some carriers may have NPANXX rate lower than the corresponding NPA rate, while others will have it inverse. Neither simple ORDER BY rate, prefix; nor ORDER BY prefix, rate; give the truly cheapest route. The LCR logic should be two-step process to accommodate this.
Cheers, -Victor
Unless I misunderstand what you're saying, this is what the reorder_by_rate param does.
You'll always want to pick the longest digit match per carrier. Then you probably want to grab the cheapest overall rate of the matches you got back.
-Ray
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com 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
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
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
Alright, I'm glad it helped someone :) On 14-11-28 08:05 PM, DP . wrote:
Victor, I take back my initial response on this old email.
We ran into a couple of cases with some carriers and multiple matching prefixes. After actually trying your sub query (modified for Mysql), it actually does return the true lowest rate from a carrier while importantly respecting the longest match per carrier. Unlike the reorder_by_rate function that does not respect the longest match per carrier. That function simply returns the lowest rate, period.
So thanks!
------------------------------------------------------------------------ From: hi-tecc@hotmail.com To: freeswitch-users@lists.freeswitch.org Subject: RE: [Freeswitch-users] Mod LCR SQL sub-query for better routing Date: Mon, 16 Dec 2013 18:36:06 -0500
I agree. This definitely sounds like he simply needed the "reorder_by_rate" param. It will reorder the initial sql results strictly by rate:
* reorder_by_rate - Forces the LCR module to re-order the query strictly on rate basis. By default this is turned off, but enabling this will always prefer rate over anything else.
Beware this may have an adverse effect! I initially had this turned on then quickly realized it would sometimes try to route ALL calls by the lowest rate found.
Ex: flowroute lists all calls for the US with a default NPA of "1" at .0098. Now a user trying to call Jamaica with "1876" at a rate of 0.19 (or whatever) will get both flowroute rates returned. The reorder by rate will assume 0.0098 is a valid rate since it will now be the "cheapest" in the list and send the call along its way to flowroute, whom will now bill you at 0.19. Now if you have another carrier in your list with 1876 at 0.15 you can see why this would be a problem.
In this case you will always want the longest matched NPANXX rate.
------------------------------------------------------------------------ Date: Fri, 13 Dec 2013 15:58:54 -0500 From: intralanman@freeswitch.org To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Mod LCR SQL sub-query for better routing
On 12/12/2013 02:42 PM, Victor Chukalovskiy wrote:
Hello,
For those interested, I added a piece to mod lcr wiki. It makes sorting / routing logic better than default logic:
http://wiki.freeswitch.org/wiki/Mod_lcr#Custom_SQL_with_sub-query_-_for_real...
Why it helps:
Rates rates can often be given both on per-NPA or per-NPANXX level depending on the carrier and on the NPA. Moreover, some carriers may have NPANXX rate lower than the corresponding NPA rate, while others will have it inverse. Neither simple ORDER BY rate, prefix; nor ORDER BY prefix, rate; give the truly cheapest route. The LCR logic should be two-step process to accommodate this.
Cheers, -Victor
Unless I misunderstand what you're saying, this is what the reorder_by_rate param does.
You'll always want to pick the longest digit match per carrier. Then you probably want to grab the cheapest overall rate of the matches you got back.
-Ray
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com 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
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
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
participants (3)
-
DP .
-
Luis Daniel Lucio Quiroz
-
Victor Chukalovskiy