Перейти к содержанию

Dialplan — Паузы операторов

Файл: /etc/asterisk/extensions_pause.conf

[queue-pause-toggle]
exten => *22,1,NoOp(=== Operator Pause Toggle Request ===)
same => n,NoOp(Channel: ${CHANNEL})
same => n,NoOp(CallerID: ${CALLERID(num)})
same => n,Set(CURRENT_DEVICE=${CHANNEL(endpoint)})
same => n,Set(TENANT_ID=${ODBC_GET_TENANT_BY_ENDPOINT(${CURRENT_DEVICE})})
same => n,NoOp(Detected TENANT_ID: ${TENANT_ID})
same => n,Set(CURRENT_INTERFACE=PJSIP/${CURRENT_DEVICE})
same => n,NoOp(Current interface: ${CURRENT_INTERFACE})
same => n,Set(OPERATOR_NUM=${ODBC_GET_OPERATOR_BY_INTERFACE(${CURRENT_INTERFACE},${TENANT_ID})})
same => n,NoOp(Found operator number: ${OPERATOR_NUM})
same => n,GotoIf($["${OPERATOR_NUM}" = ""]?not_in_queue)
same => n,Set(QUEUE_NAME=${ODBC_GET_OPERATOR_QUEUE(${OPERATOR_NUM},${TENANT_ID})})
same => n,NoOp(Operator ${OPERATOR_NUM} queue: ${QUEUE_NAME})
same => n,Set(PAUSE_STATUS=${QUEUE_MEMBER(${QUEUE_NAME},paused,${CURRENT_INTERFACE})})
same => n,NoOp(Current pause status: ${PAUSE_STATUS})
same => n,GotoIf($["${PAUSE_STATUS}" = "1"]?do_unpause)
same => n(do_pause),NoOp(Setting pause for operator ${OPERATOR_NUM})
same => n,Set(DB_RESULT=${ODBC_SET_MEMBER_PAUSE(${OPERATOR_NUM},1,self-pause,${TENANT_ID})})
same => n,NoOp(DB pause set result: ${DB_RESULT})
same => n,PauseQueueMember(${QUEUE_NAME},${CURRENT_INTERFACE})
same => n,NoOp(Asterisk pause set for ${CURRENT_INTERFACE} in ${QUEUE_NAME})
same => n,NoOp(pause logged by DB trigger log_all_pause_changes)
same => n,NoOp(ODBC_LOG_PAUSE_ACTION skipped)
same => n,GoSub(play-localized,s,1(callbox-pause-activated))
same => n,Hangup()
same => n(do_unpause),NoOp(Removing pause for operator ${OPERATOR_NUM})
same => n,Set(DB_RESULT=${ODBC_SET_MEMBER_PAUSE(${OPERATOR_NUM},0,NULL,${TENANT_ID})})
same => n,NoOp(DB unpause set result: ${DB_RESULT})
same => n,UnpauseQueueMember(${QUEUE_NAME},${CURRENT_INTERFACE})
same => n,NoOp(Asterisk unpause set for ${CURRENT_INTERFACE} in ${QUEUE_NAME})
same => n,NoOp(unpause logged by DB trigger log_all_pause_changes)
same => n,NoOp(ODBC_LOG_PAUSE_ACTION skipped)
same => n,GoSub(play-localized,s,1(callbox-unpause-activated))
same => n,Hangup()
same => n(not_in_queue),NoOp(Operator not registered from this terminal)
same => n,GoSub(play-localized,s,1(callbox-not-in-queue))
same => n,Hangup()