<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Aug 12, 2014 at 1:33 AM, Deepak Rawat <span dir="ltr"><<a href="mailto:deepaksingh.rawat@gmail.com" target="_blank">deepaksingh.rawat@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div>Hi,<br><br></div>I am upgrading from Asterisk 1.4 to 12.4. I am able to authenticate the user and call AgentLogin. But after that when I call AgentRequest I keep getting Agent '1234' is busy.<br>


</div>If I put a delay of 5 second or more before calling AgentRequest then it works most of the times. Here's my dialplan:<br><br></div>[login]<br><div>exten => s,1,Background(thank-you-for-calling)<br>        same => n,WaitExten(.65)<br>


        same => n,Background(press-1)<br>        same => n,WaitExten(15)<br>exten => 1,1,Read(USER,"agent-user")<br>        same => n,Authenticate(${ODBC_AGENTPASSWORD(${USER})})<br>        same => n,AgentLogin(${USER})<br>


        same => n,NoOp(${USER} AGENT_STATUS is ${AGENT_STATUS})<br>        same => n,Hangup()<br><br>[agents]<br>exten => _X.,1,Set(UserNumber=${EXTEN})<br>        same => n,Wait(5) ; it works most of the time with this wait of 5s<br>


        same => n,AgentRequest(${EXTEN})<br>        same => n,NoOp(${EXTEN} AGENT_STATUS is ${AGENT_STATUS})<br>        same => n,Dial(Agent/${EXTEN},,g)<br>        same => n,NoOp(Dial Status: ${DIALSTATUS})<br>


        same => n,GotoIf($["${DIALSTATUS}" != "ANSWER"]?done)<br>        same => n(done),Hangup()<br></div></div></blockquote><div><br></div><div>There is an initial 5 second wait after an agent logs in.  The wait is a necessary<br>
probation period to allow any local channel chain that the agent may have to<br>optimize out.  If the agent local channel optimization happens while the agent is<br>on a call then the agent pool can lose track of the agent and the agent will be<br>
logged out.  The agent will then have to log back in after the current call<br>completes.<br><br>Why are you attempting to request an agent that has a device state<br>(Agent:agent_id) of busy anyway?  That agent could be on another call or in a<br>
between call wrap-up time.<br></div><div><br></div><div>Richard<br></div></div><br></div></div>