Пытаюсь сделать многоуровневое голосовое меню
И запутался в трех соснах.
Что хочу реализовать:
при звонке на внутренний номер
если абонент занят, то говорится фраза, что абонент занят и предлагается:
а) оставить речевое сообщение;
б) набрать другой добавочный номер;
в) отправить факс абоненту
г) выйти в главное меню.
Проблема в чем: если меню а)-г) сделать нажатием клавиши, то теряется номер экстеншна, и непонятно как вызвать ту же речевую почту.
Поправил макрос
[macro-stdexten2];
; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well
; ${ARG2} - Device(s) to ring
exten => s,1,Dial(${ARG2},20) ; Ring the interface, 20 seconds maximum
exten => s,2,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
exten => s-NOANSWER,1,Background(1otsutstv) ; абонент отстутствует, диктует подменю
exten => s-BUSY,1,Background(1zanyat) ; абонент занят, диктует подменю
exten => s,n,WaitExten ; ожидание ввода 1,2,3, 0
exten => 1,n,Voicemail({ARG1}) ; send to voicemail
;exten => 2,n,Goto(sub2newext,s,n) ; call new ext, пока отключено
;exten => 3,n,Goto(sub2fax,s,1) ; send a fax to user, пока отключено
exten => 0,n,Goto(default,s,1) ; переход в главное меню
exten => _s-.,1,Goto(s-NOANSWER,1)
Но макрос тоже работает кривенько, {ARG1} почему-то остается пустым и при нажатии "1" голосовое сообщение абоненту не оставить...
Выслушиваются любые советы, как реализовать подменю. Маны читал, про переменные - смотрел,...
Думаю extensions.ael править, там какое-то более прямое подобие сишника.
|