Голосовое меню и группы звонков

Проверено на Астериске версии 11.13.0 (Установлен на Убунте)

После создания честно-звонящего сервера нам понадобятся:
— Файлы записанные приятным женским голосом. Лучше сделать нарезку под каждый пункт (потом можно варьировать).
— Подключенные аппараты для проверки звонков.
— Терпение и внимательность.

Первое что делаем — создаём файл (или редактируем имеющийся) queues.conf.

Листинг:
[general]
ringinuse=no

[group_1] ;otdel 1
setinterfacevar = yes
strategy = ringall
ringinuse = no
timeout=3000
member => SIP/47810

[group_2] ;otdel 2
setinterfacevar = yes
strategy = ringall
ringinuse = no
timeout=3000
member => SIP/47806
member => SIP/47807

[group_3] ;otdel 3
setinterfacevar = yes
strategy = ringall
ringinuse = no
timeout=3000
member => SIP/47816
member => SIP/47817

[group_5] ;otdel 5
setinterfacevar = yes
strategy = ringall
ringinuse = no
timeout=3000
member => SIP/47814
member => SIP/47815

/Если обратили внимание от отдела 4 отказались. Номера начинаются на 4 и чтоб звонящий не ждал пока обработается маска четвёрку пропустили./

Важно определить стратегию: как будут звонить телефоны при вызове группы. За это отвечает параметр strategy.
ringall: вызываются все доступные участники до тех пор, пока кто-то из них не ответит на вызов (по умолчанию).
roundrobin: циклически вызывается каждый из доступных участников. (Устарело в версии 1.4, используйте: rrmemory)
leastrecent: Вызывается первый свободный участник, который меньше всего вызывался из этой очереди.
fewestcalls: Вызывается первый свободный участник, который обработал наименьшее количество вызовов из данной очереди.
random: случайным образом вызывается не занятый участник, обрабатывающий очередь.
rrmemory: циклическое распределение с памятью, запоминается последний участник, ответивший на вызов.

После того как создали группы-очереди открываем файл extensions.conf.

Первой строкой в файле пишем:
#include «phones.tree»

Впоследствии создадим файл, который будет включен в наши правила. Далее обозначаем какой звонок будет вести в наше меню:
[trunk-office-gorod]
exten => 8127750080,1,Goto(phones-tree,s,1)

Пример строк в файле:
;====================ASTERISK==============
#include «phones.tree»

[general]
static=yes
writeprotect=no
clearglobalvars=no

;============trunks======================
[trunk-office-gorod]
exten => 8127750080,1,Goto(phones-tree,s,1)

Ну и собственно теперь нам надо создать файл phones.tree, в котором и будет работать наше голосовое дерево.
Листинг файла:
[phones-tree]

exten => s,1,Answer()
;podnimaem trubku
exten => s,n,Background(/home/records/1-hello)
exten => s,n,Background(/home/records/2-zvezdochka)
exten => s,n,Background(/home/records/3-personal)
exten => s,n,Background(/home/records/4-commercial)
exten => s,n,Background(/home/records/5-buhgal)
exten => s,n,Background(/home/records/6-dogovor)
exten => s,n,Background(/home/records/7-fax)
exten => s,n,Background(/home/records/8-nomer)
exten => s,n,Background(/home/records/9-povtor)
;proigrivaem privetstvie
exten => s,n,WaitExten(10)
;zhdem 10 sekund

exten => 1,1,Queue(group_1)
;perevodin zvonok v kadry
exten => 2,1,Queue(group_2)
;perevodin zvonok v commercheskiy otdel
exten => 3,1,Queue(group_3)
;perevodin zvonok v buhgalteriu
exten => 5,1,Queue(group_5)
;perevodin zvonok v dogovornoy otdel
;exten => 9,1,Queue(group_9)
;perevodin zvonok v fax
exten => 0,1,Goto(s,2)
;povtoryaem privetstvie

exten => s,n,Dial(SIP/47800)
;nabiraem sekretarya

exten => _478XX,1,Dial(SIP/${EXTEN})
;esli nomer nabran

exten => i,1,Background(/home/records/0-invalid)
;esli nomer nepravilniy proigrivaem soobshenie
exten => i,n,Goto(s,4)
;esli nomer nepravilniy perevodim na sekretarya
exten => i,n,Goto(t,1)
;esli nomer ne nabran perevodim na sekretarya

Файл весь в комментах — так что пояснять не буду.

Остаются голосовые файлы. Сконвертить wav в удобоваримый формат можно тут: http://my.digium.com/en/products/ivr/audio-converter/. Формат на выходе прочитался без установки дополнительного барахла на сервере.

Расположение придумаете сами, не забудьте поправить путь.

Собственно остаётся только выполнить:
sip reload (перезапуск сипа)
dialplan reload (перезапуск правил)
queue reload all (перезапуск очередей)

И можно звонить.

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