Asterisk выбрать из меню во время игры IVR - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь сделать меню IVR звездочкой. Мой вопрос заключается в том, как я могу сделать звездочку, чтобы иметь возможность выбирать из меню IVR во время игры выбора. А если я сделал выбор, прекратить играть в меню и перейти к следующему действию? Прямо сейчас мне нужно прослушать весь wav-файл, и когда это будет сделано, я смогу сделать выбор.

Мой конфиг выглядит так:

[egy_mainmenu]
exten => s,1,Wait(1)
exten => s,n,NoOp(${CALLERID(all)})
exten => s,n,Set(CHANNEL(language)=hu)
exten => s,n,Answer
exten => s,n,Set(row="${REALTIME(isopen,name,q-egy)}")
exten => s,n,Set(row=${CUT(row,",",2)});
exten => s,n,Set(row=${CUT(row,"=",2)});
exten => s,n,GotoIf($["${row}" = "1"]?s,openhours)
exten => s,n,Macro(closed,"q-egy")
exten => s,n,Playback(egy-open)
exten => s,n,Wait(2)
exten => s,n,Hangup

exten => s,n(openhours),Wait(1)
exten => s,n(skip),Set(FILENAME=${STRFTIME(${EPOCH},,%Y%m%d)}-${UNIQUEID})
exten => s,n,Set(MONITOR_FILENAME=/var/spool/asterisk/monitor/${FILENAME})
exten => s,n,Set(MONITOR_EXEC=/usr/local/bin/asterisk_wav2ogg ${FILENAME}.wav)
exten => s,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
exten => s,n,Set(CALLERID(name)=Egy)
exten => s,n,Background(egy_welcome,m)
exten => s,n,WaitExten(5)
exten => _[12345],1,Goto(egy_mainmenu_${EXTEN},s,1)

[egy_mainmenu_1]
exten => s,1,NoOp(${QUEUESTATUS})
exten => s,n,Set(CALLERID(name)=KGFB)
exten => s,n,Queue(q-egy,hRt,,,3600)
exten => s,n,GotoIf($["${QUEUESTATUS}" = "TIMEOUT"]?timeout)
exten => s,n,GotoIf($["${QUEUESTATUS}" = "FULL"]?full)
exten => s,n,GotoIf($["${QUEUESTATUS}" = "JOINEMPTY"]?joinempty)
exten => s,n,GotoIf($["${QUEUESTATUS}" = "LEAVEEMPTY"]?leaveempty)
exten => s,n,Goto(hup)

1 Ответ

0 голосов
/ 30 октября 2018

@ Крис был прав, он работает с этим методом (мне пришлось удалить параметр m в этой строке: exten => s, n, Background (egy_welcome, m)):

exten => s,1,Background(bizt_welcome2)
exten => s,n,WaitExten(55) ; this is priority 2
; you have hangup here, no next priority=3 for s extension

exten => _[12345],1,Goto(egy_mainmenu_${EXTEN},s,1)

[egy_mainmenu_1]
exten => s,1,NoOp(${QUEUESTATUS})
exten => s,n,Set(CALLERID(name)=KGFB)
exten => s,n,Queue(q-egy,hRt,,,3600)
exten => s,n,GotoIf($["${QUEUESTATUS}" = "TIMEOUT"]?timeout)
exten => s,n,GotoIf($["${QUEUESTATUS}" = "FULL"]?full)
exten => s,n,GotoIf($["${QUEUESTATUS}" = "JOINEMPTY"]?joinempty)
exten => s,n,GotoIf($["${QUEUESTATUS}" = "LEAVEEMPTY"]?leaveempty)
exten => s,n,Goto(hup)
...