Разрабатывается с 2001-го года (продукт SER, далее с 2008-го года под названием Kamailio)
Обработка тысяч одновременных соединений и вызовов
Отказоустойчивость "из коробки"
Масштабируемость "из коробки"
Kamailio - это стандарт де-факто для построения больших VoIP-сетей с использованием OpenSource ПО
GPL - Open Source продукт, со 100% открытым исходным кодом
Множество схем использования под совершенно разные задачи
KAMAILIO
- ЭТО:
О KAMAILIO
ВОЗМОЖНОСТИ, КОТОРЫЕ РЕАЛИЗУЮТСЯ С ПОМОЩЬЮ KAMAILIO
О KAMAILIO
Масштабируемость
Kamailio может запускаться на встраиваемых система с ограниченным количеством ресурсов: производительность может измеряться в тысячах соединений в секунду
Используется как балансировщик нагрузки в Stateless-режиме, Kamailio может обрабатывать более 5000 вызовов в секунду
На системах с 4GB ОЗУ, Kamailio может обслуживать более 300.000 абонентов одновременно
Система может легко и быстро масштабироваться путем добавления новых серверов Kamailio
Kamailio может использоваться в географически распределенных VoIP-платформах
Модуль LCR может поддерживать миллионы правил маршрутизации
Гибкость
Компактный размер: пригоден для встраиваемых решений. Компилированный файл имеет минимальный размер, а функциональность может добавляться/исключаться через модули
Plug&Play взаимодействие модулей и ядра: возможность расширять функциональность, не затрагивая ядра системы. Это обеспечивает отличную стабильность ядра и системы в целом.
Модульная архитектура: ядро, внутренние библиотеки и интерфейсы модулей для расширения функциональности сервера
Богатый репозиторий расширений: более 150 отдельных модулей доступно для использования
Надежный и производительный SIP (RFC3261) Server
Сервер регистрации
Сервер определения местоположения
Сервер SIP-Proxy
Сервер SIP-приложений
Сервер переадресаций
Транспортный уровень
Поддержка соединений по UDP, TCP, TLS и SCTP
IPv4 и IPv6
Проксирование и шлюзование между протоколами: IPv4 в IPv6, UDP в TLS и т.д.
SCTP multi-homing and multi-streamingSCTP
Поддержка WebSocket для WebRTC
Возможности SIP маршрутизации
Stateless и statefull SIP-процессинг
Последовательный и параллельный форкинг
Поддержка обхода NAT для SIP и RTP трафика
Балансировка нагрузки с разными механизмами распределения и поддержкой отказоустойчивости
Гибкая LCR-маршрутизация (Less Cost Routing - маршрутизация по меньшей стоимости)
Отказоустойчивая маршрутизация
Репликация для High Availability (отказоустройчивости)
IP и DNS
Поддержка SRV-записей и NAPTR-запросов
Поддержка SRV DNS Failover
Поддержка механизма DNSSEC
Поддержка ENUM
Внутреннее кэширование DNS - защита от блокировки DNS
Черные списки на уровне IP-адресов
Multi-Homed и Multi-Domain поддержка
Сокрытие топологии: спрячьте IP-адреса в SIP-заголовках для защиты вашей сетевой архитектуры
Асинхронная обработка
Асинхронная обработка TCP
Асинхронная обработка SIP-сообщений
Асинхронная меж-процессовая система обмена сообщений с помощью очередей
Распределенная очередь сообщений
Биллинг
Событийная модель биллинга
Настраиваемые данные для биллинга
Биллинг разговора с несколькими плечами вызова
Хранение информации в Базе данных, Radius или Diameter
Предоплатная модель
Безопасные коммуникации и защита разговоров
Digest-аутентификация SIP-пользователей
Авторизация с помощью ACL(списков контроля доступа) или членства в группах
Аутентификация по IP или адресу сети
Поддержка TLS-шифрования для SIP-сигнализации
Прозрачная обработка SRTP для шифрования звука
Поддержка TLS
Аутентификация и авторизация по Базе Данных (MySQL, PostgreSQL, UnixODBC, BerkeleyDB, Oracle, текстовые файлы), RADIUS и DIAMETER
Конфигурационные файлы
Скриптовые языки программирования для конфигурационных файлов. С синтаксисом, схожим со скриптовыми языками, конфигурация предполагает мощный и гибкий способ для разработки разных SIP сервисов.
Псевдо-переменные для доступа и управления частями SIP-сообщений и аттрибутами, специфичными пользоватялем и серверу.
Механизмы управления и модифицирования существующих псевдо-переменных, позволяющие получить доступ только к желаемым частям информации
Более 1000 параметров, переменных и функций экспортируются в конфигурационный файл
Фреймворк, позволяющий обновлять конфигурацию на лету, для предотвращения перезапуска сервера при обновлении конфигурации
Мониторинг, поиск и отладка неисправностей
SIP SIMPLE сервер отображения присутствия
Отображение присутствия пользователя
Возможности XCAP клиента
Встроенный XCAP сервер
Поддержка SLA/BLA
Мгновенные сообщения (IM)
Встроенный MSRP relay
Rich Communication Services
SNMP - интерфейс для подключения к Zabbix и пр.
Пошаговый отладчик конфигурационных файлов
Экспорт внутренней статистики через RPC и SNMP
Гибкая отладка и система логгирования ошибок: логгирование кастомных сообщений, включая любые заголовки или псевдо-переменные и части SIP-сообщений
Внешние взаимодействия через
Интерфейс управления RPC - через XMLRPC, JSONRPC, UDP или TCP
RabbitMQ и NSQ соединения
IMS
Поддержка протокола DIAMETER
I-CSCF, P-CSCF, S-CSCF
charging, QOS, ISC
API для взаимодействия
Интерфейс программирования на Perl - встраивайте свои приложения, написанные на Perl
Java SIP Servlet Application Interface - пишите SIP сервлеты на Java для реализации своих VoIP-сервисовм и интеграции с Web-сервисами
LUA: интерфейс программирования на LUA
JavaScript: интерфейс программирования на JS
С#: интерфейс программирования на C#
Python: интерфейс программирования на Python
Java: интерфейс программирования на Java
Generic Event API по TCP соединениям
Множество интерфейсов для Баз Данных
Популярные базы данных (MySQL, PostgreSQL, SQLite, UnixODBC, BerkeleyDB, Oracle, текстовые файлы) и другие базы данных, которые имеют драйвера unixodbc
connections pool
разные бэкенды могут использоваться одновременно (например, биллинг в Oracle и авторизация через MySQL)
Коннекторы к Memcached, Redis, MongoDB и Cassandra no-SQL бэкендам
Стыкуемость с другими сетями
прямые подключения к шлюзам ТфОП
шлюзы в SMS или XMPP и к другим IM сервисам
Взаимодействие с SIP-совместимыми устройствами, такими как SIP-телефоны (Snom, Cisco и т.д.), Медиа Сервера (Asterisk, FreeSwitch и т.д.)
Еще
поддержка языка CPL – Call Processing Language (RFC3880)