По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Распределенная архитектура IP – АТС Asterisk привлекательна своей локальной отказоустойчивостью по сравнению с централизованной. Например, если у вас установлен единичный экземпляр АТС в центральном офисе, а филиалы подключены через VPN, то при отказе без связи останутся все. С другой стороны, если в каждой филиале имеется собственная IP – АТС Asterisk, при отказе филиальной АТС без связи остается только филиал.
У администраторов возникает вполне логичный вопрос – как объединить между собой все экземпляры IP – АТС в единую корпоративную систему связи? У нас есть ответ. О том, как объединить несколько IP – АТС Asterisk по протоколу IAX расскажем в статье. Конфигурация будет произведена с помощью графического интерфейса FreePBX 13.
Пошаговое видео
Сценарий
Представим, что вы честный системный администратор в компании, занимающейся производством мебели. У компании есть центральный офис в Москве и производство в Новосибирске. На уровне L3 сетевая связность между локальными сетями офисов обеспечена технологией VPN. В Московском офисе мы используем нумерацию 1XX (100-199), а в Новосибирске 2XX (200-299).
Для корректной настройки от нас потребуется создать 2 IAX транка на каждом из филиалов и создать соответствующие маршрута. IP – адресация на нашем стенде следующая:
Москва - 192.168.1.67
Новосибирск - 192.168.1.68
Настройки Московского филиала
Приступаем к настройке Московского филиала. Переходим в раздел Connectivity → Trunks и добавляем новый IAX транк нажатием +Add Trunk → Add IAX2 Trunk. В поле Trunk Name вкладки Outgoing вводим novosib, а в сегменте PERR Details вносим следующие настройки:
username=novosib
host=192.168.1.68
type=peer
secret=wikimerion
qualify=yes
context=from-trunk
disallow=all
allow=alaw
После настройки исходящих параметров, приступаем к настройке входящих для Московского филиала. Открываем вкладку Incoming. В поле User Context укажите moscow, а в разделе следующие настройки:
host=192.168.1.68
type=user
secret=wikimerion
qualify=yes
context=from-internal
disallow=all
allow=alaw
Нажимаем Submit. Переходим к настройке исходящего маршрута в Московском филиале. Нам нужно будет осуществлять звонки с 1XX на 2XX номера, следовательно, в шаблоне набора мы укажем IP – АТС Asterisk отправлять все вызовы, в которых пользователи набрали трехзначный номер начинающийся с двойки в транк до Новосибирска. Переходим в раздел Connectivity → Outbound Routes и нажимаем + Add Outbound Route:
После указания настроек нажимаем Submit и Apply Config
Настройки Новосибирского филиала
Теперь произведем необходимые настройки для филиала в Новосибирске. Переходим по пути Connectivity → Trunks → +Add Trunk → Add IAX2 Trunk. В Outgoing секции указываем имя moscow и следующие параметры:
username=moscow
host=192.168.1.67
type=peer
secret=wikimerion
qualify=yes
context=from-trunk
disallow=all
allow=alaw
Теперь в секции Incoming указываем контекст novosib и следующие опции конфигурации:
host=192.168.1.67
type=user
secret=wikimerion
qualify=yes
context=from-internal
disallow=all
allow=alaw
Делаем исходящий маршрут для звонков в Москву. Переходим в Connectivity → Outbound Routes и нажимаем + Add Outbound Route:
Нажимаем Submit и Apply Config
Проверка
Для проверки наших настроек, в каждом из филиалов дадим команду iax2 show peers. Как видим, наши транки в статусе OK
Теперь, при звонках с московских внутренних номеров, которые зарегистрированы на московской IP – АТС Asterisk в сторону новосибирского филиала на номера вида 2XX, мы сможем дозвониться, и, что самое главное, на телефонах принимающей стороны будет виден внутренний номер звонящего.
CURL это мощный инструмент командной строки, который позволяет тестировать различные API интерфейсы, отправлять данные на URL методом POST/GET и прочее. Как минимум для разработчика это необходимый инструмент.
Если вам нужно протестировать CURL, а вы не хотите устанавливать Postman, например, то из терминала (командной строки) на MacOS можно лего инициировать CURL.
В статье мы покажем несколько полезных примеров cURL и терминала.
Отправка POST запрос через cURL
Сделать POST легко: можно с данными, а можно и без них. Смотрите какой синтаксис использования:
CURL запрос без дополнительных данных
curl -X POST http://URL/test.php
CURL запрос с дополнительными параметрами
curl -d "data=test1data2=test2" http://URL/test.php
CURL с передаче полей
curl -X POST -F "name=diman" -F "password=test" http://URL/example.php
CURL с передачей файла
curl -X POST -F "image=@/path/pic.png" http://URL/testform.php
Отправка CURL с JSON
Ловите пример отправки JSON
curl -H "Content-Type: application/json" -X POST -d '{"user":"sanya","pass":"qwerty"}' http://test/myscript.php
Вам мало примеров?
Если так, то вы легко можете изучить все возможности CURL в консоли:
curl --help
curl --manual
Профит!
Порой, например, при подключении аналогового телефона через 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 на другое, параллельно проверяя громкость в трубке