Hi,


Actually this is very similar to what i tried before. But i just assumed that it is not being executed (no 408 in the trace, and no log entries at that moment). Now i checked again and i can see several xlog entries. (408 gateway timeout...) , just wasn't patient enough.


        if (use_next_gw()) {
                if( t_check_status("444") || !goes_to_gw("1") ) {
                        t_on_failure("2");
                        t_relay("0x08");
                        exit;
                }

                #Timeout fix #3814
                if (t_check_status("408") && t_local_replied("all")) {
xlog("L_ERR", "408 gateway timeout fix test - rU: $rU ci: $ci");
                }

...

        # end of gw list / failover
        t_reply("503", "Service Unavailable");
        exit;



Thanks very much, i will try but this now.


BR

Max M.


On 20.01.2017 13:57, Bogdan-Andrei Iancu wrote:
Hi Max,

Something like:

if( (t_check_status("444") || (t_check_status("408") && t_local_replied("all")) ) || !goes_to_gw("1") ) {

Do failover if 444 reply or if 408 without any reply received (internal 408).

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com

On 01/20/2017 01:21 PM, Max Mühlbronner wrote:
Hi,


my scenario is a special setup where we are checking for the reply code (t_check_status) and only do a failover to the next gateway when there is a 444 reply or gateway type is not "1".

...

        if (use_next_gw()) {
                if( t_check_status("444") || !goes_to_gw("1") ) {
                        t_on_failure("2");
                        t_relay();
                        exit;
                }


The problem is, there are multiple gateways in a carrier/gatewaylist (gateway type 1) which are not responding (t1 timer hits and invite is re-transmitted) and there is no failover after the first gateway anymore. Is there anything i am missing, is it even possible to do failover only for the 444 reply while at the same time still doing a failover in case of Timeout-based failover ? (t1/t2 timers)


I didn't try yet, but is something like !t_check_status("\d") feasible? E.g. doing a failover if there is no t_check_status (checking regular expression for !digits?) but i guess it does not work that way?


        if (use_next_gw()) {
                if( t_check_status("444") || !goes_to_gw("1") ) {
                        t_on_failure("2");
                        t_relay();
                        exit;
                }

                if(!t_check_status("\d")) {

                        t_on_failure("2");
                        t_relay();
                        exit;

                 }

    ...



BR




--
Max Mühlbronner
42com Telecommunication GmbH
Straße der Pariser Kommune 12-16
10243 Berlin
E-Mail: [email protected]
Web: www.42com.com

Firmenangaben/Company information:
Handelsregister/Commercial register: Amtsgericht Berlin HRB 99071 B
Umsatzsteuer-ID/VAT-ID: DE223812306
Geschäftsführer/CEO: Thomas Reinig, Alexander Reinig

Diese E-Mail enthält Informationen von 42com Telecommunication GmbH. Diese sind möglicherweise vertraulich und ausschließlich für den Adressaten bestimmt. Sollten Sie diese elektronische Nachricht irrtümlicherweise erhalten haben, so informieren Sie uns bitte unverzüglich telefonisch oder per E-Mail. This message is intended only for the use of the individual or entity to which it is addressed.
If you have received this message by mistake, please notify us immediately.

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

Reply via email to