[Asterisk-Users] Confused on Agents and Queues

Alan Ferrency alan at pair.com
Tue Apr 4 09:54:21 MST 2006


The portion I forgot to mention:

Our agent login extension checks AGENTBYCALLERID to make sure no one is
already logged into the phone, before doing agentcallbacklogin. If you
don't do this, then it's entirely possible for two agents to be logged
into the same phone. However, only one will be shown in AGENTBYCALLERID
for the phone.

What this means is, both agents will be able to receive calls at the
same phone, but the first agent who logged in won't be able to log
out. They'd have to log into a different phone, and then log out of
it, to log out.

To avoid this, our agent login extension checks the AGENTBYCALLERID, and
if it's set, gives an option to either log out the currently logged in
extension, or to stay logged in. Unfortunately we don't know of a way to
both log out the current extension, and log in the new one, without two
extension dials.

Alan



On Mon, 3 Apr 2006, Matt wrote:

> > Our solution to the "agent log out" problem is admittedly imperfect in
> > the general case, but it works well enough if you can do without agent
> > passwords.
> >
> > - This only works if agents don't have passwords. You could probably
> >   modify it to look up passwords in real time, but it wasn't important
> >   enough for us.
> > - Use ${AGENT_BY_CALLERID_${CALLERID}} to get the agent logged into the
> >   dialling extension.
> > - Dial a local extension and send # after dial, to log out and press #
> >   without agent intervention.
> >
> >
> > The extension agents dial to log out looks like this. It calculates the
> > logged in agent and calls the logout macro (below), or if there's no
> > agent logged in, just plays back a message.
> >
> > [macro-agent_logout_ext]
> > exten => s, 1, set(agent=${AGENTBYCALLERID_${ARG1}})
> > exten => s, 2, gotoif(${agent}?3:101)
> > exten => s, 3, macro(agent_logout,${agent})
> > exten => s, 101, macro(answer_wait)
> > exten => s, 102, playback(agent-loggedoff)
> > exten => s, 103, hangup()
> >
> >
> > The agent logout macro has a bit of a hack to send # to
> > agentcallbacklogin after the agent ID is entered. In retrospect I'm not
> > sure the global var needs to be global, here.
> >
> > Note that the agent hears agentcallbacklogin's "the agent is logged off"
> > message, except the initial portion is cut off briefly.
> >
> > [macro-agent_logout]
> >
> > exten => s, 1, setglobalvar(agent=${ARG1})
> > exten => s, 2, noop(agent ${agent})
> > exten => s, 3, dial(local/logout at macro-agent_logout/n,,D(w#)o)
> >
> > exten => logout, 1, noop(agent logout ${agent})
> > exten => logout, 2, wait(1)
> > exten => logout, 3, agentcallbacklogin(${agent},, at shared_phones)
> >
> >
> > I hope this helps.
> >
> > Alan Ferrency
> > pair Networks, Inc.
> > alan at pair.com
> >
> >
> > _______________________________________________
> > --Bandwidth and Colocation provided by Easynews.com --
> >
> > Asterisk-Users mailing list
> > To UNSUBSCRIBE or update options visit:
> >    http://lists.digium.com/mailman/listinfo/asterisk-users
> >
>
> Hey that works really really well!  Thanks!
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
>
> Asterisk-Users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>



More information about the asterisk-users mailing list