Устанавливаем Music On Hold на Asterisk 11 + FreePBX и конвертируем звуковые файлы с помощью SoX (Sound eXchange).
Имеется развернутый Asterisk 11 + FreePBX (по этой статье) на Ubuntu server 14.04.5 LTS и следующая ситуация, что при постановки звонящего на удержание вызова, звонящий слышит в трубке гробовую тишину, дабы как то развлечь звонящего в режиме удержания установим модуль Music On Hold. Т.к. у нас вместе с Asterisk работает FreePBX, то устанавливать модуль мы будем через FreePBX.
Перейдем в Admin — Module Admin
Нажимаем Check Online
В открывшемся списке доступных модулей находим модуль Music on Hold. Нажимаем на него и выбираем Download and Install и нажимаем кнопку Process
Подтверждаем установку модуля Confirm, после установки обязательно нажимаем Apply Config
Модуль установлен и настройки его находятся Settings — Music On Hold. В настройках можно создавать категории в которых будут хранится различного рода ваши мелодии и соответственно которые потом можно назначать на номера по вашему требованию, загрузить мелодии.
Остановимся по подробней на очень важном пункте загрузка мелодий. Для корректной работы проигрывания мелодий нужны определенные параметры звукового файла, а именно формат звукового файла должен быть wav, одно канальным и с частотой 8000 (именно такая частота используется для голосовых сообщений в телефоне).
Приводить к нужным параметрам звуковой файл будем с помощью утилиты SoX (Sound eXchange) на Ubuntu server 14.04.5 LTS. Установим ее (если не установлена).
sudo apt-get install sox
Теперь рассмотрим пример конвертации какого либо звукового файла в нужный нам формат и с нужными параметрами. Посмотрим параметры исходного звукового файла который нужно преобразовать:
soxi MusicHoldOn/MOH.wav
Input File : 'MusicHoldOn/MOH.wav' Channels : 2 Sample Rate : 44100 Precision : 16-bit Duration : 00:03:44.97 = 9921024 samples = 16872.5 CDDA sectors File Size : 39.7M Bit Rate : 1.41M Sample Encoding: 16-bit Signed Integer PCM
Видим что звуковой файл, двух канальный и с частотой 44100, данный файл воспроизводится Asterisk не будет. Конвертируем его в приемлемые нам параметры:
sox -v 0.5 MusicHoldOn/MOH.wav -t wav -r 8000 -c 1 MusicHoldOn/MOHasterisk.wav
Разберем используемые ключи:
-v Данный параметр регулирует громкость файла. Это линейная (амплитуда) регулировки так что если число меньше 1 уменьшает объем, есть больше 1 то увеличивает. Если заданно отрицательно число, то в дополнение к регулировки громкости звуковой сигнал будет инвертирован. -t Задается тип звукового файла. -r Задается частота дискредитации в Гц (Hz). -c Количество звуковых каналов в аудиофайле.
Посмотрим какой звуковой файл получился на выходе:
soxi MusicHoldOn/MOHasterisk.wav
Input File : 'MusicHoldOn/MOHasterisk.wav' Channels : 1 Sample Rate : 8000 Precision : 16-bit Duration : 00:03:44.97 = 1799732 samples ~ 16872.5 CDDA sectors File Size : 3.60M Bit Rate : 128k Sample Encoding: 16-bit Signed Integer PCM
Видим что получившийся звуковой файл теперь отвечает требованиям и его можно использовать в модуле Music On Hold.
Проверим работу модуля Music On Hold. В FreePBX, переходим Settings — Music On Hold. Создадим музыкальную категорию (Add Music Category) и добавим в нее наш получившийся после конвертации файл. Должно получится вот так:
После того как добавили звуковой файл, не забываем нажимать Apply Config
Теперь назначим созданную нами музыкальную категорию на какой либо номер. После установки модуля Music On Hold в параметрах входящего(incoming)/исходящего(outbound) звонка появился параметр Music On Hold. Вот в нем и нужно нам выбрать музыкальную категорию чтобы проигрывалась музыка из нее абонентам поставленным на удержание вызова.
Если все сделали правильно, то в логах asterisk можно наблюдать что при постановки на удержание начинается проигрываться музыка абоненту.
И когда возвращаем абонента с удержания видим что проигрывание музыки прекратилось.
Вот и разобрали как скрасить ожидание абонента в случае постановки его на удержание.
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.