Juha Heinanen writes:
it clearly shows that the reason for not finding the
uri are the escaped
chars in xcap rls-services doc.
i stole some code from opensips and normalized the rls-services uri.
after that, the match was found:
May 1 22:15:45 siika /usr/sbin/pres-serv[29546]: INFO: rls [subscribe.c:213]: searching
document for user sip:jh@test.tutpro.com
May 1 22:15:45 siika /usr/sbin/pres-serv[29546]: INFO: rls [subscribe.c:298]:
rls_services document:#012<?xml version='1.0'
encoding='UTF-8'?>#012<rls-services
xmlns="urn:ietf:params:xml:ns:rls-services"><service
uri="sip%3Ajh%2Bpresence%40test.tutpro.com"><resource-list&…
uri="sip%3Ajh%2Bdialog%40test.tutpro.com"><resource-list>…
May 1 22:15:45 siika /usr/sbin/pres-serv[29546]: INFO: rls [subscribe.c:149]: comparing
xcap doc uri <sip:jh+presence@test.tutpro.com> to uri
<sip:jh+presence@test.tutpro.com>
May 1 22:15:45 siika /usr/sbin/pres-serv[29546]: INFO: rls [subscribe.c:154]: uris
matched
that, however, didn't get me much further. next i got error:
May 1 22:15:45 siika /usr/sbin/pres-serv[29546]: ERROR: rls [notify.c:1171]: resource
list
'http%3A//192.98.102.10%3A8080/xcap-root/resource-lists/users/sip%3Ajh%40test.tutpro.com/index/%7E%7E/resource-lists/list%5B%40name%3D%22sipsimple_presence_rls%22%5D'
is unidentifiable
the reason this time is escaped http uri, because uri scheme comparison does
not take into account escaped : char. in rls/notify.c:
#define HTTP_PREFIX "http://"
#define HTTP_PREFIX_LEN 7
...
if(strncmp(uri, HTTP_PREFIX, HTTP_PREFIX_LEN) == 0)
looks like there is lots of work to be done on rls module before these
things are sorted out.
-- juha