Featured image of post kamailio入门使用

kamailio入门使用

背景介绍

本文主要是针对kamailio新手的入门使用介绍, 已默认kamailio服务编译安装成功。 关于kamailio的容器制作方式,后续会有其他章节介绍。

kamailio 5.8.5 (x86_64/linux)

准备环境

  1. mysql 5.7.x
  2. rtpengine (可选)

创建数据库

我的kamailio安装在/usr/local下,几个目录介绍下:

  1. /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数据库管理
  1. /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配置文件
  1. /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),有可能此用户已经存在,

  1. 进入数据库,删除此用户drop user 'xxx'@'%';
  2. 手动删除kamailio
  3. 重新使用kamdbctl创建库,就可以了。

几个常用的数据库(mysql5.7.x)操作命令:

  1. 查看用户:
1
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
  1. 删除用户:
1
drop user 'root'@'%';
  • 配置文件:/usr/local/etc/kamailio/kamailio.cfg,修改以下几点:
  1. WITH_MYSQL 使用数据库
1
#!define WITH_MYSQL
  1. WITH_USRLOCDB
1
#!define WITH_USRLOCDB
  1. DBURL 修改dburl为实际的地址
1
#!trydef DBURL "mysql://kamauser:kamailiorw@172.16.4.111:3306/kamailio"
  1. 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

  • 可以再使用另外一个MicroSip注册其他用户到此服务上,两个软电话就能互相拨打了。
最后更新于 2025-03-03
本博客已稳定运行
发表了26篇文章 · 总计45.09k字
本站总访问量 次 · 您是本站第 位访问者
粤ICP备2025368587号-1| 使用 Hugo 构建
主题 StackJimmy 设计