Im trying to run Xcap_server support on Kamailio
but I got no luck in the configuration I load all module
necessary for the operation to succeed but nothing. I guess
I'm missing something but I can't tell cause I install all
dependencies in order to get it running. Here is my set up
please let me know if you can give me a hand with this I'd like
that cause I'm stuck here
event_route[xhttp:request] {
if (!www_authorize("xcap", "subscriber"))
{
www_challenge("xcap", "0");
exit;
}
if($hu=~"^/xcap-root/")
{
set_reply_close();
set_reply_no_connect();
# xcap ops - break down http uri to get xcap user
id
$xcapuri(u=>data) = $hu;
$var(uri) = $xcapuri(u=>xuid);
else
$var(uri) = "sip:"+ $xcapuri(u=>xuid) +
"@" + $Ri;
# handle XCAP capability request
if($rm=="GET" &&
$xcapuri(u=>auid)=="xcap-caps")
{
$var(xbody) =
"<?xml version='1.0' encoding='UTF-8'?>
<xcap-caps
xmlns='urn:ietf:params:xml:ns:xcap-caps'>
<auids>
<auid>rls-services</auid>
<auid>pidf-manipulation</auid>
<auid>xcap-caps</auid>
<auid>resource-lists</auid>
<auid>pres-rules</auid>
<auid>org.openmobilealliance.pres-rules</auid>
</auids>
<extensions>
</extensions>
<namespaces>
<namespace>urn:ietf:params:xml:ns:rls-services</namespace>
<namespace>urn:ietf:params:xml:ns:pidf</namespace>
<namespace>urn:ietf:params:xml:ns:xcap-caps</namespace>
<namespace>urn:ietf:params:xml:ns:resource-lists</namespace>
<namespace>urn:ietf:params:xml:ns:pres-rules</namespace>
</namespaces>
</xcap-caps>";
xhttp_reply("200", "ok",
"application/xcap-caps+xml",
"$var(xbody)");
exit;
}
# be sure auth user access only its documents
if ($au!=$(var(uri){uri.user})) {
xhttp_reply("403", "Forbidden", "text/html",
"operation not allowed");
exit;
}
xdbg("SCRIPT: xcap service $xcapuri(u=>auid)
for $xcapuri(u=>xuid)\n");
switch($rm) {
case "PUT":
xcaps_put("$var(uri)", "$hu", "$rb");
if($xcapuri(u=>auid)=~"pres-rules")
{
pres_update_watchers("$var(uri)",
"presence");
pres_refresh_watchers("$var(uri)",
"presence", 1);
}
exit;
break;
case "GET":
xcaps_get("$var(uri)", "$hu");
exit;
break;
case "DELETE":
xcaps_del("$var(uri)", "$hu");
if($xcapuri(u=>auid)=~"pres-rules")
{
pres_update_watchers("$var(uri)",
"presence");
pres_refresh_watchers("$var(uri)",
"presence", 1);
}
exit;
break;
}
}
# other http requests
xhttp_reply("200", "OK", "text/html",
"<html><body>OK:
$si:$sp</body></html>");
exit;
}