[Freeswitch-users] Alternative to directory lookup using mod_xml_curl

Cristian Talle ctalle at voiceway.ca
Thu Sep 18 16:10:49 PDT 2008


Not yet, I'm still getting familiar with it - I haven't covered the 
dialplan yet but I really like the voicemail module.
I will set up a real server some time this week-end and I'll try 
stressing it.

cristian

Michael Jerris wrote:
> Do you have any performance tests to show the difference?
>
> Mike
>
>
> On Sep 18, 2008, at 6:50 PM, Cristian Talle wrote:
>
>> I gave it a try though... and it works nicely (at least for directory 
>> entries for now). I've added 3 more commands to xml_curl: cache_on, 
>> cache_off and cache_delete_key.
>>
>> - cache_on - enables caching: it will store in a switch_hash_t 
>> structure all xml strings returned by curl, using <username>@<realm> 
>> as a key (since we're talking directory only in this example). The 
>> same key is looked up every time the xml is requested for that 
>> user/realm and the code returns an xml structure created using 
>> switch_parse_xml_from_str().
>>
>> - cache_off - switches back to the original behavior and clears the hash.
>>
>> - cache_delete_key <key> - will invalidate the cache entry so that 
>> next time it is reloaded by curl.
>>
>> considering a 500 bytes - 1K string for each profile, you can cache 
>> 10000 user profiles in ~10M (considering we're storing the char* s)
>> please see a sample console output,with a terminal registering every 
>> 25 seconds
>>
>> ============================================================================
>> freeswitch at localhost.localdomain> 2008-09-18 18:26:19 [CONSOLE] 
>> mod_xml_curl.c:363 xml_url_fetch() XML response is in 
>> /tmp/d0c586a8-85d0-11dd-838c-5148f6e85b7b.tmp.xml
>>
>> freeswitch at localhost.localdomain> xml_curl cache_on
>> API CALL [xml_curl(cache_on)] output:
>> OK
>>
>> freeswitch at localhost.localdomain> 2008-09-18 18:26:44 [CONSOLE] 
>> mod_xml_curl.c:245 xml_url_fetch() Key is not in cache 
>> [1039 at 192.168.1.225].
>> 2008-09-18 18:26:45 [CONSOLE] mod_xml_curl.c:363 xml_url_fetch() XML 
>> response is in /tmp/e00c7ae0-85d0-11dd-838c-5148f6e85b7b.tmp.xml
>>
>> 2008-09-18 18:27:10 [CONSOLE] mod_xml_curl.c:231 xml_url_fetch() 
>> Using xml from cache: 1039 at 192.168.1.225
>> 2008-09-18 18:27:35 [CONSOLE] mod_xml_curl.c:231 xml_url_fetch() 
>> Using xml from cache: 1039 at 192.168.1.225
>>
>> freeswitch at localhost.localdomain> xml_curl cache_delete_key 
>> 1039 at 192.168.1.225
>> 2008-09-18 18:27:42 [NOTICE] mod_xml_curl.c:128 xml_curl_function() 
>> Removing value for [1039 at 192.168.1.225]
>> API CALL [xml_curl(cache_delete_key 1039 at 192.168.1.225)] output:
>> OK
>>
>> 2008-09-18 18:28:01 [CONSOLE] mod_xml_curl.c:245 xml_url_fetch() Key 
>> is not in cache [1039 at 192.168.1.225].
>> 2008-09-18 18:28:01 [CONSOLE] mod_xml_curl.c:363 xml_url_fetch() XML 
>> response is in /tmp/0d729f00-85d1-11dd-838c-5148f6e85b7b.tmp.xml
>>
>> freeswitch at localhost.localdomain> xml_curl cache_off
>> 2008-09-18 18:28:07 [NOTICE] mod_xml_curl.c:102 xml_curl_function() 
>> cleaning up directory cache
>> API CALL [xml_curl(cache_off)] output:
>> OK
>> ========================================================================
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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