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