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:proxy@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.
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:proxy@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 http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
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 <miconda@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:proxy@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 listsr-users@lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- Daniel-Constantin Mierla - http://www.asipto.comhttp://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
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 govoiper@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 miconda@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:proxy@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 http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- 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
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 carsten@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 govoiper@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 miconda@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:proxy@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 http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- 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
-- Carsten Bock CEO (Geschäftsführer)
ng-voice GmbH Schomburgstr. 80 D-22767 Hamburg / Germany
http://www.ng-voice.com mailto:carsten@ng-voice.com
Mobile +49 179 2021244 Office +49 40 34927219 Fax +49 40 34927220
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 http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
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...
It was originally implemented to distribute usernames to servers, which worked fine.
Carsten
2012/6/4 SamyGo govoiper@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 carsten@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 govoiper@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 miconda@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:proxy@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 http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- 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
-- Carsten Bock CEO (Geschäftsführer)
ng-voice GmbH Schomburgstr. 80 D-22767 Hamburg / Germany
http://www.ng-voice.com mailto:carsten@ng-voice.com
Mobile +49 179 2021244 Office +49 40 34927219 Fax +49 40 34927220
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 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 http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
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=83a558fb...
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...
It was originally implemented to distribute usernames to servers, which worked fine.
Carsten
2012/6/4 SamyGo govoiper@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 carsten@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 govoiper@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 miconda@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:proxy@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 http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- 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
-- Carsten Bock CEO (Geschäftsführer)
ng-voice GmbH Schomburgstr. 80 D-22767 Hamburg / Germany
http://www.ng-voice.com mailto:carsten@ng-voice.com
Mobile +49 179 2021244 Office +49 40 34927219 Fax +49 40 34927220
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 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 http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
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 miconda@gmail.comwrote:
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=** 83a558fbad700198a8667ef01f7562**69d7e2c310http://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=** ae0c51b122d34e29b3474957a64b24**ff492cfcd5;hb=HEADhttp://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 govoiper@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 carsten@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 govoiper@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 miconda@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:proxy@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 http://lists.sip-router.org/**cgi-bin/mailman/listinfo/sr-**usershttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- Daniel-Constantin Mierla - http://www.asipto.com http://twitter.com/#!/miconda - http://www.linkedin.com/in/**micondahttp://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-**usershttp://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:carsten@ng-voice.com
Mobile +49 179 2021244 Office +49 40 34927219 Fax +49 40 34927220
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/ http://www.ng-voice.com/imprint/
______________________________**_________________ 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-**usershttp://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 http://lists.sip-router.org/**cgi-bin/mailman/listinfo/sr-**usershttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- Daniel-Constantin Mierla - http://www.asipto.com http://twitter.com/#!/miconda - http://www.linkedin.com/in/**micondahttp://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-**usershttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
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 <miconda@gmail.com mailto:miconda@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 <govoiper@gmail.com <mailto:govoiper@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 <carsten@ng-voice.com <mailto:carsten@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 <govoiper@gmail.com <mailto:govoiper@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 <miconda@gmail.com <mailto:miconda@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:proxy@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:carsten@ng-voice.com <mailto:carsten@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
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 miconda@gmail.comwrote:
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 < miconda@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=83a558fb...
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...
It was originally implemented to distribute usernames to servers, which worked fine.
Carsten
2012/6/4 SamyGo govoiper@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 carsten@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 govoiper@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 miconda@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:proxy@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 > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users > > > -- > 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
-- Carsten Bock CEO (Geschäftsführer)
ng-voice GmbH Schomburgstr. 80 D-22767 Hamburg / Germany
http://www.ng-voice.com mailto:carsten@ng-voice.com
Mobile +49 179 2021244 <%2B49%20179%202021244> Office +49 40 34927219 <%2B49%2040%2034927219> Fax +49 40 34927220 <%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 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 http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- 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
-- Daniel-Constantin Mierla - http://www.asipto.comhttp://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
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 <miconda@gmail.com mailto:miconda@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 <miconda@gmail.com <mailto:miconda@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 <govoiper@gmail.com <mailto:govoiper@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 <carsten@ng-voice.com <mailto:carsten@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 <govoiper@gmail.com <mailto:govoiper@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 <miconda@gmail.com <mailto:miconda@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:proxy@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:carsten@ng-voice.com <mailto:carsten@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
Thanks Sir, Doing a static or even a run-time mapping of same UID calls to destination server is what I thought about this type of case almost an year ago.
What I am thinking is : create a table for UID/Destination Mapping; for a unique UID see if there is any destination in that table. If it exists just jump to that server directly. If no UID/destination entry is found for that UID then invoke Dispatcher; select destination, make call to it, and store this in UID/destination map table !!
Let me know if there could be any improvement in this.
Thanks Best Regards, Sammy G.
On Tue, Jun 12, 2012 at 2:43 PM, Daniel-Constantin Mierla <miconda@gmail.com
wrote:
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 < miconda@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 < miconda@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=83a558fb...
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...
It was originally implemented to distribute usernames to servers, which worked fine.
Carsten
2012/6/4 SamyGo govoiper@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 carsten@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 govoiper@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 > miconda@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:proxy@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 >> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >> >> >> -- >> 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 > >
-- Carsten Bock CEO (Geschäftsführer)
ng-voice GmbH Schomburgstr. 80 D-22767 Hamburg / Germany
http://www.ng-voice.com mailto:carsten@ng-voice.com
Mobile +49 179 2021244 Office +49 40 34927219 Fax +49 40 34927220
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 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 http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- 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
-- Daniel-Constantin Mierla - http://www.asipto.comhttp://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
-- Daniel-Constantin Mierla - http://www.asipto.comhttp://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
Hello,
On 6/12/12 12:01 PM, SamyGo wrote:
Thanks Sir, Doing a static or even a run-time mapping of same UID calls to destination server is what I thought about this type of case almost an year ago.
What I am thinking is : create a table for UID/Destination Mapping; for a unique UID see if there is any destination in that table. If it exists just jump to that server directly. If no UID/destination entry is found for that UID then invoke Dispatcher; select destination, make call to it, and store this in UID/destination map table !!
Let me know if there could be any improvement in this.
can be a solution, indeed. You may have a race if that user does calls in parallel first time and different destinations are selected -- not sure it is the case for you.
Cheers, Daniel
Thanks Best Regards, Sammy G.
On Tue, Jun 12, 2012 at 2:43 PM, Daniel-Constantin Mierla <miconda@gmail.com mailto:miconda@gmail.com> wrote:
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 <miconda@gmail.com <mailto:miconda@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 <miconda@gmail.com <mailto:miconda@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 <govoiper@gmail.com <mailto:govoiper@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 <carsten@ng-voice.com <mailto:carsten@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 <govoiper@gmail.com <mailto:govoiper@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 <miconda@gmail.com <mailto:miconda@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:proxy@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:carsten@ng-voice.com <mailto:carsten@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://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
Hi again, Nice to read the comment from you. Yes it could be a case - but this race condition will remain valid until I put some check on the insertion and lock the resource if one user is using that table, I forgot what they say in programming terms
What do you suggest i do to avoid this since I may have customers with SIP trunks and I'd have to apply concurrent call limits to them using the same logic.
Regards, Sammy.
On Wed, Jun 13, 2012 at 1:23 PM, Daniel-Constantin Mierla <miconda@gmail.com
wrote:
Hello,
On 6/12/12 12:01 PM, SamyGo wrote:
Thanks Sir, Doing a static or even a run-time mapping of same UID calls to destination server is what I thought about this type of case almost an year ago.
What I am thinking is : create a table for UID/Destination Mapping; for a unique UID see if there is any destination in that table. If it exists just jump to that server directly. If no UID/destination entry is found for that UID then invoke Dispatcher; select destination, make call to it, and store this in UID/destination map table !!
Let me know if there could be any improvement in this.
can be a solution, indeed. You may have a race if that user does calls in parallel first time and different destinations are selected -- not sure it is the case for you.
Cheers, Daniel
Thanks Best Regards, Sammy G.
On Tue, Jun 12, 2012 at 2:43 PM, Daniel-Constantin Mierla < miconda@gmail.com> wrote:
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 < miconda@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 < miconda@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=83a558fb...
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...
It was originally implemented to distribute usernames to servers, which worked fine.
Carsten
2012/6/4 SamyGo govoiper@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 carsten@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 govoiper@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 >> miconda@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:proxy@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 >>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>> >>> >>> -- >>> 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 >> >> > > -- > Carsten Bock > CEO (Geschäftsführer) > > ng-voice GmbH > Schomburgstr. 80 > D-22767 Hamburg / Germany > > http://www.ng-voice.com > mailto:carsten@ng-voice.com > > Mobile +49 179 2021244 <%2B49%20179%202021244> > Office +49 40 34927219 <%2B49%2040%2034927219> > Fax +49 40 34927220 <%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 > 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 http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- 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
-- Daniel-Constantin Mierla - http://www.asipto.comhttp://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
-- Daniel-Constantin Mierla - http://www.asipto.comhttp://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
-- Daniel-Constantin Mierla - http://www.asipto.comhttp://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
Hello,
On 6/13/12 11:47 AM, SamyGo wrote:
Hi again, Nice to read the comment from you. Yes it could be a case - but this race condition will remain valid until I put some check on the insertion and lock the resource if one user is using that table, I forgot what they say in programming terms
What do you suggest i do to avoid this since I may have customers with SIP trunks and I'd have to apply concurrent call limits to them using the same logic.
you can use lock functions from cfgutils to synchronize on a resource (like uid), should be better than locking an entire db table -- this will require that the updates will be done only from config, not by other applications.
Cheers, Daniel
Regards, Sammy.
On Wed, Jun 13, 2012 at 1:23 PM, Daniel-Constantin Mierla <miconda@gmail.com mailto:miconda@gmail.com> wrote:
Hello, On 6/12/12 12:01 PM, SamyGo wrote:
Thanks Sir, Doing a static or even a run-time mapping of same UID calls to destination server is what I thought about this type of case almost an year ago. What I am thinking is : create a table for UID/Destination Mapping; for a unique UID see if there is any destination in that table. If it exists just jump to that server directly. If no UID/destination entry is found for that UID then invoke Dispatcher; select destination, make call to it, and store this in UID/destination map table !! Let me know if there could be any improvement in this.
can be a solution, indeed. You may have a race if that user does calls in parallel first time and different destinations are selected -- not sure it is the case for you. Cheers, Daniel
Thanks Best Regards, Sammy G. On Tue, Jun 12, 2012 at 2:43 PM, Daniel-Constantin Mierla <miconda@gmail.com <mailto:miconda@gmail.com>> wrote: 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 <miconda@gmail.com <mailto:miconda@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 <miconda@gmail.com <mailto:miconda@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 <govoiper@gmail.com <mailto:govoiper@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 <carsten@ng-voice.com <mailto:carsten@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 <govoiper@gmail.com <mailto:govoiper@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 <miconda@gmail.com <mailto:miconda@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:proxy@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:carsten@ng-voice.com <mailto:carsten@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://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://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
Thanks once again, it was helpful. I am trying it for now and will get back if anything else is required. Great help from you and once again Thanks alot. Best Regards, Sammy G.
On Thu, Jun 14, 2012 at 1:20 PM, Daniel-Constantin Mierla <miconda@gmail.com
wrote:
Hello,
On 6/13/12 11:47 AM, SamyGo wrote:
Hi again, Nice to read the comment from you. Yes it could be a case - but this race condition will remain valid until I put some check on the insertion and lock the resource if one user is using that table, I forgot what they say in programming terms
What do you suggest i do to avoid this since I may have customers with SIP trunks and I'd have to apply concurrent call limits to them using the same logic.
you can use lock functions from cfgutils to synchronize on a resource (like uid), should be better than locking an entire db table -- this will require that the updates will be done only from config, not by other applications.
Cheers, Daniel
Regards, Sammy.
On Wed, Jun 13, 2012 at 1:23 PM, Daniel-Constantin Mierla < miconda@gmail.com> wrote:
Hello,
On 6/12/12 12:01 PM, SamyGo wrote:
Thanks Sir, Doing a static or even a run-time mapping of same UID calls to destination server is what I thought about this type of case almost an year ago.
What I am thinking is : create a table for UID/Destination Mapping; for a unique UID see if there is any destination in that table. If it exists just jump to that server directly. If no UID/destination entry is found for that UID then invoke Dispatcher; select destination, make call to it, and store this in UID/destination map table !!
Let me know if there could be any improvement in this.
can be a solution, indeed. You may have a race if that user does calls in parallel first time and different destinations are selected -- not sure it is the case for you.
Cheers, Daniel
Thanks Best Regards, Sammy G.
On Tue, Jun 12, 2012 at 2:43 PM, Daniel-Constantin Mierla < miconda@gmail.com> wrote:
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 < miconda@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 < miconda@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=83a558fb...
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...
It was originally implemented to distribute usernames to servers, which worked fine.
Carsten
2012/6/4 SamyGo govoiper@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 carsten@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 govoiper@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 >>> miconda@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:proxy@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 >>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>>> >>>> >>>> -- >>>> 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 >>> >>> >> >> -- >> Carsten Bock >> CEO (Geschäftsführer) >> >> ng-voice GmbH >> Schomburgstr. 80 >> D-22767 Hamburg / Germany >> >> http://www.ng-voice.com >> mailto:carsten@ng-voice.com >> >> Mobile +49 179 2021244 <%2B49%20179%202021244> >> Office +49 40 34927219 <%2B49%2040%2034927219> >> Fax +49 40 34927220 <%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 >> 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 > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users > >
-- 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
-- Daniel-Constantin Mierla - http://www.asipto.comhttp://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
-- Daniel-Constantin Mierla - http://www.asipto.comhttp://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
-- Daniel-Constantin Mierla - http://www.asipto.comhttp://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
-- Daniel-Constantin Mierla - http://www.asipto.comhttp://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