Hi,
we're testing openser 1.3.0 on a linux server with presence module. I'm using the provided configuration file with the following modifications:
- loaded the modules mysql, presence, presence_xml - set the following parameters for these modules: modparam("presence|presence_xml", "db_url", "mysql://openser:[secret]@localhost/openser") modparam("presence_xml", "force_active", 1) modparam("presence", "server_address", "sip:[ip]:5060") modparam("presence_xml","integrated_xcap_server", 1) - uncommented the code to handle PUBLISH/SUBSCRIBE requests to the presence module
I also configured the mi_datagram module, to receive mi commands.
I discovered the following issues. In the main route block, the second if test checks if the request has a to-tag. If the request does not contain a Route header a 404 Not Here response is sent to the request.
When a client subscribes for presence, a 202 OK response is received from the presence module, without Record-Route(s). This means future in-dialog requests won't contain the Route header. It also means that for example an un-SUBSCRIBE request is rejected with a 404 Not Here. I worked around this by removing the has_totag () check and not sending a 404 Not Here response when loose_route () returns false.
Furthermore I noticed that sometimes, the presence NOTIFY requests do not contain a body. I checked the database, and there was data in the body column in the presentity table for the presence resource. The value in the status column of the watchers/active_watchers table is 1. When I restart openser, the presence descriptions are added to the NOTIFY requests again (the entry in the database did not change).
I have to say that we insert some presence states directly in the database via another process. But this is nothing more than an INSERT or UPDATE statement on the presentity table.
Do you have any idea why a NOTIFY without body is sent? Do i need to configure something extra? And why does it seem to work after openser has restarted?
kind regards,
Sigrid