Of Asterisk, remote agents, and queues


#1

Hey guys Asterisk newbie here~

By an odd series of events I have inherited an Asterisk CVS-v1-0-03/03/05-14:58:37 server compiled under Fedora Core 1. All of our ip phones are Cisco 7940s.

Thankfully the previous person gave me sudo root access to the box. So far I’ve vi`ed the sip.conf a tad to update the callerID’s for new employees, and added an extension. I ordered the Oreilly book from Amazon and will hopefully have that soon.

There are two 7940’s off location (at my bosses’ houses.) that log into the tech support queue at night.

We have a few queues set up but the only one used is for the tech support. What I wanted to ask is if it possible to login/AddQueueMember an agent from a home landline or cell phone. I would want the queue to ring the cisco phones first then try the landline/cell numbers. Later they can call back and exit the queue.

The answering machines and cell’s voice mail auto pick up could be a problem. But by only being in the queue when a person is alive at the cell phone there won’t be a situation where a call immediately goes to voice mail. (gogo signal strength) Timing should take care of the rest. This is the important part, that it only calls a phone if the person is signed in as an agent.

Right now I am thinking of making an extension for each ‘off site’ person to dial into and hard code the dial(Zap/g1,number in.

Or could I somehow do that dynamically with caller id?

Or is this super easy, and I am stupid, and need to read the wiki more, and the book once it gets here? (I think it might be this one; what I really need to do is throw core1 on an old box of mine and play around with it~)

Or did I have pancakes for breakfast?

Relevant .conf files up at ilvantus.net/asterisk/

Any insight would be appreciated.

Edit: Maybe another option would to cycle through the ip phones that are signed in foo times then call one of the remote numbers.

edit again: forums.digium.com/viewtopic.php?t=5053 looks promising. Prehapse ringall the ip phones in the queue then cycle through the home/cell numbers then go back to the queue~


#2

Remote AddQueueMember:

exten => 555,1,AddQueueMember(QUEUE_NAME|Zap/g1/${CALLERIDNUM})
exten => 555,2,Hangup

provided your system is passing callerID correctly, this should work…otherwise, set up individual extensions with the hardcoded mobile numbers in them…that would be easiest.

we did something similar for our after hours helpdesk number, and it rings the oncall person, and if they don’t answer, the next person in line, and so on…we didn’t use a queue because Nextel sucks, and only about half the time do our phones actually ring…i have a macro that prompts the user to press the 1 key to accept a call, so if a helpdesk call comes in and goes to the person’s VM, it will route to the next ‘agent’.

i THOUGHT there was a way for the queue to require an agent to ‘acknowledge’ a call before picking up, but have been unable to find it, hence the solution above. the only thing i could find is the ‘ackcall’ flag in queues.conf (see voip-info.org/wiki/view/Aste … ueues.conf) but i don’t believe that is what you need.

i don’t think this is going to meet your requirements all the way, but it’s a start. i’ll see if i can dig anything else up. good luck.


#3

Thanks~

I also went
exten => 557,1,AddQueueMember(techsupport|Zap/g1/1${CALLERIDNUM})
Because we some of our phones are outside of our usual area code and we need to dial 1 for them.

Now if I can only figure out how to tack a 1 on all incoming calls so we can just hit [Dial] on the 7940’s for missed calls.
I tried

exten => s,1,Wait(1) exten => s,2,DigitTimeout(1) exten => s,3,Answer exten => s,4,Set(CALLERID(number)=1${CALLERIDNUM}) exten => s,5,GotoIfTime(08:30-16:59|mon-fri|*|*?office-open,s,1) ;open exten => s,6,Goto(office-night,s,1) ; closed
But then the phone system stoped working until I took out s,4

I saw the press1 macro in your old post and will probably implement something like that once I am less terrified of knocking over our phone systems.
Asterisk seems so huge, but awesome! But huge!

Thanks again.


#4

no problem…

if you need to alter the CID string, change your code to this (switch priorities 3 and 4) - it might work. i’m thinking the answer line might be affecting your ability to set callerID…it’s a shot in the dark, but it’s worth a try.

exten => s,1,Wait(1) exten => s,2,DigitTimeout(1) exten => s,3,Set(CALLERID(number)=1${CALLERIDNUM}) exten => s,4,Answer exten => s,5,GotoIfTime(08:30-16:59|mon-fri|*|*?office-open,s,1) ;open exten => s,6,Goto(office-night,s,1) ; closed