Hi,
in der Systemeinstellung sys.asterisk.configure.queues.dialoptions kann man global die Parameter beim Queue Aufruf ändern (Achtung dadurch wird z.B. auch das Call Completed Elsewhere Verhalten übersteuert). Man konnte hier glaube auch ${MDC_LABEL-x} angeben und dann das Lebel in den vorher Aktionen setzen, bin mir aber leider nicht mehr sicher.
Welche Parameter es gibt kann man hier nachsehen: https://wiki.asterisk.org/wiki/display/AST/Asterisk+11+Application_Queue
Wenn Ihr aber vorher prüfen wollt, ob überhaupt angemeldete Agenten frei sind, könnt ihr auch ein Dialplanscript davor setzen welches das prüft. Das sollte ca so aussehen:
; set queue to check
exten => s,1,Set(CHECKQUEUE=WS_Zentrale)
exten => s,n,Verbose(--> QUEUE CHECK FOR QUEUE ${CHECKQUEUE})
; queue check
exten => s,n,Set(QUEUEFREE=${QUEUE_MEMBER(${CHECKQUEUE},free)})
exten => s,n,Set(QUEUELOGGED=${QUEUE_MEMBER(${CHECKQUEUE},logged)})
exten => s,n,Set(QUEUECOUNT=${QUEUE_MEMBER(${CHECKQUEUE},count)})
exten => s,n,Set(QUEUEREADY=${QUEUE_MEMBER(${CHECKQUEUE},ready)})
exten => s,n,Set(QUEUEWAIT=${QUEUE_WAITING_COUNT(${CHECKQUEUE})})
exten => s,n,Set(QUEUEPAUSE=${QUEUE_MEMBER(${CHECKQUEUE},paused)})
exten => s,n,Verbose(--> QUEUEFREE: ${QUEUEFREE} -- QUEUELOGGED: ${QUEUELOGGED} -- QUEUECOUNT: ${QUEUECOUNT} -- QUEUEREADY: ${QUEUEREADY} -- QUEUEWAIT: ${QUEUEWAIT})
;no agent logged on?
;exten => s,n,GoToIf($[ "${QUEUECOUNT}" = "0" ]?s-empty,1)
;no available agent logged on?
;exten => s,n,GoToIf($[ "${QUEUELOGGED}" = "0" & "${QUEUEFREE}" = "0" ]?s-noavailable,1)
;no agent free?
exten => s,n,Set(QUEUEFREE=${MATH(${QUEUEFREE} - ${QUEUEPAUSE},i)})
exten => s,n,GoToIf($[ "${QUEUEFREE}" = "0" ]?s-noavailable,1)
;more than n callers waiting?
;exten => s,n,GoToIf($[ ${QUEUEWAIT} > 10 ]?s-full,1)
; back to queue
exten => s,n,Return()
exten => s-noavailable,1,NoOp(kein Agent frei)
exten => s-noavailable,n,Hangup()
; alternative go on with post context of queue (replace extension of the team)
;exten => s-noavailable,n,GoSub(sub_suffix-111,${MDC_DIALDESCENT},1)
in dem s-noavailable Abschnitt könnt ihr dann auch ein Playback usw. unterbringen, je nachdem welches Verhalten hier gewünscht ist.
Das betätigen der DND Taste am Telefon wird jedoch von der Anlage nicht registriert, dieser Agent ist also weiterhin “NOT_INUSE” also erreichbar markiert. Hier sollte nicht dnd gentutz werden, sondern der Funktionscode um sich zu pausieren, es sollte ja nichts dagegensprechen sich in allen Queues zu pausieren.
Grüße,
Steve