По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В 2013 году, вместе с бета – релизом Asterisk 12 астериск - комьюнити был представлен новый API, который получил гордое название - ARI (Asterisk REST Interface). Что это и как им пользоваться, если вы любите php - рассказываем в статье. Зачем Asterisk нужен новый API? Все мы привыкли, что Asterisk имеет два интерфейса: Asterisk Manager Interface (AMI) и Asterisk Gateway Interface (AGI). AMI это асинхронный интерфейс, который используется для управления вызовами, инициацией звонков и всем, что попадает под определение «call control». AGI, в свою очередь, предоставляет синхронный интерфейс манипуляции одним каналом, являясь своего рода «прослойкой» между диалпланом и внешними скриптами. Важно отметить, что на время выполнения, AGI блокирует поток. В связке, оба интерфейса неплохо справляются с задачами, связанными с различного рода манипуляциями с каналами и диалпланом Asterisk. Но разработка сложного и многоуровневого приложения может стать по настоящему трудной задачей для разработчика, в которой придется задействовать AGI и AMI одновременно. Именно в этот момент на помощь приходит ARI (Asterisk REST Interface). Отметим, что ARI не заменяет AGI или AMI. Новый интерфейс позволяет разработчикам заменить управление на уровне диалплана внешними приложениями (скриптами). Тем самым, ARI упрощает жизнь разработчикам бизнес – приложений, которые используют Asterisk в качестве коммуникационной платформы. ARI дает девелоперам высокоуровневый REST интерфейс, через который доступно управление базовыми операциями Asterisk, например, такими как каналы, мосты (бриджи), конечные устройства, управление медиа – потоками, записью разговоров и так далее. Информация об этих объектах передается в асинхронном режиме событиями JSON поверх WebSocket. Только представьте: раньше, чтобы овладеть подобным набором инструментов, вам необходимо было иметь навыки программирования на C и разработать свой собственный модуль и внедрить в Asterisk. С использованием ARI, приложения могут быть написаны на вашем любимом языке, будь то Python, Ruby, PHP или JavaScript! Для удобства, ниже мы привели библиотеки и ссылки на них для различных языков программирования: Библиотека Язык программирования Ресурс ari4java Java https://github.com/l3nz/ari4java ari-py Python https://github.com/asterisk/ari-py AsterNET.ARI C#/.NET https://asternetari.codeplex.com/ node-ari-client JavaScript (node) https://github.com/asterisk/node-ari-client phpari PHP http://www.phpari.org/ Подведем итог: новый интерфейс ARI дает новые возможности не только для Asterisk комьюнити, но и для разработчиков бизнес приложений. От слов к делу, переходим к настройке. Настройка phpari Поскольку ARI это технология, базирующаяся на WebSocket, первым делом необходимо внести некоторые настройки в файл http.conf, который находится в директории /etc/asterisk/: cd /etc/asterisk/ vim http.conf Приводим файл к следующему виду: [general] enabled = yes bindaddr = 127.0.0.1 Далее, «сетапим» файл ari.conf, открыв его командой vim ari.conf: [general] enabled = yes pretty = yes [имя_вашего_пользователя] type = user read_only = no password = пароль_для_пользователя В секции [имя_вашего_пользователя], укажите юзернейм, а в секции password его соответствующий пароль. Перегружаем Asterisk: asterisk –rv core restart now Теперь мы установим phpari. Установку будем производить с помощью composer: Если у вас не установлен composer, вы можете скачать его по этой ссылке. Открываем для редактирования файл composer.json и добавляем в него следующий код: { "require": { "php": ">=5.3.9", "educoder/pest": "1.0.0", "devristo/phpws": "dev-master", "greenfieldtech-nirs/phpari": "dev-master" } } После чего запускаем команду: composer install Необходимая библиотека будет загружена. Переходим в директорию /vendor/greenfieldtech-nirs/phpari и открываем для редактирования файл phpari.ini: cd /vendor/greenfieldtech-nirs/phpari vim phpari.ini Редактируем следующим образом: [general] debug=0 logfile=console ; #если хотите логировать ARI в консоль, то оставьте данное поле без изменений. Если хотите логировать в файл, то укажите полный путь к нему; [asterisk_ari] username= имя_вашего_пользователя password= пароль_для_пользователя host=IP_адрес_Asterisk port=8088 endpoint=/ari transport=ws ; #нешфированный транспорт, wss для шифрования; Отлично. Теперь давайте соберем простенький .php скрипт, который будет показывать активные каналы. Для этого, в директории, где у нас находится скачанная библиотека phpari и соответственно директория /vendor, создаем файл ari.php и наполяем его следующей конфигурацией: require_once "vendor/autoload.php"; $ariCon = new phpari(); print_r($ariCon->channels()->channel_list()); Сохраняем. Сделайте 1 активный вызов на вашем Asterisk (например, позвонив с софтфона на софтфон). Переходим в консоль, и даем команду на выполнение этого скрипта: php ari.php Если все сделано правильно, в консоли мы увидим JSON – ответ, в котором будут переданы параметры активного канала: context, exten, caller, accountcode и прочие. Как вызвать приложение? Вызвать приложение из диалплана очень просто. Для этого, необходимо использовать Stasis: exten => _XXXX,1,Stasis(ваше_приложение) Что именно умеет ARI? Кратко поговорим о том, какие именно операции умеет совершать ARI: Метод Путь Описание GET /channels/{channelId} Получить информацию о канале с channelId POST /channels/{channelId} Создать канал с указанным channelId DELETE /channels/{channelId} Удалить (Hang Up) канал POST /channels/{channelId}/continue Возврат в диалплан (выход из скрипта) POST /channels/{channelId}/continue Возврат в диалплан (выход из скрипта) POST /channels/{channelId}/answer Ответить на канал POST /channels/{channelId}/mute "Замьютить" канал DELETE /channels/{channelId}/mute "Снять мьют" с канала POST /channels/{channelId}/hold Поставить вызов на удержание DELETE /channels/{channelId}/hold Снять вызов с удержания POST /channels/{channelId}/play Воспроизвести медиа файл POST /channels/{channelId}/record Начать запись GET /bridges Лист всех активных мостов (бриджей) GET /bridges Лист всех активных мостов (бриджей) POST /bridges/{bridgeId}/addChannel Добавить канал к бриджу POST /bridges/{bridgeId}/removeChannel Удалить канал с бриджа GET /endpoints Список оконечных устройств GET /endpoints/{tech} Список оконечных устройств, которые функционируют по указанной технологии GET /endpoints/{tech}/{resource} Детальная информация по оконечному устройству GET /sounds Список звуков GET /sounds/{soundId} Список звуков
img
По запросам наших читателей мы начинаем цикл статей про управление и настройку IP-АТС FusionPBX. Данная АТС может быть использована как обычная АТС, распределенная АТС или сервер-коллцентра, сервер голосовой почты и так далее. Базируется данная АТС на проекте FreeSWITCH. По сути, FusionPBX является очень кастомизируемым и гибким веб-интерфейсом - в точности, как и FreePBX для Asterisk. FusionPBX может быть установлена на множестве операционных систем, включая: Debian FreeBSD CentOS Вообще, данная платформа оптимизирована для работы на Debian 8, но, для нас более привычным является CentOS - на него и будем ставить. Процесс установки В первую очередь, нам понадобится «чистый» CentOS 7 Minimal или Netinstall - у нас есть подробная статья про его первоначальную установку. Вероятно, если вы используете Minimal версию, то вам также придется установить wget - используйте команду yum install wget Далее процесс установки крайне прост - нужно просто выполнить пару команд. Первая - скачиваем установочный скрипт: wget -O - https://raw.githubusercontent.com/fusionpbx/fusionpbx-install.sh/master/centos/pre-install.sh | sh Затем, переходим в директорию и запускаем скрипт: cd /usr/src/fusionpbx-install.sh/centos && ./install.sh Далее ждем завершения процесса установки. Данный скрипт установит FusionPBX, FreeSWITCH, IPTables, Fail2ban, NGINX, PHP FPM и PostgreSQL. Процесс длится около 10 минут на типичной тестовой виртуалке - 768 Мб оперативной памяти, 1 ядро с частотой 3 ГГц - ничего особенного. Опять же, скорость установки сильно зависит от вашего интернет соединения. После завершения процесса установки вам будет указан адрес вашего сервера, логин и сгенерированный сложный пароль. Однако, при моей попытке зайти на данный адрес через веб-браузер я увидел ошибку 403 - Forbidden от nginx. Как оказалось, данная проблема решается с помощью следующих команд - некая ошибка выдачи прав: chown -R root:root /usr/share/nginx/html/* chmod -R 0755 /usr/share/nginx/html/* service nginx restart Далее наконец-то заходим в веб-интерфейс и вводим логин и пароль, который был нам предоставлен установочным скриптом из предыдущего шага: Далее, мы получаем доступ к самому веб-интерфейсу - постоянным пользователям FreePBX данный GUI будет выглядеть очень непривычно. Заключение На этом данная статья подходит к своему логичному завершению - в дальнейших статьях мы покажем как настраивать транки, экстеншены, IVR и многое другое - пишите в комментариях свои пожелания, что вы бы хотели видеть в первую очередь.
img
Давайте окунемся в историю. Начиная с конца 1990-х, все коммутаторы Cisco поддерживали проприетарный протокол, который помогал инженерам настраивать одинаковые VLAN-ы на нескольких коммутаторах одновременно, и этот протокол называлcя Virtual Trunking Protocol (VTP). Мы не будем погружаться в детали работы VTP, но коснемся того, как различные режимы работы VTP влияют на коммутаторы и настройку VLAN-ов. VLAN (Virtual Local Area Network) – виртуальная локальная сеть, помогает создавать новые бродкастные домены, увеличивает сегментацию и безопасность сети. Изначально, Cisco поддерживала другой транковый протокол – Cisco Inter – Switch Link (ISL). Так как данный протокол поддерживал только создание VLAN-ов в диапазоне 1-1005, ранние версии VTP также поддерживали только данные VLAN-ы. Это означает, что если вы используете VTP версии 1 или 2 (по умолчанию), у вас будут доступны только VLAN-ы с 1 по 1001 (1002 – 1005 всегда зарезервированы). Катализатором изменений во много являлся новый стандарт IEEE 802.1Q, а именно, произошло увеличение количества поддерживаемых VLAN-ов до 4 094 штук – за исключением зарезервированных. Такая новость очень пришлась по вкусу инженерам, так как в большой сети возросшее количество VLAN-ов очень помогло в отношении гибкости и удобства. Но при этом третья версия VTP появилась только в 2009 году, поэтому многие привыкли настраивать сеть без использования VTP. Как это влияет на настройку VLAN-ов, спросите вы? Все коммутаторы Cisco поддерживают стандарт IEEE 802.1Q (некоторые так вообще поддерживают только его), некоторые свитчи поставляются с включенным VTP сервером, что означает, что из коробки они поддерживают только тысячу с небольшим VLAN-ов. Чтобы получить доступ ко всему диапазону VLAN-ов, необходимо настроить VTP версии 3, затем поставить его в прозрачный режим, либо просто выключить VTP целиком. Не все коммутаторы Cisco поддерживают 4 090 VLAN-ов. Это ограничение оборудования, как такового. При покупке оборудования из нижнего ценового диапазона, обязательно проверяйте этот момент в даташите Команды для настройки VLAN Ниже указаны основные необходимые для создания VLAN-а команды на коммутаторе: conf t - вход в режим конфигурации коммутатора; vlan %номер vlan-а% - создаие VLAN-а, нужно указать номер; name %имя vlan-а% - также VLAN-у можно присвоить имя; VLAN не будет создан, пока вы не выйдете из режима настройки VLAN-а. Однако, существует еще один способ создания VLAN-а – с помощью назначения интерфейса в VLAN. conf t - вход в режим конфигурации коммутатора; interface %номер интерфейса% - вход в конкретный интерфейс; switchport access vlan %номер vlan-а% - присваиваем VLAN интерфейсу, если VLAN не существовал, он будет автоматически создан; Как удалить VLAN? Об этом ниже: conf t - вход в режим конфигурации коммутатора no vlan %номер vlan-а% - удаление VLAN-а Для проверки созданных VLAN-ов, используйте следующие команды: show vlan show vlan brief Так как VTP по умолчанию настроен в режиме сервера на большинстве коммутаторов, создание VLAN-ов за пределами стандартного диапазона приведут к неудаче (способами, описанными выше). Ошибка вылетит только при выходе из режима конфигурации VLAN-а. Чтобы исправить данную проблему, необходимо переключить версию VTP на третью, или же режим VTP должен быть переключен на transparent или полностью выключен. Ниже показаны команды для изменения режима работы VTP. conf t - вход в режим конфигурации коммутатора; vtp mode {server / client / transparent / off} - настройка режима VTP, для использования расширенного диапазона VLAN-ов, вам нужны transparent или off; Маленькая компания переезжает в новый офис? Теперь приведем пример настройки коммутатора согласно следующему сценарию: организация переезжает в новое здание, причем отдел продаж и отдел разработки будут находиться на одном этаже. В целях экономии средств и времени, было решено, что все устройства будут подключены через единственный коммутатор. Так как у двух вышеупомянутых отделов должны быть разные права доступа, их необходимо виртуально разделить между собой. У продавцов будет VLAN 10, и все программисты будут находиться в VLAN 20. На коммутаторе все рабочие станции продавцов будут подключены к портам Fast Ethernet 0/1 – 0/12, а у программистов к портам 0/13 – 0/24. Для этого нам необходимо будет настроить каждый интерфейс в соответствии с нужным VLAN-ом. Для этого мы будет использовать команду interface range. Итак, внимание на команды: conf t - вход в режим конфигурации коммутатора; vlan 10 - создаем VLAN для команды продавцов; vlan 20 - создаем VLAN 20 для команды программистов. Обратите внимание, что даже команда сработала, несмотря на то, что вы были в режиме конфигурации VLAN-а, как будто это был глобальный режим конфигурации; interface range fastethernet0/1-12 - проваливаемся в режим конфигурации интерфейсов 1 – 12; switchport access vlan 10 - настраиваем интерфейсы для работы в VLAN 10; interface range fastethernet0/13-24 - проваливаемся в режим конфигурации интерфейсов 13 – 24; switchport access vlan 20 - настраиваем интерфейсы для работы в VLAN 20; do wr - сохраняем конфиг; Как только вы поймете основы создания VLAN-ов, вы увидите, что это совсем несложно. Основными подводными камнями являются различные режимы коммутации, но об этом мы расскажем в следующих статьях.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59