Порой, например, при подключении аналогового телефона через FXS шлюз, на котором отсутствует регулировка громкости, необходимо отрегулировать громкость при разговоре. Предположим, что на FXS шлюзе отсутствует регулировка на порту, к которому подключен телефон. Давайте разберемся:
Данная регулировка реализуется на базе VOLUME(TX|RX). Информацию по ней можно посмотреть через консоль Asterisk:
asterisk*CLI> core show function VOLUME -= Info about function 'VOLUME' =- [Synopsis] Set the TX or RX volume of a channel. \ можно настроить громкость для канала [Description] The VOLUME function can be used to increase or decrease the 'tx' or 'rx' gain of any channel. For example: Set(VOLUME(TX)=3) Set(VOLUME(RX)=2) Set(VOLUME(TX,p)=3) Set(VOLUME(RX,p)=3) [Syntax] VOLUME(direction[,options]) [Arguments] direction Must be 'TX' or 'RX'. options p: Enable DTMF volume control [See Also] Not available
Данная функция имеет 2 параметра:
- Направление, т.е TX – отправка, RX – прием.
- Дополнительная опция p, которая активирует контроль над звуком по DTMF
На данном этапе мы разобрались с функцией VOLUME. Теперь открываем файл extensions_customs.conf и производим следующие настройки нового контекста:
[root@asterisk ~]# vim /etc/asterisk/extensions_custom.conf
[volume-set] exten => _X.,1,NoOp(Volume settings) same => n,Set(VOLUME(TX)=5) same => n,Set(VOLUME(RX)=5) same => n,Goto(from-internal,${EXTEN},1)
Теперь открываем необходимый нам Extension, и в поле Context, вносим название созданного нами выше контекста - volume-set.
Теперь можно регулировать громкость в настройках контекста, изменяя значение с 5 на другое, параллельно проверяя громкость в трубке