О Kamailio SIP-сервере

О Kamailio SIP-сервере

Kamailio® (преемник бывшего OpenSER и SER) – это SIP-сервер с открытым исходным кодом, выпущенный под GPL, способный обрабатывать тысячи вызовов в секунду. Kamailio можно использовать при построении больших VoIP-платформ с обработкой задач в реальном времени – WebRTC, обмена мгновенными сообщениями и других приложений. Кроме того, его можно легко использовать в качестве расширения шлюзов SIP-PSTN, систем PBX или медиа-серверов, таких как Asterisk™, FreeSWITCH™ или SEMS.

Среди основных функций:

  • Асинхронный TCP, UDP и SCTP, безопасная связь через TLS для VoIP (голос, видео, текст);
  • Поддержка WebSocket для WebRTC;
  • IPv4 и IPv6;
  • Простой мгновенный обмен сообщениями и присутствие со встроенным сервером XCAP и ретранслятором MSRP;
  • Асинхронные операции;
  • Расширения IMS для VoLTE;
  • ENUM;
  • DID маршрутизация с выбором направления (по наименьшей стоимости);
  • Балансировка нагрузки;
  • Прохождение маршрутизации;
  • accounting, authentication and authorization;
  • поддержка многих бэкэнд-систем, таких как MySQL, Postgres, Oracle, Radius, LDAP, Redis, Cassandra, MongoDB, Memcached;
  • Json и интерфейс управления XMLRPC, мониторинг SNMP.
Некоторые из возможностей, которые предлагает Kamailio®:
  • Надежный и эффективный SIP (RFC3261) серверный вариант;
  • Registrar server;
  • Location server;
  • Proxy server;
  • SIP Application server;
  • Redirect server.

Гибкость:

  • Подходит для встроенных устройств – бинарный файл малогабаритный, функциональность может быть разделена / добавлена ​​через модули.
  • Интерфейс модуля plug & play – возможность добавления новых расширений без воздействия на ядро системы, что обеспечивает большую стабильность компонентов ядра;
  • Модульная архитектура – ядро, внутренние библиотеки и интерфейс модуля для расширения функциональности сервера;
  • Впечатляющий репозиторий – в общей сложности более 150 модулей включены в Kamailio;

Возможности маршрутизации SIP:

  • Отслеживание состояния обработки SIP Proxy;
  • Последовательное и параллельное форсирование;
  • Поддержка обхода NAT для трафика SIP и RTP;
  • Балансировка нагрузки со многими алгоритмами распределения и поддержкой отказа;
  • Гибкая маршрутизация;
  • Отказоустойчивость маршрутизации;
  • Репликация для High Availability (HA)

Транспортные протоколы:

  • Поддержка UDP, TCP, TLS и SCTP;
  • IPv4 и IPv6;
  • Шлюз транспортного уровня (IPv4 – IPv6, UDP – TLS, aso);
  • Многоточечное и многопоточное SCTP;
  • WebSocket для WebRTC.

Асинхронная обработка:

  • Асинхронная обработка TCP;
  • Обработка асинхронного SIP-сообщения;
  • Система очередей асинхронных межпроцессных сообщений;
  • Распределенная очередь сообщений;

Безопасность:

  • Дайджест-проверка подлинности пользователя SIP;
  • Авторизация через ACL или членство в группе;
  • IP аутентификация;
  • Поддержка TLS для сигнализации SIP;
  • Прозрачная обработка SRTP для безопасного звука;
  • Поддержка расширений доменных имен TLS;
  • Аутентификация и авторизация для базы данных (MySQL, PostgreSQL, UnixODBC, BerkeleyDB, Oracle, текстовые файлы), RADIUS и DIAMETER.

IP и DNS:

  • Поддержка запросов SRV и NAPTR DNS;
  • SRV DNS failover;
  • Поддержка DNSsec;
  • Поддержка ENUM;
  • Внутренняя система кэширования DNS – избегайте блокировки DNS;
  • IP уровень черных списков;
  • Многопользовательская и многодоменная поддержка;
  • Скрытие топологии – скрыть IP-адреса в заголовках SIP для защиты вашей сетевой архитектуры;

