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