XSwitch

XSwitch运维手册

XSwitch.cn

2022年6月1日

法律声明

若接收烟台小樱桃网络科技有限公司(以下称为“小樱桃”)的此份文档,即表示您已同意以下条款。若不同意以下条款,请立即停止使用本文档。

本文档版权所有烟台小樱桃网络科技有限公司。保留任何未在本文档中明示授予的权利。文档中涉及小樱桃的专有信息。未经小樱桃事先书面许可,任何单位和个人不得复制、传递、分发、使用和泄漏该文档以及该文档包含的任何图片、表格、数据及其他信息。本网页版文档仅在xswitch.cn上发布。

本产品符合有关环境保护和人身安全方面的设计要求,产品的存放、使用和弃置应遵照产品手册、相关合同或相关国法律、法规的要求进行。

本文档按“现状”和“仅此状态”提供。本文档中的信息随着小樱桃的产品和技术的进步将不断更新,小樱桃不再通知此类信息的更新。

烟台小樱桃网络科技有限公司

地址:烟台市高新区蓝海路1号
邮编:264000
电话:0535-6753997

1 综述

XSwitch是一个电信级的IP电话软交换系统和综合实时音视频多媒体通信平台。

本手册描述XSwitch运维相关的知识及注意事项。本系统针对XSwitch 4.0.1及以上版本编写,面向XSwitch系统管理员和运维工程师。

本手册内容仅供参考,具体命令和步骤跟你实际的部署和环境配置有关。

1.1 架构

XSwitch主要由三部分构成:

  • XSwitch交换节点:负责音视频处理、SIP注册等。内置HTTP和Websocket服务器。
  • 数据库:PostgreSQL数据库
  • XUI:Web管理界面

其中,XUI又由以下两部分构成:

  • XUI服务端:内置于XSwitch,接口和业务逻辑由Lua脚本提供
  • XUI前端:HTML页面及Javascript

典型地,XSwitch有以下三个镜象:

  • xswitch-lua:包含XSwitch和Lua
  • xswitch-pg:数据库
  • xswitch-nginx-xui:Nginx和XUI前端。可选。

1.2 操作系统

XSwitch默认以Docker镜像提供,宿主机可以是Linux、Windows或macOS。在生产环境中,宿主机推荐使用Linux操作系统,推荐使用Debian 11以上操作系统,但其它系统只要支持Docker,都应该可以用。

系统镜像支持X86-64和ARM64(aarch64)CPU。

2 持久化存储

系统默认的持久化存储有以下几个,即使容器停止数据也不会丢失:

  • postgres:PostgreSQL数据
  • storage:XSwitch数据
  • sounds:系统音频文件
  • log:XSwitch日志

其中storage目录结构如下:

  • recordings:录音
  • blocks:积木数据生成的脚本
  • upload:上传媒体文件数据
  • rrd:RRDTool画图相关的数据

3 常用操作

启动容器:

make up

停止:

make down

进入容器:

make bash # 进入XSwitch容器
make pg-bash # 进入PostgreSQL容器

查看XSwitch实时日志:

tail -f log/freeswitch.log

4 数据库

数据库默认用户名和密码都是xui,可以使用如下方法登录数据库:

make bash-pg
psql -U xui xui

显示所有表:

\d

查询用户

select * from users limit 10;

批量修改域,以domain = xswitch.cn为例:

UPDATE users set domain = 'xswitch.cn';
UPDATE users set ha1 = md5(login || ':' || domain || ':' || password);
UPDATE extensions set domain = 'xswitch.cn';
UPDATE extensions set ha1 = md5(extn || ':' || domain || ':' || password);

5 XSwitch

5.1 进入容器

make bash

5.2 进入XSwitch控制台

fs_cli

5.3 显示运行状态

status

5.4 显示所有Channel

show channels

6 XUI

XUI一般不需要维护。

7 Linux常用操作

如果你的宿主机是Linux,可以使用如下常用操作。

7.1 检查文件系统利用率

检查文件系统利用率不低于85%或大于10G以上空闲空间。

df -lh

7.2 检查僵尸进程或运行时间过长的进程

此任务检查僵尸进程或运行时间过长的进程

操作说明

  1. 使用ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'查看僵尸进程
  2. 使用kill -HUP 进程pid杀死进程

7.3 查看系统日志

查看错误日志

dmesg
dmesg | grep -i error

7.4 检查内存利用率

free -m

7.5 关机

注意要正常关机,不要随意断电。

shutdown -h now

8 检查列表

下面是运维过程中的一些常规检查

8.1 数据库检查

  1. 查看数据库是否能正常登录,权限是否正确。
  2. 数据库内数据是否完整。
  3. 磁盘空间是否正常。

8.2 查看FreeSWITCH崩溃后是否自启动

使用如下指令使系统崩溃:

fs_cli -x 'fsctl crash'

过一会查看是否可正常启动。

若启动失败,可采取如下步骤查看:

ps -aux|grep freeswitch