Dear all
We are trying to use the evapi module to send some data to an external application but I'm having problems getting the clients connected.
I have the kamailio (version 5.3) running with a tcp socket 127.0.0.1:8228, and the evapi params are just modparam("evapi", "workers", 4) modparam("evapi", "netstring_format", 0) modparam("evapi", "bind_addr", "127.0.0.1:8448") modparam("evapi", "max_clients", 32)
I tried a different number of workers and netstring_format 1 too. When I start the kamailio i added some debug to the code, and seems when doing the mod init of the evapi dispatcher 38(4779) DEBUG: <core> [core/sr_module.c:779]: init_mod_child(): idx 38 rank -2: evapi [EvAPI Dispatcher] it reaches to while(1) { ev_loop (loop, 0); } at evapi_run_dispatcher function. I guess if I connected to the tcp socket and sent some event, I would see the client accepted and the event route evapi:connection-new would be triggered. But i'm not able to do that. I tried to use the prime option, a tcp input client connection from logstash, so i could relay the data to the logstash using the evapi relay, but i only see the tcp socket being created but no client accepted. I also tried to connect with an erlang gen_tcp client, but it's the same i only see
47(4798) DEBUG: <core> [core/ip_addr.c:229]: print_ip(): tcpconn_new: new tcp connection: 127.0.0.1 47(4798) DEBUG: <core> [core/tcp_main.c:1174]: tcpconn_new(): on port 54537, type 2, socket 105 47(4798) DEBUG: <core> [core/tcp_main.c:1497]: tcpconn_add(): hashes: 1117:1187:1505, 1 47(4798) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xad0880, 105, 2, 0x7fc211712d58), fd_no=53 and if i try to send any data
47(4798) DEBUG: <core> [core/io_wait.h:600]: io_watch_del(): DBG: io_watch_del (0xad0880, 105, -1, 0x0) fd_no=54 called 47(4798) DEBUG: <core> [core/tcp_main.c:4456]: handle_tcpconn_ev(): sending to child, events 1 47(4798) DEBUG: <core> [core/tcp_main.c:4129]: send2child(): selected tcp worker idx:0 proc:43 pid:4791 for activity on [tcp:127.0.0.1:8448], 0x7fc211712d58 43(4791) DEBUG: <core> [core/tcp_read.c:1749]: handle_io(): received n=8 con=0x7fc211712d58, fd=39 43(4791) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xb3c720, 39, 2, 0x7fc211712d58), fd_no=1 43(4791) DEBUG: <core> [core/io_wait.h:600]: io_watch_del(): DBG: io_watch_del (0xb3c720, 39, -1, 0x10) fd_no=2 called 43(4791) DEBUG: <core> [core/tcp_read.c:1671]: release_tcpconn(): releasing con 0x7fc211712d58, state 1, fd=39, id=1 ([127.0.0.1]:54537 -> [127.0.0.1]:8448) 43(4791) DEBUG: <core> [core/tcp_read.c:1672]: release_tcpconn(): extra_data (nil) 47(4798) DEBUG: <core> [core/tcp_main.c:3559]: handle_tcp_child(): reader response= 7fc211712d58, 1 from 0 47(4798) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xad0880, 105, 2, 0x7fc211712d58), fd_no=53 47(4798) DEBUG: <core> [core/tcp_main.c:3686]: handle_tcp_child(): CONN_RELEASE 0x7fc211712d58 refcnt= 1
and when i try to send any data 38(10867) DEBUG: evapi [evapi_dispatch.c:610]: evapi_recv_notify(): received [0x7f17d23fc628] [{"test" : "1.1.1.1", "uuid" : "1-31629@3.3.3.3" , "pdd" : "4"}] (75) 38(10867) DEBUG: evapi [evapi_dispatch.c:316]: evapi_dispatch_notify(): the message was sent to 0 clients
I don't know what i'm missing, or if i'm understanding the use of the module correctly
could you please take a look? thanks a lot David
Hello,
to what port do you connect for evapi?
The logs indicate connection to sip tcp port.
Cheers, Daniel
On 14.09.20 18:06, David Escartin wrote:
Dear all
We are trying to use the evapi module to send some data to an external application but I'm having problems getting the clients connected.
I have the kamailio (version 5.3) running with a tcp socket 127.0.0.1:8228 http://127.0.0.1:8228, and the evapi params are just modparam("evapi", "workers", 4) modparam("evapi", "netstring_format", 0) modparam("evapi", "bind_addr", "127.0.0.1:8448 http://127.0.0.1:8448") modparam("evapi", "max_clients", 32)
I tried a different number of workers and netstring_format 1 too. When I start the kamailio i added some debug to the code, and seems when doing the mod init of the evapi dispatcher 38(4779) DEBUG: <core> [core/sr_module.c:779]: init_mod_child(): idx 38 rank -2: evapi [EvAPI Dispatcher] it reaches to while(1) { ev_loop (loop, 0); } at evapi_run_dispatcher function. I guess if I connected to the tcp socket and sent some event, I would see the client accepted and the event route evapi:connection-new would be triggered. But i'm not able to do that. I tried to use the prime option, a tcp input client connection from logstash, so i could relay the data to the logstash using the evapi relay, but i only see the tcp socket being created but no client accepted. I also tried to connect with an erlang gen_tcp client, but it's the same i only see
47(4798) DEBUG: <core> [core/ip_addr.c:229]: print_ip(): tcpconn_new: new tcp connection: 127.0.0.1 47(4798) DEBUG: <core> [core/tcp_main.c:1174]: tcpconn_new(): on port 54537, type 2, socket 105 47(4798) DEBUG: <core> [core/tcp_main.c:1497]: tcpconn_add(): hashes: 1117:1187:1505, 1 47(4798) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xad0880, 105, 2, 0x7fc211712d58), fd_no=53 and if i try to send any data
47(4798) DEBUG: <core> [core/io_wait.h:600]: io_watch_del(): DBG: io_watch_del (0xad0880, 105, -1, 0x0) fd_no=54 called 47(4798) DEBUG: <core> [core/tcp_main.c:4456]: handle_tcpconn_ev(): sending to child, events 1 47(4798) DEBUG: <core> [core/tcp_main.c:4129]: send2child(): selected tcp worker idx:0 proc:43 pid:4791 for activity on [tcp:127.0.0.1:8448 http://127.0.0.1:8448], 0x7fc211712d58 43(4791) DEBUG: <core> [core/tcp_read.c:1749]: handle_io(): received n=8 con=0x7fc211712d58, fd=39 43(4791) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xb3c720, 39, 2, 0x7fc211712d58), fd_no=1 43(4791) DEBUG: <core> [core/io_wait.h:600]: io_watch_del(): DBG: io_watch_del (0xb3c720, 39, -1, 0x10) fd_no=2 called 43(4791) DEBUG: <core> [core/tcp_read.c:1671]: release_tcpconn(): releasing con 0x7fc211712d58, state 1, fd=39, id=1 ([127.0.0.1]:54537 -> [127.0.0.1]:8448) 43(4791) DEBUG: <core> [core/tcp_read.c:1672]: release_tcpconn(): extra_data (nil) 47(4798) DEBUG: <core> [core/tcp_main.c:3559]: handle_tcp_child(): reader response= 7fc211712d58, 1 from 0 47(4798) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xad0880, 105, 2, 0x7fc211712d58), fd_no=53 47(4798) DEBUG: <core> [core/tcp_main.c:3686]: handle_tcp_child(): CONN_RELEASE 0x7fc211712d58 refcnt= 1
and when i try to send any data 38(10867) DEBUG: evapi [evapi_dispatch.c:610]: evapi_recv_notify(): received [0x7f17d23fc628] [{"test" : "1.1.1.1", "uuid" : "1-31629@3.3.3.3 mailto:1-31629@3.3.3.3" , "pdd" : "4"}] (75) 38(10867) DEBUG: evapi [evapi_dispatch.c:316]: evapi_dispatch_notify(): the message was sent to 0 clients
I don't know what i'm missing, or if i'm understanding the use of the module correctly
could you please take a look? thanks a lot David
-- Logo
David Escartín Almudévar VoIP/Switch Engineer descartin@sonoc.io mailto:descartin@sonoc.io
*SONOC* C/ Josefa Amar y Borbón, 10, 4ª · 50001 Zaragoza, España Tlf: +34 917019888 · www.sonoc.io http://www.sonoc.io
Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
hello Daniel
i have tried the directive listen=127.0.0.1:8448 and listen=tcp:127.0.0.1:8448 and i tried now for example to connect with a tcp client from port 48583 (randomly selected when i made the tcp connect i guess)
tcp 0 0 127.0.0.1:8448 127.0.0.1:48583 ESTABLISHED 4508/kamailio keepalive (2.24/0/0)
i configured the kernel to send keep alives 30secs after the tcp connection
should this be ok?
best regards david
El lun., 14 sept. 2020 a las 18:50, Daniel-Constantin Mierla (< miconda@gmail.com>) escribió:
Hello,
to what port do you connect for evapi?
The logs indicate connection to sip tcp port.
Cheers, Daniel On 14.09.20 18:06, David Escartin wrote:
Dear all
We are trying to use the evapi module to send some data to an external application but I'm having problems getting the clients connected.
I have the kamailio (version 5.3) running with a tcp socket 127.0.0.1:8228, and the evapi params are just modparam("evapi", "workers", 4) modparam("evapi", "netstring_format", 0) modparam("evapi", "bind_addr", "127.0.0.1:8448") modparam("evapi", "max_clients", 32)
I tried a different number of workers and netstring_format 1 too. When I start the kamailio i added some debug to the code, and seems when doing the mod init of the evapi dispatcher 38(4779) DEBUG: <core> [core/sr_module.c:779]: init_mod_child(): idx 38 rank -2: evapi [EvAPI Dispatcher] it reaches to while(1) { ev_loop (loop, 0); } at evapi_run_dispatcher function. I guess if I connected to the tcp socket and sent some event, I would see the client accepted and the event route evapi:connection-new would be triggered. But i'm not able to do that. I tried to use the prime option, a tcp input client connection from logstash, so i could relay the data to the logstash using the evapi relay, but i only see the tcp socket being created but no client accepted. I also tried to connect with an erlang gen_tcp client, but it's the same i only see
47(4798) DEBUG: <core> [core/ip_addr.c:229]: print_ip(): tcpconn_new: new tcp connection: 127.0.0.1 47(4798) DEBUG: <core> [core/tcp_main.c:1174]: tcpconn_new(): on port 54537, type 2, socket 105 47(4798) DEBUG: <core> [core/tcp_main.c:1497]: tcpconn_add(): hashes: 1117:1187:1505, 1 47(4798) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xad0880, 105, 2, 0x7fc211712d58), fd_no=53 and if i try to send any data
47(4798) DEBUG: <core> [core/io_wait.h:600]: io_watch_del(): DBG: io_watch_del (0xad0880, 105, -1, 0x0) fd_no=54 called 47(4798) DEBUG: <core> [core/tcp_main.c:4456]: handle_tcpconn_ev(): sending to child, events 1 47(4798) DEBUG: <core> [core/tcp_main.c:4129]: send2child(): selected tcp worker idx:0 proc:43 pid:4791 for activity on [tcp:127.0.0.1:8448], 0x7fc211712d58 43(4791) DEBUG: <core> [core/tcp_read.c:1749]: handle_io(): received n=8 con=0x7fc211712d58, fd=39 43(4791) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xb3c720, 39, 2, 0x7fc211712d58), fd_no=1 43(4791) DEBUG: <core> [core/io_wait.h:600]: io_watch_del(): DBG: io_watch_del (0xb3c720, 39, -1, 0x10) fd_no=2 called 43(4791) DEBUG: <core> [core/tcp_read.c:1671]: release_tcpconn(): releasing con 0x7fc211712d58, state 1, fd=39, id=1 ([127.0.0.1]:54537 -> [127.0.0.1]:8448) 43(4791) DEBUG: <core> [core/tcp_read.c:1672]: release_tcpconn(): extra_data (nil) 47(4798) DEBUG: <core> [core/tcp_main.c:3559]: handle_tcp_child(): reader response= 7fc211712d58, 1 from 0 47(4798) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xad0880, 105, 2, 0x7fc211712d58), fd_no=53 47(4798) DEBUG: <core> [core/tcp_main.c:3686]: handle_tcp_child(): CONN_RELEASE 0x7fc211712d58 refcnt= 1
and when i try to send any data 38(10867) DEBUG: evapi [evapi_dispatch.c:610]: evapi_recv_notify(): received [0x7f17d23fc628] [{"test" : "1.1.1.1", "uuid" : "1-31629@3.3.3.3" , "pdd" : "4"}] (75) 38(10867) DEBUG: evapi [evapi_dispatch.c:316]: evapi_dispatch_notify(): the message was sent to 0 clients
I don't know what i'm missing, or if i'm understanding the use of the module correctly
could you please take a look? thanks a lot David
-- [image: Logo]
David Escartín Almudévar VoIP/Switch Engineer descartin@sonoc.io
*SONOC* C/ Josefa Amar y Borbón, 10, 4ª · 50001 Zaragoza, España Tlf: +34 917019888 · www.sonoc.io
Kamailio (SER) - Users Mailing Listsr-users@lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
-- Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda Funding: https://www.paypal.me/dcmierla
Hello,
you must have a different socket in modparam("evapi", "bind_addr", "...") than the core listen parameter for sip tcp traffic. The connect with your evapi app to the socket specified in modparam.
Cheers, Daniel
On 15.09.20 09:29, David Escartin wrote:
hello Daniel
i have tried the directive listen=127.0.0.1:8448 http://127.0.0.1:8448 and listen=tcp:127.0.0.1:8448 http://127.0.0.1:8448 and i tried now for example to connect with a tcp client from port 48583 (randomly selected when i made the tcp connect i guess)
tcp 0 0 127.0.0.1:8448 http://127.0.0.1:8448 127.0.0.1:48583 http://127.0.0.1:48583 ESTABLISHED 4508/kamailio keepalive (2.24/0/0)
i configured the kernel to send keep alives 30secs after the tcp connection
should this be ok?
best regards david
El lun., 14 sept. 2020 a las 18:50, Daniel-Constantin Mierla (<miconda@gmail.com mailto:miconda@gmail.com>) escribió:
Hello, to what port do you connect for evapi? The logs indicate connection to sip tcp port. Cheers, Daniel On 14.09.20 18:06, David Escartin wrote:
Dear all We are trying to use the evapi module to send some data to an external application but I'm having problems getting the clients connected. I have the kamailio (version 5.3) running with a tcp socket 127.0.0.1:8228 <http://127.0.0.1:8228>, and the evapi params are just modparam("evapi", "workers", 4) modparam("evapi", "netstring_format", 0) modparam("evapi", "bind_addr", "127.0.0.1:8448 <http://127.0.0.1:8448>") modparam("evapi", "max_clients", 32) I tried a different number of workers and netstring_format 1 too. When I start the kamailio i added some debug to the code, and seems when doing the mod init of the evapi dispatcher 38(4779) DEBUG: <core> [core/sr_module.c:779]: init_mod_child(): idx 38 rank -2: evapi [EvAPI Dispatcher] it reaches to while(1) { ev_loop (loop, 0); } at evapi_run_dispatcher function. I guess if I connected to the tcp socket and sent some event, I would see the client accepted and the event route evapi:connection-new would be triggered. But i'm not able to do that. I tried to use the prime option, a tcp input client connection from logstash, so i could relay the data to the logstash using the evapi relay, but i only see the tcp socket being created but no client accepted. I also tried to connect with an erlang gen_tcp client, but it's the same i only see 47(4798) DEBUG: <core> [core/ip_addr.c:229]: print_ip(): tcpconn_new: new tcp connection: 127.0.0.1 47(4798) DEBUG: <core> [core/tcp_main.c:1174]: tcpconn_new(): on port 54537, type 2, socket 105 47(4798) DEBUG: <core> [core/tcp_main.c:1497]: tcpconn_add(): hashes: 1117:1187:1505, 1 47(4798) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xad0880, 105, 2, 0x7fc211712d58), fd_no=53 and if i try to send any data 47(4798) DEBUG: <core> [core/io_wait.h:600]: io_watch_del(): DBG: io_watch_del (0xad0880, 105, -1, 0x0) fd_no=54 called 47(4798) DEBUG: <core> [core/tcp_main.c:4456]: handle_tcpconn_ev(): sending to child, events 1 47(4798) DEBUG: <core> [core/tcp_main.c:4129]: send2child(): selected tcp worker idx:0 proc:43 pid:4791 for activity on [tcp:127.0.0.1:8448 <http://127.0.0.1:8448>], 0x7fc211712d58 43(4791) DEBUG: <core> [core/tcp_read.c:1749]: handle_io(): received n=8 con=0x7fc211712d58, fd=39 43(4791) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xb3c720, 39, 2, 0x7fc211712d58), fd_no=1 43(4791) DEBUG: <core> [core/io_wait.h:600]: io_watch_del(): DBG: io_watch_del (0xb3c720, 39, -1, 0x10) fd_no=2 called 43(4791) DEBUG: <core> [core/tcp_read.c:1671]: release_tcpconn(): releasing con 0x7fc211712d58, state 1, fd=39, id=1 ([127.0.0.1]:54537 -> [127.0.0.1]:8448) 43(4791) DEBUG: <core> [core/tcp_read.c:1672]: release_tcpconn(): extra_data (nil) 47(4798) DEBUG: <core> [core/tcp_main.c:3559]: handle_tcp_child(): reader response= 7fc211712d58, 1 from 0 47(4798) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xad0880, 105, 2, 0x7fc211712d58), fd_no=53 47(4798) DEBUG: <core> [core/tcp_main.c:3686]: handle_tcp_child(): CONN_RELEASE 0x7fc211712d58 refcnt= 1 and when i try to send any data 38(10867) DEBUG: evapi [evapi_dispatch.c:610]: evapi_recv_notify(): received [0x7f17d23fc628] [{"test" : "1.1.1.1", "uuid" : "1-31629@3.3.3.3 <mailto:1-31629@3.3.3.3>" , "pdd" : "4"}] (75) 38(10867) DEBUG: evapi [evapi_dispatch.c:316]: evapi_dispatch_notify(): the message was sent to 0 clients I don't know what i'm missing, or if i'm understanding the use of the module correctly could you please take a look? thanks a lot David -- Logo David Escartín Almudévar VoIP/Switch Engineer descartin@sonoc.io <mailto:descartin@sonoc.io> *SONOC* C/ Josefa Amar y Borbón, 10, 4ª · 50001 Zaragoza, España Tlf: +34 917019888 · www.sonoc.io <http://www.sonoc.io> _______________________________________________ Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org <mailto:sr-users@lists.kamailio.org> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
-- Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> Funding: https://www.paypal.me/dcmierla <https://www.paypal.me/dcmierla>
-- Logo
David Escartín Almudévar VoIP/Switch Engineer descartin@sonoc.io mailto:descartin@sonoc.io
*SONOC* C/ Josefa Amar y Borbón, 10, 4ª · 50001 Zaragoza, España Tlf: +34 917019888 · www.sonoc.io http://www.sonoc.io
hello Daniel
thanks, finally i could do that, i was struggling with this because in kamailio 5.4 there was not being created a socket on the bindaddr param when starting kamailio. (that's why i even tried to start to listen on a regular tcp socket to connect there an application) But in 5.5 and 5.3 it does, so i could move forward and send the events to an external application
best regards david
El lun., 21 sept. 2020 a las 9:45, Daniel-Constantin Mierla (< miconda@gmail.com>) escribió:
Hello,
you must have a different socket in modparam("evapi", "bind_addr", "...") than the core listen parameter for sip tcp traffic. The connect with your evapi app to the socket specified in modparam.
Cheers, Daniel On 15.09.20 09:29, David Escartin wrote:
hello Daniel
i have tried the directive listen=127.0.0.1:8448 and listen=tcp:127.0.0.1:8448 and i tried now for example to connect with a tcp client from port 48583 (randomly selected when i made the tcp connect i guess)
tcp 0 0 127.0.0.1:8448 127.0.0.1:48583 ESTABLISHED 4508/kamailio keepalive (2.24/0/0)
i configured the kernel to send keep alives 30secs after the tcp connection
should this be ok?
best regards david
El lun., 14 sept. 2020 a las 18:50, Daniel-Constantin Mierla (< miconda@gmail.com>) escribió:
Hello,
to what port do you connect for evapi?
The logs indicate connection to sip tcp port.
Cheers, Daniel On 14.09.20 18:06, David Escartin wrote:
Dear all
We are trying to use the evapi module to send some data to an external application but I'm having problems getting the clients connected.
I have the kamailio (version 5.3) running with a tcp socket 127.0.0.1:8228, and the evapi params are just modparam("evapi", "workers", 4) modparam("evapi", "netstring_format", 0) modparam("evapi", "bind_addr", "127.0.0.1:8448") modparam("evapi", "max_clients", 32)
I tried a different number of workers and netstring_format 1 too. When I start the kamailio i added some debug to the code, and seems when doing the mod init of the evapi dispatcher 38(4779) DEBUG: <core> [core/sr_module.c:779]: init_mod_child(): idx 38 rank -2: evapi [EvAPI Dispatcher] it reaches to while(1) { ev_loop (loop, 0); } at evapi_run_dispatcher function. I guess if I connected to the tcp socket and sent some event, I would see the client accepted and the event route evapi:connection-new would be triggered. But i'm not able to do that. I tried to use the prime option, a tcp input client connection from logstash, so i could relay the data to the logstash using the evapi relay, but i only see the tcp socket being created but no client accepted. I also tried to connect with an erlang gen_tcp client, but it's the same i only see
47(4798) DEBUG: <core> [core/ip_addr.c:229]: print_ip(): tcpconn_new: new tcp connection: 127.0.0.1 47(4798) DEBUG: <core> [core/tcp_main.c:1174]: tcpconn_new(): on port 54537, type 2, socket 105 47(4798) DEBUG: <core> [core/tcp_main.c:1497]: tcpconn_add(): hashes: 1117:1187:1505, 1 47(4798) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xad0880, 105, 2, 0x7fc211712d58), fd_no=53 and if i try to send any data
47(4798) DEBUG: <core> [core/io_wait.h:600]: io_watch_del(): DBG: io_watch_del (0xad0880, 105, -1, 0x0) fd_no=54 called 47(4798) DEBUG: <core> [core/tcp_main.c:4456]: handle_tcpconn_ev(): sending to child, events 1 47(4798) DEBUG: <core> [core/tcp_main.c:4129]: send2child(): selected tcp worker idx:0 proc:43 pid:4791 for activity on [tcp:127.0.0.1:8448], 0x7fc211712d58 43(4791) DEBUG: <core> [core/tcp_read.c:1749]: handle_io(): received n=8 con=0x7fc211712d58, fd=39 43(4791) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xb3c720, 39, 2, 0x7fc211712d58), fd_no=1 43(4791) DEBUG: <core> [core/io_wait.h:600]: io_watch_del(): DBG: io_watch_del (0xb3c720, 39, -1, 0x10) fd_no=2 called 43(4791) DEBUG: <core> [core/tcp_read.c:1671]: release_tcpconn(): releasing con 0x7fc211712d58, state 1, fd=39, id=1 ([127.0.0.1]:54537 -> [127.0.0.1]:8448) 43(4791) DEBUG: <core> [core/tcp_read.c:1672]: release_tcpconn(): extra_data (nil) 47(4798) DEBUG: <core> [core/tcp_main.c:3559]: handle_tcp_child(): reader response= 7fc211712d58, 1 from 0 47(4798) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xad0880, 105, 2, 0x7fc211712d58), fd_no=53 47(4798) DEBUG: <core> [core/tcp_main.c:3686]: handle_tcp_child(): CONN_RELEASE 0x7fc211712d58 refcnt= 1
and when i try to send any data 38(10867) DEBUG: evapi [evapi_dispatch.c:610]: evapi_recv_notify(): received [0x7f17d23fc628] [{"test" : "1.1.1.1", "uuid" : "1-31629@3.3.3.3" , "pdd" : "4"}] (75) 38(10867) DEBUG: evapi [evapi_dispatch.c:316]: evapi_dispatch_notify(): the message was sent to 0 clients
I don't know what i'm missing, or if i'm understanding the use of the module correctly
could you please take a look? thanks a lot David
-- [image: Logo]
David Escartín Almudévar VoIP/Switch Engineer descartin@sonoc.io
*SONOC* C/ Josefa Amar y Borbón, 10, 4ª · 50001 Zaragoza, España Tlf: +34 917019888 · www.sonoc.io
Kamailio (SER) - Users Mailing Listsr-users@lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
-- Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda Funding: https://www.paypal.me/dcmierla
-- [image: Logo]
David Escartín Almudévar VoIP/Switch Engineer descartin@sonoc.io
*SONOC* C/ Josefa Amar y Borbón, 10, 4ª · 50001 Zaragoza, España Tlf: +34 917019888 · www.sonoc.io
-- Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda Funding: https://www.paypal.me/dcmierla
Dear all, Daniel
we have been testing this module with the following setup kamailio 5.3.2 evapi params modparam("evapi", "workers", 4) modparam("evapi", "netstring_format", 0) modparam("evapi", "bind_addr", "127.0.0.1:8448") modparam("evapi", "max_clients", 32)
then in the configuration we do evapi_relay of avp including a json data (which can be quite long), like this {"key" : "aarp2q0tcpqhs0cpucuhukjs2ah2j00q@10.18.5.64" , "msg" : {"rg_in":"701","ani_init":{"ani_source":"pai", ....... }}}
We have an application listening on the tcp socket and writing those messages to a kafka cluster, and this works ok, and in the previous manual tests we have done no issue was found. But when making some load tests, and passing some live traffic we see some issues
seems like some times, when there are messages to be sent to the tcp socket at the same time, they are sent in the same message, when normally each data sent using evapi_relay is sent in 1 message We do sometimes see something like this on the application consuming from the tcp socket 2020-11-25 15:20:01.744 UTC [error] <0.706.0>@evapi_kafka_listener:handle_info:167 body "{"key" : " 6142651aa63616c6c04a783cd@72.21.24.130" , "msg" : {"rg_in":"677","ani_init":{"ani_source":"fro",.......}}}{"key" : "isbc7caT4001915251VabcGhEfHdNiF0i@172.16.120.1" , "msg" : {"rg_in":"22","ani_init":{"ani_source":"pai", ....... ,"translate" not valid json; error = {691,invalid_trailing_data} 2020-11-25 15:20:01.745 UTC [error] <0.706.0>@evapi_kafka_listener:handle_info:167 body "dPartition":"-1",......}}}" not valid json; error = {1,invalid_json}
and we do see that the application cannot parse the json message fine, because we have like 2 json objects together ......{"ani_source":"fro",.......}}}{"key" : "isbc7caT4001915251Vabc............ This happens with 2 different UDP receivers processing messages and calling evapi_relay at the same time. But i don't think this happens all the time. Seems like some issue when several processes try to use evapi workers at the same time. We tried to increase evapi workers and it's the same
We also saw another issue I think. Seems when the avp sent to evapi socket is bigger than ~1680 char, the json is also truncated, and also happens when we use the socket in Lo interface which has an MTU of 65535.
Could you please take a look to see if there is any problem or limitation, or if we are using something wrong?
thanks and best regards david
El mar, 29 sept 2020 a las 13:40, David Escartin (descartin@sonoc.io) escribió:
hello Daniel
thanks, finally i could do that, i was struggling with this because in kamailio 5.4 there was not being created a socket on the bindaddr param when starting kamailio. (that's why i even tried to start to listen on a regular tcp socket to connect there an application) But in 5.5 and 5.3 it does, so i could move forward and send the events to an external application
best regards david
El lun., 21 sept. 2020 a las 9:45, Daniel-Constantin Mierla (< miconda@gmail.com>) escribió:
Hello,
you must have a different socket in modparam("evapi", "bind_addr", "...") than the core listen parameter for sip tcp traffic. The connect with your evapi app to the socket specified in modparam.
Cheers, Daniel On 15.09.20 09:29, David Escartin wrote:
hello Daniel
i have tried the directive listen=127.0.0.1:8448 and listen=tcp:127.0.0.1:8448 and i tried now for example to connect with a tcp client from port 48583 (randomly selected when i made the tcp connect i guess)
tcp 0 0 127.0.0.1:8448 127.0.0.1:48583 ESTABLISHED 4508/kamailio keepalive (2.24/0/0)
i configured the kernel to send keep alives 30secs after the tcp connection
should this be ok?
best regards david
El lun., 14 sept. 2020 a las 18:50, Daniel-Constantin Mierla (< miconda@gmail.com>) escribió:
Hello,
to what port do you connect for evapi?
The logs indicate connection to sip tcp port.
Cheers, Daniel On 14.09.20 18:06, David Escartin wrote:
Dear all
We are trying to use the evapi module to send some data to an external application but I'm having problems getting the clients connected.
I have the kamailio (version 5.3) running with a tcp socket 127.0.0.1:8228, and the evapi params are just modparam("evapi", "workers", 4) modparam("evapi", "netstring_format", 0) modparam("evapi", "bind_addr", "127.0.0.1:8448") modparam("evapi", "max_clients", 32)
I tried a different number of workers and netstring_format 1 too. When I start the kamailio i added some debug to the code, and seems when doing the mod init of the evapi dispatcher 38(4779) DEBUG: <core> [core/sr_module.c:779]: init_mod_child(): idx 38 rank -2: evapi [EvAPI Dispatcher] it reaches to while(1) { ev_loop (loop, 0); } at evapi_run_dispatcher function. I guess if I connected to the tcp socket and sent some event, I would see the client accepted and the event route evapi:connection-new would be triggered. But i'm not able to do that. I tried to use the prime option, a tcp input client connection from logstash, so i could relay the data to the logstash using the evapi relay, but i only see the tcp socket being created but no client accepted. I also tried to connect with an erlang gen_tcp client, but it's the same i only see
47(4798) DEBUG: <core> [core/ip_addr.c:229]: print_ip(): tcpconn_new: new tcp connection: 127.0.0.1 47(4798) DEBUG: <core> [core/tcp_main.c:1174]: tcpconn_new(): on port 54537, type 2, socket 105 47(4798) DEBUG: <core> [core/tcp_main.c:1497]: tcpconn_add(): hashes: 1117:1187:1505, 1 47(4798) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xad0880, 105, 2, 0x7fc211712d58), fd_no=53 and if i try to send any data
47(4798) DEBUG: <core> [core/io_wait.h:600]: io_watch_del(): DBG: io_watch_del (0xad0880, 105, -1, 0x0) fd_no=54 called 47(4798) DEBUG: <core> [core/tcp_main.c:4456]: handle_tcpconn_ev(): sending to child, events 1 47(4798) DEBUG: <core> [core/tcp_main.c:4129]: send2child(): selected tcp worker idx:0 proc:43 pid:4791 for activity on [tcp:127.0.0.1:8448], 0x7fc211712d58 43(4791) DEBUG: <core> [core/tcp_read.c:1749]: handle_io(): received n=8 con=0x7fc211712d58, fd=39 43(4791) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xb3c720, 39, 2, 0x7fc211712d58), fd_no=1 43(4791) DEBUG: <core> [core/io_wait.h:600]: io_watch_del(): DBG: io_watch_del (0xb3c720, 39, -1, 0x10) fd_no=2 called 43(4791) DEBUG: <core> [core/tcp_read.c:1671]: release_tcpconn(): releasing con 0x7fc211712d58, state 1, fd=39, id=1 ([127.0.0.1]:54537 -> [127.0.0.1]:8448) 43(4791) DEBUG: <core> [core/tcp_read.c:1672]: release_tcpconn(): extra_data (nil) 47(4798) DEBUG: <core> [core/tcp_main.c:3559]: handle_tcp_child(): reader response= 7fc211712d58, 1 from 0 47(4798) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0xad0880, 105, 2, 0x7fc211712d58), fd_no=53 47(4798) DEBUG: <core> [core/tcp_main.c:3686]: handle_tcp_child(): CONN_RELEASE 0x7fc211712d58 refcnt= 1
and when i try to send any data 38(10867) DEBUG: evapi [evapi_dispatch.c:610]: evapi_recv_notify(): received [0x7f17d23fc628] [{"test" : "1.1.1.1", "uuid" : " 1-31629@3.3.3.3" , "pdd" : "4"}] (75) 38(10867) DEBUG: evapi [evapi_dispatch.c:316]: evapi_dispatch_notify(): the message was sent to 0 clients
I don't know what i'm missing, or if i'm understanding the use of the module correctly
could you please take a look? thanks a lot David
-- [image: Logo]
David Escartín Almudévar VoIP/Switch Engineer descartin@sonoc.io
*SONOC* C/ Josefa Amar y Borbón, 10, 4ª · 50001 Zaragoza, España Tlf: +34 917019888 · www.sonoc.io
Kamailio (SER) - Users Mailing Listsr-users@lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
-- Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda Funding: https://www.paypal.me/dcmierla
-- [image: Logo]
David Escartín Almudévar VoIP/Switch Engineer descartin@sonoc.io
*SONOC* C/ Josefa Amar y Borbón, 10, 4ª · 50001 Zaragoza, España Tlf: +34 917019888 · www.sonoc.io
-- Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda Funding: https://www.paypal.me/dcmierla
-- [image: Logo]
David Escartín Almudévar VoIP/Switch Engineer descartin@sonoc.io
*SONOC* C/ Josefa Amar y Borbón, 10, 4ª · 50001 Zaragoza, España Tlf: +34 917019888 · www.sonoc.io