По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
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
Для начальной настройки маршрутизатора (здесь и далее в качестве примера взяты устройства компании Cisco) нужно выполнить следующие шаги в режиме конфигурации роутера, перейти к которому можно командой configure terminal: 1. Задаем название устройства Router(config)# hostname 2. Задаем пароль для входа в привилегированный режим. Router(config)# enable secret password 3. Задаем пароль на подключение через консоль. Router(config)# line console 0 Router(config-line)# password password Router(config-line)# login 4. Задаем пароль для удаленного доступа по Telnet / SSH. Router(config-line)# line vty 0 4 Router(config-line)# password password Router(config-line)# login Router(config-line)# transport input {ssh | telnet} 5. Шифруем все пароли введенные на устройстве. Router(config-line)# exit Router(config)# service password-encryption 6. Задаем баннер, который будет выводится при подключении к устройству. В данном баннере обычно указывается правовая информация о последствиях несанкционированного подключения Router(config)# banner motd delimiter message delimiter 7. Сохраняем конфигурацию. Router(config)# end Router# copy running-config startup-config Пример базовой настройки маршрутизатора В данном руководстве на маршрутизаторе R1 из топологии ниже будет сделана первичная конфигурация: Чтобы настроить маршрутизатор вводим следующие команды: Router> enable Router# configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)# hostname R1 R1(config)# Все методы доступа к настройкам маршрутизатора должны быть защищены. Привилегированный режим EXEC дает пользователю полный доступ к устройству и его настройкам. Поэтому нужно надёжно защитить доступ к этому режиму. Следующие команды позволяют защитить доступ к пользовательскому и привилегированному режимам EXEC, включает Telnet/SSH и шифрует все пароли в конфигурации. R1(config)# enable secret class R1(config)# R1(config)# line console 0 R1(config-line)# password cisco R1(config-line)# login R1(config-line)# exit R1(config)# R1(config)# line vty 0 4 R1(config-line)# password cisco R1(config-line)# login R1(config-line)# transport input ssh telnet R1(config-line)# exit R1(config)# R1(config)# service password-encryption R1(config)# Далее сконфигурируем баннер Message of the Day. Обычно такой баннер включает в себя юридическое уведомление предупреждающее пользователей о том, что доступ к устройству разрешен только авторизованным лицам. Данный тип баннера конфигурируется следующим образом: R1(config)# banner motd # Enter TEXT message. End with a new line and the # *********************************************** WARNING: Unauthorized access is prohibited! *********************************************** # R1(config)# Настройка интерфейсов маршрутизатора На данный момент на нашем роутере выполнена первичная настройка. Так как без настроек интерфейсов роутеры не будут доступны для других устройств, далее сконфигурируем его интерфейсы. На маршрутизаторах компании Cisco бывают разные интерфейсы. Например, маршрутизатор Cisco ISR 4321 оснащен двумя гигабитными интерфейсами. GigabitEthernet 0/0/0 GigabitEthernet 0/0/1 Для настройки интерфейсов маршрутизатора нужно ввести следующие команды: Router(config)# interface type-and-number Router(config-if)# description description-text Router(config-if)# ip address ipv4-address subnet-mask Router(config-if)# ipv6 address ipv6-address/prefix-length Router(config-if)# no shutdown Как только порт включиться, на консоли выведется соответствующее сообщение. Несмотря на то, что команда description не требуется для включения интерфейса, все же рекомендуется ее использовать. Это может быть полезно при устранении неполадок в производственных сетях, предоставляя информацию о типе подключенной сети. Например, если интерфейс подключается к поставщику услуг или провайдеру услуг, команда description будет полезна для ввода внешнего соединения и контактной информации. Длина текста description составляет 240 символов. Команда no shutdown используется для включения интерфейса, это похоже на включение питания на интерфейсе. Также маршрутизатор следует подключить к другому устройству, чтобы установилась связь на физическом уровне. Пример настройки интерфейсов на маршрутизаторе В данном примере на маршрутизаторе R1 включим непосредственно подключенные порты. Для настройки портов на R1 введите следующие команды: R1> enable R1# configure terminal Enter configuration commands, one per line. End with CNTL/Z. R1(config)# interface gigabitEthernet 0/0/0 R1(config-if)# description Link to LAN R1(config-if)# ip address 192.168.10.1 255.255.255.0 R1(config-if)# ipv6 address 2001:db8:acad:10::1/64 R1(config-if)# no shutdown R1(config-if)# exit R1(config)# *Aug 1 01:43:53.435: %LINK-3-UPDOWN: Interface GigabitEthernet0/0/0, changed state to down *Aug 1 01:43:56.447: %LINK-3-UPDOWN: Interface GigabitEthernet0/0/0, changed state to up *Aug 1 01:43:57.447: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0/0, changed state to up R1(config)# R1(config)# R1(config)# interface gigabitEthernet 0/0/1 R1(config-if)# description Link to R2 R1(config-if)# ip address 209.165.200.225 255.255.255.252 R1(config-if)# ipv6 address 2001:db8:feed:224::1/64 R1(config-if)# no shutdown R1(config-if)# exit R1(config)# *Aug 1 01:46:29.170: %LINK-3-UPDOWN: Interface GigabitEthernet0/0/1, changed state to down *Aug 1 01:46:32.171: %LINK-3-UPDOWN: Interface GigabitEthernet0/0/1, changed state to up *Aug 1 01:46:33.171: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0/1, changed state to up R1(config)# Информационные сообщения говорят нам, что оба порта включены. Проверка настроек портов Для проверки настроек портов используются несколько команд. Самыми полезные из них это команды show ip interface brief и show ipv6 interface brief. R1# show ip interface brief Interface IP-Address OK? Method Status Protocol GigabitEthernet0/0/0 192.168.10.1 YES manual up up GigabitEthernet0/0/1 209.165.200.225 YES manual up up Vlan1 unassigned YES unset administratively down down R1# show ipv6 interface brief GigabitEthernet0/0/0 [up/up] FE80::201:C9FF:FE89:4501 2001:DB8:ACAD:10::1 GigabitEthernet0/0/1 [up/up] FE80::201:C9FF:FE89:4502 2001:DB8:FEED:224::1 Vlan1 [administratively down/down] unassigned R1#
img
Управление компьютерными сетями - дело непростое. В последние годы всеобщая компьютеризация вызвала огромный скачок в расширении компьютерных сетей. Это добавило работы системному администратору. Ведь если ранее были распространены небольшие сети, то добавление и настройка новых устройств, либо обновление ПО на уже находящихся требовали ручной настройки операционной системы, а то и установки на каждом из них. Это требовало времени и нервов администратора. Сейчас же, когда сети насчитывают сотни, а то и тысячи машин, ручная настройка требует либо участия многих специалистов (а это порождает проблему плохой совместимости согласно человеческому фактору, каждый админ мыслит по-своему), либо очень долгого времени, если этим будет заниматься один специалист. Такая проблема, с учетом технического прогресса, породила решение об автоматизации. На сегодняшний день существует специализированное программное обеспечение, которое позволяет присоединиться к удаленным машинам, и в автоматическом режиме произвести настройки операционной системы для корректной работы сети. Однако, как быть, если на нужных компьютерах в рамках одной сети установлены разные операционные системы? Ведь сейчас компьютеры под Linux, FreeBSD и Windows, объединенные в одну сеть - далеко не редкость. Поэтому одним из требований к управляющей программе стала кроссплатформенность. В этом случае одним из самых эффективных решений является такая программа, как Puppet. Puppet это один из самых нужных инструментов сетевого администратора. Это приложение создано специально для управления конфигурацией операционных систем внутри одной сети. Оно имеет клиент-серверную архитектуру, то есть администратор, находящийся за сервером, может отправлять данные конфигурации на периферийные машины, на которых установлена клиентская часть. На этих рабочих станциях система в автоматическом режиме сконфигурирует себя в соответствии с присланными с сервера настройками. Важным моментом является кроссплатформенность. Простота настройки и управления самыми распространенными операционными системами делает Puppet одним из самых актуальных решений по управлению компьютерными сетями на сегодняшний день. Как же работает Puppet? Разберем подробнее. Для начала, на сервер нужно установить серверную часть программы. Поскольку приложение написано на Ruby, на серверной рабочей станции обязательно должна быть установлена нужная программная среда. Серверная часть программы создана для хранения манифестов так в программной терминологии Puppet называются файлы с настройками конфигурации. В процессе работы сервер принимает обращения с клиентских машин и автоматически отсылает им обновленные файлы конфигурирования ОС для работы в сети. На клиентских компьютерах также должно быть установлено программное обеспечение Puppet, уже в виде клиентской части. Как правило, данные установочные пакеты включаются в саму операционную систему, что позволяет быстро развертывать компьютерную сеть, однако, в случае их отсутствия, придется скачивать необходимую сборку с сайта разработчика. Дополнительное удобство данного решения в том, что один администратор с помощью сервера может осуществить настройку и управление сотен и тысяч машин, объединенных в сеть. Если возникнут какие-то проблемы, то отклик с мест позволит админу быстро поправить код и устранить их. Хотя в данном случае возрастают требования к внимательности админа - одна неверно написанная строка кода конфигурации может привести к неполадкам по всей сети. Хотя, если разобраться, в данном случае можно запустить работающий манифест предыдущей сборки и восстановить все достаточно оперативно.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59