Dispatcher module setting to probing

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

Dispatcher module setting to probing

Pete Kelly
I am testing with the dispatcher module at the moment, one of the options is to set the probing mode to 1 which means the module will automatically disable a gateway if it receives a 408.

Is it possible to make this only set to probing if a *locally* generated 408 is received? At the moment it disables even if the downstream gateway returns a 408 which seems wrong to me. If the gateway has responded then it is not inactive.

The code looks like this but I am not sure if it's easy to derive if the 408 is locally generated from the tmcb_params 

struct tmcb_params *ps

        if(ds_probing_mode==1 && ps->code == 408)
        {
                if (ds_set_state(group, &uri, DS_PROBING_DST, 1) != 0)
                {
                        LM_ERR("Setting the probing state failed (%.*s, group %d)\n",
                                        uri.len, uri.s, group);
                }
        }


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Dispatcher module setting to probing

thomcr
Try something like this

if (t_check_status("486|408") && t_local_replied("all")) {


On Fri, Jun 10, 2011 at 4:52 AM, Pete Kelly <[hidden email]> wrote:
I am testing with the dispatcher module at the moment, one of the options is to set the probing mode to 1 which means the module will automatically disable a gateway if it receives a 408.

Is it possible to make this only set to probing if a *locally* generated 408 is received? At the moment it disables even if the downstream gateway returns a 408 which seems wrong to me. If the gateway has responded then it is not inactive.

The code looks like this but I am not sure if it's easy to derive if the 408 is locally generated from the tmcb_params 

struct tmcb_params *ps

        if(ds_probing_mode==1 && ps->code == 408)
        {
                if (ds_set_state(group, &uri, DS_PROBING_DST, 1) != 0)
                {
                        LM_ERR("Setting the probing state failed (%.*s, group %d)\n",
                                        uri.len, uri.s, group);
                }
        }


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users




--
Robert

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Dispatcher module setting to probing

Pete Kelly


On 10 June 2011 23:36, Robert Thomas <[hidden email]> wrote:
Try something like this

if (t_check_status("486|408") && t_local_replied("all")) {

That is what I am doing at the moment in the failure route - however if probing mode is set to 1 then opensips will handle all the setting to probing for you (no failure route logic or manual ds_set_state required), which it does automatically on receiving n 408 responses.

What I want to know is can opensips be limited to only counting it as a failure if the 408 is locally generated.
 


On Fri, Jun 10, 2011 at 4:52 AM, Pete Kelly <[hidden email]> wrote:
I am testing with the dispatcher module at the moment, one of the options is to set the probing mode to 1 which means the module will automatically disable a gateway if it receives a 408.

Is it possible to make this only set to probing if a *locally* generated 408 is received? At the moment it disables even if the downstream gateway returns a 408 which seems wrong to me. If the gateway has responded then it is not inactive.

The code looks like this but I am not sure if it's easy to derive if the 408 is locally generated from the tmcb_params 

struct tmcb_params *ps

        if(ds_probing_mode==1 && ps->code == 408)
        {
                if (ds_set_state(group, &uri, DS_PROBING_DST, 1) != 0)
                {
                        LM_ERR("Setting the probing state failed (%.*s, group %d)\n",
                                        uri.len, uri.s, group);
                }
        }


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users




--
Robert


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users