On 2/13/07, <b class="gmail_sendername">gc</b> <<a href="mailto:garych@unidial.com">garych@unidial.com</a>> wrote:<div><span class="gmail_quote"></span> <br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div bgcolor="#ffffff"><div><font face="Arial" size="2">I am developing an ACD front end using
Asterisk 1.2.14. I heard that AgentCallBackLogin will be deprecated in future
version of *.</font></div>
<div><font face="Arial" size="2">Is this true? If it is, how can I use
AddQueueMember to replace AgentCallBackLogin? I mean to login an agent in
multiple queues at once. I have multiple queues and a lot of agents defined
in queues.conf and agents.conf. Each agent may login more than one queue.
It seem that AgentCallBackLogin is much easier than AddQueueMember to
manage this kind of situation. </font></div></div></blockquote><div><br>The setup to use AddQueueMember isn't terribly difficult.<br><br>Here's a contrived example where dialing *11[23]XX adds channel SIP[23]XX to queue sales, and *21 with the same suffix removes them. *12/*22 is for custserv and *13/*23 is for techsupp. There's no authentication here, but that's not the difficult part of the exercise:
<br><br>exten => _*11[23]XX,1,AddQueueMember(sales,SIP/${EXTEN:3})<br>exten => _*11[23]XX,n,Saydigits(${EXTEN:3})<br>exten => _*11[23]XX,n,Hangup()<br>exten => _*21[23]XX,1,RemoveQueueMember(sales,SIP/${EXTEN:3})
<br>exten => _*21[23]XX,n,Saydigits(${EXTEN:3})<br>exten => _*21[23]XX,n,Hangup()<br><br>exten => _*12[23]XX,1,AddQueueMember(custserv,SIP/${EXTEN:3})<br>exten => _*12[23]XX,n,Saydigits(${EXTEN:3})<br>exten => _*12[23]XX,n,Hangup()
<br>exten => _*22[23]XX,1,RemoveQueueMember(custserv,SIP/${EXTEN:3})<br>exten => _*22[23]XX,n,Saydigits(${EXTEN:3})<br>exten => _*22[23]XX,n,Hangup()<br><br>exten => _*13[23]XX,1,AddQueueMember(techsupp,SIP/${EXTEN:3})
<br>exten => _*13[23]XX,n,Saydigits(${EXTEN:3})<br>exten => _*13[23]XX,n,Hangup()<br>exten => _*23[23]XX,1,RemoveQueueMember(techsupp,SIP/${EXTEN:3})<br>exten => _*23[23]XX,n,Saydigits(${EXTEN:3})<br>exten => _*23[23]XX,n,Hangup()
<br><br>Then, calls to Queue(queuename) will work like AgentCallbackLogin() do.<br><br>The problem I am having is that the channel that shows up in the CDR and the queue log is the phone that took the call, not the agent on the phone. It seems that I will have to establish a mapping between agents and channels and remove down the mapping at agent logoff, then use the map to determine which actual agent was on SIP/200 when the call came in in order to produce meaningful per-agent reports.
<br><br>Any suggestions on how to make that part easier are welcome.<br><br></div></div> -- <br>j.