[Asterisk-Users] ACD calls to busy agents

BJ Weschke bweschke at gmail.com
Mon Oct 17 19:44:50 MST 2005


JT, yes.
  Here's how I've done it before for other clients:
  On the dialout portion I've changed the dial plan to:
 exten =>
_1NXXNXXXXXX,1,GotoIf($[${LEN(${$[AGENTBYCALLERID_${CALLERIDNUM}]})} >
2]?2:3)
exten =>
_1NXXNXXXXXX,2,PauseQueueMember(|Agent/${$[AGENTBYCALLERID_${CALLERIDNUM}]})
exten => _1NXXNXXXXXX,3,Dial(SIP/<SIP PEER>/${EXTEN},,Tg)
exten => _1NXXNXXXXXX,4,ForkCDR()
  What that's basically saying is that if the calling number is also logged
in as an agent, go ahead and pause that queue member in all queues that they
belong to and then make the call. I'm doing the GotoIf because there are
other extensions in that same context that may not be logged in as agents
and I don't want to make that pqm call (though there's no real harm in doing
so, it'll just tell you there's no Interface as specified) with.
  Then, in that same context, you put the following in the h extension....
 exten => h,1,ForkCDR()
exten => h,2,GotoIf($[${LEN(${$[AGENTBYCALLERID_${CALLERIDNUM}]})} > 2]?3:4)
exten => h,3,UnPauseQueueMember(|Agent/${$[AGENTBYCALLERID_${CALLERIDNUM}]})
exten => h,4,NoOp("Done!")
 ForkCDR is important because if you don't do it you're going to find that
the original CDR that used to contain the destination number in it, now
contains only the 'h' extension in it. You could also use ResetCDR(w) here.
Your choice really. ForkCDR will fork the one CDR into two preserving the
original dial information, and then you may choose to do a NoCDR() or just
deal with the additional CDR generated to the 'h' extension by ignoring it
when you parse CDRs.
 Hope this helps.
  BJ
 On 17 Oct 2005 18:28:02 -0400, J Thomas <jthomas at cequip.com> wrote:
>
> Hi BJ,
>
> Here are the relevant conf files:
>
> Agens.conf
> [general]
> persistentagents=yes
> [agents]
> agent => 8011,,Internet1
> agent => 8012,,Sonia
> agent => 8013,,Filippo
>
> Queues.conf
> [internetq]
> music=default
> strategy=rrmemory
> retry = 20
> timeout = 21
> announce-frequency = 30
> announce-holdtime = yes
> announce-round-seconds = 10
> member => Agent/8011
> member => Agent/8012
> member => Agent/8013
>
>
> Relevant lines from extensions.conf:
> exten => 5000,1,AgentCallbackLogin()
>
> [internet-working]
> exten => s,1,SetAccount(internet)
> exten => s,2,Queue(internetq|t|||360)
>
>
> Now an agent, say Sonia, (her SIP extension is 8012 too) calls 5000 and
> logins as agent 8012.
>
> When she is on an ACD call, she does not receive another ACD call. Very
> good.
>
> However when she makes an outgoing call, she still receives ACD call.
>
> Should I be doing something differently?
>
> -- jt
>
>
>
>
>
>
>
>
> On Mon, 2005-10-17 at 15:55, BJ Weschke wrote:
> > It is possible. I do it here and at many other client installs.
> >
> > Please post your configuration so we can see why it's not working for
> > you.
> >
> >
> > On 17 Oct 2005 15:31:46 -0400, J Thomas <jthomas at cequip.com> wrote:
> > Given the current state of queues, it does not seem possible
> > to stop ACD
> > calls coming to a busy agent who has made an outgoing call.
> >
> > Looks like feature request is the right way to go for this. I
> > am going
> > to post this on dev mailing list too before making a feature
> > request in
> > case we have missed something.
> >
> > -- jt
> >
> > On Mon, 2005-10-17 at 15:20, Corey Frang wrote:
> > > So, I'm looking into using PauseQueueMember and unpause
> > queuemember
> > >
> > > How the heck to you get Unpause to run, no matter what,
> > after the call
> > > is over?
> > >
> > > The "g" argument to Dial only works when the >called< party
> > hangs up.
> > >
> > > Using the "h" extension appears to be doing nothing...
> > >
> > > Is there any way we could add a feature to the
> > "pausequeuemember" that
> > > basically says "As long as this channel is open, this member
> > is paused"
> > > so that way when they hang up they are unpaused
> > automatically?
> > >
> > > Julian Lyndon-Smith wrote:
> > >
> > > > Have you tried the "PauseQueueMember" application in the
> > dialplan ?
> > > >
> > > > If the agent makes an outbound call, before the dial()
> > call
> > > > PauseQueuemember - and UnPauseQueuemember when the call is
> > complete.
> > > > The system should not then send any agent calls through,
> > but all other
> > > > calls (direct / internal) should come through.
> > > >
> > > > This is in 1.2b1 and CVS-HEAD.
> > > >
> > > > HTH
> > > >
> > > > Julian.
> > > >
> > > > Tom Rymes wrote:
> > > >
> > > >> I don't know how to make this happen, and I don't even
> > think it is
> > > >> really possible given the current Queue app, but this
> > would be a
> > > >> very nice feature to have. The queue shouldn't pass a
> > call to an
> > > >> agent if they are already on a call from the queue, but
> > an incoming
> > > >> call from another internal extension, or even a DID
> > ought to be able
> > > >> to get through.
> > > >>
> > > >> Consider this a feature request?
> > > >>
> > > >> Tom
> > > >>
> > > >> On Oct 15, 2005, at 10:04 PM, J Thomas wrote:
> > > >>
> > > >>> One of my friends is facing this problems and I could
> > not find any
> > > >>> solution to that. Hence this post.
> > > >>>
> > > >>> In her Asterisk PBX, she has programmed about 10 agents,
> > and
> > > >>> strategy is
> > > >>> rrmemory. Everything works fine. When an agent has
> > received an ACD
> > > >>> call,
> > > >>> another call is not presented to him as long as he is on
> > the ACD call.
> > > >>>
> > > >>> However when an agent has made an outgoing call, he is
> > still presented
> > > >>> another ACD call when his turn comes. This results in
> > unnecessary
> > > >>> delay
> > > >>> in answering that call.
> > > >>>
> > > >>> Taking out call waiting is not an option, as an agent
> > can also get a
> > > >>> direct dialed call, and he should be able to pick up
> > that call even
> > > >>> when
> > > >>> he is on another call.
> > > >>>
> > > >>> Is there a way so that a busy agent (whether busy
> > because of an
> > > >>> incoming
> > > >>> call, or outgoing call) is not presented another ACD
> > call?
> > > >>>
> > > >>> Thanks,
> > > >>> -- jt
> > > >>>
> > > >>> _______________________________________________
> > > >>> --Bandwidth and Colocation sponsored by Easynews.com<http://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<http://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<http://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<http://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
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20051017/27023cb3/attachment.htm


More information about the asterisk-users mailing list