[OpenSIPS-Users] CANCELing transactions while perl_exec() running

Alex Massover alex at jajah.com
Sun Aug 17 13:38:01 CEST 2008


Hi!

Here's my logic:

[…]
if(is_method("INVITE"))
        { if(perl_exec("call_backend")) { …..
[…]

if(is_method("CANCEL")) {
if(t_check_trans())
        {
                if(!t_relay())
                {
                        sl_reply_error();
                }
        }
        exit;
}

The purpose of perl_exec("call_backend") is to authenticate each call, before the call is routed to destination.

I have a following problem - when UAC sends CANCEL while perl_exec is still running. In this case t_check_trans() returns false, and CANCEL is silently dropped, so UAC retransmits CANCEL until timer fires.

I wonder how I can correctly process CANCEL for transaction while perl_exec is still running?
AFAIU, if I just reply with 200 to CANCEL it's not good, because the when perl_exec exits the transactions will be continued. And if I remove t_check_trans() it also will make no good.
Probably I need to reply with 200 but really stop this transaction from been continued after perl_exec, but I can't figure out how to do it.



--
Best Regards,
Alex Massover


 
 
************************************************************************************
This footnote confirms that this email message has been scanned by
PineApp Mail-SeCure for the presence of malicious code, vandals & computer viruses.
************************************************************************************

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.opensips.org/pipermail/users/attachments/20080817/6020b37e/attachment.htm 


More information about the Users mailing list