The most direct and "correct" answer is that the failure reply with the Retry-After header should be passed back to the UAC, and the UAC should be handling this - not the proxy.  This is why there's not a "direct" way of doing it in Kamailio, as it's not really a proxy function.

With that said, you can probably achieve what you're looking for by adding the call id and time you wish to resume to mqueue, suspending the call, and having a task run with rtimer at a relatively small interval (every second) to check the message queue to see if there is a transaction to resume.

But really, it should go back to the UAC.

Regards,
Kaufman


From: Knserbrave via sr-users <sr-users@lists.kamailio.org>
Sent: Monday, September 23, 2024 11:25 AM
To: Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org>
Cc: Knserbrave <knserbrave@gmail.com>
Subject: [SR-Users] Honor Retry-After
 

CAUTION: This email originated from outside the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.


Hi Community,

Any advice on how to handle a Retry-After header locally without sleeping? I would like to suspend the transaction, schedule an event, wake up the transaction after the event timer triggers, and resume the transaction.  I don't believe this is possible though.