Код: Выделить всё
[ocenka]
exten => s,1,NoOp(=== Start Ocenka ===)
exten => s,n,Macro(user-callerid,)
exten => s,n,Answer
; Здравствуйте, вы позвонили в компанию ******!
; После разговора вы сможете оценить качество консультации или оставить свой отзыв,
; ожидайте соединения с оператором. Ваша информация важна для нас.
exten => s,n,Playback(custom/priv1_ocenka,noanswer)
exten => s,n,Set(MONITOR_FILENAME=/var/spool/asterisk/monitor/ocenka-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID})
exten => s,n,MixMonitor(${MONITOR_FILENAME}.wav)
exten => s,n,Dial(SIP/1131&SIP/1132, 60, tg)
exten => s,n,StopMixMonitor()
; Если вызов был успешный - предложим оставить отзыв,
; иначе сообщим о том что все заняты и стоить перезвонить позднее
exten => s,n,Noop(DAILSTATUS - ${DIALSTATUS})
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-CANCEL,1,Goto(app-announcement-1,s,1)
exten => s-NOANSWER,1,Goto(app-announcement-1,s,1)
exten => s-BUSY,1,Goto(app-announcement-1,s,1)
exten => s-CONGESTION,1,Goto(app-announcement-1,s,1)
exten => s-CHANUNAVAIL,1,Goto(app-announcement-1,s,1)
; Если Вы удовлетворены ответом сотрудника - нажмите 1
; Если Вы не удовлетворены ответом сотрудника - нажмите 2
; Если желаете оставить свой отзыв о работе сотрудников - нажмите 3
exten => s-ANSWER,1,Background(custom/priv2_ocenka)
exten => s-ANSWER,n,Set(TIMEOUT(response)=15)
exten => s-ANSWER,n,WaitExten(,)
exten => 1,1,Noop(___ OCENKA + ___)
exten => 1,n,Set(FN=${STRFTIME(${EPOCH},,%m.%Y)}.log)
exten => 1,n,Set(DT=${STRFTIME(${EPOCH},,%d.%m.%Y-%H:%M:%S)})
exten => 1,n,Set(Data=${DT}*${CALLERID(num)}*+)
exten => 1,n,System(/bin/echo ${Data} >> /etc/asterisk/ocenka/${FN})
exten => 2,1,Noop(___ OCENKA - ___)
exten => 2,n,Set(FN=${STRFTIME(${EPOCH},,%m.%Y)}.log)
exten => 2,n,Set(DT=${STRFTIME(${EPOCH},,%d.%m.%Y-%H:%M:%S)})
exten => 2,n,Set(Data=${DT}*${CALLERID(num)}*-)
exten => 2,n,System(/bin/echo ${Data} >> /etc/asterisk/ocenka/${FN})
exten => 3,1,Noop(___ OCENKA - SEND OTZYV ___)
exten => 3,n,Voicemail(5010)