img

Установка Kamailio на Ubuntu

Дружище! В этой статье мы пошагово разберем процесс установки и первичной настройки Kamailio SIP сервера. Установку будем производить на Ubuntu 18.04/16.04. Готов приблизиться к телефонии уровня энтерпрайз, построенной на open – source? :)

icon strelka icons icons

узнай больше на курсе

Базовый курс по Asterisk
Двухнедельный онлайн курс по Asterisk от Мерион Нетворкс. 5 блоков обучения с домашним заданием. Именной сертификат с уникальным номером при успешной сдаче экзамена
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
Kamailio SIP сервер

А что есть Kamailio?

Kamailio берет начало от SER/Open SER. Откровенно говоря, Kamailio это масштабируемая и гибкая SIP – платформа, созданная как для маленьких инсталляций, так и для больших проектов уровня сервис – провайдеров. Продукт написан на C и работает на Linux/Unix машинах. Kamailio используется в связке с медиа – сервером (RTP потоки и данные, например, Asterisk) и обеспечивает такие фичи как:

  • До 5000 вызовов в секунду;
  • Поддержка 300 000 абонентов (WOW!) при условии наличия всего 4ГБ оперативной памяти для сервера Kamailio!
  • Легкая кластеризация и добавление новых нод в существующих кластер;

Вообще, Kamailio может выполнять такие роли как:

  • Registrar server - точка для регистрации клиентов (UAC) ;
  • Location server - сервер определения местоположения. Сервер хранит адрес (сетевой) абонента и отдает его SIP – серверам по запросу;
  • Proxy server - роль посредника для дальнейшего проксирования этих запросов далее по цепочке SIP - серверов;
  • SIP Application server - он же SAS. Сервер приложений. Любых. Плечи в БД, API, XML и так далее – все здесь;
  • Redirect server - информация клиенту (UAC) о его маршруте. Условно говоря, перенаправляет SIP – потоки по нужному пути;

На этом прелести Kamailio не заканчиваются. Вот еще немного фич, на которые стоит обратить внимание:

  • Поддержка NAT –T (NAT traversal) для SIP и RTP трафика;
  • Балансировка нагрузки и отказоустойчивость с множеством сценариев/алгоритмов распределения трафика (на случай отказа);
  • Лёгкий механизм настрйоки правил маршрутизации;
  • Простота в реализации отказоустойчивой маршрутизации! Отвалился один маршрут – легко перенаправить трафик на другой;
  • Поддержка IPv4 и IPv6;
  • SCTP (Stream Control Transmission Protocol) с поддержкой многопоточности и так называемого multi – homing (синхронизация хостов по двум и более физическим каналам);
  • Коммуникация по протоколам UDP, TCP, TLS и SCTP;
  • Кодите на Java, Python, Lua, Perl? Ваши навыки точно пригодятся :)

Приступаем

Перед началом работ, у вас должны быть выполнены следующие требования:

  1. У вас есть сервер, с установленной на него Ubuntu 18.04/16.04;
  2. Вы установили MariaDB на этот сервер;
  3. Вы добавили репозитории Kamailio;

Мы предполагаем, что 1 и 2 пункты вы выполнили :) Приступаем к третьему.


Добавляем репозиторий Kamailio

Если у вас установлена Ubuntu версии 16.04 вам нужно добавить репозиторий Kamailio, который будет использован при установке этой SIP – платформы.

Для начала скачиваем и добавляем GPG ключ:

wget -O- http://deb.kamailio.org/kamailiodebkey.gpg | sudo apt-key add -

После этого нужно добавить строки в файл /etc/apt/sources.list. Работать мы будем с версией 5.1 Kamailio:

$ sudo vim /etc/apt/sources.list.d/kamailio.list

Добавляем данные:

deb     http://deb.kamailio.org/kamailio51 xenial main
deb-src http://deb.kamailio.org/kamailio51 xenial main

Установка Kamailio

Как только мы сконфигурировали репозитории, приступаем к установке самого продукта. В том числе, мы установим некоторые MySQL модули:

