[OpenSIPS-Users] load_balancer module retcode

Bogdan-Andrei Iancu bogdan at voice-system.ro
Fri May 8 09:21:33 CEST 2009


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-9]+ at .*" ) {
>                 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=2b56f9b707a0f7bb7585ab1655349fc2 at xxxxxxx,f=sip:xxx at xxxxxx,t=sip:xxxxxxxxx at xxxxxxx,ft=as4634cbd6)
> on hash 2403
> May  7 19:59:19 [30633] DBG:dialog:populate_leg_info: route_set , contact
> sip:xxxx at 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:xxxxx at 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=291ea90b4956416b47e7932f067530e0 at xxxxxxx,f=sip:xxxx at xxxxx,t=sip:xxxxx at 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:xxxxx at 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:xxxx at 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 
>   




More information about the Users mailing list