Hello,
how often are you requesting the list of all dialogs (what is the n in
that every n seconds)? Is it done using a single evapi connection, or
are there many of them?
And to clarify, is the error ("cannot serialize event") happening when
there is no call or when there are too many? Is not clear for me given
that you follow with what you expect to be when nobody is calling ...
Cheers,
Daniel
On 30.10.19 14:26, Michal Škuta wrote:
Hello, Kamailio community,
we are implementing evapi communication to our Kamailio server. We
have implemented and tested it on our testing server. Everything was
working OK.
Now we are testing it on our production servers with a lot more calls
and we have some problems here.
Every n seconds we are requesting from Kamailio list of all dialogs.
And this list of dialogs (from jsonrpc *dlg.list*) is sent to evapi
connection.
Here is a snippet of our *Kamailio code*:
route[CGR_DLG_LIST]
{
xlog("L_INFO", "XLOG: $ci [CGR_DLG_LIST] Requested dialog
list");
# CGRateS connection is still alive, set check to true
$sht(cgrconn=>check) = 1;
if $sht(cgrconn=>cgr) == $null {
sl_send_reply("503","Charging controller
unreachable");
exit;
}
jsonrpc_exec('{"jsonrpc":"2.0","id":1,
"method":"dlg.list","params":[]}');
xlog("L_INFO", "XLOG: $ci [CGR_DLG_LIST] Test1:
$jsonrpl(body)");
evapi_relay("{\"event\":\"CGR_DLG_LIST_REPLY\",
\"jsonrpl_body\":$jsonrpl(body)}");
}
During a higher number of calls Kamailio is generating ERROR messages
from evapi module. Here is the syslog:
Oct 30 12:02:15 kam-prod /opt/ipgate/kamailio/sbin/kamailio[19512]:
INFO: <script>: XLOG: 123 [CGR_DLG_LIST] Requested dialog list
Oct 30 12:02:15 kam-prod /opt/ipgate/kamailio/sbin/kamailio[19512]:
INFO: <script>:
Oct 30 12:02:15 kam-prod /opt/ipgate/kamailio/sbin/kamailio[19512]:
DEBUG: evapi [evapi_dispatch.c:740]: _evapi_relay(): relaying event data [
Oct 30 12:02:15 kam-prod /opt/ipgate/kamailio/sbin/kamailio[19512]:
ERROR: evapi [evapi_dispatch.c:764]: _evapi_relay(): cannot serialize
event
Oct 30 12:02:15 kam-prod /opt/ipgate/kamailio/sbin/kamailio[19512]:
ERROR: evapi [evapi_mod.c:265]: w_evapi_relay(): failed to relay event:
*We are expecting something like this when nobody is calling*
Oct 30 14:12:22 kam-test /opt/ipgate/kamailio/sbin/kamailio[32090]:
INFO: <script>: XLOG: 123 [CGR_DLG_LIST] Requested dialog list
Oct 30 14:12:22 kam-test /opt/ipgate/kamailio/sbin/kamailio[32090]:
INFO: <script>: XLOG: 123 [CGR_DLG_LIST] Test1: {
#011"jsonrpc":#011"2.0",
#011"result":#011[],
#011"id":#0111
}
Oct 30 14:12:22 kam-test /opt/ipgate/kamailio/sbin/kamailio[32090]:
DEBUG: evapi [evapi_dispatch.c:740]: _evapi_relay(): relaying event
data [{"event":"CGR_DLG_LIST_REPLY",
#011#011#011"jsonrpl_body":{
#011"jsonrpc":#011"2.0",
#011"result":#011[],
#011"id":#0111
}}] (96)
Oct 30 14:12:22 kam-test /opt/ipgate/kamailio/sbin/kamailio[32090]:
DEBUG: evapi [evapi_dispatch.c:778]: _evapi_relay(): sending
[0x169ff674] [96:{"event":"CGR_DLG_LIST_REPLY",
#011#011#011"jsonrpl_body":{
#011"jsonrpc":#011"2.0",
#011"result":#011[],
#011"id":#0111
}},] (100)
Oct 30 14:12:22 kam-test /opt/ipgate/kamailio/sbin/kamailio[32090]:
DEBUG: evapi [evapi_dispatch.c:789]: _evapi_relay(): dispatching
[0x169ff674] [96:{"event":"CGR_DLG_LIST_REPLY",
#011#011#011"jsonrpl_body":{
#011"jsonrpc":#011"2.0",
#011"result":#011[],
#011"id":#0111
}},] (100)
We enabled debug messages for module evapi and are trying to
understand where is the problem. To make this work to this state we
needed to increase the *pv_buffer* to really big size (2097152).
It looks like $jsonrpl(body) is not ready and everything concated with
it is not working.
||Any help or suggestion is welcomed. ||
||Sincerely Michal||
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
--
Daniel-Constantin Mierla --
www.asipto.com
www.twitter.com/miconda --
www.linkedin.com/in/miconda
Kamailio World Conference - April 27-29, 2020, in Berlin --
www.kamailioworld.com