[OpenSIPS-Users] Absorbing retransmissions and CANCEL

Iñaki Baz Castillo ibc at aliax.net
Sun Oct 12 12:12:35 CEST 2008


El Domingo, 12 de Octubre de 2008, Alex Massover escribió:
> Hi!
>
> Thanks, this solves this problem, but now I run to another problem, when
> CANCEL is sent while perl_exec(“very_heavy_auth”) is still running,
> OpenSIPS responds with 500 and I have the following in the log:
>
> Oct 12 07:34:09 y /usr/sbin/opensips[21371]: ERROR:tm:t_forward_nonack:
> discarding fwd for a cancelled/6xx transaction Oct 12 07:34:09 y
> /usr/sbin/opensips[21371]: ERROR:tm:w_t_relay: t_forward_nonack failed Oct
> 12 07:34:09 y /usr/sbin/opensips[21371]: WARNING:tm:t_unref: script writer
> didn't release transaction
>
> The problem is with sending 500, the same thing but running silently will
> be ok.
>
> Or even better to detect somehow that transaction was cancelled and stop
> further processing when perl_exec(“very_heavy_auth”) exits. Bogdan already
> explained to me that CANCEL processed in different process. But still the
> transaction is common and tm module knows that it canceled. The question
> is, how can I make it running nicer, without sending 500.

Per RFC3261 is invalid to send a CANCEL if the UAC hasn't received provisional 
response yet. So I suggest you to send a "100 Trying" in the instant you 
receive the REGISTER.


-- 
Iñaki Baz Castillo



More information about the Users mailing list