[OpenSER-Users] "noisy_ctimer" parameter in TM module

Iñaki Baz Castillo ibc at in.ilimit.es
Mon Mar 3 17:17:53 CET 2008


El Monday 03 March 2008 16:58:39 Jiri Kuthan escribió:
> >I do not think so. I think it should be removed because I do not know any
> > reasons why you would not want to send CANCEL to the called party, but
> > terminate the INVITE transaction in OpenSER and send 408 Request Timeout
> > to the calling party when fr_inv_timer expires.
>
> see bellow. Because it may be legitimate to have a very long call setup
> period (consuming memory), and you don't know in advance how long is long
> enough. Then, applying the "better-than-nothing" principle, it is
> beneficial to conserve memory and go stateless, rather than experiencing a
> stateful cancellation of transactions due to short timers or memory
> exhaustion due to long timers.

Jiri, I assume you mean the section 16.7 of RFC 3261:

RFC 3261:
-------------------------------------------------------------
  16.7 Response Processing

   When a response is received by an element, it first tries to locate a
   client transaction (Section 17.1.3) matching the response.  If none
   is found, the element MUST process the response (even if it is an
   informational response) as a stateless proxy (described below).  If a
   match is found, the response is handed to the client transaction.

      Forwarding responses for which a client transaction (or more
      generally any knowledge of having sent an associated request) is
      not found improves robustness.  In particular, it ensures that
      "late" 2xx responses to INVITE requests are forwarded properly.
-------------------------------------------------------------


But also note that this RFC 3261 behaviour is considered a bug (in fact a 
security bug). In fact there is a draft making it fix, and it changes the 
previous 16.7 section with this one:

http://tools.ietf.org/html/draft-sparks-sip-invfix-01#section-8.2
-------------------------------------------------------------
      When a response is received by an element, it first tries to
      locate a client transaction (Section 17.1.3) matching the
      response.  If none is found, the element MUST NOT forward the
      response.  If a transaction is found, the response is handed to
      the client transaction.
-------------------------------------------------------------


So, in case the Timer is expired in OpenSer it MUST drop any reply received 
after it.



-- 
Iñaki Baz Castillo
ibc at in.ilimit.es




More information about the sr-users mailing list