[Asterisk-Users] Multitenant Call Center Setup

Lenz lenz-ml at loway.it
Fri Oct 21 01:52:58 MST 2005


Hi Waldo,
about how to create "fake" queue_log entries, the answer is quite simple:  
see http://www.oinko.net/astrecipes/index.php?n=100
I instead doubt that you can use the CDR for real-time logging, as CDR  
data usually gets written when the call ends. Of course you can hack with  
it, but this is not likely the best way to go. :-)
Bye
l.





On Fri, 21 Oct 2005 10:23:55 +0200, Waldo Rubinstein <waldo at trianet.net>  
wrote:

> Lenz,
>
> Thanks for the response. I agree with you. However, I have a couple of  
> questions:
>
> 1) How to do a fake queue_log registration
> 2) One of the needs I have is to be able to generate the calls received  
> or made by an agent in real time. I figured I could do this by querying  
> the CDR, but I was wondering how to "flag" the calls made/received by  
> the agent in such a way that I could identify them in the CDR. I guess I  
> could always write a script that would insert queue events into a  
> database and then I could cross query the CDR with the queue_log tables  
> to figure out which was the last agent logged in on a particular station  
> and match that against the dstchannel CDR column, but that could be  
> hairy.
>
> In order to address #2, I thought of doing the following (I haven't  
> tried this yet):
>
> 1) Create an extension the agent would dial to log in. This extension  
> could look something like:
>
> 1,AGI(get_valid_agent)
> 2,GotoIf($[ "${AGENT}" = "" ]?9:6)
> 3,DBPut(agents/${CHANNEL}=${AGENT})
> 4,AddQueueMember(queue_name)
> 5,Playback(agent-loginok)
> 6,Hangup()
>
> where the AGI script will prompt the user to enter an agent id which it  
> could verify against a database for this tenant, which would then allow  
> me to have multiple agents 1001 (for example) for different tenants.  
> CHANNEL would be a cleaned version of the regular CHANNEL variable with  
> only the technology and peer name, for example, only SIP/1234 instead of  
> SIP/1234-2bc7 and AGENT would be the agent id validated by the AGI  
> script, for example, 1001.
>
> 2) Say my inbound calls are routed to an "incoming" context, I would add  
> this to the incoming context
> [incoming]
> ...
> exten => h,1,DBGet(AGENT=agents/${BRIDGEPEER})
> exten => h,2,SetAccount(${AGENT})
>
> where BRIDGEPEER would be a cleaned version of the regular BRIDGEPEER  
> variable with only the technology and peer name, for example, only  
> SIP/1234 instead of SIP/1234-6a67.
>
> This would allow me to set the Account Code in the CDR to the agent  
> logged in using that station for calls distributed by the Queue  
> application.
>
> 3) In the contexts that allow my agents to make outbound calls, I would  
> add something like:
>
> DBGet(AGENT=agents/${CHANNEL})
> SetAccount(${AGENT})
>
> where CHANNEL would be a cleaned version of the regular CHANNEL variable  
> with only the technology and peer name, for example, only SIP/1234  
> instead of SIP/1234-92b3
>
> This would allow me to set the Account Code in the CDR to the agent  
> logged in using that station whenever outbound calls are made on that  
> extension. I could even deny the station from placing outbound calls if  
> AGENT is blank, meaning that no agent has logged in yet.
>
> 4) Finally, I would create an extension for an agent to log out, that  
> could look like this:
>
> RemoveQueueMember(queue_name)
> DBDel(agents/${CHANNEL})
> Playback(agent-loggedoff)
> Hangup()
>
> where CHANNEL would be a cleaned version of the regular CHANNEL variable  
> with only the technology and peer name, for example, only SIP/1234  
> instead of SIP/1234-1f89
>
> This would remove the entry in astDB at the same time it removed the  
> station from the queue.
>
> I haven't tried any of it but I think it could work.
>
> Thanks,
> Waldo
>
> On Oct 21, 2005, at 3:39 AM, Lenz wrote:
>
>>
>> Hello Waldo,
>> if you use AddQueueMember plus a fake queue_log registration, you can  
>> tell who the agent was, not just from what terminal she was connecting  
>> from. It is then possible to report who was available at a certain  
>> time, or see agents logging on and off, going to pause, measuring the  
>> average call length per agent, pause time, etc. If you run a call  
>> center you will want these pieces of information, otherwise you have no  
>> means of understanding what is going on. Simply connecting to terminals  
>> is not good, because you'll usually have more agents than terminals (to  
>> compensate for shifts, sick leave, vacations, etc)
>> Bye
>> l.
>>
>>
>> On Thu, 20 Oct 2005 17:41:31 +0200, Waldo Rubinstein  
>> <waldo at trianet.net> wrote:
>>
>>
>>> I have played with AddQueueMember and it works great. However, there
>>> is one problem that I have and I hope someone can point me in the
>>> right direction.
>>>
>>> My client's agents rotate seats. This means that if I want to track
>>> calls by agent, I can't with AddQueueMember. When I look at the CDR,
>>> it tells me the calls made/received by the station (regardless of
>>> technology - SIP/AIX/etc). But, at any given point, I don't know
>>> which agent made the call.
>>>
>>> In reality, even with AgentCallBackLogin I can't tell which agent
>>> made or received the call. Is there a way that I can identify in the
>>> CDR which agent actually received or placed a call regardless of
>>> which extension he/she may be sitting on?
>>>
>>> Thanks,
>>> Waldo
>>>
>>>
>>
>>
>> --Loway Research - Home of QueueMetrics
>> http://queuemetrics.loway.it
>> _______________________________________________
>> --Bandwidth and Colocation sponsored by Easynews.com --
>>
>> Asterisk-Users mailing list
>> Asterisk-Users at lists.digium.com
>> http://lists.digium.com/mailman/listinfo/asterisk-users
>> To UNSUBSCRIBE or update options visit:
>>   http://lists.digium.com/mailman/listinfo/asterisk-users
>>
>
> _______________________________________________
> --Bandwidth and Colocation sponsored by Easynews.com --
>
> Asterisk-Users mailing list
> Asterisk-Users at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-users
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>



-- 
Loway Research - Home of QueueMetrics
http://queuemetrics.loway.it



More information about the asterisk-users mailing list