如何在Ubuntu 20.04/18.04/16.04上安装Kamailio SIP服务器
在本教程中,我将通过完整的步骤来在Ubuntu 20.04/18.04/16.04 Linux系统上安装和配置Kamailio SIP服务器。
本教程是在Linux上构建企业开源VoIP系统的一部分。
我们之前的教程是如何在CentOS 7上安装最新的Kamailio SIP服务器7.因此,如果我们是CentOS用户,请使用链接进行安装步骤。
简介 - 什么是Kamailio SIP服务器?
Kamailio是SER的分发,提供可扩展的SIP服务器,适用于载体等级安装。
Kamailio在C中开发并在Linux/UNIX系统上运行。
Kamailio与Asterisk这样的媒体服务器使用的主要优点是:Kamailio可以处理每秒5000多个呼叫设置.CAN提供高达300,000个活动用户,只需添加更多Kamailio服务器即可轻松实现CLUSTING
Kamailio可以用作:Registrar Server 位置服务器 代理服务器 SIP应用程序服务器 重定向服务器
Kamailio的其他功能是:NAT遍历SIP和RTP业务量平衡,具有许多分发算法和故障转移支持的灵活性最少的成本路由,以实现路由故障支持IPv4和IPv6SCTP多宿用和多流式传输可以超过UDP,TCP,TLS,和SCTPIGEST SIP用户身份验证基于事件的AccountingData存储可以是数据库,RADIUS或者DIATEREXTESIBLE JAVA,Python,LUA和PERL编程Interfacetls支持SIP信令和SRTP用于安全音频的SRTP
在Ubuntu 20.04/18.04/16.04上安装Kamailio
以下是安装ubuntu 18.04 system的kamailio的预先列出.LALLED MARIADB Serverkamailio存储库
第1步:安装MariaDB数据库服务器
首先使用命令在Ubuntu上安装MariaDB服务器:
sudo apt update sudo apt install mariadb-server
第2步:添加Kamailio APT存储库
添加以下Kamailio存储库以用于安装Kamailio SIP代理服务器。
但首先,下载并将GPG键添加到APT键列表:
wget -O- http://deb.kamailio.org/kamailiodebkey.gpg | sudo apt-key add
然后将存储库行添加到 /etc/apt/sources.list
文件取决于我们选择的Kamailio版本。
我将为此写作添加最新版本的存储库 - 5.3:
适用于Ubuntu 20.04/18.04
sudo tee /etc/apt/sources.list.d/kamailio.list<<EOF deb http://cz.archive.ubuntu.com/ubuntu bionic main deb http://deb.kamailio.org/kamailio53 bionic main deb-src http://deb.kamailio.org/kamailio53 bionic main EOF
对于Ubuntu 16.04.
sudo tee /etc/apt/sources.list.d/kamailio.list<<EOF deb http://deb.kamailio.org/kamailio53 xenial main deb-src http://deb.kamailio.org/kamailio53 xenial main EOF
APT存储库列表和关联的操作系统可在http://deb.kamailio.org上获得
第3步:在Ubuntu上安装Kamailio 20.04/18.04/16.04
配置存储库后,更新系统并安装Kamailio。
我们还将安装Kamailio MySQL模块:
sudo apt update sudo apt install kamailio kamailio-mysql-modules
为了能够加载WebSocket模块,我们必须安装Package Kamailio-WebSocket-Modules:
sudo apt install kamailio-websocket-modules kamailio-tls-modules
完成上述命令后,我们可以检查是否 kamailio
应用程序可用并确认已安装的版本使用 kamailio -V
$which kamailio /usr/sbin/kamailio $kamailio -V version: kamailio 5.3.3 (x86_64/linux) flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, 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, TLS_PTHREAD_MUTEX_SHARED ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, 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
第4步:配置Kamailio
编辑文件 /etc/kamailio/kamctlrc
并确保 DBENGINE
变量设置为mysql。
除掉 #
符号取消注释它。
将数据库引擎设置为MySQL
$sudo vim /etc/kamailio/kamctlrc DBENGINE=MYSQL DBHOST=localhost
接下来是为MySQL创建数据库。
下面的命令将由Kamailio(架构)创建用户和表
$sudo kamdbctl create MySQL password for root: 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 root密码。
上述命令添加的MySQL用户和密码是。
Kamailio与密码 kamailiorw
。
它对Kamailio数据库具有读/写访问权限。
Kamailioro:此用户的密码是 kamailioro
。
它只读了Kamailio数据库的访问权限。
这 /etc/kamailio/kamailio.cfg
是Kamailio的配置文件。
编辑它以启用其附带的一些功能。
我们还可以设置SIP域:
$sudo vim /etc/kamailio/kamctlrc ## your SIP domain SIP_DOMAIN=theitroad.com
如果我们在本地网络上有一个工作DNS服务器,则可以使用IP地址代替域名。
添加以下行以下#!Kamailio。
$sudo vim /etc/kamailio/kamailio.cfg #!define WITH_MYSQL #!define WITH_AUTH #!define WITH_USRLOCDB #!define WITH_ACCDB
这些指令将打开必要的模块。
例如,当我们指定时, WITH_MYSQL
它可以加载mysql.so:
#!ifdef WITH_MYSQL loadmodule "db_mysql.so" #!endif
然后重新启动Kamailio服务:
sudo systemctl restart kamailio
KAMAILIO服务应运行,我们可以使用:
$systemctl status kamailio ● kamailio.service - Kamailio (OpenSER) - the Open Source SIP Server Loaded: loaded (/lib/systemd/system/kamailio.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2016-07-27 18:15:20 UTC; 2min 59s ago Process: 14062 ExecStart=/usr/sbin/kamailio -P /var/run/kamailio/kamailio.pid -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY -u $USER -g $GROUP (code=exi Main PID: 14075 (kamailio) Tasks: 40 (limit: 4704) CGroup: /system.slice/kamailio.service ├─14075 /usr/sbin/kamailio -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8 -u kamailio -g kamailio ├─14083 /usr/sbin/kamailio -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8 -u kamailio -g kamailio ├─14084 /usr/sbin/kamailio -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8 -u kamailio -g kamailio ├─14085 /usr/sbin/kamailio -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8 -u kamailio -g kamailio ├─14086 /usr/sbin/kamailio -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8 -u kamailio -g kamailio ├─14087 /usr/sbin/kamailio -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8 -u kamailio -g kamailio