If a PUBLISH request is sent before a 200 OK for the previous PUBLISH request is received, the E-Tag is reset which leads to inconsistent presentity data in the presence server. This is happening because the second PUBLISH is sent with the same E-Tag as the previous one, but the presence server has an updated the E-Tag (generated while handling the first PUBLISH). The pua module should implement a queuing mechanism for subsequent PUBLISH request while a previous PUBLISH transaction is in progress. No new PUBLISH requests should be sent before a response to the previous PUBLISH request was received and the E-Tag updated.
--- Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/issues/21
What component is triggering the second publish before the first is replied? A module or via mi/rpc? Perhaps it should wait for reply and etag in order to send an update with another publlsh.
Quickly maybe there can be added a check and reject a new publish. Queuing may take more complexity and first let's see if it worth.
--- Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/issues/21#issuecomment-70152812
Cleaning up due to long time development -- meanwhile it was a lot of work on presence modules, if master still exposes the issue, reopen and attach the logs with debug=3.
Closed #21.
This issue has been resolved by recent work on presence