[OpenSIPS-Users] CANCEL handling

Mariana Arduini marianarduini at gmail.com
Tue Jan 8 21:49:14 CET 2013


Hello all,

I hope somebody can give me a kind hint on what to do here.

We have this piece of code for CANCEL handling:

    # CANCEL processing
    if (is_method("CANCEL")) {
        if (t_check_trans()) {
            t_relay();
        }
        exit;
    }

What happens is sometimes we take too long to process the INVITE due to
some DB issues, and the UAC sends us a CANCEL before we relay the INVITE.

We don´t use t_newtran() because of this big warning in docs saying that "the
changes on the request that are made after this function call will not be
saved into transaction!!!". We need to perform a lot of changes in the
requests and I understand this wouldn´t be possible after calling
t_newtran().

So our transaction is not created untill we relay the INVITE, which means
that any CANCEL received before that will be dropped.

We also tried testing the CANCEL messages we´re receiving in these cases
with has_totag() and loose_route(), but they won´t pass as well.

Is there any way to verify a CANCEL message in this scenario and relay it
in case is belongs to a valid transaction?

Any help will be much appreciated.

Regards,
Mariana.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20130108/3cb0acad/attachment.htm>


More information about the Users mailing list