[SR-Users] CANCEL message processing
Daniel-Constantin Mierla
miconda at gmail.com
Mon Apr 2 11:27:55 CEST 2012
Hello,
On 3/30/12 5:17 PM, Stephen Dodge (Bistech) wrote:
>
> Hi Guys,
>
> I have a question regarding the correct processing for cancelled requests
>
> 1. (A)--------------------INVITE ------------------->(B)
>
> 2. (A)<------------------180 RIGING------------------(B)
>
> 3. (A)--------------------CANCEL-------------------->(B)
>
> 4. (A)<------------------OK--------------------------(B)
>
> 5. (A)<---------487 Request Terminated---------------(B)
>
> 6. (A)--------------------ACK----------------------->(B)
>
> I have the following section to deal with cancel messages however I am
> finding that the 487 response still hits my failure_route block.
> The failure_route block is called for serial forking.
>
> # CANCEL processing
>
> if (is_method("CANCEL"))
>
> {
>
> if (t_check_trans())
>
> xdbg("## BISNET ## - Cancel Processing\n");
>
> t_relay();
>
> exit;
>
> }
>
first, a quick note about cfg snippet above:
- you added xdbg() after the IF which makes t_relay() to be executed
always -- you should add curly braces when having more than one action
in an IF statement.
> I can obviously do something like a (!t_check_status("487")) within
> the failure block but is there a better way to deal with this response ?
>
> Although this doesn't really cause me a problem at the moment I see
> the following error in the debug
>
> /usr/sbin/kamailio[23786]: ERROR: tm [tm.c:1368]: ERROR: w_t_relay_to:
> t_relay_to failed
>
> /usr/sbin/kamailio[23786]: ERROR: sl [sl_funcs.c:282]: ERROR:
> sl_reply_error used: transaction canceled (487/SL)
>
> As always your help is appreciated.
>
you have to add at the top of failure route:
if (t_is_canceled()) {
exit;
}
The failed transaction is the INVITE, which gets 487. While makes no
point in rerouting the INVITE since the caller canceled, it is useful in
some cases to get to failure route (e.g., statistics, end rtpproxy relay
session initiated for INVITE, ...).
Cheers,
Daniel
--
Daniel-Constantin Mierla
Kamailio Advanced Training, April 23-26, 2012, Berlin, Germany
http://www.asipto.com/index.php/kamailio-advanced-training/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20120402/e25a3c87/attachment.htm>
More information about the sr-users
mailing list