Subject: [Sipping] 503 for retransmisison after 200OK

From: Avshalom Houri <[email-masked]>
Date: Thu, 14 Sep 2006 20:34:07 +0300

What should be the behavior when:

A UAC has sent an INVITE that was eventually received 200OK
Since the 200 OK was delayed, the UAC have retransmitted it but now
the server sends a 503 since it is loaded.
Since the server is loaded it can not know that it has accepted the
INVITE before.

Is this a legal SIP scenario at all?
What should be the client's behavior if 200OK was received before the
503 and when the 503 was received before the 200OK?

As far as I could tell this scenario is not covered by:
draft-rosenberg-sipping-overload-reqs-01

--Avshalom
_______________________________________________
Sipping mailing list  https://www1.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use [email-masked] for questions on current sip
Use [email-masked] for new developments of core SIP

---

From: Paul Kyzivat <[email-masked]>
Date: Thu, 14 Sep 2006 14:17:42 -0400

> the server sends a 503 since it is loaded.

Do you mean:
- UAC sends invite
- the UAS receives invite, send a 200, which is delayed somewhere
- the UAC retransmits invite
- UAC receives the 200
- UAS receives retransmitted invite, sends 503
- UAC receives 503 and ???

If so, I believe the UAS is in error. It should have recognized the 
reinvite as such and retransmitted the 200.

> Since the server is loaded it can not know that it has accepted the

maybe so, but what it did seems wrong. You can't have two different 
final responses to the same request.

> Is this a legal SIP scenario at all?

I don't think so.

> 503

This is a hard call. The right thing depends on which broken behavior 
the UAS is exhibiting. You should probably ignore one and act on the 
other. And either way you have to send an ACK. Since you have probably 
already started down the path handling the 200, the simplest path is 
probably to simply ignore the 503.

If you ignore the 503, worst case is that you set up the media streams, 
but the UAS doesn't. Your user experiences a dead call and eventually 
hangs up, causing you to send BYE. But this will probably be several 10s 
of seconds later, when conditions may be different.

If you ignore the 200 and process the 503, then you assume there is no 
call, wait awhile, and then try again. Meanwhile, your user experiences 
what seems like a very long setup delay. If there was a call, the UAS 
will be awaiting an ACK, the callee will experience a dead call and may 
be off hook when the retry happens.  In the best case, there was no 
call, and the retry works, and the caller gets a call with a long setup, 
while all looks fine to the callee.

Pick your poison.

> and when the 503 was received before the 200OK?

I assume you will be down the 503 processing path before receiving the 
200. I would expect it to be hard to get back into successful call 
processing. If you do, see above.

	Paul

> ------------------------------------------------------------------------
>

---

From: Avshalom Houri <[email-masked]>
Date: Thu, 14 Sep 2006 21:39:31 +0300

I agree that the UAS is in error and should have retransmitted the 200OK.
However, when the server is loaded in many cases it can not check that the 
200OK was sent.

--Avshalom

Paul Kyzivat <[email-masked]> 
14/09/2006 21:17

To
Avshalom Houri/Haifa/IBM@IBMIL
cc
[email-masked]
Subject
Re: [Sipping] 503 for retransmisison after 200OK

Do you mean:
- UAC sends invite

I don't think so.

Pick your poison.

                 Paul

---

From: "Jeroen van Bemmel" <[email-masked]>
Date: Thu, 14 Sep 2006 20:45:44 +0200

Avshalom,

The UAS should perform transaction matching before sending 503. If it is too loaded to do transaction matching, it should not send the 503 response at all, but rather drop the request.

Regards,

Jeroen

  ----- Original Message ----- 
  From: Avshalom Houri 
  To: Paul Kyzivat 
  Cc: [email-masked] 
  Sent: Thursday, September 14, 2006 8:39 PM
  Subject: Re: [Sipping] 503 for retransmisison after 200OK

  I agree that the UAS is in error and should have retransmitted the 200OK. 
  However, when the server is loaded in many cases it can not check that the 200OK was sent. 

  --Avshalom

        Paul Kyzivat <[email-masked]> 
        14/09/2006 21:17 
       To Avshalom Houri/Haifa/IBM@IBMIL  
              cc [email-masked]  
              Subject Re: [Sipping] 503 for retransmisison after 200OK 

  Do you mean:
  - UAC sends invite

  I don't think so.

  Pick your poison.

                  Paul

  > draft-rosenberg-sipping-overload-reqs-01

------------------------------------------------------------------------------