Hi,
If a transaction is currently t_suspended() and has not been t_continued(), will t_check_trans() still find that transaction for retransmission-dampening purposes, e.g. if a retransmission of the same request as the original one is received?
Thanks,
Hello,
On 20/10/16 21:51, Alex Balashov wrote:
Hi,
If a transaction is currently t_suspended() and has not been t_continued(), will t_check_trans() still find that transaction for retransmission-dampening purposes, e.g. if a retransmission of the same request as the original one is received?
yes, the transaction is detected. Also the timeout runs for it and failure_route can be executed in that case.
Cheers, Daniel
On 10/21/2016 05:22 AM, Daniel-Constantin Mierla wrote:
Also the timeout runs for it and failure_route can be executed in that case.
Interesting. That brings up two more questions:
1. If fr_timer is set to 3000 but I suspend the transaction for 4 seconds, does that mean that failure_route is going to be called at the 3000 mark anyway? If so, does that mean the transaction is implicitly woken up (t_continue()'d) at that moment?
2. Does the failure_route run in a normal SIP worker, or in an async worker, if using async_task_route() here?
On 21/10/16 11:26, Alex Balashov wrote:
On 10/21/2016 05:22 AM, Daniel-Constantin Mierla wrote:
Also the timeout runs for it and failure_route can be executed in that case.
Interesting. That brings up two more questions:
- If fr_timer is set to 3000 but I suspend the transaction for 4
seconds, does that mean that failure_route is going to be called at the 3000 mark anyway? If so, does that mean the transaction is implicitly woken up (t_continue()'d) at that moment?
if you resume, the transaction is back in processing -- from timeout point of view, you can think of t_suspend() as a t_relay() without sending out and the t_continue() as receiving a negative response and willing to re-route the request.
- Does the failure_route run in a normal SIP worker, or in an async
worker, if using async_task_route() here?
Failure route for local triggered timeout is executed in the timer process, the others by the sip worker that received the negative response.
Cheers, Daniel