BreadCrumbs: Asterisk Queue

Asterisk Queue

From Luke Jackson

(Difference between revisions)
Jump to: navigation, search
Revision as of 04:31, 17 May 2007 (edit)
Ljackson (Talk | contribs)
(Dynamically Add Members and log Time-In-Queue (Asterisk 1.4))
← Previous diff
Revision as of 04:33, 17 May 2007 (edit)
Ljackson (Talk | contribs)
(Dynamic Members Macros)
Next diff →
Line 19: Line 19:
Add the appropriate macro for your needs and version of asterisk into your macros configuration file. Add the appropriate macro for your needs and version of asterisk into your macros configuration file.
-=== Dynamically Add Members and log Time-In-Queue (Asterisk 1.2) ===+=== Dynamically Manage Members and log Time-In-Queue (Asterisk 1.2) ===
Adds or removes a dynamic member to the queue and logs the time in queue in seconds in /var/log/asterisk/queue_log. Adds or removes a dynamic member to the queue and logs the time in queue in seconds in /var/log/asterisk/queue_log.
Line 61: Line 61:
</pre> </pre>
-=== Dynamically Add Members and log Time-In-Queue (Asterisk 1.4) ===+=== Dynamically Manage Members and log Time-In-Queue (Asterisk 1.4) ===
Adds or removes a dynamic member to the queue and logs the time in queue in seconds in /var/log/asterisk/queue_log. Adds or removes a dynamic member to the queue and logs the time in queue in seconds in /var/log/asterisk/queue_log.

Revision as of 04:33, 17 May 2007

Contents

Queue Log App

QueueLog(queuename,uniqueid,agent,event,params):

Allows you to write your own events into the queue log:

QueueLog(101,${UNIQUEID},${AGENT},WENTONBREAK,600)

http://bugs.digium.com/view.php?id=7368

Dynamic Members Extension

Add the following line to enable the agent-add macro for a queue into your extensions configuration file.

exten => 1234*,1,Macro(agent-add,1234,)

Dynamic Members Macros

Add the appropriate macro for your needs and version of asterisk into your macros configuration file.

Dynamically Manage Members and log Time-In-Queue (Asterisk 1.2)

Adds or removes a dynamic member to the queue and logs the time in queue in seconds in /var/log/asterisk/queue_log.

; Adds a dynamic agent/member to a queue and logs Time-In-Queue
; arg1 = trunk number, arg2 = number
[macro-agent-add]
exten => s,1,Wait(1)
exten => s,2,Macro(user-callerid)
exten => s,3,Set(CALLBACKNUM=${CALLERID(number)})
exten => s,4,GotoIf($["${CALLBACKNUM}" = ""]?116))      ; if no number, jump to fail.
exten => s,5,AddQueueMember(${ARG1}|Local/${CALLBACKNUM}@from-internal/n)       ; using chan_local allows us to have agents over trunks
exten => s,6,QueueLog(${UNIQUEID},${ARG1},${CALLBACKNUM},AGENTLOGIN,0)
exten => s,7,Set(DB(agentlogin/q_${ARG1}_a_${CALLBACKNUM})=${EPOCH})
exten => s,8,UserEvent(Agentlogin|Agent: ${CALLBACKNUM})
exten => s,9,Wait(1)
exten => s,10,Playback(agent-loginok)
exten => s,11,Hangup()
exten => s,106,RemoveQueueMember(${ARG1}|Local/${CALLBACKNUM}@from-internal/n)
exten => s,107,UserEvent(RefreshQueue)
exten => s,108,Set(ORGEPOCH=${DB(agentlogin/q_${ARG1}_a_${CALLBACKNUM})})
exten => s,109,Set(LGNT=$[${EPOCH} - ${ORGEPOCH}])
exten => s,110,GotoIf($["${LGNT}" = "0"]?116:111)
exten => s,111,QueueLog(${UNIQUEID},${ARG1},${CALLBACKNUM},AGENTLOGOFF,${LGNT})
exten => s,112,DBdel(agentlogin/q_${ARG1}_a_${CALLBACKNUM})
exten => s,113,Wait(1)
exten => s,114,Playback(agent-loggedoff)
exten => s,115,Hangup()
exten => s,116,Playback(sorry-cant-let-you-do-that)
exten => s,117,Hangup()
; Removes a dynamic agent/member from a Queue
; arg1 = trunk number, arg2 = number
[macro-agent-del]
exten => s,1,Wait(1)
exten => s,2,Playback(sorry-cant-let-you-do-that)
exten => s,3,Hangup()

