On 18 Nov 2013, at 15:45, Alex Balashov <abalas...@evaristesys.com> wrote:

> Hi Victor,
> 
> Pretty much all HTTP calls, no matter how you architect them, block Kamailio 
> SIP worker threads.  There is a low practical limit to the number of of SIP 
> worker threads you can have, so this can lead to SIP messages being dropped 
> and sluggish response time very quickly.
The json-rpc module has what I believe is an asynch http call, returning in 
another route block.
I've mailed earlier about all our HTTP clients. There's a mess that needs 
someone to clean out.

/O

> 
> The exec_avp() function has this liability, as does the http_query()[1] 
> function in the 'utils' module, although the http_query() function does have 
> a timeout parameter[2] that works, so if a short timeout satisfies you, this 
> is a superior alternative to exec_avp().
> 
> However, to architect this in a truly asynchronous way, you're either going 
> to have to query the thing you want via SIP (i.e. to a SIP redirect server) 
> itself, or use some of the newer asynchronous/deferred processing features 
> that are already in place[3], or being pushed into the 4.1 branch nowadays.  
> Both options certainly incur greater complexity than using http_query(), so 
> if the fact that it has a working timeout setting satisfies you, just use 
> that.
> 
> -- Alex
> 
> [1] http://kamailio.org/docs/modules/4.0.x/modules/utils.html#idm1336
> 
> [2] http://kamailio.org/docs/modules/4.0.x/modules/utils.html#idp2631720
> 
> [3] http://kamailio.org/docs/modules/devel/modules/async.html
> 
> http://kamailio.org/docs/modules/4.1.x/modules/tmx.html#idp15326008
> 
> On 11/18/2013 09:39 AM, Victor Torre Antunez wrote:
> 
>> Hi all,
>> 
>> I´m using EXEC Module to execute a HTTP request via curl, to comunicate
>> with another app like this:
>> 
>>     exec_avp("curl --connect-timeout 1 --max-time 2
>> http://IP_ADDR:PORT/PATH/'$fU'/'$tU'/'$hdr(Call-ID)'", "$avp(s:output)");
>> 
>> Sometimes Kamailio blocks when HTTP server does not response in time,
>> despite the max-time parameter.
>> 
>> I found this know issue on EXEC module docs:
>>     "There is currently no guarantee that scripts ever return and stop
>> blocking SIP server. (There is kill.c but it is not used along with the
>> current mechanisms based on popen. Besides that kill.c is ugly)."
>> 
>> Does anyone know a better way to communicate Kamailio with a HTTP server
>> without blocks? I will try a python script to send the HTTP request and
>> call it with APP_PYTHON module. Has anyone had blocks with APP_PYTHON
>> module?
>> 
>> 
>> Thanks in advance.
>> 
>> --
>> *Victor*
>> 
>> 
>> 
>> _______________________________________________
>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>> sr-users@lists.sip-router.org
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>> 
> 
> 
> -- 
> Alex Balashov - Principal
> Evariste Systems LLC
> 235 E Ponce de Leon Ave
> Suite 106
> Decatur, GA 30030
> United States
> Tel: +1-678-954-0670
> Web: http://www.evaristesys.com/, http://www.alexbalashov.com/
> 
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users@lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users


_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to