Hello,
I'm using Kamailio v5.6.2 with presence, presence_xml, xcap_server, and rls
modules.
I pushed 2 documents to the xcap server:
1. urn:ietf:params:xml:ns:resource-lists
<?xml version="1.0" encoding="UTF-8"
standalone="no"?>
<resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists">
<list name="friends">
<entry uri="sip:1001@example.com">
<display-name>1001</display-name>
</entry>
<entry uri="sip:1002@example.com">
<display-name>1002</display-name>
</entry>
</list>
</resource-lists>
2. urn:ietf:params:xml:ns:rls-services
<?xml version="1.0" encoding="UTF-8"
standalone="no"?>
<rls-services xmlns="urn:ietf:params:xml:ns:rls-services"
xmlns:rl="urn:ietf:params:xml:ns:resource-lists" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<service uri="sip:1000+presence@example.com">
<resource-list>
https://kamailio:5061/xcap-root/resource-lists/users/sip:1000@example.com/i…
"friends"]</resource-list>
<packages>
<package>presence</package>
</packages>
</service>
</rls-services>
I'm subscribing to presence event on rls-service
SUBSCRIBE sip:1000+presence@example.com SIP/2.0
Via: SIP/2.0/TLS 10.255.0.3:33883
;rport;branch=z9hG4bKPjbe079f60-d0e0-4f1e-9f93-b18e467be5e8;alias
Max-Forwards: 70
From: "1000"
<sip:1000@example.com>;tag=97ef0748-da39-442f-9a02-468b67134ad6
To: <sip:1000+presence@example.com>
Contact: <sip:20416583@10.255.0.3:5061;transport=tls>
Call-ID: 9773a68c-b001-49f0-9ffa-093beb3d8e36
CSeq: 18636 SUBSCRIBE
Event: presence
Expires: 600
Supported: 100rel, replaces, norefersub, gruu
Accept: multipart/related, application/rlmi+xml, application/pidf+xml
Allow-Events: presence
Supported: eventlist
User-Agent: sipsimple 5.2.6
Content-Length: 0
The RLS sends a NOTIFY immediately upon accepting the subscription
according to RFC 4662 and also the RLS is virtually subscribing to the
presence event on the 2 resources in the friends list
NOTIFY sip:20416583@10.255.0.3:5061;transport=tls SIP/2.0
Via: SIP/2.0/TLS joey-local-proxy.example.com:5061
;branch=z9hG4bKa93d.b63e0697000000000000000000000000.0
To: <sip:1000@example.com>;tag=97ef0748-da39-442f-9a02-468b67134ad6
From: <sip:1000+presence@example.com
;tag=e02a02cb113b2bdb8ebdb022d767e6d2-a1677c19
CSeq: 1 NOTIFY
Call-ID: 9773a68c-b001-49f0-9ffa-093beb3d8e36
Content-Length: 468
Max-Forwards: 70
Event: presence
Contact: <sip:kamailio@example.com:5060>
Subscription-State: active;expires=600
Require: eventlist
Content-Type:
multipart/related;type="application/rlmi+xml";start="<1668755827.sip:1000+presence@example.com.1700642067
";boundary="1W1NaaaIIq6dOtLRXODFwqmC"
--1W1NaaaIIq6dOtLRXODFwqmC
Content-Transfer-Encoding: binary
Content-ID: <1668755827.sip:1000+presence@example.com.1700642067>
Content-Type: application/rlmi+xml;charset="UTF-8"
<?xml version="1.0"?>
<list uri="sip:1000+presence@example.com"
xmlns="urn:ietf:params:xml:ns:rlmi" version="1"
fullState="true">
<resource uri="sip:1001@example.com"/>
<resource uri="sip:1002@example.com"/>
</list>
--1W1NaaaIIq6dOtLRXODFwqmC--
Now I’m changing the resource list using XCAP.
I’m sending a PUT request with a new document and I see that the change is
pushed to the DB but user 1000 is not receiving a NOTIFY with the updated
list.
This is the updated document:
<?xml version="1.0" encoding="UTF-8"
standalone="no"?>
<resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists">
<list name="friends">
<entry uri="sip:1001@example.com">
<display-name>1001</display-name>
</entry>
<entry uri="sip:1002@example.com">
<display-name>1002</display-name>
</entry>
<entry uri="sip:1003@example.com">
<display-name>1003</display-name>
</entry>
</list>
</resource-lists>
I see that Kamailio is virtually subscribing on 1003 (The newly added user)
but NOTIFY is not received.
Also tried to subscribe on xcap-diff event, and the subscription was
accepted successfully but no NOTIFY is received.
Am I missing something?
Thanks,
Joey