$ sudo apt install kamailio kamailio-mysql-modules

Установим так же модуль для web – сокетов:

$ sudo apt install kamailio-websocket-modules

Ждем. Как только процессы, рождаемые этими командами будут выполнены, мы можем проверить приложение kamailio и увидеть его версию командой kamailio -V:

$ which kamailio
/usr/sbin/kamailio

$ kamailio -V
version: kamailio 5.1.2 (x86_64/linux) 
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: unknown 
compiled with gcc 7.3.0

Огонь. После этого, правим файл /etc/kamailio/kamctlrc (откройте так же через vim) и проверяем, что параметр DBENGINE выставлен в значение MySQL.

Раскомментируйте значение DBENGINE=MYSQL, удалив # перед строчкой

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

$ kamdbctl create
INFO: creating database kamailio ...
INFO: granting privileges to database kamailio ...
INFO: creating standard tables into kamailio ...
INFO: Core Kamailio tables succesfully created.
Install presence related tables? (y/n): y
INFO: creating presence tables into kamailio ...
INFO: Presence tables succesfully created.
Install tables for imc cpl siptrace domainpolicy carrierroute
drouting userblacklist htable purple uac pipelimit mtree sca mohqueue
rtpproxy rtpengine? (y/n): y
INFO: creating extra tables into kamailio ...
INFO: Extra tables succesfully created.
Install tables for uid_auth_db uid_avp_db uid_domain uid_gflags
uid_uri_db? (y/n): y
INFO: creating uid tables into kamailio ...
INFO: UID tables succesfully created.

Во время инсталляции, вам нужно будет указать пароль для MySQL. Инсталлятор сделает следующих юзеров:

  • kamailio - с паролем kamailiorw. Этот юзер имеет права на чтение и запись в БД;
  • kamailioro - с паролем kamailioro. Этот юзер имеет права только на чтение;

Почти готово. Теперь слегка поправим конфигурационный файл Kamailio /etc/kamailio/kamailio.cfg. Настроим SIP – домен:

$ sudo vim /etc/kamailio/kamctlrc
## ваш SIP домен
SIP_DOMAIN=wiki.merionet.ru

В том же файле, включим некоторые нужные модули. Расположите следующий код в том же файле, прямо под строкой #!KAMAILIO:

#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_USRLOCDB
#!define WITH_ACCDB

Включаем Kamailio!

$ sudo systemctl restart kamailio

Командой systemctl status kamailio можно проверить текущий статус Kamailio. Если что-либо не работает, лог – файл приложения можно найти в /var/log/kamailio.log.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
icon strelka icons icons

узнай больше на курсе

Базовый курс по Asterisk
Двухнедельный онлайн курс по Asterisk от Мерион Нетворкс. 5 блоков обучения с домашним заданием. Именной сертификат с уникальным номером при успешной сдаче экзамена
Подробнее о курсе
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Подробнее о курсе
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Подробнее о курсе
Онлайн-курс по сетевой безопасности
Изучи основы сетевой безопасности и прокачай скилл системного администратора и сетевого инженера
Подробнее о курсе
Онлайн-курс по кибербезопасности
Полный курс по кибербезопасности от Мерион Нетворкс - учим с нуля специалистов по информационной безопасности. Пора стать безопасником!
Подробнее о курсе
Этичный хакинг
Научись работать с Kali Linux, изучи самые распространенные уязвимости, разверни виртуальную лабораторию для пентестинга
Подробнее о курсе
Еще по теме:
img
Мы создали калькулятор инсталляции IP - АТС Asterisk. При планировании сервера и необходимого оборудования заполните соответствующие поля для расчета производительности, шлюзов и плат
img
Скачать руководство администратора Cisco UCM/CME на русском языке
img
Скачать руководство администратора FreePBX на русском языке
img
Рассказываем как рассчитать пропускную способность для IP-вызовов Cisco
img
Рассказываем как настроить отправку СМС сообщений из контакт-центра Октелл через Ростелеком СМС Реклама
Весенние скидки
30%
50%
60%
До конца акции: 30 дней 24 : 59 : 59