Setting Up Your Kamailio Development Envionment
The purpose of this document is to explain how to install Kamailio and setup your development environment to make it easier to start configuring Kamailio to fit your requirements. In this document I will explain how to install Kamailio on CentOS 6.6 and configuring VIM to make it easier to do development.
Assumptions:
- MySQL is installed
Installing Kamailio 4.2 from source on CentOS 6.6 (for some reason we love CentOS)
I used the instructions located at http://www.kamailio.org/wiki/install/4.2.x/git as my basis.
You first need to install some packages that will be need for compiling Kamailio
yum install -y gcc flex bison mysql-libs make openssl-devel libcurl libxml2 expat-devel
Next we need to create a location for the Kamailio source
mkdir -p /usr/local/src/kamailio-4.2 cd /usr/local/src/kamailio-4.2
We now can use GIT to grab the source and checkout the latest 4.2 release
git clone --depth 1 git://git.sip-router.org/kamailio kamailio cd kamailio git checkout -b 4.2 origin/4.2
Continue with the installation by starting at step 3 thru step 7 in the instructions located at http://www.kamailio.org/wiki/install/4.2.x/git
Setup Development Environment
We personally like using the VIM autocomplete plugin for Kamailio that was created by Daniel-Constantin Mierla (co-founder of Kamailio). It makes development much easier.
The vim extensions that handle syntax highlighting and file type auto detection is shipped part of the source. So you just need to install it
cd /usr/local/src/kamailio-4.2/kamailio/utils/misc/vim/ make install
If you want to have autocomplete you will need to grab it from Daniel’s GIT repository
git clone https://github.com/miconda/vim-extensions.git cd vim-extensions make install-kamailio-plugin
Now you can have autocomplete turn on automatically when you edit a Kamailio file in VIM by running this command which will create a ~/.virmrc file with the command to turn on autocomplete for Kamailio functions and reserved words
echo '" custom complete function for kamailio config autocmd FileType kamailio setlocal completefunc=KamailioComplete' >> ~/.vimrc'
Test that it’s working
vim /usr/local/etc/kamailio/kamailio.cfg
You should see #!KAMAILIO in purple. You can test autocomplete by starting hit “i” on the keyboard to enter insert mode and then hit CTRL+x, then CTRL+u. You will see a list of Kamailio functions that will pop up. See my screenshot below:
References
- http://www.kamailio.org/w/tag/4-2/
- https://github.com/miconda/vim-extensions/blob/master/plugin/kamailio/README.md