[sr-dev] fr_timer

Andrei Pelinescu-Onciul andrei at iptel.org
Mon Oct 5 17:37:25 CEST 2009


On Oct 05, 2009 at 17:12, Martin Hoffmann <martin.hoffmann at telio.ch> wrote:
> Klaus Darilion wrote:
> > Ok. So here is my proposal as new documentation.
> >
> > fr_timer
> > 
> > Provisional or final response timeout (in milliseconds).
> 
> Should we just call it "transaction timeout"? Yes, then "fr" doesn't
> make much sense, but everyone will understand what it is about.
> Similarly, I'd call the fr_inv_timer "INVITE transaction timeout". Or
> maybe "final INVITE transaction timeout" to indicate the slight
> difference.
> 
> > The meaning of this timer depends on the current processed request.
> > For all forwarded requests except INVITE (and of course ACK), this
> > parameter defines how long it will be waited for a final reply until
> > the transaction gets marked as "timeout". For INVITE transactions,
> > the parameter defines how long it will be waited for a provisional
> > response until "timeout". In case of INVITE, the parameter
> > fr_inv_timer will be used as final response timeout.
> 
> This sounds a bit confusing, if you don't mind me saying so.
> Alternative proposal:
> 
>    The fr_timer indicates the time in milliseconds after which a
>    transaction that has not yet received a response times out. For
>    INVITEs, this timer is stopped after the first provisional (1xx)
>    response is received and fr_inv_timer starts instead. For all
>    other methods, only final responses (200 to 699) are considered.

+1

> 
>    Similarly, fr_timer indicates the time after which resending of a
>    2xx response upstream will cease, if no ACK has been received.
     ^^^^ negative response to an invite

     (it has nothing to do with 2xx/ACK which are end-to-end, but with
      negative replies replies for INV and ACK)
> 
> Which, incidentally, leads to a question: Does the time spend before
> receiving a 1xx count for fr_inv_timer or does it actually start after
> the 1xx?

It doesn't count, fr_inv_timer starts from "0" after 1xx
(and after any other provisional if restart_fr_on_each_reply is 1, which
is the default).
> 
> > >If needed in a future version we could switch to fr_timer (non-INV and
> > >neg ACK wait), fr_inv_timer1 (wait for first INVITE reply),
> > >fr_inv_timer2 (after provisional reply).
> > 
> > That would make sense.
> 
> Is there any reason to have different values for fr_timer in the INVITE,
> non-INVITE, and 2xx cases? If so, split them. If not, keep them
> together and explain properly.

Nobody seems to be needing it, at least for now.

> 
> But if it gets split, rather use nr_inv_timer and fr_inv_timer or
> somesuch, to make it a bit more telling. Or use, what is it? A and C?

There is not a 1:1 mapping between the RFC timers and the tm timers.
According to the RFC we should use only fr_inv_timer all the time for
INVITEs :-) (so no fast failover, voicemail a.s.o)
> 

See also https://sip-router.org/wiki/ref_manual/timers , which is a more
complete description, including corresponding RFC timer names.

Andrei



More information about the sr-dev mailing list