I got it to work using if ( !load_balance("40","pstn") { sl_send_reply("500","Service FUll"); xlog("L_INFO","Service Full"); exit; }
instead of load_balance("40","pstn") { if ($retcode<0 ) { sl_send_reply("500","Service full"); exit; } k1028 wrote: > > I tried everything possible and couldn't get the return code to return a > negative value when it reach the limiation. I have the same problem with > the sample script from Opensips tutorial for load_balancer.so. The retcode > is always return back as 18446744073709551614 and instead of negative > value. > > > Bogdan-Andrei Iancu wrote: >> >> Hi, >> >> I think there is a error in your script....the $retcode returns the >> return code of the last used function, but your LB function is much, >> much above the retcode testing.... >> >> Regards, >> Bogdan >> >> k1028 wrote: >>> I am playing with the Load_balancer module at this time. The retcode >>> does not >>> return a negative value for me instead it return 18446744073709551614 >>> when >>> it reach the pstn limit >>> >>> I tried with pstn=1 and pstn=2 using 1 peer and 2 peer. All come back >>> with >>> the same retcode. >>> >>> I also tried my route script as well as the one from opensips tutorial. >>> Also >>> tried google, search forum and looked up tracker not able to find >>> anything. >>> Any help would be greatly appreciated >>> >>> version: opensips 1.5.1-notls (x86_64/linux) >>> >>> this is my route script >>> # ----- Dialog params ----- >>> modparam("dialog", "dlg_flag", 5) >>> modparam("dialog", "timeout_avp", "$avp(i:4242)") >>> #Set >>> AVP timeout variable >>> >>> # ----- SST params ----- >>> modparam("sst", "sst_flag", 6) >>> #Set >>> SST flag >>> modparam("sst", "timeout_avp", "$avp(i:4242)") >>> modparam("sst", "min_se", 10800) >>> #Min >>> Session Timer >>> >>> # ----- QOS params ----- >>> modparam("qos", "qos_flag", 7) >>> #Set >>> QoS falg >>> >>> >>> route{ >>> >>> if(msg:len > max_len) >>> { >>> sl_send_reply("513", "Message Too Big"); >>> exit; >>> } >>> >>> if (!mf_process_maxfwd_header("3")) { >>> sl_send_reply("483","Too Many Hops"); >>> exit; >>> } >>> >>> # record routing >>> if (!has_totag()) { >>> # initial request >>> record_route(); >>> } else { >>> # sequential request -> obey Route indication >>> loose_route(); >>> t_relay(); >>> exit; >>> } >>> >>> if ( is_method("INVITE") ) { >>> if (sstCheckMin("1")) { >>> xlog("L_ERR", "422 Session Timer Too Small reply >>> sent.\n"); >>> exit; >>> } >>> # track the session timers via the dialog module >>> setflag(5); >>> setflag(6); >>> setflag(7); >>> } >>> >>> if ( uri=~"sip:[0-9][0-...@.*" ) { >>> load_balance("40","pstn"); >>> xlog("L_INFO","Selected destination is: $du = $du AND >>> retcode = $retcode \n\n"); >>> route(3); >>> } >>> >>> route[3] { >>> >>> t_on_reply("1"); >>> >>> # LB function returns negative if no suitable destination (for >>> requested resources) is found, >>> # or if all destinations are full >>> if ($retcode<0 ) { >>> sl_send_reply("500","Service full"); >>> exit; >>> } >>> >>> # send it out >>> if (!t_relay()) { >>> sl_reply_error(); >>> } >>> >>> onreply_route[1] >>> { >>> xlog("L_INFO", "Reply - S=$rs D=$rr F=$fu T=$tu IP=$si >>> ID=$ci\n\n"); >>> exit; >>> >>> } >>> >>> >>> exit; >>> } >>> >>> >>> Level 6 debug message >>> May 7 19:59:19 [30633] DBG:load_balancer:do_load_balance: found >>> requested >>> (0) resource pstn >>> May 7 19:59:19 [30633] DBG:dialog:build_new_dlg: new dialog >>> 0x7f77ae5740a0 >>> (c=2b56f9b707a0f7bb7585ab1655349...@xxxxxxx,f=sip:x...@xxxxxx,t=sip:xxxxxx...@xxxxxxx,ft=as4634cbd6) >>> on hash 2403 >>> May 7 19:59:19 [30633] DBG:dialog:populate_leg_info: route_set , >>> contact >>> sip:x...@xxxxx, cseq 102 and bind_addr udp:xxxxxxxxx:5060 >>> May 7 19:59:19 [30633] DBG:dialog:dlg_set_leg_info: set leg 0 for >>> 0x7f77ae5740a0: tag=<as4634cbd6> rr=<> ct=<sip:xx...@xxxxxxx> cseq=<102> >>> May 7 19:59:19 [30633] DBG:load_balancer:do_load_balance: destination >>> <sip:xxxxxxxx> selected for LB set with free=1 (max=1) >>> xlog Selected destination is: $du = sip:xxxxxxxx AND retcode =1 >>> May 7 19:59:31 [30633] DBG:dialog:build_new_dlg: new dialog >>> 0x7f77ae578410 >>> (c=291ea90b4956416b47e7932f06753...@xxxxxxx,f=sip:x...@xxxxx,t=sip:xx...@xxxxxx,ft=as718571da) >>> on hash 2865 >>> May 7 19:59:31 [30633] DBG:core:parse_headers: flags=400 >>> May 7 19:59:31 [30633] DBG:core:get_hdr_field: content_length=357 >>> May 7 19:59:31 [30633] DBG:core:get_hdr_field: found end of header >>> May 7 19:59:31 [30633] DBG:dialog:populate_leg_info: route_set , >>> contact >>> sip:xx...@xxxxxxx, cseq 102 and bind_addr udp:xxxxxxx:5060 >>> May 7 19:59:31 [30633] DBG:dialog:dlg_set_leg_info: set leg 0 for >>> 0x7f77ae578410: tag=<as718571da> rr=<> ct=<sip:x...@xxxxxx> cseq=<102> >>> May 7 19:59:31 [30633] DBG:dialog:link_dlg: ref dlg 0x7f77ae578410 with >>> 3 >>> -> 3 >>> May 7 19:59:31 [30633] DBG:rr:add_rr_param: adding (;did=13b.f0a11e75) >>> 0x780150 >>> May 7 19:59:31 [30633] DBG:load_balancer: >>> d_balance: destination <sip:xxxxxxxx> selected for LB set with free=0 >>> (max=0) >>> May 7 19:59:31 [30633] DBG:load_balancer:do_load_balance: no >>> destination >>> found >>> May 7 19:59:31 [30633] DBG:core:pv_get_dsturi: no destination URI >>> Selected destination is: $du = <null> AND retcode = 18446744073709551614 >>> >> >> >> _______________________________________________ >> Users mailing list >> Users@lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> >> > > -- View this message in context: http://n2.nabble.com/load_balancer-module-retcode-tp2838151p2846494.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. _______________________________________________ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users