[SR-Users] how to match exact string value in mtree (Uri Shacked)

Daniel-Constantin Mierla miconda at gmail.com
Fri Feb 17 13:44:58 CET 2012


Hello,

On 2/17/12 1:04 PM, Javier Gallart wrote:
> Hi Daniel,
>
> no, in order to find the best match we do a manual trick using 
> the s.prefixes transformation (I think you suggested that).

could be, at least is the way I do prefix matching with mysql. Postgres, 
on the other hand, afaik, has an index plugin to match the longest 
prefix, might not be in default distro, but can be found on the net for 
sure.

> We start with the full $rU and stop when we find a non-null value. 
> This kamailio is serving many thousands of calls per hour, and the 
> response time is pretty much the same as when we used the mtree 
> module. For us , using redis has the advantage of being able to load 
> the tree data faster than when we used postgres without the need to 
> perform a mtree reload.

Loading huge amount of records from mysql takes time indeed.

Maybe prefix matching will be added in redis in the future, or scripted 
server side in lua, as I understood it has such feature. Another option 
would be to add a custom command in kamailio like redis_cmd_pmatch() to 
do internally these prefix-based commands until a match, could simplify 
the config if it becomes something very popular.

Also, I forgot about the other solution in kamailio - pdb module written 
by 1&1 for number portability:
   * http://kamailio.org/docs/modules/stable/modules/pdb.html

Just mentioning it here for let it be known, if redis is working fine 
for you, makes no sense to look for other solutions.

Cheers,
Daniel

>
> Regards
>
> Javi
>
>
> On Fri, Feb 17, 2012 at 10:25 AM, Daniel-Constantin Mierla 
> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
>     Hello Javier,
>
>     one question about redis, can it do longest prefix matching or all
>     prefixes match?
>
>     Cheers,
>     Daniel
>
>
>     On 2/16/12 2:51 PM, Javier Gallart wrote:
>>     Hello Uri
>>
>>     I had similar needs and I found the ndb_redis module more suited
>>     for that type of task. Instead of a tree you have a hash like
>>     this: tname tprefix tvalue. If you do a hget nts $avp(DID) and
>>     you get a not null value you have found your exact match. It
>>     works very  well for me and the time it takes for that "query" is
>>     barely noticeable. Of course redis does not address items like
>>     persistence, etc the same way a rdbms does.
>>     Hope it helps.
>>
>>     Regards
>>
>>     Javi
>>
>>     On Thu, Feb 16, 2012 at 12:00 PM,
>>     <sr-users-request at lists.sip-router.org
>>     <mailto:sr-users-request at lists.sip-router.org>> wrote:
>>
>>         Send sr-users mailing list submissions to
>>         sr-users at lists.sip-router.org
>>         <mailto:sr-users at lists.sip-router.org>
>>
>>         To subscribe or unsubscribe via the World Wide Web, visit
>>         http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>         or, via email, send a message with subject or body 'help' to
>>         sr-users-request at lists.sip-router.org
>>         <mailto:sr-users-request at lists.sip-router.org>
>>
>>         You can reach the person managing the list at
>>         sr-users-owner at lists.sip-router.org
>>         <mailto:sr-users-owner at lists.sip-router.org>
>>
>>         When replying, please edit your Subject line so it is more
>>         specific
>>         than "Re: Contents of sr-users digest..."
>>
>>
>>         Today's Topics:
>>
>>           1. how to match exact string value in mtree (Uri Shacked)
>>
>>
>>         ----------------------------------------------------------------------
>>
>>         Message: 1
>>         Date: Thu, 16 Feb 2012 12:54:50 +0200
>>         From: Uri Shacked <ushacked at gmail.com
>>         <mailto:ushacked at gmail.com>>
>>         Subject: [SR-Users] how to match exact string value in mtree
>>         To: "SIP Router - Kamailio (OpenSER) and SIP Express Router
>>         (SER) -
>>                Users   Mailing List" <sr-users at lists.sip-router.org
>>         <mailto:sr-users at lists.sip-router.org>>
>>         Message-ID:
>>         <CAMMbDhTFNXAE-K88=AeMjO7AnA_QJV3Ajj3AH-AxemXN3ze6HQ at mail.gmail.com
>>         <mailto:AeMjO7AnA_QJV3Ajj3AH-AxemXN3ze6HQ at mail.gmail.com>>
>>         Content-Type: text/plain; charset="iso-8859-1"
>>
>>         Hi,
>>
>>         I am using Mtree to match prefix numbers, some of them starts
>>         with 0 or
>>         characters like D for example.
>>         so, the mtree param is like this:
>>
>>         modparam("mtree", "db_url", CFGDB)
>>         modparam("mtree", "mtree",
>>         "name=nts;dbtable=service_numbers_view;type=0;")
>>         modpmodparam("mtree", "char_list", "0123456789*+#YMDabcdefgh")
>>         modparam("mtree", "pv_value", "$avp(mtval)")
>>         modparam("mtree", "pv_values", "$avp(mtvals)")
>>
>>         The thing is, that i tried all:
>>
>>         if(!mt_match("nts", "$avp(DID)","1"))
>>         if(!mt_match("nts", "$avp(DID)","2"))
>>         if(!mt_match("nts", "$avp(DID)","0"))
>>
>>         and lets say i have the both prefix in the nts mtree:
>>         09555
>>         09555333
>>
>>         And the prefix i search for is  $avp(DID)=09555444
>>
>>         I allwasy get the 09555 because it is the longest match.
>>         I need exact match.....
>>
>>         how do i do that?
>>         -------------- next part --------------
>>         An HTML attachment was scrubbed...
>>         URL:
>>         <http://lists.sip-router.org/pipermail/sr-users/attachments/20120216/9d2eb778/attachment.html>
>>
>>         ------------------------------
>>
>>         _______________________________________________
>>         sr-users mailing list
>>         sr-users at lists.sip-router.org
>>         <mailto:sr-users at lists.sip-router.org>
>>         http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>
>>
>>         End of sr-users Digest, Vol 81, Issue 40
>>         ****************************************
>>
>>
>>
>>
>>     _______________________________________________
>>     SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>     sr-users at lists.sip-router.org  <mailto:sr-users at lists.sip-router.org>
>>     http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>     -- 
>     Daniel-Constantin Mierla --http://www.asipto.com
>     http://linkedin.com/in/miconda  -- http://twitter.com/miconda
>
>

-- 
Daniel-Constantin Mierla -- http://www.asipto.com
http://linkedin.com/in/miconda -- http://twitter.com/miconda

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20120217/4f086103/attachment-0001.htm>


More information about the sr-users mailing list