Музыка на удержании

Материал из Xgu.ru

(Перенаправлено с moh)
Перейти к: навигация, поиск
Короткий URL: moh

Музыка на удержании (Music on hold, MOH) — музыка, которая проигрывается у участника телефонного разговора в трубке, когда второй участник переводит его в режим удержания (on hold).

Музыка, предназначенная для проигрывания с помощью сервера Астериск или другого, как правило, хранится сразу в подходящем формате. Например, в формате GSM. Она может храниться и в MP3, с одной стороны это позволяет сэкономить место, но с другой требует обработки в момент проигрывания, что создаёт дополнительную нагрузку на сервер.

Подготовка музыкальных файлов, обычно, выполняется с помощью программы sox.

%$ mpg123 -w "$NAME.wav" "$NAME"
%$ sox -t wav "$NAME.wav" -r 8000 -c1 -t gsm "$NAME.gsm" resample -ql

Для того чтобы добавить поддержку GSM в sox, необходимо установить в системе соответствующий модуль.

%$ apt-get install libsox-fmt-gsm

Если в sox есть поддержка MP3, то перекодировку можно выполнять одной командой, без применения mpg123 и создания промежуточного WAV-файла.

Конфигурация музыки на удержании выполняется через /etc/asterisk/musiconhold.conf.

[default]
mode=files
directory=/var/lib/asterisk/moh

По умолчанию достаточно только разместить файлы с музыкой в каталоге /var/lib/asterisk/moh, перезапустить астериск, и они будут проигрываться.

Для того чтобы проигрывалась музыка, пока абонент не возьмёт трубку, нужно использовать опцию m в Dial:

exten => _2XX,n,Dial(${EXTEN},10,m)

Необходимый класс MusicOnHold следует указывать так:

exten => _2XX,n,Dial(${EXTEN},10,m(класс-MOH))

Изменить класс музыки (то есть, то, какая музыка будет проигрываться)[1]:

Set(CHANNEL(musicclass)=...)

Принудельное включение MusicOnHold для канала:

exten => _2XX,1,Answer
exten => _2XX,n,MusicOnHold(класс-MOH,длительность)


[править] Дополнительная информация

[править] Примечания

  1. Начиная с Asterisk 1.6
На других языках