[OpenSIPS-Users] Load balancer retcode question on OpenSIPS 1.6.2

Bogdan-Andrei Iancu bogdan at voice-system.ro
Sun Aug 1 17:11:55 CEST 2010


Hi,

your code is not correct as the $retcode returns the ret code of the 
last executed instruction, including the "if" statement - to have a 
correct code, you need to save the $retcode value immediately after the 
call of load_balance() function....

Most probably the "1" val you see is the "true" return code of the "if" 
code. Try:

if ( uri=~"sip:92[1-9][0-9]+ at .*" ) {
    load_balance("27","white");
    $var(x) = $retcode;
} else if ( uri=~"sip:3392[1-9][0-9]+ at .*" ) {
    load_balance("27","grey"); #
    $var(x) = $retcode;
}
if ( $var(x) < 0 ) {
    sl_send_reply("500","Service full");
    exit;
}


Regards,
Bogdan

k1028 wrote:
> I figured it out. 
>
> This work all the time
> if ( uri=~"sip:92[1-9][0-9]+ at .*" ) {
> load_balance("27","white"); 
> } else if ( uri=~"sip:3392[1-9][0-9]+ at .*" ) {
> load_balance("27","grey"); #
> }
> if ( $retcode < 0 ) {
> sl_send_reply("500","Service full");
> exit;
> }
>
> This work sometime
> if ( uri=~"sip:92[1-9][0-9]+ at .*" ) {
> load_balance("27","white"); 
> } 
> if ( uri=~"sip:3392[1-9][0-9]+ at .*" ) {
> load_balance("27","grey"); #
> }
> if ( $retcode < 0 ) {
> sl_send_reply("500","Service full");
> exit;
> }
>
>   


-- 
Bogdan-Andrei Iancu
OpenSIPS Bootcamp
20 - 24 September 2010, Frankfurt, Germany
www.voice-system.ro




More information about the Users mailing list