По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Привет! Мы продолжаем рассказывать про OpenScape Voice и в этой статье расскажем про Deployment Service или DLS.
Сервер DLS предоставляет администратору возможность централизованного управления настройками телефонов и программных клиентов. При помощи DLS обеспечивается автоматизированное подключение телефонов к OpenScape Voice.
Подключение к консоли управления DLS
Для этого переходим во вкладку Configuration → Device Management, либо во вкладку Configuration → OpenScape Voice → General → Deployment Servers.
Для добавления нового сервера нажимаем кнопку Add и во вкладке General указываем название и IP адрес сервера, а во вкладке Advanced Settings указываем данные для аутентификации (порт, протокол, логин и пароль). Уже добавленные сервера находятся в таблице ниже. Для перехода в консоль управления DLS нажимаем на иконку в столбце DLS Management Panel.
Регистрация телефонов на сервере DLS
Для того чтобы работать с телефонами их нужно зарегистрировать, а для этого им необходимо сообщить IP адрес сервера DLS. Регистрация происходит автоматически при первом обращении телефона к серверу. Существует несколько способов настройки IP-адреса DLS на телефоне: получение IP адреса по DHCP (используются опции 43 Vendor Specific Info или 60 Vendor Class), поиск и регистрация телефона с DLS и настройка IP адреса из меню администратора на телефоне.
Поиск и регистрация телефона с сервера DLS
Перейдем во вкладку Deployment Service - IP Devices → IP Device Interaction → Scan IP Devices и нажмем New для того чтобы добавить конфигурацию нового сканера.
В строке IP Scanner укажем название для создаваемого сканера, а во вкладке IP Ranges укажем диапазон IP адресов и порт для сканирования (8085). Для одного сканера можно создать несколько зон поиска.
Во вкладке Configuration ставим галочку в пункте Send DLS address и прописываем IP адрес и порт в полях ниже. Нажимаем Save, после чего настройка сохраняется в базе для дальнейшего использования.
После произведенных действий нажимаем внизу на кнопку Scan IP Device для запуска сканера и ставим галочки в пунктах Scan IP Devices и Register IP Devices. Тут же выбираем, будет ли проводится повторная регистрация или же будут зарегистрированы только новые устройства. Затем нажимаем OK и ждем пока сканер закончит свою работу. Результаты поиска можно посмотреть во вкладке Scan Results.
Настройка IP адреса DLS из меню телефона
Также можно вручную указать IP адрес DLS сервера на самом телефоне. Заходим на его веб-интерфейс, и переходим во вкладку Administrator Pages → Network → Update Service (DLS) и указываем IP адрес и TCP порт, после чего нажимаем Save и наш телефон узнает о DLS.
В 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}
Список звуков
Всем привет! Сегодня в статье мы расскажем про настройку Point-to-Point GRE VPN туннелей на оборудовании Cisco и о том, как сделать их защищенными при помощи IPsec. Generic Routing Encapsulation (GRE) - это протокол туннелирования, разработанный компанией Cisco, который позволяет инкапсулировать широкий спектр протоколов сетевого уровня в point-to-point каналах.
Туннель GRE используется, когда пакеты должны быть отправлены из одной сети в другую через Интернет или незащищенную сеть. В GRE виртуальный туннель создается между двумя конечными точками (маршрутизаторами Cisco), а пакеты отправляются через туннель GRE.
Важно отметить, что пакеты, проходящие внутри туннеля GRE, не шифруются, поскольку GRE не шифрует туннель, а инкапсулирует его с заголовком GRE. Если требуется защита данных, IPSec должен быть настроен для обеспечения конфиденциальности данных - тогда GRE-туннель преобразуется в безопасный VPN-туннель GRE.
На приведенной ниже схеме показана процедура инкапсуляции простого незащищенного пакета GRE, проходящего через маршрутизатор и входящего в туннельный интерфейс:
Хотя многие могут подумать, что туннель GRE IPSec между двумя маршрутизаторами похож на VPN-соединение IPSec между сайтами, это не так. Основное отличие состоит в том, что туннели GRE позволяют multicast пакетам проходить через туннель, тогда как IPSec VPN не поддерживает multicast пакеты.
В больших сетях, где необходимы протоколы маршрутизации, такие как OSPF, EIGRP, туннели GRE - ваш лучший выбор. По этой причине, а также из-за того, что туннели GRE гораздо проще в настройке, инженеры предпочитают использовать GRE, а не IPSec VPN.
В этой статье объясняется, как создавать простые незащищенные (unprotected) и безопасные (IPSec encrypted) туннели GRE между конечными точками. Мы объясним все необходимые шаги для создания и проверки туннеля GRE (незащищенного и защищенного) и настройки маршрутизации между двумя сетями.
Создание Cisco GRE туннеля
Туннель GRE использует интерфейс «туннель» - логический интерфейс, настроенный на маршрутизаторе с IP-адресом, где пакеты инкапсулируются и декапсулируются при входе или выходе из туннеля GRE.
Первым шагом является создание нашего туннельного интерфейса на R1:
R1(config)# interface Tunnel0
R1(config-if)# ip address 172.16.0.1 255.255.255.0
R1(config-if)# ip mtu 1400
R1(config-if)# ip tcp adjust-mss 1360
R1(config-if)# tunnel source 1.1.1.10
R1(config-if)# tunnel destination 2.2.2.10
Все туннельные интерфейсы участвующих маршрутизаторов всегда должны быть настроены с IP-адресом, который не используется где-либо еще в сети. Каждому туннельному интерфейсу назначается IP-адрес в той же сети, что и другим туннельным интерфейсам.
В нашем примере оба туннельных интерфейса являются частью сети 172.16.0.0/24.
Поскольку GRE является протоколом инкапсуляции, мы устанавливаем максимальную единицу передачи (MTU - Maximum Transfer Unit) до 1400 байт, а максимальный размер сегмента (MSS - Maximum Segment Size) - до 1360 байт. Поскольку большинство транспортных MTU имеют размер 1500 байт и у нас есть дополнительные издержки из-за GRE, мы должны уменьшить MTU для учета дополнительных служебных данных. Установка 1400 является обычной практикой и гарантирует, что ненужная фрагментация пакетов будет сведена к минимуму.
В заключение мы определяем туннельный источник, который является публичным IP-адресом R1, и пункт назначения - публичный IP-адрес R2.
Как только мы завершим настройку R1, маршрутизатор подтвердит создание туннеля и сообщит о его состоянии:
R1#
*May 21 16:33:27.321: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up
Поскольку интерфейс Tunnel 0 является логическим интерфейсом, он останется включенным, даже если туннель GRE не настроен или не подключен на другом конце.
Далее мы должны создать интерфейс Tunnel 0 на R2:
R2(config)# interface Tunnel0
R2(config-if)# ip address 172.16.0.2 255.255.255.0
R2(config-if)# ip mtu 1400
R2(config-if)# ip tcp adjust-mss 1360
R2(config-if)# tunnel source 2.2.2.10
R2(config-if)# tunnel destination 1.1.1.10
Интерфейс туннеля R2 настроен с соответствующим IP-адресом источника и назначения туннеля. Как и в случае с R1, маршрутизатор R2 сообщит нам, что интерфейс Tunnel0 работает:
R2#
*May 21 16:45:30.442: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up
Маршрутизация сетей через туннель GRE
На этом этапе обе конечные точки туннеля готовы и могут «видеть» друг друга. Echo icmp от одного конца подтвердит это:
R1# ping 172.16.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
R1#
Опять же, этот результат означает, что две конечные точки туннеля могут видеть друг друга. Рабочие станции в любой сети по-прежнему не смогут достичь другой стороны, если на каждой конечной точке не установлен статический маршрут:
R1(config)# ip route 192.168.2.0 255.255.255.0 172.16.0.2
На R1 мы добавляем статический маршрут к удаленной сети 192.168.2.0/24 через 172.16.0.2, который является другим концом нашего туннеля GRE. Когда R1 получает пакет для сети 192.168.2.0, он теперь знает, что следующим переходом является 172.16.0.2, и поэтому отправит его через туннель.
Та же конфигурация должна быть повторена для R2:
R2(config)# ip route 192.168.1.0 255.255.255.0 172.16.0.1
Теперь обе сети могут свободно общаться друг с другом через туннель GRE.
Защита туннеля GRE с помощью IPSec
Как упоминалось ранее, GRE является протоколом инкапсуляции и не выполняет шифрование. Создание туннеля GRE точка-точка без какого-либо шифрования чрезвычайно рискованно, поскольку конфиденциальные данные могут быть легко извлечены из туннеля и просмотрены другими.
Для этого мы используем IPSec для добавления уровня шифрования и защиты туннеля GRE. Это обеспечивает нам необходимое шифрование военного уровня и спокойствие. Наш пример ниже охватывает режим туннеля GRE IPSec.
Настройка шифрования IPSec для туннеля GRE (GRE over IPSec)
Шифрование IPSec включает в себя два этапа для каждого маршрутизатора. Эти шаги:
Настройка ISAKMP (ISAKMP Phase 1)
Настройка IPSec (ISAKMP Phase 2)
Настройка ISAKMP (ISAKMP Phase 1)
IKE существует только для установления SA (Security Association) для IPsec. Прежде чем он сможет это сделать, IKE должен согласовать отношения SA (ISAKMP SA) с партнером.
Для начала, мы начнем работать над R1.
Первым шагом является настройка политики ISAKMP Phase 1:
R1(config)# crypto isakmp policy 1
R1(config-isakmp)# encr 3des
R1(config-isakmp)# hash md5
R1(config-isakmp)# authentication pre-share
R1(config-isakmp)# group 2
R1(config-isakmp)# lifetime 86400
Приведенные выше команды определяют следующее (в указанном порядке):
3DES - метод шифрования, который будет использоваться на этапе 1 Phase 1
MD5 - алгоритм хеширования
Authentication pre-share - использование предварительного общего ключа в качестве метода проверки подлинности
Group 2 - группа Диффи-Хеллмана, которая будет использоваться
86400 - время жизни ключа сеанса. Выражается в килобайтах или в секундах. Значение установлено по умолчанию.
Далее мы собираемся определить Pre Shared Key (PSK) для аутентификации с партнером R1, 2.2.2.10:
R1(config)# crypto isakmp key merionet address 2.2.2.10
PSK ключ партнера установлен на merionet. Этот ключ будет использоваться для всех переговоров ISAKMP с партнером 2.2.2.10 (R2).
Создание IPSec Transform (ISAKMP Phase 2 policy)
Теперь нам нужно создать набор преобразований, используемый для защиты наших данных. Мы назвали это TS:
R1(config)# crypto ipsec transform-set TS esp-3des esp-md5-hmac
R1(cfg-crypto-trans)# mode transport
Вышеуказанные команды определяют следующее:
SP-3DES - метод шифрования
MD5 - алгоритм хеширования
Установите IPSec в транспортный режим.
Наконец, мы создаем профиль IPSec для соединения ранее определенной конфигурации ISAKMP и IPSec. Мы назвали наш профиль IPSec protect-gre:
R1(config)# crypto ipsec profile protect-gre
R1(ipsec-profile)# set security-association lifetime seconds 86400
R1(ipsec-profile)# set transform-set TS
Теперь мы готовы применить шифрование IPSec к интерфейсу туннеля:
R1(config)# interface Tunnel 0
R1(config-if)# tunnel protection ipsec profile protect-gre
Ну и наконец пришло время применить ту же конфигурацию на R2:
R2(config)# crypto isakmp policy 1
R2(config-isakmp)# encr 3des
R2(config-isakmp)# hash md5
R2(config-isakmp)# authentication pre-share
R2(config-isakmp)# group 2
R2(config-isakmp)# lifetime 86400
R2(config)# crypto isakmp key merionet address 1.1.1.10
R2(config)# crypto ipsec transform-set TS esp-3des esp-md5-hmac
R2(cfg-crypto-trans)# mode transport
R2(config)# crypto ipsec profile protect-gre
R2(ipsec-profile)# set security-association lifetime seconds 86400
R2(ipsec-profile)# set transform-set TS
R2(config)# interface Tunnel 0
R2(config-if)# tunnel protection ipsec profile protect-gre
Проверка GRE over IPSec туннеля
Наконец, наш туннель был зашифрован с помощью IPSec, предоставляя нам столь необходимый уровень безопасности. Чтобы проверить и проверить это, все, что требуется, это попинговать другой конец и заставить туннель VPN IPSec подойти и начать шифрование/дешифрование наших данных:
R1# ping 192.168.2.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/4 ms
Используя команду show crypto session, мы можем быстро убедиться, что шифрование установлено и выполняет свою работу:
R1# show crypto session
Crypto session current status
Interface: Tunnel0
Session status: UP-ACTIVE
Peer: 2.2.2.10 port 500
IKE SA: local 1.1.1.10/500 remote 2.2.2.10/500 Active
IPSEC FLOW: permit 47 host 1.1.1.10 host 2.2.2.10
Active SAs: 2, origin: crypto map
Поздравляю! Мы только что успешно создали Point-to-point GRE over IPSec VPN туннель между двумя маршрутизаторами Cisco.