Устанавливаем 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

moh1

Нажимаем Check Online

moh2

В открывшемся списке доступных модулей находим модуль Music on Hold. Нажимаем на него и выбираем Download and Install и нажимаем кнопку Process

moh3

Подтверждаем установку модуля Confirm, после установки обязательно нажимаем Apply Config

moh4

Модуль установлен и настройки его находятся Settings — Music On Hold.  В настройках можно создавать категории в которых будут хранится различного рода ваши мелодии и соответственно которые потом можно назначать на номера по вашему требованию, загрузить мелодии.

moh5

Остановимся по подробней на очень важном пункте загрузка мелодий. Для корректной работы проигрывания мелодий нужны определенные параметры звукового файла, а именно формат звукового файла должен быть 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, переходим SettingsMusic On Hold. Создадим музыкальную категорию (Add Music Category) и добавим в нее наш получившийся после конвертации файл. Должно получится вот так:moh6

После того как добавили звуковой файл, не забываем нажимать Apply Config

moh4

Теперь назначим созданную нами музыкальную категорию на какой либо номер. После установки модуля Music On Hold в параметрах входящего(incoming)/исходящего(outbound) звонка появился параметр Music On Hold. Вот в нем и нужно нам выбрать музыкальную категорию чтобы проигрывалась музыка из нее абонентам поставленным на удержание вызова.

moh7

Если все сделали правильно, то в логах asterisk можно наблюдать что при постановки на удержание начинается проигрываться музыка абоненту.

moh8

И когда возвращаем абонента с удержания видим что проигрывание музыки прекратилось.

moh9

Вот и разобрали как скрасить ожидание абонента в случае постановки его на удержание.

БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
Загрузка...

Оставить ответ

двадцать − 10 =