歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> RedHat 5系統上SIP服務器Kamailio-3.2.2安裝

RedHat 5系統上SIP服務器Kamailio-3.2.2安裝

日期:2017/2/28 15:56:51   编辑:Linux教程

Kamailio是一個開源的SIP服務器,原名OpenSER ,運行在Linux/Unix平台上的C程序。具有較好的性能,靈活性和安全性。

Web links

· Home page with new project name: http://www.kamailio.org

· Home page with old project name: http://www.openser-project.org

· SourceForge.net Project page: http://sourceforge.net/projects/openser/

本文從網站http://www.kamailio.org下載源程序以及二進制安裝程序做的安裝,其原因在於二進制安裝包缺少db_mysql.so庫,而使用源程序安裝的不清楚如何編譯出kamdbctl命令。

一、安裝包

下載安裝包kamailio-3.2.2_src.tar.gz,並上傳到服務器/opt目錄下,解壓安裝包:

#gunzip kamailio-3.2.2_src.tar.gz

#tar -xvf kamailio-3.2.2_src.tar

二、源代碼安裝

1、在使用源碼的方式安裝,必須確認系統中編譯器gcc和一些依賴包可用,如果不可用,需要先安裝gcc編譯器。如果gcc可用,直接跳到下一步。這裡給出gcc安裝過程。

#rpm -ivh cpp-4.1.2-48.el5.i386.rpm

#rpm -ivh kernel-headers-2.6.18-194.el5.i386.rpm

#rpm -ivh glibc-headers-2.5-49.i386.rpm

#rpm -ivh glibc-devel-2.5-49.i386.rpm

#rpm -ivh libgomp-4.4.0-6.el5.i386.rpm

#rpm -ivh gcc-4.1.2-48.el5.i386.rpm

2、Kamailio源代碼編譯需要bison、flex包,故在編譯kamailio之前,www.linuxidc.com需要先安裝這些包:

#rpm -ivh /home/Server/bison-2.3-2.1.i386.rpm

#rpm -ivh /home/Server/bison-devel-2.3-2.1.i386.rpm

#rpm -ivh /home/Server/flex-2.5.4a-41.fc6.i386.rpm

3、修改編譯配置文件,以使得包含MySQL module

#vi Makefile.vars

添加下述內容:

MODS_MYSQL=on

4、執行kamailio的編譯與安裝

# ./make_and_install install "standard mysql" ignore /usr/local

關於make_and_install命令的詳細用法,使用不帶參數的命令即可:

# ./make_and_install

Usage:

./make_and_install [clean|compile|install|nccompile|ncinstall] "standard|standard-dep|mysql|radius|presence|stable|experimental" [ignore|stop] [installpath]

檢查編譯安裝過程是否有誤,可用查看make_and_install_output.txt.

三、二進制安裝

由於源碼安裝不清楚使用什麼選項可用生成kamdbctl工具,故直接使用二進制安裝方式生成該工具。

將kamailio-3.2.2_linux_i386.tar.gz包上傳到服務器根目錄下,解壓安裝包:

#gunzip kamailio-3.2.2_linux_i386.tar.gz

#tar -xvf kamailio-3.2.2_linux_i386.tar

四、啟動kamailio服務

1、修改/usr/local/etc/kamailio/kamctlrc文件

DBENGINE=MYSQL
SIP_DOMAIN=pryko.com

2、使用kamctl啟動服務

# kamctl start

WARNING: database engine not found - tried 'MYSQL'

INFO: Starting Kamailio :

ERROR: PID file /var/run/kamailio.pid does not exist -- Kamailio start failed

[root@eomcr modules]# kamdbctl create

ERROR: could not load the script in /usr/local/lib/kamailio//kamctl/kamdbctl.mysql for database engine MYSQL

ERROR: database engine not loaded - tried 'MYSQL'

這是由於未修改配置文件kamailio.cfg導致,所以修改/usr/local/etc/kamailio/kamailio.cfg

在文件頭部添加:

#!define WITH_MYSQL

3、重新啟動:

# kamctl start

若仍然出錯,請檢查是否db_mysql.so文件在/usr/local/lib/kamailio/modules下。

若存在,仍然出錯,可能是mysql安裝存在問題,需檢查系統是否存在下述mysql安裝程序:

#rpm -qa rpm -qa MySQL-shared

MySQL-shared-5.1.61-1.glibc23

# rpm -qa MySQL-devel

MySQL-devel-5.1.61-1.glibc23

並檢查/usr/lib下是否有libmysqlclient.so.16庫

#ll /usr/lib|grep libmysqlclient

lrwxrwxrwx 1 root root 26 02-08 17:46 libmysqlclient_r.so -> libmysqlclient_r.so.16.0.0

lrwxrwxrwx 1 root root 26 02-08 17:46 libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0

-rwxr-xr-x 1 root root 1969708 12-20 04:21 libmysqlclient_r.so.16.0.0

lrwxrwxrwx 1 root root 24 02-08 17:46 libmysqlclient.so -> libmysqlclient.so.16.0.0

lrwxrwxrwx 1 root root 24 02-08 17:46 libmysqlclient.so.16 -> libmysqlclient.so.16.0.0

-rwxr-xr-x 1 root root 1960456 12-20 04:21 libmysqlclient.so.16.0.0

沒有的話,就需要安裝前面提到的兩個庫。

若沒有問題,則kamailio可以正常啟動,輸出如下:

# kamctl start

INFO: Starting Kamailio :

INFO: started (pid: 5937)

Copyright © Linux教程網 All Rights Reserved