随着 3CX V20 Update 6 alpha 的发布,3CX 也更新了他们的 CDR 数据库格式。
但是 3CX 的数据库只允许本机(localhost)访问,为了能够一探究竟,今天我们介绍一个能够查看 3CX 数据库的简单方法:SSH 本地转发。
⚠️注意:本文档只适用于没有图形化界面的 Linux 服务器。Windows 和安装了 GUI 的 Debian 可以直接在服务器上安装数据库软件。
SSH 本地转发
我们需要能够通过 SSH 访问到 3CX 服务器。能够使用 SSH 访问 3CX 后,在命令行中执行下面的命令:
ssh -L 5432:localhost:5432 user@3cxserver -p port
上面参数中:
- 第一个 5432:本地转发端口,如果端口冲突换成其他端口。
- user:登录 3CX 服务器的用户名称。
- 3cxserver:3CX 服务器的域名或 IP 地址。
- port:ssh 端口,默认为 22。
连接上后不要关闭命令行,本地转发就一直存在。
这个时候我们先执行命令查看数据库的密码:
cat /var/lib/3cxpbx/Bin/3CXPhoneSystem.ini
记住最后 [DbAdminREADONLY] 参数下的用户名和密码。用户名为 phonesystem。

登录数据库
这里我们使用 pgadmin4 作为演示,可以替换成其他数据库软件。下载安装后打开,点击 Add New Server。
在 Name 字段为新的连接输入名字,我这里使用 3CX。

跳转到 Connection 标签,输入下列参数:
- Host name/address:输入 127.0.0.1 或 localhost。
- Port:5432。如果因为端口冲突修改了本地转发端口,填写修改后的端口。
- Maintenance database:输入 database_single。
- Username:phonesystem。
- Password:输入前面查看的 DbAdminREADONLY 密码。

点击 Save 后服务器会自动连接上。
我们依次展开 Database -> Database_single -> Schemas -> public -> Tables。可以看到 3CX 在这里存储的数据表。

比如我们这里找到 3CX 在 V20 Update 6 更新的 cdroutput。右键点击 View/Edit Data -> All Rows。

可以看到 3CX CDR 的数据了。想要查看其他数据也是同理。
