Hi Bogdan,
Instead of t_inject_branches I use t_relay() from wait_for_event()
callback. As far as I understood the logic is the same. t_relay should
just fail if transaction connected to the waiting context has been
canceled by that time.
Thanks for the detailed reply.
Hi Vitalii,
The waiting for the event is not strong correlated with the
transaction. The transaction may disappear while waiting. The waiting
context is only keeping a reference to the transaction, so the
t_inject_branch() can look it up (if still exists).
So, if the transaction is canceled, the event waiting is not affected,
it will still be triggered, but the t_inject will fail (either with
transaction not found, either with not able to create more branches on
a canceled transaction).
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
OpenSIPS Bootcamp 2018
http://opensips.org/training/OpenSIPS_Bootcamp_2018/
On 11/16/2018 07:07 PM, Vitalii Aleksandrov wrote:
Thanks for the information. Have one more related question.
What If I call somewhere, opensips calls wait_for_event() and before
the event happens or async timeout (will create a bug report) fired I
CANCEL the call.
Since async() keeps some context in transaction structure and this
transaction is already canceled should I expect that async() task is
also canceled and will never call a callback route? Or should I
always check t_was_cancelled() in the beginning of a callback route?
Hi Vitalii,
For the wait_for_event(), the timeout seems to have no effect, the
waiting being for ever :-| . The transaction has no timeout as you
didn;t sent out any branch yet (the transaction timeout is for
waiting on replies).
Could you please open bug report on the opensips tracker on github ?
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
OpenSIPS Bootcamp 2018
http://opensips.org/training/OpenSIPS_Bootcamp_2018/
On 11/14/2018 03:17 PM, Vitalii Aleksandrov wrote:
Hi,
event_routing module provides the great async function
wait_for_event(). If script subscribes for a event and received it
it calls some "resume_route".
What I can't understand is what happens with a transaction if
wait_for_event() never catches an event and reaches its timeout.
Is the any way to continue script execution from the place where
"wait_for_event() was called or to execute some "timeout_route" to
handle transaction properly?
_______________________________________________
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