I have built a Twilio call center which uses a TwiML app to deliver events to my PHP server. I’ve been monitoring the system over the last year and I am concerned that a few calls seem to arrive with invalid status. This seems to be a clear bug in the way that Twilio is handling inbound calls.
Here is my TwiML App setup…
I am using a GET on https://[site]/anon/callcenter/voice.xml for the Request URL and a POST on https://[site]/anon/callcenter/app/voice/status for the voice status callback.
Here is a typical call that gets missed…
There are only two messages, a get from the request URL and a POST to the status URL. There should be many more. The get to the request URL has a call status of “ringing” and the post to the status URL has a status of “no-answer”.
Here is the detailed get request to the request URL…
Here is the detailed post request to the status URL…
Notice that the timestamp of both requests is identical. These calls are creating problems for me. When the request to the request URL arrives, I enqueue the call and create a record with the status as ringing. The next event I am expecting is “completed” when the caller hangs up. The completed message never arrives, because the no-answer has already been delivered. The net effect is that the call remains “stuck in ringing”.
So this seems that a clear failure of the Twilio API. If the caller dialed the call center and then hung up immediately, I should get a completed status. “no-answer” seems to imply that Twilio never attempted to route the call.
Let me emphasize, that the system is working reasonably well. We have a moderate volume of inbound calls and most of them are handled properly. About 5 calls a month exhibit this “stuck in ringing” behavior. Would really like to get this cleaned up.