IVR c ограниченным набором номеров (контекстов)

Встала задача: организовать IVR с возможностью донабора внутреннего номера, причём, только те, которые начинаются на 11ХХ или 22ХХ.

Вот такой, небольшой примерчик.

exten => s,1,Set(try=1)
exten => s,2,Answer
exten => s,3(nachalo),Background('ivr_welcome')
exten => s,4,DigitTimeout,2
exten => s,5,ResponseTimeout,10
exten => s,6,WaitExten(5)
exten => _11XX,1,Dial(SIP/${EXTEN})
exten => _22XX,1,Dial(SIP/${EXTEN})
exten => i,1,Goto(s,nachalo)
exten => s,7,Background('ivr_ext')
exten => s,8,DigitTimeout,2
exten => s,n,ResponseTimeout,10
exten => s,n,WaitExten(5)
exten => _11XX,1,Dial(SIP/${EXTEN})
exten => _22XX,1,Dial(SIP/${EXTEN})
exten => i,1,Goto(s,nachalo)
exten => s,n,HangUp

Поясню по порядку.

s,3 ставим метку, что бы потом на неё можно ссылаться.
s,6 собственно ожидаем ввода внутреннего номера и дальше следует 2 экстеншена, на которые разрешено позвонить.
i,1 если абонент набрал запрещённый номер, оправляем его обратно в начало :).

Если абонент после 5 секунд ничего не набрал — напоминаем ему ещё раз. Если и в этот раз ничего не набрал — вешаем трубку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *