load_balancer module retcode

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

load_balancer module retcode

k1028
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]+@.*" ) {
                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@xxxxxxx,f=sip:xxx@xxxxxx,t=sip:xxxxxxxxx@xxxxxxx,ft=as4634cbd6) on hash 2403
May  7 19:59:19 [30633] DBG:dialog:populate_leg_info: route_set , contact sip:xxxx@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@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@xxxxxxx,f=sip:xxxx@xxxxx,t=sip:xxxxx@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@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@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
Reply | Threaded
Open this post in threaded view
|

Re: load_balancer module retcode

Bogdan-Andrei Iancu
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]+@.*" ) {
>                 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@xxxxxxx,f=sip:xxx@xxxxxx,t=sip:xxxxxxxxx@xxxxxxx,ft=as4634cbd6)
> on hash 2403
> May  7 19:59:19 [30633] DBG:dialog:populate_leg_info: route_set , contact
> sip:xxxx@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@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@xxxxxxx,f=sip:xxxx@xxxxx,t=sip:xxxxx@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@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@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
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: load_balancer module retcode

k1028
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-9]+@.*" ) {
>                 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@xxxxxxx,f=sip:xxx@xxxxxx,t=sip:xxxxxxxxx@xxxxxxx,ft=as4634cbd6)
> on hash 2403
> May  7 19:59:19 [30633] DBG:dialog:populate_leg_info: route_set , contact
> sip:xxxx@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@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@xxxxxxx,f=sip:xxxx@xxxxx,t=sip:xxxxx@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@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@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
Reply | Threaded
Open this post in threaded view
|

Re: load_balancer module retcode

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