Subject: [Sip] RFC suggests wrong error response for out of sequence requests?

From: "Christian Jansson" <[email-masked]>
Date: Tue, 8 Apr 2003 13:24:16 +0200

It can't be the fault of the UAS that an incoming request has a lower
sequence number than one already seen. Therefore I think that it is very
strange for the UAS to send a 500 Server Internal Error as the text from
the RFC below states, as the UAS may not have any error that can be
repaired. Shouldn't the UAS send out a 4xx class response like 400 Out
of Sequence instead, which will indicate that the source of the error is
on the UAC side?

RFC3261 page 77, sixth line from the top
"If the remote sequence number was not empty, but the sequence number
of the request is lower than the remote sequence number, the request
is out of order and MUST be rejected with a 500 (Server Internal
Error) response."

----------------------
 Christian Jansson
 Hotsip AB
 
_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email-masked] for questions on current sip
Use [email-masked] for new developments on the application of sip

---

From: "Brett Tate" <[email-masked]>
Date: Tue, 8 Apr 2003 16:49:30 -0400

> It can't be the fault of the UAS that an 
> incoming request has a lower sequence number 
> than one already seen. Therefore I think that 
> it is very strange for the UAS to send a 
> 500 Server Internal Error as the text from
> the RFC below states, as the UAS may not have 
> any error that can be repaired. 

The cseq out of order could be the fault 
of a bad UAS.  However I agree that it is 
likely the fault of the UAC sending a subsequent 
request prior to receiving acknowledgement 
of a prior request.  And yes the response
reason text of 500 can be adjusted to 
provide clarity for the given situation 
(i.e. "500 cseq value must be higher than 6").

The important thing is to communicate that
you did not process the request and that
you might be able to process the same request
with higher cseq at a later time.

I would prefer a unique response code for 
cseq out of order.  However 500 works ok in
the spirit of reusing response codes and
triggering an old UAC to potentially retry
the request.

> Shouldn't the UAS send out a 4xx class 
> response like 400 Out of Sequence instead, 
> which will indicate that the source of 
> the error is on the UAC side?

The UAC is not guaranteed to be the source
of the problem.  The currently specified
4xx responses that potentially contain a
retry-after header are even less informative
than the 500.

> "If the remote sequence number was not 
> empty, but the sequence number of the 
> request is lower than the remote sequence 
> number, the request is out of order and 
> MUST be rejected with a 500 (Server Internal
> Error) response."