Рубрики
Kamailio

Kamailio часть 0. Установка и настройка Kamailio. Отказоустойчивая архитектура VoIP

Kamailio — это SIP сервер с открытым исходным кодом, который распространяется под лицензией GPL. Kamailio выполняет обработку SIP сообщений, умеет манипулировать SIP заголовками (добавлять, удалять, изменять), поддерживает передачу RTP через rtpengine.

Сама архитектура балансировщика состоит из модулей, которые добавляют функционал. К примеру, модуль dispatcher — позволяет обеспечить распределение нагрузки между media серверами (об в одной из следующих статей), модуль registrar позволяет обрабатывать запросы регистрации от пользователей, nathelper — для прохода NAT и.т.д.

Архитектура VoIP с использованием Kamailio и FreeSWITCH

В этой серии статей мы реализуем следующую схему:

Реализуемая схема работы с балансировщиком Kamailio

Где Kamailio будет заниматься обработкой SIP сигнализации, а также терминацией WSS трафика для WebRTC (звонки из браузера). Media сервера — занимаются обработкой непосредственно голоса и предоставлением бизнес логики (IVR, очереди, Call Center…), эти сервера могут быть реализованы через Asterisk/FreeSWITCH или любых других SoftSwitch 5 класса. В базе данных хранятся все dialplan’ы, SIP аккаунты и в принципе все данные для которых нужно долговременное хранение.

Установка Kamailio на Linux дистрибутивах (CentOS/RedHat, Debian/Ubuntu)

Для установки мы будем использовать заранее собранные пакеты от разработчиком. Этот метод наиболее оптимальный, нежели сборка из исходников по нескольким причинам:

  • Установкой занимается пакетный менеджер операционной системы, что позволяет легко обновлять/удалять пакеты
  • Нет необходимости в установке дополнительных пакетов для сборки из исходников
  • Это рекомендуемый способ установки от разработчиков

Установка на примере CentOS 7:

Необходимо выполнить последовательно следующие команды от пользователя с sudo правами:

yum -y install yum-utils 
yum-config-manager --add-repo https://rpm.kamailio.org/centos/kamailio.repo 
yum install kamailio

Для установки на других дистрибутивов, например Debian подобных, необходимо следовать инструкции с официального сайта: ссылка.

После установки, в директории /etc/kamailio/ будет автоматически создан конфигурационный файл kamailio.cfg. Рекомендую сохранить его как пример, к нему иногда придется обращаться, чтобы посмотреть как разработчики реализовали тот или иной функционал.
После того, как сохранили стандартный конфиг, например переименовав его в kamailio.cfg.example, необходимо создать пустой файл kamailio.cfg в директории /etc/kamailio.

Минимальный конфигурационный файл для запуска Kamailio

Для обеспечения минимальной работоспособности, в конфиг необходимо добавить следующие строки:

request_route {
        exit;
}

request_route — это главный маршрут через который проходит любой SIP запрос. Это значит, что получив, например SIP сообщение о регистрации, обработка этого сообщения начнется с request_route.
Как вы могли заметить, маршруты обрамляются в фигурные скобки {}. Это правило действует на все созданные маршруты.
Этот конфиг ничего не делает, на каждое SIP сообщение он выходит т.к указана функция прерывания и выхода — exit. Конец строки, как и в языке С заканчивается точкой с запятой «;».

Теперь можно запустить балансировщик с помощью systemd демона. Это делается вызовом команды:

systemctl enable --now kamailio

Заключение

В следующей статье мы начнем реализовывать схему описанную ранее и начнем с добавления обработки запросов REGISTER, а также подключим базу данных для хранения SIP аккаунтов в ней.

Если есть желание сделать пожертвование, то это можно сделать кликнув по ссылке или же нажав на кнопку. Спасибо за поддержку !)

Для зарубежных платежных систем/карт

Один ответ к “Kamailio часть 0. Установка и настройка Kamailio. Отказоустойчивая архитектура VoIP”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *