I am struggling to figure out how to build and test an integrated presence server with Resource-List (rls.so) and XCAP (xcap_server.so).
I am confused about what is meant to happen and how to debug it. Not sure if I am suffering from incompatibilities, configuration errors, or bugs…
I have not found an up to date guide on configuring an integrated presence, rls, xcap server so I have used old tutorials, module documentation and some course code review … but I’m pretty confused now!
I am using Snom phones and Jitsi (on Mac) to test.
I have a kamailio Registrar which proxies all presence messages to the separate kamailio 4.2 Presence server.
REQUIREMENT : Contact Presence
=============================
I would like to get a SUBSCRIBE from the Snom phone to subscribe to a contact-list resource list, and to receive a NOTIFY with all of the presence states for those contacts.
Relevant snom settings?
Contact List URI: this generates a SUBSCRIBE with event:presence
I believe that:
==========
presence module should be managing the individual user presence and dialog states
xcap module should allow me to use HTTP / curl to edit the resource lists
rls module should be managing the mapping from a resource list subscription to the individual presence states and generating the aggregated NOTIFY messages.
each device should then be able to SUBSCRIBE to a resource list uri and then receive an aggregated NOTIFY for all of the watched entities.
Current status:
===========
v: SIP/2.0/UDP 192.168.1.15:59594;branch=z9hG4bK-qllzlgs3xf43;rport
i: 313439303236383530323234313530-x3hlb3j6b5ef
CSeq: 1 SUBSCRIBE
Max-Forwards: 70
User-Agent: snomD375/8.9.3.46
Event: presence
Accept: application/pidf+xml, application/rlmi+xml, multipart/related
Supported: eventlist
Expires: 3600
l: 0
… auth handshake
SIP/2.0 202 OK
Record-Route: <sip:10.210.160.13;r2=on;lr=on;ftag=wwasqc6lmb;nat=yes>
Record-Route: <sip:**pubip**;r2=on;lr=on;ftag=wwasqc6lmb;nat=yes>
v: SIP/2.0/UDP 192.168.1.15:59594;received=**recvip**;branch=z9hG4bK-8wufiv1ua3ne;rport=60554
f: <sip:org1a@****.co.uk>;tag=wwasqc6lmb
t: <sip:org1a-contacts@*****.co.uk>;tag=a6a1c5f60faecf035a1ae5b6e96e979a-d30e
i: 313439303236383530323234313530-x3hlb3j6b5ef
CSeq: 2 SUBSCRIBE
Expires: 3600
Contact: <sip:10.210.160.16:5060;transport=udp>
Server: kamailio (4.2.0 (x86_64/linux))
Content-Length: 0
… and then the snom receives an empty NOTIFY.
I am running kamaiio 4.2
Question : Should I have an resource-services row too? Or does rls.so infer the relationship using the URI? When I use jitsi to manipulate its contact list it only inserts 2 rows into the xcap table and I cannot get a SIP Subscribe to connect to that resource list either.
Question : What should the curl PUT commands and XML docs look like to build a valid RLS service (is there a good example anywhere)?
Question : Is there an example config or doc anywhere showing how to build integrated presence, rls, xcap?
Question : Has anyone got this working with Snom and or other handsets… the standards and implementations seem vague / inconsistent?
Note: There is another Snom setting (Extension Monitoring Call Pickup List URI:) which produces a SUBSCRIBE with Event:dialog but which should allow a button/lamp/callpickup/BLF for the buddy contact. I’d like to get that working too, but recognise that rls.so does not handle dialog messages by default, so I’m starting with Presence...