在CentOS 8 / CentOS 7上安装最新的Kamailio SIP服务器

这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。

将指南下载为PDF

关门
这是续集。

这是续集。
这是续集。

本指南将帮助您在CentOS 7 / CentOS 8 Linux服务器上安装最新的Kamailio SIP服务器。这是有关构建企业语音系统的系列教程的一部分。 Kamailio是SER发行版,提供可扩展的SIP服务器,适用于小型到电信级的安装。

卡米略的特点

使用媒体服务器(例如Kasterio的Asterisk)的主要好处是:

  • Kamailio每秒可以处理超过5000个呼叫设置。
  • 仅一个4GB RAM系统就可以为300,000个活动用户提供服务
  • 通过添加Kamailio服务器可以轻松实现集群。

Kamailio的工作方式如下: ●注册服务器●位置服务器●代理服务器●SIP应用程序服务器●重定向服务器

Kamailio的其他功能包括:

  • 支持SIP和RTP流量的NAT遍历
  • 具有许多分布式算法和故障转移支持的负载平衡
  • 提供灵活的最低成本路由
  • 轻松进行路由故障转移
  • 同时支持IPv4和IPv6
  • SCTP多宿主和多流
  • 可以通过UDP,TCP,TLS和SCTP进行通信
  • 摘要式SIP用户身份验证
  • 提供基于事件的会计
  • 数据存储为数据库,半径,直径
  • 可扩展的Java,Python,Lua,Perl编程接口
  • TLS支持SIP信令和SRTP透明处理以实现安全音频

本指南已经过测试:

  • Kamailio 5.x
  • CentOS 7 / CentOS 8

在CentOS 7 / CentOS 8上安装Kamailio SIP服务器

在深入研究安装过程之前,让我们看一下Kamailio SIP Server的基础知识。

步骤1:将SELinux设置为许可/禁用模式

如果您不是SELinux爱好者,我们建议您切换到许可模式。

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

如果要完全禁用它,则需要重新启动CentOS系统。

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
sudo reboot

重启后,检查SELinux状态。

$ sestatus 
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31

步骤2:安装MariaDB数据库服务器

Kamailio需要数据库服务器才能正常工作。为此,我们使用可以安装在CentOS 7 / CentOS 8上的MariaDB数据库服务器。

sudo yum -y install mariadb-server
sudo systemctl enable --now mariadb
sudo mysql_secure_installation

步骤3:添加Kamailio RPM存储库

CentOS 8:

sudo wget -O /etc/yum.repos.d/kamailio.repo http://download.opensuse.org/repositories/home:/kamailio:/v5.3.x-rpms/CentOS_8/home:kamailio:v5.3.x-rpms.repo

在本文更新时,某些软件包不在CentOS 8存储库中。我不得不在CentOS 8上使用Fedora 29存储库。如果遇到相同的问题,请运行以下命令来更改存储库:

sudo wget -O /etc/yum.repos.d/kamailio.repo http://download.opensuse.org/repositories/home:/kamailio:/v5.3.x-rpms/Fedora_29/home:kamailio:v5.3.x-rpms.repo

CentOS 7:

sudo wget -O /etc/yum.repos.d/kamailio.repo http://download.opensuse.org/repositories/home:/kamailio:/v5.3.x-rpms/CentOS_7/home:kamailio:v5.3.x-rpms.repo

步骤4:在CentOS 8 / CentOS 7上安装Kamailio SIP服务器

添加存储库后,在CentOS 8 / CentOS 7 Linux上安装Kamailio SIP服务器。

sudo yum install vim kamailio kamailio-presence kamailio-ldap kamailio-mysql kamailio-debuginfo kamailio-xmpp kamailio-unixodbc kamailio-utils kamailio-tls kamailio-outbound kamailio-gzcompress

您应该看到一个依赖关系树。 ÿ 按键盘开始安装。

Dependencies resolved.
========================================================================================================================================================
 Package                           Arch                Version                                             Repository                              Size
