[Devel] ETag in Presence module
Anca-Maria Vamanu
anca at voice-system.ro
Wed Apr 25 10:49:25 CEST 2007
Hello,
RFC3903 :
8.3. Server Usage
Entity-tags are generated and maintained by the ESC. They are part
of the state maintained by the ESC that also includes the actual
event state and its remaining expiration interval. An entity-tag is
generated and stored for each successful event state publication, and
returned to the EPA in a 200 (OK) response. Each event state
publication from the EPA that updates a previous publication will
include an entity-tag that the ESC can use as a search key in the set
of active publications.
This is exacly what presence module does.
When a new Publish is received, it generates a Etag and includes in the 200ok reply. If a publish with a SIP-If-Match header is received, that is an updating Publish, it searches if
it has a matching etag stored in database.
It does not reuse it for other publications and it respects the unicity propriety described in:
6. The ESC returns a 200 (OK) response. The response MUST contain an
Expires header field indicating the expiration interval chosen by
the ESC. The response MUST also contain a SIP-ETag header field
that contains a single entity-tag identifying the publication.
The ESC MUST generate a new entity-tag for each successful
publication, replacing any previous entity-tag associated with
that event state. The generated entity-tag MUST be unique from any
other entity-tags currently assigned to event state associated
with that Request-URI, and MUST be different from any entity-tag
assigned previously to event state for that Request-URI. See
Section 8.3 for more information on the ESC handling of entity-
tags.
Klaus Darilion wrote:
> Hi!
>
> Is the ETag constant for a certain client "session"?
>
> RFC3903 mandates that the Etag should be changed with every PUBLISH:
>
> 6.6: ...The ESC MUST generate a new entity-tag for each successful
> publication, replacing any previous entity-tag associated with
> that event state.
>
> I think currently openser reuses the Etag from the received PUBLISH in
> the 200 Ok. Nevertheless, if "changing" Etag will be introduced IMO a
> constant Etag should be chooseable with module parameters.
>
> regards
> klaus
>
> _______________________________________________
> Devel mailing list
> Devel at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/devel
>
More information about the Devel
mailing list