Asterisk. Голосовое меню своими руками
Всем привет. Постараюсь без нудятины рассказать о том, как создать голосовое меню приветствие на Asterisk.
Буду рассказывать на своем примере голосового меню. У меня оно было следующего вида:
Здравствуйте! Вы позвонили в КОМПАНИЮ, выберите пункт меню, введите внутренний номер или дождитесь ответа секретаря
- один — первый отдел
- два — второй отдел
- …
- шесть — шестой отдел
- для повтора нажмите НОЛЬ
При этом если человек ничего не вводил его должно было перенаправить на секретаря, если человек ввел не то что надо, его тоже перенаправляет на секретаря.
Я разворачивал свой Asterisk в связке с CentOS. На самом деле это не имеет особого значения, но решил все же уточнить.
И так, на момент чтения этой статьи у Вас должно быть следующее:
- установленный Asterisk
- настроена минимальная маршрутизация звонков в extensions.conf
- и как минимум пара внутренних номеров настроенных в 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. В итоге Вам представлена рабочая схема, которой можете пользоваться. Спасибо за внимание.