<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body text="#000000" bgcolor="#ffffff">
Hi All in the list,<br>
<br>
I want to implement a click and dial feature using the xhttp
interface<br>
but also keeping working the XCAP functionality. Than I added some<br>
code about the dialog module (it's my first time I try it) so that
the<br>
URL look like
<a class="moz-txt-link-freetext" href="http://localhost:5060/sip-bridge/">http://localhost:5060/sip-bridge/</a><from>/<to><br>
<br>
#!ifdef WITH_XCAPSRV<br>
#!define WITH_XHTTPAUTH<br>
event_route[xhttp:request] {<br>
xdbg("===== xhttp: request [$rv] $rm => $hu\n");<br>
<br>
if($hu=~"^/xcap-root/")<br>
{<br>
#!ifdef WITH_XHTTPAUTH <br>
if (!www_authorize("xcap", "subscriber"))<br>
{<br>
www_challenge("xcap", "0");<br>
exit;<br>
}<br>
#!endif<br>
set_reply_close();<br>
set_reply_no_connect();<br>
# xcap ops<br>
$xcapuri(u=>data) = $hu;<br>
if($xcapuri(u=>xuid)=~<a class="moz-txt-link-rfc2396E" href="mailto:^sip:.+@.+">"^sip:.+@.+"</a>)<br>
$var(uri) = $xcapuri(u=>xuid);<br>
else if($xcapuri(u=>xuid)=~<a class="moz-txt-link-rfc2396E" href="mailto:.+@.+">".+@.+"</a>)<br>
$var(uri) = "sip:" + $xcapuri(u=>xuid);<br>
else<br>
$var(uri) = "sip:"+ $xcapuri(u=>xuid) + "@" + $Ri;<br>
xlog("===== xhttp: $xcapuri(u=>auid) :
$xcapuri(u=>xuid)\n");<br>
if($xcapuri(u=>auid)=="xcap-caps")<br>
{<br>
$var(xbody) =<br>
"<?xml version='1.0' encoding='UTF-8'?><br>
<xcap-caps xmlns='urn:ietf:params:xml:ns:xcap-caps'><br>
<auids><br>
<auid>rls-services</auid><br>
<auid>pidf-manipulation</auid><br>
<auid>xcap-caps</auid><br>
<auid>resource-lists</auid><br>
<auid>pres-rules</auid><br>
<auid>org.openmobilealliance.pres-rules</auid><br>
</auids><br>
<extensions><br>
</extensions><br>
<namespaces><br>
<namespace>urn:ietf:params:xml:ns:rls-services</namespace><br>
<namespace>urn:ietf:params:xml:ns:pidf</namespace><br>
<namespace>urn:ietf:params:xml:ns:xcap-caps</namespace><br>
<namespace>urn:ietf:params:xml:ns:resource-lists</namespace><br>
<namespace>urn:ietf:params:xml:ns:pres-rules</namespace><br>
</namespaces><br>
</xcap-caps>";<br>
xhttp_reply("200", "ok", "application/xcap-caps+xml",<br>
"$var(xbody)");<br>
exit;<br>
}<br>
#!ifdef WITH_XHTTPAUTH<br>
# be sure auth user access only its documents<br>
if ($au!=$(var(uri){uri.user})) {<br>
xhttp_reply("403", "Forbidden", "text/html",<br>
"<html><body>$si:$sp</body></html>");<br>
exit;<br>
}<br>
<br>
#!endif<br>
switch($rm) {<br>
case "PUT":<br>
xcaps_put("$var(uri)", "$hu", "$rb");<br>
if($xcapuri(u=>auid)=~"pres-rules")<br>
{<br>
xlog("===== xhttp put: refreshing watchers for
$var(uri)\n");<br>
pres_update_watchers("$var(uri)", "presence");<br>
pres_refresh_watchers("$var(uri)", "presence", 1);<br>
}<br>
exit;<br>
break;<br>
case "GET":<br>
xlog("===== xhttp: get $var(uri) => $hu\n");<br>
xcaps_get("$var(uri)", "$hu");<br>
exit;<br>
break;<br>
case "DELETE":<br>
xcaps_del("$var(uri)", "$hu");<br>
if($xcapuri(u=>auid)=~"pres-rules")<br>
{<br>
xlog("===== xhttp del: refreshing watchers for
$var(uri)\n");<br>
pres_update_watchers("$var(uri)", "presence");<br>
pres_refresh_watchers("$var(uri)", "presence", 1);<br>
}<br>
exit;<br>
break;<br>
}<br>
}<br>
else if($hu=~"^/sip-bridge/")<br>
{<br>
<br>
if ( ! ( src_ip == 127.0.0.1 ) )<br>
{<br>
xhttp_reply( "403", "Forbidden", "text/html",
"<html><body>Invalid Access</body></html>"
);<br>
exit;<br>
}<br>
<br>
$var(uri) = $hu;<br>
$var(from) = $(var(uri){s.select,2,/});<br>
$var(to) = $(var(uri){s.select,3,/});<br>
<br>
xdbg( "=== GOT sip-bridge between $var(caller) =>
$var(callee) ===" );<br>
<br>
<b> dlg_bridge( $var(from), $var(to), "sip:192.168.2.92:5060" );</b><br>
<br>
} <br>
<br>
# http ops<br>
xhttp_reply("200", "ok", "text/html",<br>
"<html><body>OK:
$si:$sp</body></html>");<br>
exit;<br>
}<br>
#!endif<br>
<br>
but I got the error below:<br>
<br>
Not starting : invalid configuration file!<br>
<br>
0(22256) : <core> [cfg.y:3409]: parse error in config file
//etc/kamailio/kamailio.cfg, line 986, column 17-26: function
dlg_bridge: parameter 1 is not constant<br>
<br>
0(22256) : <core> [cfg.y:3412]: parse error in config file
//etc/kamailio/kamailio.cfg, line 986, column 63: bad command<br>
ERROR: bad config file (2 errors)<br>
<br>
so my question is how can I call the dlg_bridge() passing some
parameters<br>
coming from the http request?<br>
<br>
Thanks in advance.<br>
Roberto Fichera.<br>
</body>
</html>