Kamailio: Установка Kamailio 4.1

Kamailio ( ранее известный как OpenSER) - высокопроизводительный sip сервер, чаще всего используется для балансировки и проксирования SIP трафика, имеет конфиг-сценарий и возможность написания собственных модулей. Посмотрим что за зверь, начнем с самого простого - с установки.

Хоть установка достаточно подробно описана в документации Install And Maintain Kamailio v4.1.x From GIT , но найти ее достаточно проблематично, тем более есть небольшие нюансы:

Устанавливать Kamailio 4.1 будем на Ubuntu 14.04 LTS.

Список зависимостей указаны в документации, но здесь приведу то что мне пришлось до установить.

Bison, используется для парсинга конфига ( совместим с Yacc )

$ sudo apt-get install bison

Gnu Flex - генератор лексических анализаторов ( видимо тоже для конфига )

$ sudo apt-get install flex

Выкачать исходники Kamailio 4.1.4 можно с помощью следующих команд:

$ wget http://www.kamailio.org/pub/kamailio/latest/src/kamailio-4.1.4_src.tar.gz
$ tar -xvf kamailio-4.1.4_src.tar.gz
$ ln -s kamailio-4.1.4 kamailio

Вот мы и получили архив, для любителей git можно выполнить другой сценарий:

$ git clone git://git.sip-router.org/kamailio kamailio
$ cd kamailio
$ git checkout -b 4.1 origin/4.1

Еще можно автоматизировать загрузку последний версии с помощью скрипта:

LURL=http://www.kamailio.org/pub/kamailio/latest/src/
LATEST=$( curl -o - $LURL | grep -oPi "kamailio-\d+.\d+.\d+_src.tar.gz" | sort -r | head -n 1` )
curl -o $LATEST ${LURL}${LATEST}

Если кто пытается найти привычный скрипт ./configure, то не удивляйтесь - его там нет ( хотя могли бы сделать хотя бы скрипт-оболочку). Система сборки Kamailio написано на чисто Make из за чего разобраться и внести изменения в нее бывает часто затруднительно. Вся сборка и установка делиться на этапы: конфигурирование, сборка, установка.

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

$ make install_modules="tm xlog" cfg

После выполнения появиться файл module.lst, там и будет храниться список модулей в дальнейшем. Помимо install_modules, вы можете убрать из сборки модули переменной exclude_modules или skip_modules:

$ make skip_modules="acc_radius auth_radius avp_radius" install_modules="tm xlog" cfg

Построение бинарников не отличается сложность, и достаточно набрать:

$ make all

Однако, если разрабатываешь какой-то модуль, то не смысла собирать заново все бирники Kamailio досточно собрать модули:

$ make modules

Если появиться проблемы со сборкой, то можно включить debug режим:

$ make Q=0 all

Установка как и сборке, вполне стандартная, достаточно набрать make install и не забыв указать папочку куда будет производиться установка:

$ make PREFIX=/home/user/bin/kamailio install
# Обязательно укажите полный путь
Вот и все с установкой закончили, далее постараюсь описать:
  • Простой config-сценарий для Kamailio
  • Система unit-тестирования для Kamailio
  • Написание модуля на С++ для Kamailio

Продолжение: Kamailio: Пишем модуль