All pastes #180341 Raw Edit

Anonymous

public text v1 · immutable
#180341 ·published 2006-09-23 01:41 UTC
rendered paste body
Example of our queue handling:

exten => 123,1,Answer
exten => 123,n,SetCIDName(test: ${CALLERIDNAME})
exten => 123,n,NoOp(exten=${EXTEN})
exten => 123,n,SetMusicOnHold(default)
exten => 123,n,Queue(123|t)	; go to queue 123
exten => 123,n,Macro(vm,6000)   ; no members in the queue or the caller sat to long so sending them to voicemail.
exten => 123*,1,Macro(agent-add,123,)
exten => 123**,1,Macro(agent-del,123)

; Adds a dynamic agent/member to a Queue
; Prompts for call-back number - in not entered, uses CIDNum
[macro-agent-add]
exten => s,1,Wait(1)
exten => s,2,NoOp
exten => s,3,Read(CALLBACKNUM,agent-user)  	; get callback number from user
exten => s,4,GotoIf($[foo${CALLBACKNUM} = foo]?5:7))	; if user just pressed # or timed out, use cidnum
exten => s,5,SetVar(CALLBACKNUM=${CALLERIDNUM})
exten => s,6,GotoIf($[foo${CALLBACKNUM} = foo]?2))	; if still no number, start over
exten => s,7,GotoIf($[foo${ARG2} = foo]?9:8))	; arg2 is queue password
exten => s,8,Authenticate(${ARG2})
exten => s,9,AddQueueMember(${ARG1}|Local/${CALLBACKNUM}@from-internal)	; using chan_local allows us to have agents over trunks
exten => s,10,Wait(1)
exten => s,11,Playback(agent-loginok)
exten => s,12,Hangup()

; Removes a dynamic agent/member from a Queue
; Prompts for call-back number - in not entered, uses CIDNum
[macro-agent-del]
exten => s,1,Wait(1)
exten => s,2,NoOp
exten => s,3,Read(CALLBACKNUM,agent-user)  	; get callback number from user
exten => s,4,GotoIf($[foo${CALLBACKNUM} = foo]?5:7))	; if user just pressed # or timed out, use cidnum
exten => s,5,SetVar(CALLBACKNUM=${CALLERIDNUM})
exten => s,6,GotoIf($[foo${CALLBACKNUM} = foo]?2))	; if still no number, start over
exten => s,7,RemoveQueueMember(${ARG1}|Local/${CALLBACKNUM}@from-internal)
exten => s,8,Wait(1)
exten => s,9,Playback(agent-loggedoff)
exten => s,10,Hangup()