[SR-Users] Http_async_client stops script execution

Denys Pozniak denys.pozniak at gmail.com
Thu Oct 18 09:35:57 CEST 2018


Hello!
Version 5.1.3 works well in non-transactional mode ( $http_req(suspend) =
0; )

[root at 10-10-10-10 ~]# kamailio -v
version: kamailio 5.1.3 (x86_64/linux)
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, DISABLE_NAGLE,
USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC,
TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT,
USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST,
HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,
MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: unknown
compiled on 14:15:42 Aug 10 2018 with gcc 4.8.5



пт, 28 сент. 2018 г. в 12:32, Federico Cabiddu <federico.cabiddu at gmail.com>:

> Hi,
> as far as I can see that part has not substantially changed.
> Can you try with latest stable release in 5.1?
>
> Best regards,
>
> Federico
>
> On Thu, Sep 27, 2018 at 5:03 PM Denys Pozniak <denys.pozniak at gmail.com>
> wrote:
>
>> This example does not work. I do not see log message.
>>
>> *Example 1.13. http_async_suspend() usage*
>>
>> ...
>> t_newtran();
>> http_async_suspend(0);
>> # the transaction won't be suspended for the next query
>> http_async_query("http://example.com/test.php", "HTTP_REPLY");
>> xlog("L_INFO", "query sent\n");
>> t_reply("200", "Ok");
>>
>> ...
>>
>>
>>
>>
>> 2018-09-27 17:54 GMT+03:00 Federico Cabiddu <federico.cabiddu at gmail.com>:
>>
>>> What do you mean with "does not work well "?
>>> I don't remember any change in that part but anyway you should switch to
>>> 5.0 or 5.1 releases, since those are the maintained ones.
>>>
>>> Best regards,
>>>
>>> Federico
>>>
>>> On Thu, Sep 27, 2018 at 4:50 PM Denys Pozniak <denys.pozniak at gmail.com>
>>> wrote:
>>>
>>>> Looks like http_async_suspend(0); does not work well in v4.4.2.
>>>>
>>>>
>>>> https://www.kamailio.org/docs/modules/4.4.x/modules/http_async_client.html#http_async_client.f.http_async_suspend
>>>>
>>>> 2018-09-27 17:40 GMT+03:00 Denys Pozniak <denys.pozniak at gmail.com>:
>>>>
>>>>> So my config is ok and I need to add all next logic with call routing
>>>>> to route[HTTP_REPLY] ,correct ?
>>>>>
>>>>>
>>>>>
>>>>> 2018-09-27 16:42 GMT+03:00 Federico Cabiddu <
>>>>> federico.cabiddu at gmail.com>:
>>>>>
>>>>>> Hi,
>>>>>> if you are in a transactional contest (as you are since you are
>>>>>> calling t_newtran()), the script execution is suspended, upon calling
>>>>>> http_async_query and resumed in the callback route passed as parameter.
>>>>>> The instructions after the call to http_async_query are never
>>>>>> executed. If you are not in a transactional contest or you explicitly
>>>>>> instruct to not suspend the transaction ($http(suspend) = 0,
>>>>>> http://www.kamailio.org/docs/modules/devel/modules/http_async_client.html#idm1053320700)
>>>>>> they will be executed, and the callback route will be run when the http
>>>>>> reply comes. If you want to use http uqeries to retrieve parameters you
>>>>>> want to use for your routing logic, you need to suspend the transaction and
>>>>>> resume it in the callback.
>>>>>> Hope this clarify.
>>>>>>
>>>>>> Best regards,
>>>>>>
>>>>>> Federico
>>>>>>
>>>>>> On Thu, Sep 27, 2018 at 3:36 PM Denys Pozniak <
>>>>>> denys.pozniak at gmail.com> wrote:
>>>>>>
>>>>>>> Hello!
>>>>>>>
>>>>>>> Please help me to understand how http_async_client module behaves. I
>>>>>>> am going to use it for call routing according to the http response.
>>>>>>>
>>>>>>> if (is_method("INVITE")) {
>>>>>>>         t_newtran();
>>>>>>>         xlog("L_ERR", "ASYNC0-$fU-$rU-$rm---- \n");
>>>>>>>         http_set_timeout(1000);
>>>>>>>         http_set_method("POST");
>>>>>>>         http_append_header("Content-Type: application/json");
>>>>>>>         http_async_query("http://10.10.10.10:8080/RPC",
>>>>>>> "{\"jsonrpc\": \"2.0\", \"method\": \"ul.lookup\", \"params\":
>>>>>>> [\"location\",\"user\"], \"id\": 1}", "HTTP_REPLY");
>>>>>>>         xlog("L_ERR", "ASYNC1-$fU-$rU-$rm---- \n");
>>>>>>> }
>>>>>>>
>>>>>>> route[HTTP_REPLY] {
>>>>>>>         xlog("L_ERR", "HTTP_REPLY: ok $http_ok \n");
>>>>>>>         xlog("L_ERR", "HTTP_REPLY: status $http_rs\n");
>>>>>>>         xlog("L_ERR", "HTTP_REPLY: body   $http_rb\n");
>>>>>>>         xlog("L_ERR", "HTTP_REPLY: error  $http_err)\n");
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>> In syslog I see HTTP_REPLY log strings with correct response, but do
>>>>>>> not see ASYNC1 string and script execution stops.
>>>>>>>
>>>>>>> What's wrong with this?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> #   kamailio -v
>>>>>>> version: kamailio 4.4.2 (x86_64/linux) 892ad6
>>>>>>> flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS,
>>>>>>> USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP,
>>>>>>> PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX,
>>>>>>> FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR,
>>>>>>> USE_DST_BLACKLIST, HAVE_RESOLV_RES
>>>>>>> ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN
>>>>>>> 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
>>>>>>> poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
>>>>>>> id: 892ad6
>>>>>>> compiled on 12:58:38 Aug 28 2017 with gcc 4.8.5
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> BR,
>>>>>>> Denys Pozniak
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Kamailio (SER) - Users Mailing List
>>>>>>> sr-users at lists.kamailio.org
>>>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Kamailio (SER) - Users Mailing List
>>>>>> sr-users at lists.kamailio.org
>>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> BR,
>>>>> Denys Pozniak
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> BR,
>>>> Denys Pozniak
>>>>
>>>>
>>>> _______________________________________________
>>>> Kamailio (SER) - Users Mailing List
>>>> sr-users at lists.kamailio.org
>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>
>>>
>>> _______________________________________________
>>> Kamailio (SER) - Users Mailing List
>>> sr-users at lists.kamailio.org
>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>
>>>
>>
>>
>> --
>>
>> BR,
>> Denys Pozniak
>>
>>
>> _______________________________________________
>> Kamailio (SER) - Users Mailing List
>> sr-users at lists.kamailio.org
>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users at lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>


-- 

BR,
Denys Pozniak
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20181018/fb4d80e0/attachment.html>


More information about the sr-users mailing list