Accounting:

  • Учет на основе событий;
  • Настраиваемые данные данных учета;
  • Многопользовательские вызовы;
  • Хранение в базе данных, радиус или Diameter.

Файлы конфигурации:

  • Язык сценариев для файла конфигурации. С синтаксисом, подобным языкам сценариев, конфигурация предлагает мощный и гибкий способ развертывания пользовательских SIP-сервисов;
  • Псевдо-переменные для доступа и управления частями сообщений и атрибутов SIP, специфичных для пользователей и сервера;
  • Преобразования для изменения существующих псевдопеременных, доступа к только требуемым частям информации;
  • Более 1000 параметров, переменных и функций, экспортированных в файл конфигурации;
  • Среда выполнения – во избежание перезапуска сервера SIP при необходимости изменения параметров конфигурации.

Внешнее взаимодействие:

  • Интерфейс управления RPC – через XMLRPC, JSONRPC, UDP или TCP;
  • Разъемы RabbitMQ и NSQ;
  • SIP SIMPLE Presence Server;
  • Возможности клиента XCAP;
  • Встроенный сервер XCAP;
  • Поддержка присутствия DialogInfo – SLA / BLA;
  • Мгновенное сообщение;
  • Встроенное реле MSRP.

Мониторинг и устранение проблем:

  • SNMP – интерфейс к Simple Network Management Protocol;
  • Пошаговый отладчик конфигурационного файла;
  • Дистанционное управление через XMLRPC;
  • Внутренняя статистика экспортируется через RPC и SNMP;
  • Гибкая система регистрации сообщений об ошибках и сообщениях об ошибках – регистрирует пользовательские сообщения, включая любой заголовок или псевдо-переменную, а также часть структуры сообщений SIP.

API расширяемость:

  • Интерфейс программирования Perl – встройте расширения, написанные на Perl
  • Java SIP Servlet Application Interface – пишите Java SIP Servlets, чтобы расширить ваши VoIP-сервисы и интегрироваться с веб-сервисами
  • Интерфейс программирования Lua
  • Интерфейс программирования JavaScript
  • Интерфейс программирования управляемого кода (C #)
  • Интерфейс программирования Python
  • Интерфейс программирования Java
  • Общий API событий через TCP-соединения

Множественные базы данных:

  • (MySQL, PostgreSQL, SQLite, UnixODBC, BerkeleyDB, Oracle, текстовые файлы) и другие типы баз данных, которые имеют драйверы unixodbc;
  • В то же время могут использоваться разные серверы (например, учет в Oracle и авторизация против MySQL);
  • Коннекторы для модулей Memcached, Redis, MongoDB и Cassandra no-SQL

Взаимосвязанность:

  • Прямое соединение с шлюзами PSTN
  • Шлюз к sms или xmpp и другим службам IM
  • совместимость с устройствами с поддержкой SIP и такими приложениями, как SIP-телефоны (Snom, Cisco и т. д.), медиасерверы (Asterisk, FreeSwitch и т. д.)

IMS:

  • поддержка diameter и authentication
  • I-CSCF, P-CSCF, S-CSCF
  • QOS, ISC

Разное:

  • CPL – язык обработки вызовов (RFC3880);
  • Внутренняя система общего кэширования;
  • Коннектор базы данных Redis NoSQL;
  • CLI – kamctl и sercmd;
  • Интерфейс веб-управления: Siremis;
  • SIP-T и SIP-I;
  • Музыка в очереди ожидания
  • Сжатие / декомпрессия тела сообщения (gzip-deflate)
  • Синтаксический анализатор ss7 для конвертера JSON
  • Обширная документация для администраторов и разработчиков
Масштабируемость:
  • Kamailio может работать на встроенных системах с ограниченными ресурсами – производительность может составлять до сотни вызовов в секунду;
  • Используемый как балансировщик нагрузки, Kamailio может обрабатывать более 5000 вызовов в секунду;
  • На системах с памятью 4 ГБ Kamailio может обслуживать более 300 000 пользователей;
  • Система может легко масштабироваться, добавляя больше серверов Kamailio;
  • Kamailio может использоваться на географических распределенных VoIP-платформах;
  • До миллиона правил маршрутизации;
  • Простой переход на другой ресурс и резервирование