[SIPForum-discussion] SIP Registrar (request processing order/423intervall too brief)

Rajnish Jain rj at pscientific.com
Fri Feb 16 00:17:07 UTC 2007



> (1) Is the ordering of the steps for processing a 
> REGISTER-Request given in Section 10.3 of RFC3261 mandatory? 
> Or may an implementation execute the steps in an arbitrary 
> (of course reasonable) order. For example, is an 
> implementation which rejects an invalid request (because of 
> invalid contact header fields, step 6) before authorizing the 
> user (step 5) conform to the specification?

Since there is no normative language in Section 10.3 that says that the
Registrar MUST execute the steps in the mentioned sequence, in theory
implementers can use their own judgment. But, altering the sequence of steps
will almost always lead to incorrect behavior. There is a reason why step 6
exists after step 5. The idea is to make sure that the AOR is valid before
the Contact: is checked for semantic correctness in correlation with
Expires: (I'm assuming that the Contact: would have been checked for
syntactical ABNF correctness a lot earlier in processing in your

The issue in running step 6 before step 5 is following -- let's say you
return a 400 because of step 6 but if the AOR in that request belonged to a
mismatching domain, then you're misleading the UAC (or the person
troubleshooting this) to believe that it is probably talking to the right
Registrar and only the REGISTER message construction needs to be corrected.
The obvious reason is that UAC developer or the troubleshooter will refer to
what's written in RFC 3261. It is unlikely that they'll know that your
Registrar works on a different sequence of steps. Therefore, it is probably
not a good idea to alter the sequence of steps (even if it makes some

> (2) The RFC3261 says, "the registrar MAY choose an expiration 
> less than the requested expiration interval" and under some 
> circumstances it "MAY reject the registration with a response 
> of 423 (Interval Too Brief)". Is the registrar allowed to 
> extend the expiration interval (e.g. the requested expiration 
> value is 300, but the registrar uses 600)?
No. The Registrar can only lower the expiration period in 200 response not
up it. If the Registrar wants the UAC to use 600 when the UAC requested a
value lower than that (e.g. 300), then the Registrar will have to send back
a 423 response with Min-Expires: 600.


More information about the discussion mailing list