I'm making use of the AGENT API, and I find that my requests for the function external_pause do not yield a status change, at least not when I request external_pause right after concluding a phone call.
The API doc reads:
To hangup the call, disposition it and then pause the agent, do the following in order:
?source=test&user=6666&pass=1234&agent_user=1000&function=external_pause&value=PAUSE
?source=test&user=6666&pass=1234&agent_user=1000&function=external_hangup&value=1
?source=test&user=6666&pass=1234&agent_user=1000&function=external_status&value=A
When I follow this prescription (even throwing in additional requests to external_pause after external_hangup and/or external_status), my status ends up READY instead of PAUSED. This would be fine, but I often need the application on which I am working to immediately begin another external_dial, and an external_dial will not execute unless my status is PAUSED.
If I wait a second or two, however, and then issue an external_pause request, then my status successfully changes to PAUSED, and the next external_dial can execute.
(I have spent almost two days reading the php files, yet I cannot discover the entire mechanism that actually changes my status to PAUSE after an external_pause request. I see that an external_pause request sets the external_pause column in my asterisk.vicidial_live_agents table, but I don't see what becomes of that.)