Here is my dialplan for my support queue:

exten => 201,1,Verbose(2,Doing support call)
exten => 201,n,Answer()
exten => 201,n,Wait(0.5)
exten => 201,n,Set(qac=${QUEUE_MEMBER(support,free)})
exten => 201,n,GotoIf($[${qac} > 0]?HAVEAGNT)
exten => 201,n,Verbose(2,No agents free in support queue)
exten => 201,n,Playback(cfmc/support-no-agent)
exten => 201,n,Voicemail(2...@ourvm,u)
exten => 201,n,Playback(goodbye)
exten => 201,n,Hangup()
exten => 201,n(HAVEAGNT),Playback(cfmc/support-intro)
exten => 201,n,Verbose(2,Queuing caller for support agent)
exten => 201,n,Queue(support,nrt,,,120)
exten => 201,n,Verbose(2,Support agent did not answer call)
exten => 201,n,Voicemail(2...@ourvm,b)
exten => 201,n,Playback(goodbye)
exten => 201,n,Hangup()


; #### Agent login logout ####
exten => *20,1,Verbose(2,Doing agent login/logout)
exten => *20,n,Answer()
exten => *20,n,wait(.0.5)
exten => *20,n,Read(AgentNumber,agent-user)
exten => *20,n,Set(UserID=${DB(ExtenToUser/${AgentNumber})})
exten => *20,n,GotoIf($["${UserID}"=""]?NOUSER)
exten => *20,n,Set(AgentStatus=${DB(users/${UserID}/AgentStatus)})
exten => *20,n,GotoIf($["${AgentStatus}"="1"]?VERIFY)
exten => *20,n,GotoIf($["${AgentStatus}"="2"]?VERIFY)
exten => *20,n(NOUSER),Playback(cfmc/bad-agent)
exten => *20,n,Playback(vm-goodbye)
exten => *20,n,Hangup()
exten => *20,n(VERIFY),VMAuthenticate(${agentnumb...@ourvm)
exten => *20,n,GotoIf($["${AgentStatus}"="2"]?AGENTOFF)
exten => *20,n,Set(DB(users/${UserID}/AgentStatus)=2)
exten => *20,n,Set(DB(users/${UserID}/AgentDevice)=${CUT(CHANNEL,-,1)})
exten => *20,n,AddQueueMember(support,Local/Queue$ {agentnumb...@ansqueue,,,,${C$
;   AQMSTATUS can be  ADDED | MEMBERALREADY | NOSUCHQUEUE
exten => *20,n,Playback(agent-loginok)
exten => *20,n,Verbose(2,Agent ${AgentNumber} added ${DB(users/$ {UserID}/AgentD$
exten => *20,n,Hangup()
exten => *20,n(AGENTOFF),Set(DB(users/${UserID}/AgentStatus)=1)
exten => *20,n,Set(OldVal=${DB_DELETE(users/${UserID}/AgentDevice)})
exten => *20,n,RemoveQueueMember(support,Local/Queue$ {agentnumb...@ansqueue)
exten => *20,n,Playback(agent-loggedoff)
exten => *20,n,Verbose(2,Agent ${AgentNumber} removed)
exten => *20,n,Hangup()

[ansqueue]
exten => _Queue.,1,Set(AgentNumber=${EXTEN:5})
exten => _Queue.,n,Set(UserID=${DB(ExtenToUser/${AgentNumber})})
exten => _Queue.,n,Set(AgentDevice=${DB(users/${UserID}/AgentDevice)})
exten => _Queue.,n,Verbose(2,Agent ${AgentNumber} status is $ {DEVICE_STATE(${Ag$ exten => _Queue.,n,GotoIf($["${DEVICE_STATE($ {AgentDevice})}"="NOT_INUSE"]?DIAL$
exten => _Queue.,n,Busy()
exten => _Queue.,n,Hangup()
exten => _Queue.,n(DIALIT),Dial(${AgentDevice},,g)
exten => _Queue.,n,Hangup()

--
Jim Dickenson
mailto:[email protected]

CfMC
http://www.cfmc.com/



On Aug 21, 2009, at 1:00 PM, James A. Shigley wrote:

First off this is not my work for extensions.conf it is modified from
http://leifmadsen.wordpress.com/2009/07/15/migrating-from-agentcallbacklogin-to-standard-dialplan-methods-part-1/
So credit to Leif Madsen

But as to my question

[AgentLogin]
;A replaced version of AgentCallbackLogin() using a GoSub()
;
exten => XXXXXXXXXX,1,Verbose(2,Logging in agent)
exten => XXXXXXXXXX,n,WaitExten(5)
exten => XXXXXXXXXX,n,GoSub(AgentCallbackLogin,start,1)
exten => XXXXXXXXXX,n,Hangup()

[AgentLogOut]
exten => XXXXXXXXXX,1,RemoveQueueMember(9819930,DAHDI/g1/$ {CALLERID(num)})

; calling 'primary' queue
;
exten => XXXXXXXXXX,1,Verbose(2,Calling into the primary queue)
exten => XXXXXXXXXX,n,Playback(silence/1)
exten => XXXXXXXXXX,n,Queue(9819930)
exten => XXXXXXXXXX,n,Hangup()
;
[AgentCallbackLogin]
; conversion of AgentCallbackLogin() to using AddQueueMember()
;
exten => start,1,Verbose(2,Logging in agent)
exten => start,n,Playback(silence/1)
exten => start,n,Read(AGENT_USERID,agent-user)
exten => start,n,VMauthenticate(${agent_user...@default)
exten => start,n,AddQueueMember(Queue,DAHDI/g1/${CALLERID(num)})
exten => start,n,Playback(agent-loginok)
exten => start,n,Return()


Queue Context from Queues.conf

[Queue]
music=default
strategy=linear
timeout=5
retry=5
wrapuptime=0
maxlen = 0
announce-frequency = 0
announce-holdtime = no

Ok Here is how I would like this queue to work

First try and deliver the call to the Dynamic Agents who login using the above Setup from extensions. I of course want that to be linear in fashion with 5 seconds to try each one. BUT if none of the dynamic agents are available or if there are no dynamic agents I want to send that call to an interface/context. We are an answering service. If no agent is available in the queue I want to send it to the Interface which goes to my TAS equipment.

So DAHDI/g2/Exten

How do I accomplish that because I can’t figure it out from googling or http://www.voip-info.org/


James Shigley
Monroe Telephone Answering Service
409-981-9213
Infinity 5.5,UC 4.02.3803, Blink 3.0.104
Ecreator:2.21, eResponse 1.1.7
Webportal,WebApps,

CONFIDENTIALITY NOTICE: This email, including any attachments, contains information which may be confidential or privileged. The information =is intended to be for the use of the individual or entity named above. If you are not the intended recipient, be aware that any disclosure, copying, distribution or use of the contents of this information is prohibited. If you have received this email in error, please notify the sender immediately by "reply to sender only" message and destroy all electronic and hard copies of the communication, including attachments.

<image001.jpg>

_______________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

AstriCon 2009 - October 13 - 15 Phoenix, Arizona
Register Now: http://www.astricon.net

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

_______________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

AstriCon 2009 - October 13 - 15 Phoenix, Arizona
Register Now: http://www.astricon.net

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to