Open Source Training Seminar


Not Logged in - No Account?

Logging in allows you to post to forums, track new posts, subscribe to threads, pm (private message) other members, and receive periodic news letters. Once logged in this message disappears. No account? Create one by registering here. Lost your password, request a new password. We respect your privacy and collect minimal information when you register and we do not resell that information or use it in any objectionable way. You can review our privacy policy for details.


Feature Request? - Queue/IVR Control

prolfe's picture

My company (a service provider) runs a call centre where we control queues manually in terms of whether they will accept call or not, also staff are able to set what we call "impact" messages on a per queue basis.

These are used such:

* "Impact" messages - If we have a major outage such that the number of calls to our call centre suddenly blows out, then we currently will record a message along the lines of "We currently have a problem with blah, expected restoration is blah, please hold if you would like to speak to an operator", or "We're currently experiencing high call volumes please be patient" or similar. These messages can be enabled and disabled on a per queue basis.

* Open/Close queues - Used to close the call centre (ie not accept any further calls and divert to other queues/vm) whilst allowing agents to complete their current calls. Each queue can be opened/closed on a individual basis.

My question is has anyone done anything similar with FreePBX or could this be considered for development as a feature request. If it were to be considered as a feature request, I would be inclined to move the impact message back to the IVR level.

I've implemented something which does this with FreePBX now, however I'm interested in others thoughts.

My implementation (very beta at this point) currently makes use of the AST DB and adds a "queue header" to the output of the queue config, such:


From extensions_custom.conf

[macro-queue-header]
; ARG1 - Queue Name
; ARG2 - Where to go if closed.
exten => s,1,Set(QSTATE=${DB(Queue/${ARG1}/state)})
exten => s,2,GotoIf($["${QSTATE}"="closed"]?8)
exten => s,3,Set(IMPACTMSG=${DB(Queue/${ARG1}/impactmgr})
exten => s,4,GotoIf($["${IMPACTMSG}"="0"]?7)
exten => s,5,GotoIf($["${IMPACTMSG}"=""]?7)
exten => s,6,BackGround(${IMPACTMSG})
exten => s,7,Goto(${ARG1}@ext-queues,4)
exten => s,8,Dial(Local/999${ARG1}@from-internal)
exten => s,9 Hangup



* Step 8 falls through to a predifined voicemail box per queue if needed.


Then in extensions_additional.conf:

exten => 10,1,Noop(Queue: reception)
exten => 10,n,Macro(user-callerid,)
exten => 10,n,Answer
exten => 10,n,Noop(Queue Header)
exten => 10,n,Macro(queue-header,10)
exten => 10,n,Set(__BLKVM_OVERRIDE=BLKVM/${EXTEN}/${CHANNEL})
exten => 10,n,Set(__BLKVM_BASE=${EXTEN})
exten => 10,n,Set(DB(${BLKVM_OVERRIDE})=TRUE)
exten => 10,n,Set(_DIAL_OPTIONS=${DIAL_OPTIONS}M(auto-blkvm))
exten => 10,n,Set(__NODEST=${EXTEN})
exten => 10,n,GotoIf($["foo${RGPREFIX}" = "foo"]?REPCID)
exten => 10,n,GotoIf($["${RGPREFIX}" != "${CALLERID(name):0:${LEN(${RGPREFIX})}}"]?REPCID)
exten => 10,n,Noop(Current RGPREFIX is ${RGPREFIX}....stripping from Caller ID)
exten => 10,n,Set(CALLERID(name)=${CALLERID(name):${LEN(${RGPREFIX})}})
exten => 10,n,Set(_RGPREFIX=)
exten => 10,n(REPCID),Noop(CALLERID(name) is ${CALLERID(name)})
exten => 10,n,Set(_RGPREFIX=Reception - )
exten => 10,n,Set(CALLERID(name)=${RGPREFIX}${CALLERID(name)})
exten => 10,n,Set(MONITOR_FILENAME=/var/spool/asterisk/monitor/q${EXTEN}-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID})
exten => 10,n,Queue(10,tr,,,60)
exten => 10,n,dbDel(${BLKVM_OVERRIDE})
exten => 10,n,Set(__NODEST=)
exten => 10,n,Goto(ivr-18,s,1)
exten => 10*,1,Macro(agent-add,10,)
exten => 10**,1,Macro(agent-del,10,10)

__________________


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

using 2.5 you can make a

p_lindheimer's picture

using 2.5 you can make a feature code to easily change a recording on the fly. You can use daynight mode to manually divert calls between a queue and somewhere else. That is what comes to mind, the first being a 2.5 feature the latter available today.


__________________

Philippe Lindheimer - FreePBX Project Leader
FreePBX Training Opportunities - Click Here
Get Official Paid Support - Click Here