while testing a new sip ua, i noticed that at some point it sent (don't
ask me why because i don't know) a publish request without any body. it
was not an initial publication, because it contained SIP-If-Match header
with an etag. the publication was for even package presence.
what openser presence server did was that it accepted the publish with
200 ok that contained a NEW etag value in its SIP-If-Match header.
i have been trying to find out from rfcs where this kind of behavior
would have been defined, but so far without success. rfc3903 says:
5. The ESC processes the published event state contained in the body
of the PUBLISH request. If the content type of the request does
not match the event package, or is not understood by the ESC, the
ESC MUST reject the request with an appropriate response, such as
415 (Unsupported Media Type), and skip the remainder of the steps.
in this publish content type didn't match the event package, because
there was none. reading further i found this:
* If the request has no message body and contained no entity-tag,
the ESC SHOULD reject the request with an appropriate response,
such as 400 (Invalid Request), and skip the remainder of the
steps. Alternatively, in case either ESC local policy or the
event package has defined semantics for an initial publication
containing no message body, the ESC MAY accept it.
but it does not apply, because the publication was not initial.
so, have i found a bug or any other ideas?
-- juha