Hi,

I am having issues getting the dispatcher to work using weighting. I have been digging through old posts to the list, and tried all that I have found, but am still having no luck at all.

So, information...

version: kamailio 4.2.4 (amd64/freebsd) be62bd
flags: STATS: Off, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, DBG_F_MALLOC, USE_PTHREAD_MUTEX, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, select, kqueue.
id: be62bd

Dispatcher configuration...

modparam("dispatcher", "db_url", DBURL)
modparam("dispatcher", "table_name", "dispatcher")
modparam("dispatcher", "flags", 3)
modparam("dispatcher", "force_dst", 1)
modparam("dispatcher", "dst_avp", "$avp(AVP_DST)")
modparam("dispatcher", "grp_avp", "$avp(AVP_GRP)")
modparam("dispatcher", "cnt_avp", "$avp(AVP_CNT)")

Dialplan config..

route[DISPATCH] {
        if(!ds_select_dst("1", "9"))
        {
                send_reply("404", "No destination");
                exit;
        }
        xlog("L_DBG", "--- SCRIPT: going to <$ru> via <$du>\n");
        t_on_failure("RTF_DISPATCH");
        return;

I am loading the values from a database, which are being loaded fine, and appear to be being formatted correctly aswell..

+----+-------+-------------------------+-------+----------+------------+----------------------+
| id | setid | destination | flags | priority | attrs | description |
+----+-------+-------------------------+-------+----------+------------+----------------------+
| 1 | 1 | sipx.x.x.106:5060 | 8 | 1 | weight=100 | | | 2 | 1 | sip:x.x.x.107:5060 | 8 | 1 | weight=0 | |
+----+-------+-------------------------+-------+----------+------------+----------------------+

The IP's are public, so i've masked them... The following is from kamcmd..

{
        NRSETS: 1
        RECORDS: {
                SET: {
                        ID: 1
                        TARGETS: {
                                DEST: {
                                        URI: sip:x.x.x.107:5060
                                        FLAGS: AP
                                        PRIORITY: 1
                                        ATTRS: {
                                                BODY: weight=0
                                                DUID:
                                                MAXLOAD: 0
                                                WEIGHT: 0
                                        }
                                }
                                DEST: {
                                        URI: sip:x.x.x106:5060
                                        FLAGS: AP
                                        PRIORITY: 1
                                        ATTRS: {
                                                BODY: weight=100
                                                DUID:
                                                MAXLOAD: 0
                                                WEIGHT: 100
                                        }
                                }
                        }
                }
        }
}

However, when any call is placed, it will always goto the server ending 107 (with weight 0, which means, as far as I understand, it should be ignored). I've tried with ; after the weights, this made no change either.

When set to round robin, or via priority, it appears to work fine.

Any ideas?

--
Kind Regards,

---------
Ben


_______________________________________________
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