REFER, NOTIFY, and 408 timeout

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

 



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
>
>
>
>
>
>  _______________________________________________
>  Visit our blog: http://blog.pjsip.org
>
>  pjsip mailing list
>  pjsip at lists.pjsip.org
>  http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>



[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