Asterisk. Голосовое меню своими руками

Всем привет. Постараюсь без нудятины рассказать о том, как создать голосовое меню приветствие на Asterisk.


Буду рассказывать на своем примере голосового меню. У меня оно было следующего вида:

Здравствуйте! Вы позвонили в КОМПАНИЮ, выберите пункт меню, введите внутренний номер или дождитесь ответа секретаря

  • один — первый отдел
  • два — второй отдел
  • шесть — шестой отдел
  • для повтора нажмите НОЛЬ

При этом если человек ничего не вводил его должно было перенаправить на секретаря, если человек ввел не то что надо, его тоже перенаправляет на секретаря.

Я разворачивал свой Asterisk в связке с CentOS. На самом деле это не имеет особого значения, но решил все же уточнить.

И так, на момент чтения этой статьи у Вас должно быть следующее:

  1. установленный Asterisk
  2. настроена минимальная маршрутизация звонков в extensions.conf
  3. и как минимум пара внутренних номеров настроенных в sip.conf

Настройка голосового меню для Asterisk

Создаем файл company.tree в корне папки Asterisk. В этом файле будет прописан алгоритм работы голосового меню.

Идем в extensions.conf и в самое начало файла вставляем следующее

#include «company.tree»

этим самым мы подгружаем недавно созданный файл в общий план маршрутизации Asterisk.
Там же в extensions.conf ищем где у вас настроены входящие звонки (у меня раздел назван [call-in], у вас может быть другое название) и вставляем в самое начало следующую строчку

exten => 84951234567,1,Goto(company_tree,s,1)

здесь вместо 84951234567 указываете Ваш внешний номер при звонке на который будет проигрываться голосовое меню. В моем же случае я просто указывал свой SIP-идентификатор, под которым зарегистрирован у провайдера. Если кратко, то Asterisk переведет нас в контекст company_tree на первую строку «s», который находится в файле company.tree, который мы благополучно подгрузили в общий план маршрутизации выше.

Теперь переходим в файл company.tree и заполняем наш алгоритм голосового меню. Ниже весь код с комментариями:

[company_tree]
;Отвечаем на входящий звонок
exten => s,1,Answer()
;Проигрываем запись текста голосового дерева (ниже опишу куда положить файл и как создать)
exten => s,2,Background(/etc/IVR/menu)
;Немного времени на осмысление дерева и выбор интересующего направления, в данном случае 7
exten => s,3,WaitExten(7)

; При нажатии 1 переводит в первый отдел (в моем случае это просто внутренние номера сотрудников)
exten => 1,1,Dial(SIP/101)
; При нажатии 2 переводит во второй отдел
exten => 2,1,Dial(SIP/202)
; При нажатии 3 переводит в третий отдел
exten => 3,1,Dial(SIP/218)
; При нажатии 4 переводит в четвертый отдел
exten => 4,1,Dial(SIP/207)
; При нажатии 5 переводит в пятый отдел
exten => 5,1,Dial(SIP/303)
; При нажатии 6 переводит в шестой отдел
exten => 6,1,Dial(SIP/103)
; По таймауту переводит на секретаря
exten => t,1,Dial(SIP/300)
; При нажатии 0 проигрывает запись с начала
exten => 0,1,Goto(company_tree,s,1)

На этом все. Голосовое меню c приветствием для Asterisk настроено. Осталось только перезагрузить план обзвона из консоли

asterisk -r
dialplan reload


Аудиофайлы для голосового меню в Asterisk

Выше в структуре файла company.tree есть строчка

exten => s,2,Background(/etc/IVR/menu)

здесь

  • Background — это команда на проигрывание фоном вашей записи
  • /etc/IVR/ — путь для папки с аудиофайлом
  • menu — название самой записи. Указывается без расширения. Астер сам знает какой файл забрать.

Примечание: Asterisk не умеет работать с расширениями типа *.mp3 или *.wav, ему нужны файлы с расширением *.ulaw.

 

Конвертация WAV в ULAW

В консоли вашей ОС Linux пишем следующее

sox -V /etc/IVR/menu.wav -r 8000 -c 1 -t ul /etc/IVR/menu.ulaw

здесь

  • /etc/IVR/menu.wav — полный путь до вашего файла с расширением, который нужно конвертировать
  • /etc/IVR/menu.ulaw — полный путь и имя файла с расширением, который получите на выходе

После выполнения команды увидите примерно следующее

Копирование файлов из Windows в Linux

Качаете WinSCP с ОФИЦИАЛЬНОГО САЙТА
При запуске создаете новое подключение к вашему Linux и далее увидите что-то на подобие интерфейса TotalCommander. Ну а дальше копирует файлы, создаете папки и так далее. В моем случае я создал папку IVR в каталоге etc где у меня и лежит мое голосовое меню.


Попытался кратко резюмировать то, что нарыл в интернете, когда разбирался с настройкой голосового меню для Asterisk. В итоге Вам представлена рабочая схема, которой можете пользоваться. Спасибо за внимание.

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

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