========================================================================================================================================================
Installing:
 kamailio                          x86_64              5.3.3-4.1                                           home_kamailio_v5.3.x-rpms              5.6 M
 kamailio-debuginfo                x86_64              5.3.3-4.1                                           home_kamailio_v5.3.x-rpms              3.8 M
 kamailio-gzcompress               x86_64              5.3.3-4.1                                           home_kamailio_v5.3.x-rpms               19 k
 kamailio-ldap                     x86_64              5.3.3-4.1                                           home_kamailio_v5.3.x-rpms               99 k
 kamailio-mysql                    x86_64              5.3.3-4.1                                           home_kamailio_v5.3.x-rpms               74 k
 kamailio-outbound                 x86_64              5.3.3-4.1                                           home_kamailio_v5.3.x-rpms               24 k
 kamailio-presence                 x86_64              5.3.3-4.1                                           home_kamailio_v5.3.x-rpms              673 k
 kamailio-tls                      x86_64              5.3.3-4.1                                           home_kamailio_v5.3.x-rpms              187 k
 kamailio-unixodbc                 x86_64              5.3.3-4.1                                           home_kamailio_v5.3.x-rpms               39 k
 kamailio-utils                    x86_64              5.3.3-4.1                                           home_kamailio_v5.3.x-rpms               37 k
 kamailio-xmpp                     x86_64              5.3.3-4.1                                           home_kamailio_v5.3.x-rpms               53 k
Upgrading:
 vim-common                        x86_64              2:8.0.1763-13.el8                                   AppStream                              6.3 M
 vim-enhanced                      x86_64              2:8.0.1763-13.el8                                   AppStream                              1.4 M
Installing dependencies:
 mysql-common                      x86_64              8.0.17-3.module_el8.0.0+181+899d6349                AppStream                              143 k
 mysql-libs                        x86_64              8.0.17-3.module_el8.0.0+181+899d6349                AppStream                              1.2 M
 unixODBC                          x86_64              2.3.7-1.el8                                         AppStream                              458 k
Installing weak dependencies:
 kamailio-debugsource              x86_64              5.3.3-4.1                                           home_kamailio_v5.3.x-rpms              3.7 M
Enabling module streams:
 mysql                                                 8.0                                                                                             

Transaction Summary
========================================================================================================================================================
Install  15 Packages
Upgrade   2 Packages

Total download size: 24 M
Is this ok [y/N]: y

检查Kamailio的安装版本。

$ kamailio -version
version: kamailio 5.3.3 (x86_64/linux) c918a3
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: c918a3 
compiled on 14:32:52 Mar 16 2020 with gcc 8.2.1

步骤5:在CentOS 8 / CentOS 7上设置Kamailio

编辑档案 /etc/kamailio/kamctlrc 然后确保将DBENGINE变量设置为MySQL。删除井号并取消注释。

sudo vi /etc/kamailio/kamctlrc

将数据库引擎设置为MYSQL

DBENGINE=MYSQL
DBHOST=localhost

运行以下命令为Kamailio(模式)创建所需的用户和表。

$ sudo kamdbctl create
MySQL password for root:
INFO: test server charset
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 secfilter? (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.

当提示输入root密码时,输入配置的MySQL root用户密码 mysql_secure_installation

对以下所有问题回答“是”。的 kamdbctl create 该命令添加了两个Mysql用户:

卡马里奥:带密码。kamailiorw 您具有对Kamailio数据库的读/写权限。

卡马罗:此用户的密码是 kamailioro..对Kamailio数据库具有只读权限。

接下来是编辑 /etc/kamailio/kamailio.cfg 设置Kamailio:

sudo vi /etc/kamailio/kamailio.cfg

在下面添加以下行 #!卡马里利奥

#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_USRLOCDB
#!define WITH_NAT
#!define WITH_PRESENCE
#!define WITH_ACCDB

在CentOS 8 / CentOS 7上安装最新的Kamailio SIP服务器

启动Kamailio

sudo systemctl restart kamailio

允许服务在启动时启动。

sudo systemctl enable kamailio

到此为止。 Kamailio SIP服务器现在在CentOS 8 / CentOS 7 Linux上运行。

$ systemctl status kamailio
● kamailio.service - Kamailio (OpenSER) - the Open Source SIP Server
   Loaded: loaded (/usr/lib/systemd/system/kamailio.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-05-03 16:35:23 EAT; 12s ago
 Main PID: 9648 (kamailio)
    Tasks: 41 (limit: 24003)
   Memory: 50.0M
   CGroup: /system.slice/kamailio.service
           ├─9648 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
           ├─9649 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
           ├─9650 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
           ├─9651 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
           ├─9652 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
           ├─9653 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
           ├─9654 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
           ├─9655 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
           ├─9656 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
           ├─9658 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
           ├─9659 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
......

其他指南:

在CentOS 8上安装Asterisk PBX

在CentOS 7上安装Asterisk PBX

这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。

将指南下载为PDF

关门
这是续集。

这是续集。
这是续集。

Sidebar