По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Желание использовать данные с внешних сервисов это вполне обычная практика. Так как многие из этих сервисов доступны по HTTP(S) (REST API, например), то в этой статье мы хотим показать простой способ обращения к этим сервисам по cURL и обработку данных в случае, если сервер вернет JSON. Все взаимодействия будут выполняться из диалплана. Простой cURL запрос В диалплане Asterisk существует функция CURL, которая позволяет получить содержимое WEB или FTP страницы. Синтаксис запроса следующий: CURL(url,post-data) url - URL, к которому мы будем выполнять обращение; post-data - по умолчанию будет выполнен GET – запрос. Если в данном параметре будут указаны различные значения, то будет выполнен POST запрос с указанными в переменной данными; Например: exten => _X.,1,Set(C_RESULT=${CURL(//merionet.ru/rest?num=84991234567)}) Здесь мы выполним GET запрос по указанному URL, а результат сохраним в переменной C_RESULT. Использование HTTPS в запросах Иногда, HTTPS запросы могут не срабатывать, так как удаленная сторона будет проверять наш SSL – сертификат. Если поставить параметр ssl_verifypeer=0, то такой проверки не будет: same => n,Set(CURLOPT(ssl_verifypeer)=0) Как воспользоваться этим в диалплане? Легко. С помощью функции GotoIf мы можем определить действие, которое отработает на базе результата cURL: exten => _X.,1,Set(C_RESULT=${CURL(//merionet.ru/rest?num=84991234567)}) same => n,GotoIf($["${C_RESULT}" = "1"]?res1:res2) same => n(res1),Verbose(CURL Result = 1) same => n,Hangup same => n(res2),Verbose(CURL Result != 1) same => n,Hangup Указанный код отправит GET - запрос на rest, в котором в параметре num передаст номер звонящего (можно указать соответствующую переменную диалплана Asterisk). В случае, если результатом выполнения запроса будет 1, то мы перейдем к выполнению шага res1, а противоположном случае, res2. res_json для обработки JSON ответов На самом деле, для API, является обычной практикой возврат ответа в виде JSON. Поэтому, нам следует преобразовать эти данные перед обработкой их. Для этого мы воспользуемся модулем res_json из JSON библиотеки, который создан для расширения базовых возможностей диалплана с точки зрения обработки JSON. Почитайте материал об установке данного модуля по этой ссылке. exten => _X.,1,Set(C_RESULT=${CURL(//merionet.ru/rest.json)}) same => n,Set(result=${JSONELEMENT(C_RESULT, result/somefield)}) same => n,GotoIf($["${result}" = "1"]?res1:res2) same => n(res1),Verbose(CURL Result = 1) same => n,Hangup same => n(res2),Verbose(CURL Result != 1) same => n,Hangup Для теста, создайте у себя на web – сервере файл rest.json со следующим содержанием: { "result": { "somefield": 1 } }
img
Подключив SIP – транк к нашему Asterisk, следующим шагом необходимо настроить маршрутизацию вызова. Как это сделать исходящие и входящие маршруты во FreePBX 13 расскажем в сегодняшней статье: Маршрутизация вызова является важнейшей задачей в настройке офисной АТС. В настройках входящей маршрутизации, как правило, компании реализуют свои бизнес процессы – направляют вызовы с определенных номеров на IVR, c других номеров на Ring Group (группы вызова), а третьи напрямую на ответственного менеджера. При исходящей маршрутизации, можно учитывать направление вызова, например, если у вас 2 провайдера IP – телефонии, и один из них дает наилучшую цену для звонков в Сибирь, а другой для звонков на Урал. Пошаговое видео Исходящие маршруты Начнем с настройки исходящей маршрутизации во FreePBX 13. Для этого перейдем во вкладку Connectivity → Outbound Routes Открываем интерфейс настройки на первичной вкладке Route Settings. Давайте разберемся, что можно здесь настроить: Route Name - Имя маршрута. Рекомендуем записывать названия по номеру телефона – это позволяет быстрее ориентироваться в настроенных маршрутах. Route CID - В данном поле можно ввести CallerID для этого маршрута, т.е номер звонящего, который мы будем отправлять в сторону провайдера. Важно отметить, что данный CID является менее приоритетным, чем CID настроенный на SIP – транке и правилах Ring Group, Follow Me. Override Extension - Yes/No: Если выбрано значение Yes, то настроенный в параметрах экстеншена Outbound CID будет игнорироваться Route Password - Данная настройка позволяет запрашивать у пользователя пароль, чтобы позвонить через данный маршрут. Это достаточно полезная опция, при звонках зарубеж. Route Type - Выбрать тип маршрута: Аварийный (Emergency) или Корпоративный (Intra-Company) Аварийный (Emergency): Набор экстренных служб и прочих Корпоративный (Intra-Company): В данном случае будет сохранена информация Caller ID в настройках Extension Music On Hold - Музыка ожидания на маршруте. Для различных направлений звонка, например, можно делать какое-либо звуковое сообщение на нативном для направления языке. Time Group - Временная группа. Если отмечено, то этот маршрут будет использоваться только в указанное в настройках Time Group времени. Route Position - Во FreePBX 13, как и в других версиях используется приоритетность маршрутов в зависимости от его позиции. В данном пункте можно выбрать позицию маршрута относительно других. Trunk Sequence for Matched Routes - Последовательность SIP – транков для отправления вызова в сторону провайдера. Если первый транк не работает, вызов будет отправлен во второй и так далее. Optional Destination on Congestion - Если вызов не может состоять по причине неработоспособности SIP – транков, то можно отправить вызов, например, на звуковое сообщение «В настоящее время все линии недоступны. Обратитесь в техническую поддержку» Отлично, мы разобрались со вкладкой Route Settings, теперь перейдем ко вкладке Dial Patterns, в которой мы будем определять формат набора номера. Вот как выглядит типичная настройка на маршруте: Давайте разбираться более подробно: Шаблон набора номера (Dial Pattern) – это уникальный набор цифр, который позволяет отправить вызов в нужный SIP – транк. Если шаблон совпадает, то вызов отправляется через SIP – транк в сторону провайдера. Шаблон набора номера имеет 4 поля настройки: Prepend, Prefix, Match Pattern и CallerID. Формат такой: (prepend) prefix | [ match pattern / caller ID ] Шаблон Описание X Любое целое число от 0 до 9 Z Любое целое число от 1 до 9 N Любое целое число от 2 до 9 [#####] Любое целое число в скобка. Например, перечисление – [1.2.7], или диапазон чисел –[1.2.6-9], в который попадают числа 1,2,6,7,8,9 .(точка) Любой набор символов Теперь давайте разберемся с полями, которые доступны для заполнения: Prepend - Данная часть будет добавлена к номеру, перед отправкой в SIP – транк в случае совпадения шаблона. Prefix - Префикс – это часть шаблона, которая будет удалена Match Pattern - Набранный номер. ВАЖНО: Asterisk ищет совпадения сопоставляя поле Prefix и Match Pattern. CallerID - Данный звонок будет выполнен только в случае, если звонок инициирован с указанного CallerID. В данном поле можно использовать шаблоны. Полезно, если компания имеет несколько офисов с нумерацией виду 1XXX, 2XXX и так далее. Теперь наш маршрут готов. Мы можем совершать исходящие вызовы. Но как настроить входящую маршрутизацию во FreePBX 13? Перейдем во вкладку Connectivity → Inbound Routes Входящие маршруты Самым главным пунктом в настройке входящего маршрута является DID Number. Данный параметр вы получаете от вашего провайдера, и, как правило, он совпадает с самим подключаемым номером. Даем имя нашему входящему маршруту – чтобы не путаться, мы советуем так же дать имя в соответствие с номером. Далее, самое главное – поле Set Destination. Выбираем назначение для нашего звонка. Это может быть как IVR, проверка времени, Ring Group или что - угодно На этом настройка маршрутизации во FreePBX13 завершена
img
Возможно немногие знают, но у роутеров MikroTik есть графическая составляющая, которая позволяет визуализировать много полезной информации. Инструмент Graphing позволяет отслеживать показатели производительности роутера MikroTik и выводить их в наглядные графики. Можно строить графики для: Текущих показаний напряжения и температуры роутера; Показателей производительности (загрузка памяти, CPU, использование дискового пространства); Трафика, проходящего через интерфейсы. Трафика, ограниченной скорости (Simple Queues). Инструмент Graphings состоит из двух частей - первая его часть отвечает за сбор необходимой информации, а вторая - за её отображение в графическом виде через web-интерфейс или WinBox. Графики будут доступны, если набрать в браузере http://*IP_адрес_роутера/graphs/ или же выбрать Graphs на станице авторизации. Для того, чтобы была возможность просматривать графики в web-интерфейсе, необходимо, чтобы в IP → Services был включен сервис www (порт 80), только не надо убедитесь, что доступ к этому порту был только у тех, кому это необходимо. Правильно настройке Firewall! Также, после настройки графики можно будет посмотреть в WinBox в разделе Tools → Graphing С помощью инструмента можно настроить какая именно информация должна отображаться на графиках. Через терминал конфигурация осуществляется с помощью команды: /tools graphings Здесь можно настроить параметры: store-every - как часто записывать собранную информацию; page-refresh - как часто обновлять web-страничку с графиками. Чтобы настроить на каком интерфейсе нужно собирать информацию о пропускной способности для построения графиков, нужно ввести команду: /tool graphing interface Можно задать следующие параметры: allow-address - диапазон IP адресов, с которых разрешено просматривать данные графики (по умолчанию – 0.0.0.0/24, то есть ограничений нет); comment - описание; disabled - активация отображения графиков с информацией о пропускной способности интерфейсов (no – включена, yes - выключена); interface - указывает с каких интерфейсов собирать информацию для построения графиков (по умолчанию – all, то есть со всех интерфейсов); store-on-disk - указывает хранить ли собранную информацию на системном диске. Для того, чтобы настроить отображение об работающих ограничениях скорости (Simple Queues) введите команду: /tool graphing queue Здесь для настройки доступны следующие параметры: allow-address - диапазон IP адресов, с которых разрешено просматривать данные графики (по умолчанию – 0.0.0.0/24, то есть ограничений нет); allow-target - указывает открывать ли доступ к просмотру графика адресов указанных в Simple Queue; comment - описание; disabled - активация отображения графиков с информацией о пропускной способности интерфейсов (no – включена, yes - выключена); simple-queue - указывает какие настройки ограничения скорости (Simple Queues) мониторить (по умолчанию – all, то есть все); store-on-disk - указывает хранить ли собранную информацию на системном диске. Наконец, для настройки отображения желаемой информации о показателях производительности роутера, используем команду: /tool graphing resource Здесь для настройки доступны следующие параметры: allow-address - диапазон IP адресов, с которых разрешено просматривать данные графики (по умолчанию – 0.0.0.0/24, то есть ограничений нет); comment - описание; disabled - активация отображения графиков с информацией о пропускной способности интерфейсов (no – включена, yes - выключена); store-on-disk - указывает хранить ли собранную информацию на системном диске. Теперь давайте рассмотрим пример настройки в WinBox. Для этого откроем Tools → Graphing и настроим отображение графиков использования интерфейсов и графиков показателей производительности роутера: Теперь графики будут доступны во вкладке Interface Graphs и Resource Graphs Ну и конечно же теперь эти же графики доступны в более развернутом виде через web-интерфейс:
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59