Hello,

if you are using integer UID, I would suggest you use modulo operation to select the destination address -- this will require config operations only.

Another option you can map an UID to a dispatcher set id (e.g., via mtree or htable) and then you can do the alg 8.

Cheers,
Daniel

On 6/7/12 1:37 PM, SamyGo wrote:
Hi again,
yes my scenario is quiet simple. I've lots of users and groups of those users are defined by UIDs, one UID means 70 users of one client whereas other UID could've 3 users of another client. So what I am trying to implement here is that calls from one same UID are always routed to exactly one same destination server. That'll help in issues like call-parking, call-pickup, conference calls etc.

I hope I've explained the scenario in simpler terms here.

Regards,
Sammy Go.


On Thu, Jun 7, 2012 at 4:20 PM, Daniel-Constantin Mierla <mico...@gmail.com <mailto:mico...@gmail.com>> wrote:

    Hello,

    that hash function is intended for hashing alpha-numeric usernames
    and has a fair distribution for such cases.

    I don't think is good for hashing numbers, at the end of a day, a
    number is already like a hash code. You can use in the config file
    modulo operation to select a particular destination based on a number.

    Maybe if you explain what is your target to implement, we can
    provide the right hints to do it.

    Cheers,
    Daniel


    On 6/6/12 6:09 PM, SamyGo wrote:
    Sorry for late reply: this wasn't very helpful. I think Hashing
    algo code needs to get bit smarter. If there is any possibility
    can you please let me know. !


    On Mon, Jun 4, 2012 at 3:33 PM, Daniel-Constantin Mierla
    <mico...@gmail.com <mailto:mico...@gmail.com>> wrote:

        To make the life easier to spot the hash code in such case, I
        just committed a small patch to print it for alg 7:

        
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=83a558fbad700198a8667ef01f756269d7e2c310

        Should be easy to backport if other version is used.

        Cheers,
        Daniel


        On 6/4/12 12:23 PM, Carsten Bock wrote:

            It's hard to say, most likely not. You find the used
            hash-function here:

             841 unsigned int ds_get_hash(str *x, str *y)
            
