Re: [Asterisk-Users] Confused on Agents and Queues
Very good.. I modified your things (although not much) so that if the agent is logged in it automatically logs them out.. if they aren't logged in then it prompts them to login. On 4/4/06, Alan Ferrency [EMAIL PROTECTED] wrote: 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/[EMAIL PROTECTED]/n,,D(w#)o) exten = logout, 1, noop(agent logout ${agent}) exten = logout, 2, wait(1) exten = logout, 3, agentcallbacklogin(${agent},,@shared_phones) I hope this helps. Alan Ferrency pair Networks, Inc. [EMAIL PROTECTED] ___ --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 ___ --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 ___ --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
Re: [Asterisk-Users] Confused on Agents and Queues
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/[EMAIL PROTECTED]/n,,D(w#)o) exten = logout, 1, noop(agent logout ${agent}) exten = logout, 2, wait(1) exten = logout, 3, agentcallbacklogin(${agent},,@shared_phones) I hope this helps. Alan Ferrency pair Networks, Inc. [EMAIL PROTECTED] ___ --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 ___ --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
Re: [Asterisk-Users] Confused on Agents and Queues
On Sat, 1 Apr 2006, Matt wrote: However, anyone have a good way to log the agent out without having them enter their agent ID and then have to hit # for the new extension? There are a couple of ways listed here in the Wiki: http://www.voip-info.org/tiki-index.php?page=Asterisk%20cmd%20AgentCallbackLogin Already viewed that. And there aren't any good wasy to log an agent out if the agent is using a unique agent id (not extension number) to login. 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/[EMAIL PROTECTED]/n,,D(w#)o) exten = logout, 1, noop(agent logout ${agent}) exten = logout, 2, wait(1) exten = logout, 3, agentcallbacklogin(${agent},,@shared_phones) I hope this helps. Alan Ferrency pair Networks, Inc. [EMAIL PROTECTED] ___ --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
Re: [Asterisk-Users] Confused on Agents and Queues
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/[EMAIL PROTECTED]/n,,D(w#)o) exten = logout, 1, noop(agent logout ${agent}) exten = logout, 2, wait(1) exten = logout, 3, agentcallbacklogin(${agent},,@shared_phones) I hope this helps. Alan Ferrency pair Networks, Inc. [EMAIL PROTECTED] ___ --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
Re: [Asterisk-Users] Confused on Agents and Queues
However, anyone have a good way to log the agent out without having them enter their agent ID and then have to hit # for the new extension? There are a couple of ways listed here in the Wiki: http://www.voip-info.org/tiki-index.php?page=Asterisk%20cmd%20AgentCallbackLogin Already viewed that. And there aren't any good wasy to log an agent out if the agent is using a unique agent id (not extension number) to login. ___ --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
Re: [Asterisk-Users] Confused on Agents and Queues
Hi Matt, We have somewhat of a similar setup here in my office. We have multiple queues to which different agents are a member to anyone of them. Basically what I chose to do was make my own custom log in script. I reference to the voicemail box and use the ID and password to authenticate our users. However, the difference we use the same phone. But you could use both the mail box and the password to authenticate the user (VMauthenicate) and then use AddQueueMember with the caller ID they are calling from. If you need some help going in that direction, feel free to let me know. Kevin Matt wrote: Hi, I'm confused with agents and queues in Asterisk. If I use AddQueueMember() then show queues shows the agents that I have logged into the queue... however the agent ID has to be the extension the agent is sitting at ... kinda useless for stats tracking. If I use AgentCallbackLogin() then show queues shows no agents logged in, but it works and show agents shows the agent logged in. How can I have my agents log in with a unique ID for *THEM* and have the calls ring to whatever extension they are at? ___ --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 ___ --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
Re: [Asterisk-Users] Confused on Agents and Queues
Very good that's actually what I ended up doing. I think my confusion came up with Hot Desk use ... like where you want the agents EXTENSION to roam with them.. and agent-IDs.. which is what I wanted... once I figured out the difference things have been going smoothly.. While I'm a long time asterisk users, I have not used queues extensively and this is my first delve into them. I did this: exten = 56446*,1,AgentCallbackLogin(||${CALLERIDNUM}) exten = 564688*,1,AgentCallbackLogin(||) This works great for login. Asks for agent ID, and automatically puts the caller-ID in so the agent can't screw up what extension they are at. However, anyone have a good way to log the agent out without having them enter their agent ID and then have to hit # for the new extension? On 3/31/06, Kevin Smith [EMAIL PROTECTED] wrote: Hi Matt, We have somewhat of a similar setup here in my office. We have multiple queues to which different agents are a member to anyone of them. Basically what I chose to do was make my own custom log in script. I reference to the voicemail box and use the ID and password to authenticate our users. However, the difference we use the same phone. But you could use both the mail box and the password to authenticate the user (VMauthenicate) and then use AddQueueMember with the caller ID they are calling from. If you need some help going in that direction, feel free to let me know. Kevin Matt wrote: Hi, I'm confused with agents and queues in Asterisk. If I use AddQueueMember() then show queues shows the agents that I have logged into the queue... however the agent ID has to be the extension the agent is sitting at ... kinda useless for stats tracking. If I use AgentCallbackLogin() then show queues shows no agents logged in, but it works and show agents shows the agent logged in. How can I have my agents log in with a unique ID for *THEM* and have the calls ring to whatever extension they are at? ___ --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 ___ --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 ___ --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
Re: [Asterisk-Users] Confused on Agents and Queues
On 3/31/06, Matt [EMAIL PROTECTED] wrote: Very good that's actually what I ended up doing. I think my confusion came up with Hot Desk use ... like where you want the agents EXTENSION to roam with them.. and agent-IDs.. which is what I wanted... once I figured out the difference things have been going smoothly.. While I'm a long time asterisk users, I have not used queues extensively and this is my first delve into them. I did this: exten = 56446*,1,AgentCallbackLogin(||${CALLERIDNUM}) exten = 564688*,1,AgentCallbackLogin(||) This works great for login. Asks for agent ID, and automatically puts the caller-ID in so the agent can't screw up what extension they are at. However, anyone have a good way to log the agent out without having them enter their agent ID and then have to hit # for the new extension? There are a couple of ways listed here in the Wiki: http://www.voip-info.org/tiki-index.php?page=Asterisk%20cmd%20AgentCallbackLogin -- Bird's The Word Technologies, Inc. http://www.btwtech.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