<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><div><div dir="ltr"><div dir="ltr">Victor, I take back my initial response on this old email.&nbsp;<div><br></div><div>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.&nbsp;<span style="font-size:12pt;">Unlike the reorder_by_rate function that does not respect the longest match per carrier. That function simply returns the lowest rate, period.</span></div><div><br></div><div>So thanks!<br><div><br><div><hr id="ecxstopSpelling">From: hi-tecc@hotmail.com<br>To: freeswitch-users@lists.freeswitch.org<br>Subject: RE: [Freeswitch-users] Mod LCR SQL sub-query for better routing<br>Date: Mon, 16 Dec 2013 18:36:06 -0500<br><br>

<style><!--
.ExternalClass .ecxhmmessage P {
padding:0px;
}

.ExternalClass body.ecxhmmessage {
font-size:12pt;
font-family:Calibri;
}


--></style>
<div dir="ltr">I agree. This definitely sounds like he simply needed the "reorder_by_rate" param. It will reorder the initial sql results strictly by rate:&nbsp;<div><br></div><div><ul style="line-height:19.200000762939453px;padding-right:0px;padding-left:0px;font-family:sans-serif;font-size:13px;"><li style="">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.</li></ul><div><br></div><div>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.&nbsp;</div><div><br></div><div>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.</div><div><br></div><div>In this case you will always want the longest matched NPANXX rate.&nbsp;<div><br><div><hr id="ecxstopSpelling">Date: Fri, 13 Dec 2013 15:58:54 -0500<br>From: intralanman@freeswitch.org<br>To: freeswitch-users@lists.freeswitch.org<br>Subject: Re: [Freeswitch-users] Mod LCR SQL sub-query for better routing<br><br>
  
    
  
  
    <div class="ecxmoz-cite-prefix">On 12/12/2013 02:42 PM, Victor
      Chukalovskiy wrote:<br>
    </div>
    <blockquote cite="mid:52AA1192.6020005@gmail.com">
      <pre>Hello,

For those interested, I added a piece to mod lcr wiki. It makes sorting 
/ routing logic better than default logic:

<a class="ecxmoz-txt-link-freetext" href="http://wiki.freeswitch.org/wiki/Mod_lcr#Custom_SQL_with_sub-query_-_for_real-life_ratesheet_complexities" target="_blank">http://wiki.freeswitch.org/wiki/Mod_lcr#Custom_SQL_with_sub-query_-_for_real-life_ratesheet_complexities</a>

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
</pre>
    </blockquote>
    Unless I misunderstand what you're saying, this is what the
    reorder_by_rate param does.<br>
    <br>
    You'll always want to pick the longest digit match per carrier.&nbsp;
    Then you probably want to grab the cheapest overall rate of the
    matches you got back.<br>
    <br>
    -Ray<br>
    <br>
    
    &nbsp; <span style="color:rgb(0, 0, 0);font-family:sans-serif;font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:19.046875px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255, 255, 255);display:inline !important;"></span>
  

<br>_________________________________________________________________________
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</div></div></div></div>                                               </div></div></div></div></div>
                                               </div></div><style><!--
.ExternalClass .ecxhmmessage P {
padding:0px;
}

.ExternalClass body.ecxhmmessage {
font-size:12pt;
font-family:Calibri;
}

--></style>                                               </div></body>
</html>