背景介绍
本文主要是针对kamailio新手的入门使用介绍, 已默认kamailio服务编译安装成功。
关于kamailio的容器制作方式,后续会有其他章节介绍。
kamailio 5.8.5 (x86_64/linux)
准备环境
- mysql 5.7.x
- rtpengine (可选)
创建数据库
我的kamailio
安装在/usr/local下,几个目录介绍下:
- /usr/local/bin/
kamailio
的二进制文件
1
2
3
4
5
6
|
ll /usr/local/bin/
total 8024
-rwxr-xr-x. 1 root root 8053416 Feb 27 13:52 kamailio # kamailio主程序
-rwxr-xr-x. 1 root root 74544 Feb 27 13:53 kamcmd # kamailio命令行
-rwxr-xr-x. 1 root root 66247 Feb 27 13:54 kamctl # kamailio控制台
-rwxr-xr-x. 1 root root 10935 Feb 27 13:54 kamdbctl # kamailio数据库管理
|
- /usr/local/etc/kamailio
kamailio
的配置文件
1
2
3
4
5
|
ll /usr/local/etc/kamailio
total 40
-rw-r--r--. 1 root root 27104 Feb 28 13:48 kamailio.cfg # kamailio主配置文件
-rw-r--r--. 1 root root 4391 Feb 28 13:48 kamctlrc # kamailio控制台配置文件
-rw-r--r--. 1 root root 3543 Feb 27 13:54 tls.cfg # tls配置文件
|
- /usr/local/share/kamailio/
kamailio
的sql脚本文件
1
2
3
4
5
|
ll /usr/local/share/kamailio/
total 4
drwxr-xr-x. 3 root root 22 Feb 27 13:53 db_redis
drwxr-xr-x. 3 root root 22 Feb 27 13:53 dbtext
drwxr-xr-x. 2 root root 4096 Feb 27 13:52 mysql
|
如果找不到这些文件,可以在源码utils/kamctl/
下找到这些sql文件。
- 修改配置文件:
/usr/local/etc/kamailio/kamactlrc
如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
DBENGINE=MYSQL
## database host
DBHOST=172.16.4.111
## database port
DBPORT=3306
## database name (for ORACLE this is TNS name)
DBNAME=kamailio
## database path used by dbtext, db_berkeley or sqlite
DB_PATH="/usr/local/share/kamailio/mysql"
#DB_PATH="/usr/local/etc/kamailio/dbtext"
## database read/write user
DBRWUSER="kamauser"
## password for database read/write user
DBRWPW="kamailiorw"
## database read only user
DBROUSER="kamailioro"
## password for database read only user
DBROPW="kamailiotest"
## database access host (from where is kamctl used)
# DBACCESSHOST=192.168.0.1
## database super user (for ORACLE this is 'scheme-creator' user)
DBROOTUSER="root"
## password for database super user
## - important: this is insecure, targeting the use only for automatic testing
## - known to work for: mysql
DBROOTPW="123456"
## option to ask confirmation for all database creation steps
# DBINITASK=yes
## database character set (used by MySQL when creating database)
CHARSET="utf8"
|
- 创建数据库:
/usr/local/bin/kamdbctl create kamailio
创建过程中有可能会报创建用户失败(CREATE USER xxx failed
),有可能此用户已经存在,
- 进入数据库,删除此用户
drop user 'xxx'@'%';
- 手动删除
kamailio
- 重新使用kamdbctl创建库,就可以了。
几个常用的数据库(mysql5.7.x)操作命令:
- 查看用户:
1
|
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
|
- 删除用户:
- 配置文件:
/usr/local/etc/kamailio/kamailio.cfg
,修改以下几点:
- WITH_MYSQL 使用数据库
- WITH_USRLOCDB
- DBURL 修改dburl为实际的地址
1
|
#!trydef DBURL "mysql://kamauser:kamailiorw@172.16.4.111:3306/kamailio"
|
- listen 监听服务
1
|
listen=udp:172.16.4.111:5460
|
/usr/local/bin/kamailio -f /usr/local/etc/kamailio/kamailio.cfg -DD -E
- 使用软电话
MicroSip
注册, 密码:1234(随便,默认是没开启用户认证
功能),配置如下:

- 可以再使用另外一个MicroSip注册其他用户到此服务上,两个软电话就能互相拨打了。