[Freeswitch-users] need help with mod_xml_odbc
Leon de Rooij
leon at scarlet-internet.nl
Thu Aug 27 05:57:20 PDT 2009
Hi Juan,
Perhaps it loops because you didn't include the "not-found" template ?
Actually, I see there's a bug in the example xml_odbc.conf.xml file
where it's defined with an underscore instead of a dash, will change
that tonight..
The not-found template needs to be specified as a template in the
configuration. I think I'll define that template statically in the
module itself later.
Because it's the 'fall-through' template when it can't find a
template, you get a loop.
So, something like this should probably work for you:
<templates>
<template name="default">
<xml-odbc-do name="query" on-empty-result-break-to="not-found"
value="SELECT sip_password FROM agent WHERE sip_user = '${user}';"/>
<document type="freeswitch/xml">
<section name="directory">
<domain name="${domain}">
<user id="${user}">
<params>
<param name="password", value="${sip_password}"/>
</params>
</user>
</domain>
</section>
</document>
</template>
<template name="not-found">
<document type="freeswitch/xml">
<section name="result">
<result status="not found"/>
</section>
</document>
</template>
</templates>
(I didn't include the enabled field in your select statement, as you
don't use it later, perhaps you need it in the where clause ?)
Also, note that this way the template will also be used at startup
when FS tries to get a list of all ACL's - I believe for something
else as well, have to check it - but those lookups probably don't give
a ${user} so will render the "not-found" anyway..
One last thing, you didn't have ${user} enclosed in quotes in your
query, so if no ${user} was given with the lookup to the module, then
your query becomes invalid, which probably breaks things as well.
Let me know if it works..
regards,
Leon
On Aug 27, 2009, at 1:40 PM, Juan Backson wrote:
> Hi,
>
> Finally, I got xml_odbc running, but it does not really work well
> for me. I am getting:
> 2009-08-28 03:33:47.459383 [ERR] mod_xml_odbc.c:325 Stopped
> rendering template, called xml_odbc_render_template more than [32]
> times, probably looping.
> 2009-08-28 03:33:47.459383 [ERR] mod_xml_odbc.c:408 Something went
> horribly wrong while generating an XML template!
>
> My config is:
> <configuration name="xml_odbc.conf" description="XML ODBC
> Configuration">
>
> <settings>
> <param name="binding" value="directory"/>
> <param name="odbc-dsn" value="class5_odbc:root:JdqB-S"/>
> <param name="debug" value="true"/>
> <param name="keep-files-around" value="true"/>
> </settings>
>
> <templates>
>
> <template name="default">
> <document type="freeswitch/xml">
> <section name="directory">
> <xml-odbc-do name="query" on-empty-result-break-to="not-found"
> value="SELECT enabled, sip_password FROM agent WHERE sip_user = $
> {user}"/>
> <domain name="${domain}">
> <user id="${user}">
> <params>
> <xml-odbc-do name="query" value="SELECT sip_password
> FROM agent WHERE sip_user = ${user}">
> <param name="password", value="${sip_password}"/>
> </xml-odbc-do>
> </params>
> </user>
> </domain>
>
>
> </section>
> </document>
> </template>
>
> </templates>
>
> </configuration>
>
>
> Since these two queries get data from the same table, I tried to
> merge them, but could not get it to work.
>
> Anyone has any idea?
>
> Thanks,
> JB
> _______________________________________________
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
More information about the FreeSWITCH-users
mailing list