http://git.sip-router.org/cgi-bin/gitweb.cgi?p=sip-router;a=blob;f=modules_k/dispatcher/dispatch.c;h=ae0c51b122d34e29b3474957a64b24ff492cfcd5;hb=HEAD

            It was originally implemented to distribute usernames to
            servers,
            which worked fine.

            Carsten

            2012/6/4 SamyGo <govoi...@gmail.com
            <mailto:govoi...@gmail.com>>:

                Thanks Sir,

                Thats what I expected. Do you think this will change
                if I use only two
                values with huge difference in each other, lets say
                {26000,29000} ?

                Regards,
                Sammy

                On Mon, Jun 4, 2012 at 3:05 PM, Carsten Bock
                <cars...@ng-voice.com <mailto:cars...@ng-voice.com>>
                wrote:

                    Hi,

                    this functionality uses a generic "hash" function
                    to generate an
                    Integer-Value of the PVAR and then reduces this
                    to the number hosts in
                    your destination set.
                    If you have only using two different values of
                    the PVAR and only two
                    hosts in the dispatcher list, it can likely
                    happen, that the same host
                    is choosen. You should try a wider range of
                    values for your PVAR...
                    (e.g. try 1000 different values), then you should
                    see a distribution.

                    Carsten

                    2012/6/4 SamyGo <govoi...@gmail.com
                    <mailto:govoi...@gmail.com>>:

                        Hi,

                        No, nothing at all. I haven't went too deep
                        into debug logs but no
                        internal
                        error was appearing. Everything was as calm
                        as ever and I only get one
                        destination uri.

                        So maybe what I'm getting from your email is
                        that , for this to work the
                        way
                        I expect is to have more unique and random
                        values in my hash_pvar to get
                        the
                        required functionality.

                        Thanks once again,
                        BR
                        SG

                        On Mon, Jun 4, 2012 at 11:52 AM,
                        Daniel-Constantin Mierla
                        <mico...@gmail.com
                        <mailto:mico...@gmail.com>> wrote:

                            Hello,

                            do you get any errors in the log?

                            Be aware that hash functions may return
                            same code for different input
                            values. A hash function is guaranteed to
                            return same code for same
                            input
                            value, but there can be collisions of
                            codes for different values.

                            Cheers,
                            Daniel


                            On 6/3/12 3:41 PM, SamyGo wrote:

                            Hello,

                            I'm having trouble using algorithm 7 in
                            dispatcher module. Here is my
                            kamailio version. The problem is that
                            despite multiple dispatcher
                            entries
                            corresponding to one set all calls go
                            only to only one destination.


                            [root@control1 ~]# kamailio -V
                            version: kamailio 3.2.3 (x86_64/linux) 59f87e
                            flags: STATS: Off, USE_IPV6, USE_TCP,
                            USE_TLS, TLS_HOOKS,
                            USE_RAW_SOCKS,
                            DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK,
                            SHM_MEM, SHM_MMAP, PKG_MALLOC,
                            DBG_QM_MALLOC, USE_FUTEX,
                            FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE,
                            USE_DNS_FAILOVER, USE_NAPTR,
                            USE_DST_BLACKLIST, HAVE_RESOLV_RES
                            ADAPTIVE_WAIT_LOOPS=1024,
                            MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,
                            MAX_URI_SIZE 1024, BUF_SIZE 65535,
                            DEFAULT PKG_SIZE 4MB
                            poll method support: poll, epoll_lt,
                            epoll_et, sigio_rt, select.
                            id: 59f87e
                            compiled on 18:04:08 Apr 19 2012 with gcc
                            4.1.2
                            [root@control1 ~]#

                            Here is the dipacther module params.



                            # ------- Load-balancer params ------
                            modparam("dispatcher", "db_url", DBURL)
                            modparam("dispatcher", "table_name",
                            "dispatcher")
                            modparam("dispatcher", "setid_col", "setid")
                            modparam("dispatcher", "destination_col",
                            "destination")
                            modparam("dispatcher", "force_dst", 1)
                            modparam("dispatcher", "flags", 3)
                            modparam("dispatcher", "dst_avp",
                            "$avp(i:271)")
                            modparam("dispatcher", "cnt_avp",
                            "$avp(i:273)")
                            modparam("dispatcher", "ds_ping_from",
                            "sip:pr...@109.xxx.2xx.xx")
                            modparam("dispatcher", "ds_ping_interval",15)
                            modparam("dispatcher", "ds_probing_mode", 1)
                            modparam("dispatcher", "ds_ping_reply_codes",
                            "class=2;code=403;code=404;code=484;class=3")
                            modparam("dispatcher", "hash_pvar",
                            "$avp(i:274)")
                            modparam("dispatcher", "ds_hash_size", 9)
                            modparam("dispatcher",
                            "ds_hash_initexpire", 60)



                            Below is the function call based on
                            avp(i:274)



                            avp_db_query("select uid from uid_did_map
                            where accountcode =
                            '$fU'","$avp(i:274)");
                            xlog("L_INFO","$rm from $fu (IP:$si:$sp)
                            ---------
                            UID:'$avp(i:274)-----------'\n");
                                    ds_load_update();
                            if(!ds_select_dst("1","7")) {
                            sl_send_reply("500", "No destination
                            available");
                            xlog("route[MAIN] : $rm : No destinations
                            available for $rd");
                                                    exit;
                                    }


                            I'm getting two different values for
                            avp(i:274) {26,29} but the
                            destination are not hashed on its base.

                            Please help.

                            Regards,
                            Sammy G.



                            _______________________________________________
                            SIP Express Router (SER) and Kamailio
                            (OpenSER) - sr-users mailing list
                            sr-users@lists.sip-router.org
                            <mailto:sr-users@lists.sip-router.org>
                            
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users


                            --
                            Daniel-Constantin Mierla -
                            http://www.asipto.com
                            http://twitter.com/#!/miconda
                            <http://twitter.com/#%21/miconda> -
                            http://www.linkedin.com/in/miconda
                            Kamailio Advanced Training, Seattle, USA,
                            Sep 23-26, 2012 -
                            http://asipto.com/u/katu
                            Kamailio Practical Workshop, Netherlands,
                            Sep 10-12, 2012 -
                            http://asipto.com/u/kpw




                        _______________________________________________
                        SIP Express Router (SER) and Kamailio
                        (OpenSER) - sr-users mailing list
                        sr-users@lists.sip-router.org
                        <mailto:sr-users@lists.sip-router.org>
                        
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users



                    --
                    Carsten Bock
                    CEO (Geschäftsführer)

                    ng-voice GmbH
                    Schomburgstr. 80
                    D-22767 Hamburg / Germany

                    http://www.ng-voice.com
                    mailto:cars...@ng-voice.com
                    <mailto:cars...@ng-voice.com>

                    Mobile +49 179 2021244 <tel:%2B49%20179%202021244>
                    Office +49 40 34927219 <tel:%2B49%2040%2034927219>
                    Fax +49 40 34927220 <tel:%2B49%2040%2034927220>

                    Sitz der Gesellschaft: Hamburg
                    Registergericht: Amtsgericht Hamburg, HRB 120189
                    Geschäftsführer: Carsten Bock
                    Ust-ID: DE279344284

                    Hier finden Sie unsere handelsrechtlichen
                    Pflichtangaben:
                    http://www.ng-voice.com/imprint/

                    _______________________________________________
                    SIP Express Router (SER) and Kamailio (OpenSER) -
                    sr-users mailing list
                    sr-users@lists.sip-router.org
                    <mailto:sr-users@lists.sip-router.org>
                    
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users



                _______________________________________________
                SIP Express Router (SER) and Kamailio (OpenSER) -
                sr-users mailing list
                sr-users@lists.sip-router.org
                <mailto:sr-users@lists.sip-router.org>
                http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users




-- Daniel-Constantin Mierla - http://www.asipto.com
        http://twitter.com/#!/miconda
        <http://twitter.com/#%21/miconda> -
        http://www.linkedin.com/in/miconda
        Kamailio Advanced Training, Seattle, USA, Sep 23-26, 2012 -
        http://asipto.com/u/katu
        Kamailio Practical Workshop, Netherlands, Sep 10-12, 2012 -
        http://asipto.com/u/kpw




        _______________________________________________
        SIP Express Router (SER) and Kamailio (OpenSER) - sr-users
        mailing list
        sr-users@lists.sip-router.org
        <mailto:sr-users@lists.sip-router.org>
        http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users



-- Daniel-Constantin Mierla -http://www.asipto.com
    http://twitter.com/#!/miconda  <http://twitter.com/#%21/miconda>  
-http://www.linkedin.com/in/miconda
    Kamailio Advanced Training, Seattle, USA, Sep 23-26, 2012 
-http://asipto.com/u/katu
    Kamailio Practical Workshop, Netherlands, Sep 10-12, 2012 
-http://asipto.com/u/kpw





--
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Training, Seattle, USA, Sep 23-26, 2012 - 
http://asipto.com/u/katu
Kamailio Practical Workshop, Netherlands, Sep 10-12, 2012 - 
http://asipto.com/u/kpw



_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to