====== Описание функциональных характеристик программного обеспечения и информация, необходимая для установки программного обеспечения ====== ==== Область применения ==== ITooLabs Communications Server применяется для коммутации голосовых соединений с использованием пакетных сетей передачи данных по протоколу IP. ==== Назначение ==== ПО ITooLabs Communications Server предназначено для разработки, развертывания и эксплуатации масштабируемых систем обработки и коммутации телефонных вызовов с использованием пакетных сетей передачи данных по протоколу IP, как в качестве обособленных систем, так и в составе сетей операторов телефонной связи. ==== Функциональные возможности ==== ITooLabs Communications Server предоставляет масштабируемый кластер, включающий в себя следующие подсистемы: * базу данных реального времени; подсистему коммутации телефонных вызовов, совместимую с требованиями рекомендаций ETSI TS 124.229 (3GPP TS 24.29) v15 и выше; * сервер приложений, включающий в себя интерпретатор языка программирования ECMAScript v6; HTTP сервер; * WebSocket сервер; * подсистему коммутации, транскодирования и записи, голосовых потоков, совместимую с требованиями спецификаций 3GPP, а также WebRTC. ITooLabs Communications Server предоставляет разработчику телекоммуникационных систем обширный высокоуровневый программный интерфейс, позволяющий эффективно реализовывать сложную бизнес-логику обработки телефонных вызовов, а также логику обработку клиентских HTTP запросов для реализации пользовательских интерфейсов. ==== Поддерживаемые аппаратные платформы: ==== * Intel X86-64, * IBM z/Series (требует также наличие узлов Intel X86-64 для обработки медиа потоков). ==== Поддерживаемые операционные системы: ==== * Debian GNU/Linux 9 и выше, * Red Hat Enterprise Linux 8.0 и выше, * Fedora Linux 28 и выше, * IBM z/LinuxONE. ==== Поддерживаемые среды виртуализации: ==== * Linux KVM, * VMware ESXi, * IBM z/VM. ==== Типовая схема включения узлов ==== {{:pasted:20221114-175610.png?nolink_500}} ==== Требования к первоначальной подготовке оборудования и установке ОС ==== При создании виртуальных машин необходимо обеспечить следующую конфигурацию оборудования: * Операционная система Linux Debian последней стабильной версии. * Файловая система ОС BTRFS. * Примечание: Дополнительный диск будет задействован в ходе установки сервисного ПО. * Конфигурация Standard + SSH Server (без графических оболочек, web- и print-служб). Для разметки диска при установке на физический сервер необходимо: * Для ОС создать отдельный раздел /boot, имеющий размер около 500 Мб. * Обеспечить файловую систему для хранения ядра. * Примечание: Достаточно ext2. * Создать отдельный раздел root ("/"), имеющий размер 10 Гб. * Обеспечить файловую систему btrfs. ==== Требования к виртуальным машинам ==== * Опция Latency Sensitivity должна быть включена для VM centrex-* (fe/be/mg) в значении "High" (минимум для MG) (VMware). * Обеспечена поддержка Failover для всех виртуальных машин кластера (VMware). * Существует возможность отключения резервного копирования VM средствами платформы виртуализации. * Производится резервирование ресурсов VM на хосте (Reservation cpu/memory). * Выключен механизм миграции VM между хостами при высокой загрузке узла (vMotion) (VMware). * Выделен vlan между всеми виртуальными машинами. === Установка и администрирование платформы === Каждый узел платформы доступен посредством сервиса SSH. Открытые ключи сервиса SSH хранятся в репозитории инсталляции и устанавливаются при развертывании или обновлении узла средствами ansible. Каждый узел платформы имеет имя, состоящее из кода роли узла и порядкового номера узла: {{:pasted:20221114-180103.png}} SSH сервер может безопасно пробрасывать запрос аутентификации при запуске SSH клиента в рамках аутентифицированной и защищенной сессии. Для этого необходимо, чтобы на клиентской машине выполнялся агент аутентификации по ключу (Secure Shell Key Agent). Это единственный способ подключиться к узла платформы из сессии на другом узле, поскольку авторизация по паролю принудительно отключена. Поскольку система развертывания Ansible использует SSH и SCP в процессе развертывания и обновления узлов, наличие на машине администратора SSH Key Agent является необходимым условием. ● Secure Shell Key Agent (‘ssh-agent’) обычно стартует автоматически в Linux и OS X ● Secure Shell Key Agent для Windows входит в состав клиент PuTTY и называется Pageant. Этот агент должен быть установлен и запускаться специально. === Управление конфигурациями платформы с использованием Ansible === Любые задачи по развертыванию и обновлению узлов, а также по изменению конфигурации узлов, должны выполняться посредством сервиса `ansible`, расположенного на терминальном сервисе. Ansible представляет собой программный пакет для массового управления конфигурацией и предоставляет утилиты для массового изменения конфигурационных файлов для узлов, перечисленных в файле inventory. Самый файл inventory, как и набор сценариев управления конфигурацией, представляют собой набор текстовых файлов, хранимых в репозитории системы контроля версий GIT. Следует избегать прямого изменения файлов конфигурации непосредственно на узлах, поскольку такие изменения могут быть потеряны в ходе планового изменения конфигурации средствами Ansible. Более того, рассинхронизация конфигураций отдельных узлов может приводить к авариям. Сценарии развертывания и инвентарь платформы находятся в каталоге ‘/home/admin’ каталоге на терминальном сервере. Для выполнения задач изменения конфигурации, подключитесь к терминальному серверу: {{:pasted:20221114-180236.png}} Команды Ansible требуют указания имени узла, либо имени группы узлов первым параметром. === Проверка работоспособности узла === Для проверки работоспособности узлов, используйте команду ansible ‘ping’: root@vpn1:/home/admin# ansible all –m ping ds1 | success >> { "changed": false, "ping": "pong" } ds2 | success >> { "changed": false, "ping": "pong" } ... root@vpn1:/home/admin# Для проверки работоспособности конкретного узла, используете имя узла вместо ‘all’.