You want to return a string that is the XML of what the users directory entry would look like. Do lookup in database, etc..
 
If the user is not found you either want to return NULL, which will cause it to continue and check the XML, or return the 'not found document' just like in XML_CURL that will end the search.
 
--Dave


From: Samira Mh [mailto:saami_mh@ymail.com]
To: Free SWITCH Users Help [mailto:freeswitch-users@lists.freeswitch.org]
Sent: Sun, 24 Jun 2012 06:50:09 -0700
Subject: [Freeswitch-users] question on mod_lua for serving_configurations(implement realtime in freeswitch)?

hi,
in mod_lua for Serving_Configuration ( http://wiki.freeswitch.org/wiki/Mod_lua/Serving_Configuration ) i have defined the settings as follows:
1-

 <configuration name="lua.conf" description="LUA Configuration">
  <settings>

       <param name="xml-handler-script" value="dp.lua"/>
    <param name="xml-handler-bindings" value="directory"/>
       
  </settings>
</configuration>

2- /usr/local/freeswitch/scripts/dp.lua
freeswitch.consoleLog("INFO", "SECTION    " .. XML_REQUEST["section"] .. "\n")
freeswitch.consoleLog("INFO", "TAG_NAME   " .. XML_REQUEST["tag_name"] .. "\n")
freeswitch.consoleLog("INFO", "KEY_NAME   " .. XML_REQUEST["key_name"] .. "\n")
freeswitch.consoleLog("INFO", "KEY_VALUE  " .. XML_REQUEST["key_value"] .. "\n")

freeswitch.consoleLog("INFO",params:serialize())
io.write("TEST \n" .. params:serialize("xml") .. "\n");
--io.write("SIP_AUTH_METHOD\n" .. params:getHeader("sip_auth_method") .. "\n");
--io.write("sip_profile\n" .. params:getHeader("sip_profile") .. "\n");
local sipprofile = params:getHeader("sip_profile");
print ("sip profile is:" .. sipprofile);

3- the output of the above lua file is :



TEST
<event>
  <headers>
    <Event-Name>REQUEST_PARAMS</Event-Name>
    <Core-UUID>1d640ebe-be01-11e1-b2cd-4109894802cc</Core-UUID>
    <FreeSWITCH-Hostname>PBX</FreeSWITCH-Hostname>
    <FreeSWITCH-Switchname>PBX</FreeSWITCH-Switchname>
    <FreeSWITCH-IPv4>192.168.10.89</FreeSWITCH-IPv4>
    <FreeSWITCH-IPv6>%3A%3A1</FreeSWITCH-IPv6>
    <Event-Date-Local>2012-06-24%2018%3A13%3A48</Event-Date-Local>
    <Event-Date-GMT>Sun,%2024%20Jun%202012%2013%3A43%3A48%20GMT</Event-Date-GMT>
    <Event-Date-Timestamp>1340545428075826</Event-Date-Timestamp>
    <Event-Calling-File>sofia_reg.c</Event-Calling-File>
    <Event-Calling-Function>sofia_reg_parse_auth</Event-Calling-Function>
    <Event-Calling-Line-Number>2364</Event-Calling-Line-Number>
    <Event-Sequence>1240</Event-Sequence>
    <action>sip_auth</action>
    <sip_profile>internal</sip_profile>
    <sip_user_agent>eyeBeam%20release%201102q%20stamp%2051814</sip_user_agent>
    <sip_auth_username>1000</sip_auth_username>
    <sip_auth_realm>192.168.10.89</sip_auth_realm>
    <sip_auth_nonce>5fef3276-be02-11e1-b2fd-4109894802cc</sip_auth_nonce>
    <sip_auth_uri>sip%3A192.168.10.89</sip_auth_uri>
    <sip_contact_user>1000</sip_contact_user>
    <sip_contact_host>192.168.18.120</sip_contact_host>
    <sip_to_user>1000</sip_to_user>
    <sip_to_host>192.168.10.89</sip_to_host>
    <sip_from_user>1000</sip_from_user>
    <sip_from_host>192.168.10.89</sip_from_host>
    <sip_request_host>192.168.10.89</sip_request_host>
    <sip_auth_qop>auth</sip_auth_qop>
    <sip_auth_cnonce>8725f832cb29a466ba073ef5d63de959</sip_auth_cnonce>
    <sip_auth_nc>00000010</sip_auth_nc>
    <sip_auth_response>ee0155cd5b41536e56898ff585502e75</sip_auth_response>
    <sip_auth_method>REGISTER</sip_auth_method>
    <key>id</key>
    <user>1000</user>
    <domain>192.168.10.89</domain>
    <ip>192.168.18.120</ip>
  </headers>
</event>

sip profile is :internal
---------------------------------------------------

Now i am going to check  using reltime every user that registers on sip phone -like 3CXphone - instead of in-memory method (flat file on freeswitch), now 
what is the next step for implementing? 
Now  need to define mysql and insert query  in lua script and compare the query with the value of params:getHeader ?
the resource for mod_lua serving configuration is a bit

plz help, 
thanks so much