General question about the resiliency of the AMI interface.
FWIW (not blaming any particular tech - just observation) I’ve seen scenarios where a dead CR database causes blocking within the asterisk process leaving call threads un-terminated, etc.
Also seen things like this:
With AMI, there can be a lot of events. What happens if my client program does not “keep up”?
Will Asterisk give me any indication? i.e. will it close the socket? From that jira post, this is difficult. So what do we do?
To test this, I opened an AMI session via telnet, and used the escape in attempt to block the telnet receive.
On the asterisk system I can see the send buffer grow and reset to zero on the AMI socket. Is the data being discarded? Maybe I’m not blocking successfully?
If I need to have an intermediary buffer in my program - to ensure that AMI will never be blocked by my program I want to know this is required, and hopefully know a way I can test the situation to ensure my app does not block the server / crash the system.
I’d also like an idea of which versions are affected and which if any are fixed - I don’t want to mis-interpret the jira post.
Thanks very much!