REFER, NOTIFY, and 408 timeout

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2008-03-28 at 09:28 +0000, Benny Prijono wrote:
> On Thu, Mar 27, 2008 at 8:10 PM, Pedro Sanchez <psanchez at nortel.com> wrote:
> > Hello,
> >
> >  My PJSIP client is reporting a time out (408) and dropping a call
> >  (sending a BYE message) just a few seconds after it has been
> >  successfully established. I'm trying to understand why this is
> >  happening.
> >
> >  The client connects via a proxy server which happens to be front-ending
> >  a pool of real servers. Therefore, upon processing an INVITE from my
> >  client the proxy sends a REFER message telling my client the real
> >  address to be contacted (specified in the Refer-To field). My client
> >  sends the new INVITE, still via the original proxy, which is processed
> >  fine, gets the 200 OK, and everyone is happy, the connection is
> >  established.
> 
> Okay.
> 
> >  In parallel to the above, my client sends NOTIFY messages to the proxy
> >  telling it about the status of the REFER message it received before. It
> >  first sends a NOTIFY Trying message, and upon successful call
> >  establishment with the requested server it sends a NOTIFY OK message to
> >  the proxy ... and it keeps sending them, one after another. These NOTIFY
> >  messages get a "100 Trying" response each from the proxy, which my
> >  reading of RFC 3515 tells me is acceptable (as well as any appropriate
> >  4xx-6xx class response).
> 
> While it is acceptable, "100 Trying" is not a final response of
> course, so the UAC transaction continues.
> 
> >  Some times it happens that the original proxy decides to process the
> >  original INVITE directly so no REFER message is sent to my client. In
> >  these cases, the connection is established properly and the call is
> >  never dropped. The session goes just fine.
> 
> Right.
> 
> >  The only thing that puzzles me is why PJSIP keeps repeatedly sending the
> >  NOTIFY OK messages after the call has been successfully established.
> >  Isn't just one enough? Or is it that the "100 Trying" responses are not
> >  expected by PJSIP?
> 
> The NOTIFY SIP transactions are independent from one another and from
> the INVITE transaction. Each transaction must get a final response for
> it to terminate. And from your description above, the NOTIFY
> transaction has not been responded with final response by your proxy.
> 
> So because of that, PJSIP continues to retransmit the NOTIFY request
> every 4 seconds (even though a provisional response has been
> received). This complies to RFC 3261 Section 17.1.2.1:
> 
>  "If a provisional response is received, retransmissions continue for
> unreliable transports, but at an interval of T2."
> 
> >  So, any ideas where this 408 timeout might be coming from?
> 
> If the NOTIFY request is not responded with a final response after 32
> seconds, the transaction layer in pjsip will raise 408 error to the
> upper layer.
> 
> Cheers
>  Benny
> 
> >  Thank you,
> >
> >  --
> >  Pedro
> >
> >

I see the point. What response would be considered final in this case?

-- 
Pedro







[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux