<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi<div class=""> 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).<div class=""><br class=""></div><div class="">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…</div><div class=""><br class=""></div><div class="">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!<br class=""><div class=""><br class=""></div><div class="">I am using Snom phones and Jitsi (on Mac) to test.</div><div class=""><br class=""></div><div class="">I have a kamailio Registrar which proxies all presence messages to the separate kamailio 4.2 Presence server.</div><div class=""><br class=""></div><div class="">REQUIREMENT : Contact Presence</div><div class="">=============================</div><div class="">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.  </div><div class=""><br class="">Relevant snom settings?<br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>Contact List URI:  this generates a SUBSCRIBE with event:presence </div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">I believe that:</div><div class="">==========</div><div class="">presence module should be managing the individual user presence and dialog states</div><div class="">xcap module should allow me to use HTTP / curl to edit the resource lists</div><div class="">rls module should be managing the mapping from a resource list subscription to the individual presence states and generating the aggregated NOTIFY messages.</div><div class="">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.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Current status:</div><div class="">===========</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">SUBSCRIBE <a href="sip:org1a-contacts@*****.co.uk" class="">sip:org1a-contacts@*****.co.uk</a> SIP/2.0</span></div><div class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">v: SIP/2.0/UDP 192.168.1.15:59594;branch=z9hG4bK-qllzlgs3xf43;rport</span></div><div class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">f: <<a href="sip:org1a@*****.co.uk" class="">sip:org1a@*****.co.uk</a>>;tag=wwasqc6lmb</span></div><div class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">t: <<a href="sip:org1a-contacts@****.co.uk" class="">sip:org1a-contacts@****.co.uk</a>></span></div><div class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">i: 313439303236383530323234313530-x3hlb3j6b5ef</span></div><div class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">CSeq: 1 SUBSCRIBE</span></div><div class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">Max-Forwards: 70</span></div><div class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">User-Agent: snomD375/8.9.3.46</span></div><div class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">m: <<a href="sip:org1a@192.168.1.15:59594" class="">sip:org1a@192.168.1.15:59594</a>>;reg-id=1</span></div><div class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">Event: presence</span></div><div class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">Accept: application/pidf+xml, application/rlmi+xml, multipart/related</span></div><div class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">Supported: eventlist</span></div><div class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">Expires: 3600</span></div><div class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">l: 0</span></div></blockquote><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">     </span>… auth handshake</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><span class="Apple-tab-span" style="white-space:pre">  </span></div><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">SIP/2.0 202 OK</span><br style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">Record-Route: <<a href="sip:10.210.160.13;r2=on;lr=on;ftag=wwasqc6lmb;nat=yes" class="">sip:10.210.160.13;r2=on;lr=on;ftag=wwasqc6lmb;nat=yes</a>></span><br style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">Record-Route: <<a href="sip:**pubip**;r2=on;lr=on;ftag=wwasqc6lmb;nat=yes" class="">sip:**pubip**;r2=on;lr=on;ftag=wwasqc6lmb;nat=yes</a>></span><br style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">v: SIP/2.0/UDP 192.168.1.15:59594;received=**recvip**;branch=z9hG4bK-8wufiv1ua3ne;rport=60554</span><br style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">f: <<a href="sip:org1a@****.co.uk" class="">sip:org1a@****.co.uk</a>>;tag=wwasqc6lmb</span><br style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">t: <<a href="sip:org1a-contacts@*****.co.uk" class="">sip:org1a-contacts@*****.co.uk</a>>;tag=a6a1c5f60faecf035a1ae5b6e96e979a-d30e</span><br style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">i: 313439303236383530323234313530-x3hlb3j6b5ef</span><br style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">CSeq: 2 SUBSCRIBE</span><br style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">Expires: 3600</span><br style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">Contact: <<a href="sip:10.210.160.16:5060;transport=udp" class="">sip:10.210.160.16:5060;transport=udp</a>></span><br style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">Server: kamailio (4.2.0 (x86_64/linux))</span><br style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">Content-Length: 0</span></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><br class=""></span></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><br class=""></span></blockquote><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><span class="Apple-tab-span" style="white-space:pre">  </span>… and then the snom receives an empty NOTIFY.</span></div><div class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><br class=""></span><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: normal;" class="">NOTIFY <a href="sip:org1a@192.168.1.15:58325" class="">sip:org1a@192.168.1.15:58325</a> SIP/2.0</span><br style="font-variant-ligatures: normal;" class=""><span style="font-variant-ligatures: normal;" class="">Via: SIP/2.0/UDP 109.104.108.18;branch=z9hG4bKc54a.20db45097fb44595ccd5a30827ca2a62.0</span><br style="font-variant-ligatures: normal;" class=""><span style="font-variant-ligatures: normal;" class="">Via: SIP/2.0/UDP 10.210.160.16;rport=5060;branch=z9hG4bKc54a.40150886000000000000000000000000.0</span><br style="font-variant-ligatures: normal;" class=""><span style="font-variant-ligatures: normal;" class="">To: <<a href="sip:org1a@****.co.uk" class="">sip:org1a@****.co.uk</a>>;tag=sx4ne9jpcl</span><br style="font-variant-ligatures: normal;" class=""><span style="font-variant-ligatures: normal;" class="">From: <<a href="sip:org1a-contacts@*****.co.uk" class="">sip:org1a-contacts@*****.co.uk</a>>;tag=a6a1c5f60faecf035a1ae5b6e96e979a-ed89</span><br style="font-variant-ligatures: normal;" class=""><span style="font-variant-ligatures: normal;" class="">CSeq: 2 NOTIFY</span><br style="font-variant-ligatures: normal;" class=""><span style="font-variant-ligatures: normal;" class="">Call-ID: 313439303237323938323235353133-2du221e6okvf</span><br style="font-variant-ligatures: normal;" class=""><span style="font-variant-ligatures: normal;" class="">Content-Length: 0</span><br style="font-variant-ligatures: normal;" class=""><span style="font-variant-ligatures: normal;" class="">User-Agent: kamailio (4.2.0 (x86_64/linux))</span><br style="font-variant-ligatures: normal;" class=""><span style="font-variant-ligatures: normal;" class="">Max-Forwards: 69</span><br style="font-variant-ligatures: normal;" class=""><span style="font-variant-ligatures: normal;" class="">Event: presence</span><br style="font-variant-ligatures: normal;" class=""><span style="font-variant-ligatures: normal;" class="">Contact: <<a href="sip:10.210.160.16:5060;transport=udp;alias=10.210.160.16~5060~1" class="">sip:10.210.160.16:5060;transport=udp;alias=10.210.160.16~5060~1</a>></span><br style="font-variant-ligatures: normal;" class=""><span style="font-variant-ligatures: normal;" class="">Subscription-State: active;expires=3600</span></span></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><br class=""></span></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><br class=""></blockquote><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">The Subscription is showing up in the watchers table, not the rls_watchers table, so I believe it is being rejected by the rls_handle_subscribe() and then parsed by the presence module.  <b class="">Is that correct?</b><br class=""></span><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><br class=""></span><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">There is noting in rls_watchers or rls_presentity tables.  <b class="">Should there be?</b><br class=""></span><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class=""><br class=""></span><span style="font-family: Verdana; font-size: 11px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">I have a rows in the XCAP table for the Resource-List</span></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div class=""><div style="orphans: 2; widows: 2;" class=""><span style="background-color: rgb(255, 255, 255); font-size: 11px;" class=""><font face="Verdana" class="">curl -d @/tmp/contacts-resource-list.xml -vvv -X PUT <a href="http://109.104.108.23:5060/xcap-root/resource-lists/users/sip:org1a-contacts@hpbx449vb531.sip.byphone.co.uk/index" class="">http://109.104.108.23:5060/xcap-root/resource-lists/users/sip:org1a-contacts@hpbx449vb531.sip.byphone.co.uk/index</a></font></span></div></div></div><div style="orphans: 2; widows: 2;" class=""><span style="background-color: rgb(255, 255, 255); font-size: 11px;" class=""><font face="Verdana" class=""><br class=""></font></span></div><div style="orphans: 2; widows: 2;" class=""><span style="background-color: rgb(255, 255, 255); font-size: 11px;" class=""><font face="Verdana" class="">relevant row in xcap table:</font></span></div><div style="orphans: 2; widows: 2;" class=""><span style="background-color: rgb(255, 255, 255); font-size: 11px;" class=""><font face="Verdana" class=""><br class=""></font></span></div><div style="orphans: 2; widows: 2;" class=""><span style="background-color: rgb(255, 255, 255);" class=""><font face="Verdana" class=""><div class=""><span style="font-size: 11px;" class="">|  3 | org1a-contacts | *****.<a href="http://co.uk" class="">co.uk</a> | <?xml version="1.0" encoding="UTF-8" standalone="no"?><resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists"><list name="team"><entry uri="sip:1002@****.<a href="http://co.uk" class="">co.uk</a>"/><entry uri="sip:1001@****.<a href="http://co.uk" class="">co.uk</a>"><display-name>bob</display-name></entry><entry uri="sip:1003@****.<a href="http://co.uk" class="">co.uk</a>"><display-name>test1</display-name></entry><entry uri="sip:1006@****<a href="http://co.uk" class="">co.uk</a>"><display-name>test1006</display-name></entry><entry uri="sip:1007@****<a href="http://co.uk" class="">co.uk</a>"><display-name>test1007</display-name></entry><entry uri="sip:1008@h****.<a href="http://co.uk" class="">co.uk</a>"><display-name>test1008</display-name></entry><entry uri="sip:1009@****.<a href="http://co.uk" class="">co.uk</a>"><display-name>test1009</display-name></entry>    <entry uri="sip:1005@****.<a href="http://co.uk" class="">co.uk</a>"><display-name>testing1005</display-name></entry>    <entry uri=“sip:org1a@****.<a href="http://co.uk" class="">co.uk</a>"><display-name>testingorg1a</display-name></entry>    <entry uri=“sip:org1c@****.<a href="http://co.uk" class="">co.uk</a>"><display-name>testingorg1c</display-name></entry></list></resource-lists> |        4 | sr-1490270411-10965-2 |      0 | /xcap-root/resource-lists/users/sip:org1a-contacts@****<a href="http://co.uk/index" class="">co.uk/index</a> |    0 |</span></div></font></span></div></blockquote><div class=""><div style="orphans: 2; widows: 2;" class=""><span style="font-size: 11px; background-color: rgb(255, 255, 255); font-family: Verdana;" class=""><br class=""></span></div><div style="orphans: 2; widows: 2;" class=""><span style="font-size: 11px; background-color: rgb(255, 255, 255); font-family: Verdana;" class=""><br class=""></span></div><div style="orphans: 2; widows: 2;" class=""><span style="font-size: 11px; background-color: rgb(255, 255, 255); font-family: Verdana;" class="">I have rows in the presence table for the entities that I want to track </span><font face="Verdana" class=""><span style="font-size: 11px;" class="">e.g.</span></font></div></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div style="orphans: 2; widows: 2;" class=""><span style="background-color: rgb(255, 255, 255); font-size: 11px;" class=""><font face="Verdana" class=""><div class="">                               |        |</div><div class="">| 2889 | org1c    | ****.<a href="http://co.uk" class="">co.uk</a> | presence        | a.1490270411.10942.42.1083 | 1490277099 |    1490273499 | <?xml version="1.0</div><div class="">" encoding="UTF-8"?></div><div class=""><presence xmlns="urn:ietf:params:xml:ns:pidf"</div><div class="">xmlns:im="urn:ietf:params:xml:ns:pidf:im"</div><div class="">          entity=“pres:org1c@*****.<a href="http://co.uk" class="">co.uk</a>"></div><div class=""><tuple id="snom370-000413260935"></div><div class=""><status><basic>open</basic></div><div class=""><<a href="im:im" class="">im:im</a>>Available</im:im></div><div class=""></status></div><div class=""><contact priority="1.00">sip:org1c@****.<a href="http://co.uk" class="">co.uk</a></contact></div><div class=""><note xml:lang="en">Available</note></div><div class=""></tuple></presence></div></font></span></div></div></blockquote><div class=""><div style="orphans: 2; widows: 2;" class=""><span style="font-size: 11px; background-color: rgb(255, 255, 255); font-family: Verdana;" class=""><br class=""></span></div><div style="orphans: 2; widows: 2;" class=""><span style="font-size: 11px; background-color: rgb(255, 255, 255); font-family: Verdana;" class="">I am running kamaiio 4.2</span></div><div style="orphans: 2; widows: 2;" class=""><br class=""></div><div style="orphans: 2; widows: 2;" class=""><span style="font-size: 11px; background-color: rgb(255, 255, 255); font-family: Verdana;" class=""><br class=""></span></div><div style="orphans: 2; widows: 2;" class=""><font face="Verdana" class=""><span style="font-size: 11px; background-color: rgb(255, 255, 255);" class=""><br class=""></span></font></div><div style="orphans: 2; widows: 2;" class=""><font face="Verdana" class=""><span style="background-color: rgb(255, 255, 255);" class=""><span style="font-size: 11px;" class=""><b class="">Question </b>: 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.</span></span></font></div><div style="orphans: 2; widows: 2;" class=""><font face="Verdana" class=""><span style="background-color: rgb(255, 255, 255);" class=""><span style="font-size: 11px;" class=""><br class=""></span></span></font></div><div style="orphans: 2; widows: 2;" class=""><font face="Verdana" class=""><span style="background-color: rgb(255, 255, 255);" class=""><span style="font-size: 11px;" class=""><b class="">Question :</b> What should the curl PUT commands and XML docs look like to build a valid RLS service (is there a good example anywhere)?</span></span></font></div><div style="orphans: 2; widows: 2;" class=""><font face="Verdana" class=""><span style="background-color: rgb(255, 255, 255);" class=""><span style="font-size: 11px;" class=""><br class=""></span></span></font></div><div class=""><b class="">Question :</b> Is there an example config or doc anywhere showing how to build integrated presence, rls, xcap?</div><div class=""><br class=""></div><div class=""><b class="">Question :</b> Has anyone got this working with Snom and or other handsets… the standards and implementations seem vague / inconsistent?</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div class=""><b class="">Note:</b> 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...</div><br class=""><div class=""><br class=""><div class="">Paul</div></div></div></div></div></body></html>