On 2/13/07, <b class="gmail_sendername">gc</b> &lt;<a href="mailto:garych@unidial.com">garych@unidial.com</a>&gt; wrote:<div><span class="gmail_quote"></span>&nbsp;<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&nbsp;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&nbsp; queues.conf and agents.conf. Each agent may login more than one queue. 
It seem that AgentCallBackLogin&nbsp; is much easier than AddQueueMember to 
manage this kind of situation. </font></div></div></blockquote><div><br>The setup to use AddQueueMember isn&#39;t terribly difficult.<br><br>Here&#39;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.&nbsp; *12/*22 is for custserv and *13/*23 is for techsupp.&nbsp; There&#39;s no authentication here, but that&#39;s not the difficult part of the exercise:
<br><br>exten =&gt; _*11[23]XX,1,AddQueueMember(sales,SIP/${EXTEN:3})<br>exten =&gt; _*11[23]XX,n,Saydigits(${EXTEN:3})<br>exten =&gt; _*11[23]XX,n,Hangup()<br>exten =&gt; _*21[23]XX,1,RemoveQueueMember(sales,SIP/${EXTEN:3})
<br>exten =&gt; _*21[23]XX,n,Saydigits(${EXTEN:3})<br>exten =&gt; _*21[23]XX,n,Hangup()<br><br>exten =&gt; _*12[23]XX,1,AddQueueMember(custserv,SIP/${EXTEN:3})<br>exten =&gt; _*12[23]XX,n,Saydigits(${EXTEN:3})<br>exten =&gt; _*12[23]XX,n,Hangup()
<br>exten =&gt; _*22[23]XX,1,RemoveQueueMember(custserv,SIP/${EXTEN:3})<br>exten =&gt; _*22[23]XX,n,Saydigits(${EXTEN:3})<br>exten =&gt; _*22[23]XX,n,Hangup()<br><br>exten =&gt; _*13[23]XX,1,AddQueueMember(techsupp,SIP/${EXTEN:3})
<br>exten =&gt; _*13[23]XX,n,Saydigits(${EXTEN:3})<br>exten =&gt; _*13[23]XX,n,Hangup()<br>exten =&gt; _*23[23]XX,1,RemoveQueueMember(techsupp,SIP/${EXTEN:3})<br>exten =&gt; _*23[23]XX,n,Saydigits(${EXTEN:3})<br>exten =&gt; _*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.&nbsp; 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.