[Devel] ETag in Presence module
Anca-Maria Vamanu
anca at voice-system.ro
Wed Apr 25 12:10:45 CEST 2007
Reading again I think you may be right :) . If so I will do the changes.
Klaus Darilion wrote:
> I read the RFC different:
>
> ...The ESC MUST generate a new entity-tag for each successful
> publication, replacing any previous entity-tag associated with
> that event state.
>
> IMO this means:
>
> 1.
> PUBLISH
> ......
>
> 200 OK
> SIP-ETag: abc
>
> 2. publish from same client
> PUBLISH
> SIP-If-Match: abc
>
> 200 OK
> SIP-ETag: def
>
> 3.
> PUBLISH
> SIP-If-Match: def
>
> 200 OK
> SIP-ETag: ghi
>
>
> and so on ...
>
> regards
> klaus
>
>
> Anca-Maria Vamanu wrote:
>
>> 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