23 августа 2012 г.

Голосовое меню - asterisk

Вот накидал примерную структуру голосового меню:

[overlink]
exten => 401,1,Answer() ;Поднимаем трубку
exten => 401,2,Set(numTries=0) ;Выставляем кол-во попыток
exten => 401,3(naberite),Background(naberite) ;Рассказываем о возможности набрать цифры 4 и 5
exten => 401,4,WaitExten() ;Ждем ввода от пользователя
exten => 100,1,Goto(director,s,1) ;Нажали 100 переходим на меню Генерального директора
exten => 101,1,Goto(buhgalter,s,1) ;Нажали 101 переходим на меню Бухгалтера
exten => 102,1,Goto(finanse,s,1) ;Нажали 102 переходим на меню Фин.Директора
exten => 401,5,Playback(pbx-invalid) ;Нажали не 4-ре и не 5-ть . говорим что ввод не верный
exten => 401,6,Goto(s,naberite) ; Возвращаемся и повторяем сообщение какие кнопки нажимать
exten => 401,7,Set(numTries=$[${numTries} + 1]) ; Увеличивает кол-во попыток при таймауте 
exten => 401,8,GotoIf($["${numTries}" < "3"]?s|naberite) ;Пока потыток меньше 3-х повторяем
exten => 401,9,Playback(bay) ;Кол-во попыток на таймаут израсходовано, прощаемся
exten => 401,10,Hangup() ; Вешаем трубку

[director]
exten => s,1,Playback(spasibo_za_zvonok_zdite_otveta)
exten => s,n,Dial(SIP/sipnet_202/83012XXXXXX,40)
exten => t,n,Hangup()

[buhgalter]
exten => s,1,Playback(spasibo_za_zvonok_zdite_otveta)
exten => s,n,Dial(SIP/sipnet_202/8924XXXXXX,40)
exten => t,n,Hangup()

[finanse]
exten => s,1,Playback(spasibo_za_zvonok_zdite_otveta)
exten => s,n,Dial(SIP/sipnet_202/83012XXXXXX,40)
exten => t,n,Hangup()