Hi Alberto, thanks for your replyyeah, i am using ds_select_dst("0","10") in this case because i use setid=0 in the dispatcher table as you can see in this route blockroute[TOASTERISK] {#!ifdef WITH_LOADBALANCExlog("L_INFO","UBICAR: Forwarding non-registrar requests to Asterisk \n");if(!ds_select_dst("0", "10")) {sl_send_reply("500", "Service Unavailable");xlog("L_ERROR","UBICAR: No destinations available for $rd \n");exit;}xlog("L_ERROR","UBICAR: AVP $avp(dsdstid)\n");xlog("L_INFO","UBICAR: Dispatching to Asterisk Box $du\n");t_set_fr(0,10000);t_on_failure("MANAGE_FAILURE");route(RELAY);exit;#!endif}Also both Asterisk are responding to ping probes done by Kamailio, they are actually responding 404 but are still kept alive thanks to this param:modparam("dispatcher", "ds_ping_reply_codes", "class=2;code=480;code=404")and the command kamctl dispatcher dump shows them with flags=APURI:: sip:192.168.10.191:5060 flags=AP priority=0 attrs=duid=PBX2;my=pbx2;maxload=200URI:: sip:192.168.10.190:5060 flags=AP priority=0 attrs=duid=PBX1;my=pbx1;maxload=200Also, i would like to know if there is a way to print some kind of table to see how kamailio are keeping these call loads recorded. I have been looking for it but i cannot find any way of doing itAgain, thank you very much for your reply--2016-04-04 14:23 GMT-03:00 Alberto Sagredo <alberto.sagredo@avanzada7.com>:HiAre you using ds_select_dst("1", "10"); somewhere ?You have to check Asterisk is responding to OPTIONS as dispatcher considered UP when 200 OK from Asterisk or SIP Gateway is received.. and not if not received.I have used dispatcher but not with 10 option on algo...BR2016-04-04 8:07 GMT+02:00 TEG AMJG <tegamjg@gmail.com>:_______________________________________________HiI am new to Kamailio and i am just trying to setup a kamailio (v4.2.3) dispatcher to distribute calls to 2 asterisk using the call load distribution algorithm (alg 10). I started to test and see how all it is working and in the logs appears that the call load record it cannot be found.- ERROR: dispatcher [dispatch.c:1416]: ds_load_remove(): cannot find load for (call id generated by asterisk)I am getting this error trying a 2 call leg conversation when asterisk is creating the BYE message destinated to the callee after receiving a BYE message from the caller, and the BYE message by Asterisk reach Kamailio to then apply the ds_load_update functionFrom what i understand about ds_load_update it is that it sets the load to an specific destination if Kamailio receives a 2xx reply of an INVITE message, and removes it if Kamailio receives a BYE message based from the Call-id received in that message, where it is actually failing in my implementation at the momentHere are the blocks of code of the dispatcher parameters and where the function ds_load_update() is being used:#!ifdef WITH_LOADBALANCE#Parameters using Dispatcher from DB# ----------modparam("dispatcher", "db_url", DBURL)modparam("dispatcher", "table_name", "dispatcher")# ----------#Enabling failover mechanism# -----------modparam("dispatcher", "flags", 2)# -----------#Setting dispatcher parameters in AVP# -----------modparam("dispatcher", "dst_avp", "$avp(AVP_DST)")modparam("dispatcher", "grp_avp", "$avp(AVP_GRP)")modparam("dispatcher", "cnt_avp", "$avp(AVP_CNT)")modparam("dispatcher", "dstid_avp", "$avp(dsdstid)")# -----------#Setting dispatcher result in PV variables# -----------modparam("dispatcher", "attrs_pvname", "$var(attrs)")# -----------#Enabling dispatcher algorithm according to call loads# -----------modparam("dispatcher", "ds_hash_size",8)modparam("dispatcher", "ds_hash_expire", 3600)modparam("dispatcher", "ds_hash_initexpire", 60)# -----------# Setting parameters for probing dispatcher destinations# -----------modparam("dispatcher", "ds_ping_interval", 20)modparam("dispatcher", "ds_ping_from", "sip:kamailio1@<Kamailio IP>")modparam("dispatcher", "ds_probing_mode", 1)modparam("dispatcher", "ds_probing_threshhold", 2)modparam("dispatcher", "ds_ping_reply_codes", "class=2;code=480;code=404")# -----------...route[WITHINDLG] {if (has_totag()) {# sequential request withing a dialog should# take the path determined by record-routing#!ifdef WITH_LOADBALANCEif(is_method("BYE|CANCEL")){xlog("L_ERROR","UBICAR BYE ds_load_update requesturi=$ru from=$fu method=$rm callid=$ci to=$tu reply=$mt rrcode=$rr rcode=$rs\n");ds_load_update();}#!endif...}...onreply_route[MANAGE_REPLY] {#!ifdef WITH_LOADBALANCEif(is_method("INVITE")) {if(status=~"2[0-9][0-9]") {xlog("L_ERROR","UBICAR setting ds_load_update requesturi=$ru from=$fu method=$rm callid=$ci to=$tu reply=$mt rrcode=$rr rcode=$rs");ds_load_update();}else if(status=~"[3-7][0-9][0-9]") {ds_load_unset();}}#!endifif(status=~"[12][0-9][0-9]"){route(NATMANAGE);}}This is what i am getting from logs after the 2 call legs conversation completes:kam1 /usr/sbin/kamailio[4082]: ERROR: <script>: UBICAR: FROMASTERISK 70175143146f92975a5bff8876435911@192.168.10.194kam1 /usr/sbin/kamailio[4082]: ERROR: <script>: UBICAR setting ds_load_update requesturi=<null> from=sip:103@192.168.10.194 method=INVITE callid=28d0f6e71625c9e87baec07f46167863@192.168.10.194 to=sip:104@192.168.10.194 reply=2 rrcode=OK rcode=200kam1 /usr/sbin/kamailio[4083]: ERROR: <script>: UBICAR setting ds_load_update requesturi=<null> from=sip:103@192.168.10.194:5060 method=INVITE callid=1-3692@192.168.20.2 to=sip:104@192.168.10.194:5060 reply=2 rrcode=OK rcode=200kam1 /usr/sbin/kamailio[4084]: ERROR: <script>: UBICAR BYE ds_load_update requesturi=sip:104@192.168.10.190:5060 from=sip:103@192.168.30.1:5060 method=BYE callid=1-3692@192.168.20.2 to=sip:104@192.168.30.1:5060 reply=1 rrcode=<null> rcode=<null>kam1 /usr/sbin/kamailio[4085]: ERROR: <script>: UBICAR BYE ds_load_update requesturi=sip:104@192.168.30.2:22523;transport=UDP from=sip:103@192.168.10.194 method=BYE callid=28d0f6e71625c9e87baec07f46167863@192.168.10.194 to=sip:104@192.168.10.194 reply=1 rrcode=<null> rcode=<null>kam1 /usr/sbin/kamailio[4085]: ERROR: dispatcher [dispatch.c:1416]: ds_load_remove(): cannot find load for (28d0f6e71625c9e87baec07f46167863@192.168.10.194)Kamailio IP: 192.168.10.194Asterisk IP:+----+-------+-------------------------+-------+----------+-------------------------------+-------------+| id | setid | destination | flags | priority | attrs | description |+----+-------+-------------------------+-------+----------+-------------------------------+-------------+| 1 | 0 | sip:192.168.10.190:5060 | 2 | 0 | duid=PBX1;my=pbx1;maxload=200 | pbx1 || 2 | 0 | sip:192.168.10.191:5060 | 2 | 0 | duid=PBX2;my=pbx2;maxload=200 | pbx2 |+----+-------+-------------------------+-------+----------+-------------------------------+-------------+
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
-
Saludos a todos