Dynamically Manage Members and log Time-In-Queue (Asterisk 1.4)

Adds or removes a dynamic member to the queue and logs the time in queue in seconds in /var/log/asterisk/queue_log.

; Adds a dynamic agent/member to a queue and logs Time-In-Queue
; arg1 = trunk number, arg2 = number
[macro-agent-add]
exten => s,1,Wait(1)
exten => s,2,Macro(user-callerid)
exten => s,3,Set(CALLBACKNUM=${CALLERID(number)})
exten => s,4,GotoIf($["${CALLBACKNUM}" = ""]?116))      ; if no number, jump to fail.
exten => s,5,AddQueueMember(${ARG1}|Local/${CALLBACKNUM}@from-internal/n||j)       ; using chan_local allows us to have agents over trunks
exten => s,6,QueueLog(${UNIQUEID},${ARG1},${CALLBACKNUM},AGENTLOGIN,0)
exten => s,7,Set(DB(agentlogin/q_${ARG1}_a_${CALLBACKNUM})=${EPOCH})
exten => s,8,UserEvent(Agentlogin|Agent: ${CALLBACKNUM})
exten => s,9,Wait(1)
exten => s,10,Playback(agent-loginok)
exten => s,11,Hangup()
exten => s,106,RemoveQueueMember(${ARG1}|Local/${CALLBACKNUM}@from-internal/n)
exten => s,107,UserEvent(RefreshQueue)
exten => s,108,Set(ORGEPOCH=${DB(agentlogin/q_${ARG1}_a_${CALLBACKNUM})})
exten => s,109,Set(LGNT=$[${EPOCH} - ${ORGEPOCH}])
exten => s,110,GotoIf($["${LGNT}" = "0"]?116:111)
exten => s,111,QueueLog(${UNIQUEID},${ARG1},${CALLBACKNUM},AGENTLOGOFF,${LGNT})
exten => s,112,DBdel(agentlogin/q_${ARG1}_a_${CALLBACKNUM})
exten => s,113,Wait(1)
exten => s,114,Playback(agent-loggedoff)
exten => s,115,Hangup()
exten => s,116,Playback(sorry-cant-let-you-do-that)
exten => s,117,Hangup()

Asterisk 1.4

; Adds a dynamic agent/member to a Queue
; arg1 = trunk number, arg2 = number
[macro-agent-add]
exten => s,1,Wait(1)
exten => s,2,Macro(user-callerid)
exten => s,3,Set(CALLBACKNUM=${CALLERID(number)})
exten => s,4,GotoIf($["${CALLBACKNUM}" = ""]?116))      ; if no number, jump to fail.
exten => s,5,AddQueueMember(${ARG1}|Local/${CALLBACKNUM}@from-internal/n||j)       ; using chan_local allows us to have agents over trunks
exten => s,6,UserEvent(Agentlogin|Agent: ${CALLBACKNUM})
exten => s,7,Wait(1)
exten => s,8,Playback(agent-loginok)
exten => s,9,Hangup()
exten => s,106,RemoveQueueMember(${ARG1}|Local/${CALLBACKNUM}@from-internal/n)
exten => s,107,UserEvent(RefreshQueue)
exten => s,108,Wait(1)
exten => s,109,Playback(agent-loggedoff)
exten => s,110,Hangup()
exten => s,111,Playback(sorry-cant-let-you-do-that)
exten => s,112,Hangup()
Personal tools