Skip to main content

Agent login issue

Posted by moshe on Mon, 12/07/2009

I have a customer complaining that if a agent logs in a wrong extension like 1104 instead of 104 (a typo) the entire queue is going out commission since all the calls are being routed to a invalid extension and the callers hear this is a invalid extension

There is 2 easy solutions 1 if there is a way to set up that the system should repeat the extension (same as in call forwarding) so the agent will hear his input and confirm it. the 2nd is that a invalid extension should not high jack the queue it should act as busy

Any thought and help how to implement would be appreciated

thanks


Submitted by eeman on Tue, 12/08/2009 Permalink

why don't you just use tl-agent-callback-login-callerid script? granted you'd have to use a different extension to handle logout but at least you wont have people typoing the extension. As far as playing 'invalid', thats the problem with chan_local in the first place; dialplan is always 'available' and therefore bad for queues to send the call there when someone does put a wrong value into the interface.

Honestly there isn't going to be any future development work with agents. They (agents) have been depreciated and AgentCallbackLogin has been completely removed in 1.6. Features like 'ringinuse' are helpless when the call is bridged 3 times before reaching the actual phone. Future development work of Thirdlane in terms of Queue's revolves around static and dynamic members. Obviously we know how static members operate, just add the SIP/101 channel directly to the queue. Dynamic members work similarly. The SIP/101 channel name is added to the queue by use of the AddQueueMember() command or the AMI command QueueAdd. You'd be better served if you just set up a couple feature codes, one for adding one for removing.

-= Info about application 'AddQueueMember' =-

[Synopsis]
Dynamically adds queue members

[Description]
AddQueueMember(queuename[|interface[|penalty[|options[|membername[|state_interface]]]]]):
Dynamically adds interface to an existing queue.
If the interface is already in the queue and there exists an n+101 priority
then it will then jump to this priority. Otherwise it will return an error
The option string may contain zero or more of the following characters:
'j' -- jump to +101 priority when appropriate.
This application sets the following channel variable upon completion:
AQMSTATUS The status of the attempt to add a queue member as a
text string, one of
ADDED | MEMBERALREADY | NOSUCHQUEUE
If a device is provided in the state_interface parameter, then this will
be the device which will be used to determine the device state of the
added queue member.
Example: AddQueueMember(techsupport|SIP/3000)

-= Info about application 'RemoveQueueMember' =-

[Synopsis]
Dynamically removes queue members

[Description]
RemoveQueueMember(queuename[|interface[|options]]):
Dynamically removes interface to an existing queue
If the interface is NOT in the queue and there exists an n+101 priority
then it will then jump to this priority. Otherwise it will return an error
The option string may contain zero or more of the following characters:
'j' -- jump to +101 priority when appropriate.
This application sets the following channel variable upon completion:
RQMSTATUS The status of the attempt to remove a queue member as a
text string, one of
REMOVED | NOTINQUEUE | NOSUCHQUEUE
Example: RemoveQueueMember(techsupport|SIP/3000)

if you dont specify the interface it will use the interface you are calling from... so you could make it as simple as

AddQueueMember(techsuppport)