All pastes #476148 Raw Edit

Unnamed

public ini v1 · immutable
·published 2007-05-07 22:09 UTC
rendered paste body
; macros to do login and out of queues[macro-queueloginout]; first argument is the queue to be added to, second(not yet implemented) is penalityexten => s,1,Answerexten => s,n,Set(OUR_QM_LIST=${QUEUE_MEMBER_LIST(${ARG1})})    ; assign member list to variable so it doesn't changeexten => s,n,Set(CHANNEL_TO_MATCH=${CUT(CHANNEL,-,1)})          ; get rid of the unique identifier on the endexten => s,n,Set(X=1)                                           ; initialize counterexten => s,n,While($[${EXISTS(${CUT(OUR_QM_LIST,\,,${X})})}])   ; while we still have a value (not-null), loopexten => s,n,Set(MATCHED=${IF($[${CUT(OUR_QM_LIST,\,,${X})} = ${CHANNEL_TO_MATCH}]?1:0)}) ; match against the channelexten => s,n,Exec(${IF($[${MATCHED}]?ExitWhile():NoOp())}) ; exit while on matchexten => s,n,Set(X=$[${X} + 1]) ; increase the iteratorexten => s,n,EndWhile() ; End of the loopexten => s,n,GotoIf($[${MATCHED}]?100,1:400,1) ;branch on match, 100 means yes 200 means noexten => 100,1,noop(yup) ; agent is already logged in, log em outexten => 100,n,RemoveQueueMember(${ARG1})exten => 100,n,playback(agent-loggedoff)exten => 100,n,Hangupexten => 400,1,noop(nope) ; agent is not logged in, log em inexten => 400,n,AddQueueMember(${ARG1}); catch if queuemember breaksexten => 400,n,Execif($[ ${AQMSTATUS} = ADDED ],Playback,agent-loginok)exten => 400,n,Execif($[ ${AQMSTATUS} = NOSUCHQUEUE ],Playback,try-again)exten => 400,n,Hangup