Thank you Brett

I will try this aswell

BR
Simon

Brett Nemeroff je 13.07.2023 ob 16:09 napisal:
Simon,
What you are describing is the default behavior. For "fast failover" you'll need to adjust the fr_timeout parameter. If you read the tm module documentation (which I included for you below) , I believe you'll see that it describes how to do exactly what are you doing. I don't think you actually want to use DLG_timeout for your purposes; however, it might work fine given that you reset it after the call is answered.

See the full docs for the tm module for your version here:
https://opensips.org/html/docs/modules/2.1.x/tm.html#fr_timeout

And for your convenience, I've cut and pasted the relevant sections from the link above:

-----%<-----
1.1.2. Timeout-Based Failover

Timeouts can be used to trigger failover behavior. E.g. if we send a call to a gateway and the gateway does not send a provisional response within 3 seconds, we want to cancel this call and send the call to another gateway. Another example is to ring a SIP client only for 30 seconds and then redirect the call to the voicemail.

The transaction module exports two types of timeouts:

 *

    *fr_timeout* - used when no response was received yet. If there is
    no response after /fr_timeout/ seconds, the timer triggers (and
    failure route will be executed if t_on_failure() was called). For
    INVITE transactions, if a provisional response was received, the
    timeout is reset to /fr_inv_timeout/ seconds and RT_T2 for all
    other transactions. Once a final response is received, the
    transaction has finished.

 *

    *fr_inv_timeout* - this timeout starts counting down once a
    provisional response was received for an INVITE transaction.

For example: You want to have failover if there is no provisional response after 3 seconds, but you want to ring for 60 seconds. Thus, set the /fr_timeout/ to 3 and /fr_inv_timeout/ to 60.

-----%<-----


Please let us know if you need anything else
-Brett



On Thu, Jul 13, 2023 at 8:39 AM Simon Gajski via Users <[email protected]> wrote:

    Thank you
    it works as expected

    BR
    Simon

    M S je 13.07.2023 ob 11:27 napisal:
    You can set DLG_timeout to 2sec for failure route to work, then
    also look for ACK in main route to set DLG_timeout to 3600 (for
    example) if the call was answered.

    On Thu, Jul 13, 2023 at 10:28 AM Simon Gajski via Users
    <[email protected]> wrote:

        Hi

        I am running opensips 2.1.1 and have a question regarding
        accessing
        failure_route.


        In case I send INVITE to some destination where I receive
        3xx, 4xx or
        5xx reply, call goes to failure_route and uses next gw from
        there.
        Everything fine so far.
        But in some cases it hapens that opensips sends INVITE to a
        destination
        from where there is no reply.
        In this case opensips repeatedly sends INVITEs to that
        destination and
        doesn't do failover to failure_route.

        I played so far with $DLG_timeout variable, set to 2 sec.
        In this case opensips does failover to failure_route after 2
        sec,
        however established call via next gw is also terminated after
        2 sec.


        Is there another way to reach failure_route if remote end
        doesn't replay
        in expected time?

        BR
        Simon



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

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

Reply via email to