looking for a little help.
I've been tracking an issue, where a number of SIP Messages ( typically INVITE ) are sent, but Kamailio only see one of them ( the last one). I have verified that the messages are definitely received on the host, as verified with TCPDUMP, but the INVITES never hit the request route block. ( the very first thing is to log the message )
What i've managed to find is, that if I increase worker children, the problem goes away.
So I've got a problem, I think I've found the solution, but what I'm struggling with is how to monitor better, so I can be alerted to this in the future.
I started by looking at "kamctl stats | grep drop"
"core:drop_replies = 14",
"core:drop_requests = 10577"
however drop_requests seems to include explicit drops in my config.
which I do for many reasons, but mainly bad UA or blocked IP's, so this dosnt seem to be what im after.
I then went digging in the code ( often the best way to find things ).
in receive.c receive_msg() we find some conditions, where we drop the packet ( before calling request route ).
I can see where -SIGUSR1 will trigger this to be dumped, if Kamailio is compiled with that option ( dosnt seem the debian packages are ). however, what im seeking clarification on is, does this get reported in "kamctl stats"
Am I just going crazy or is something not quite right here?
TLDNR; how do I monitor for Kamailio not having enough worker threads to process incoming messages.
FYI I'm seeing about 50Mbps of incoming SIP on this box, and I do perform a decent amount of work on some message types.