AI 智能外呼系统 - 完整备份与离线部署指南

目录

  • 系统架构
  • 备份内容
  • 在当前服务器执行备份
  • 在新服务器部署
  • 常见问题

  • 系统架构

    当前系统由两部分组成:

    1. Docker 容器部分

    | 容器名 | 镜像 | 端口 | 用途 |

    |--------|------|------|------|

    | db | postgres:15-alpine | 5432 | PostgreSQL 数据库 |

    | redis | redis:7-alpine | 6379 | Redis 缓存 |

    | app | ai-call-tongzhi-app | 8000 | FastAPI Web 应用 |

    | celery_worker | ai-call-tongzhi-app | - | Celery 异步任务处理 |

    2. 宿主机部分

    | 组件 | 版本 | 用途 |

    |------|------|------|

    | FreeSWITCH | 1.10.12 | SIP 呼叫服务器 |

    | ESL TCP 代理 | Python 脚本 | Docker 内部连接 FreeSWITCH |


    备份内容

    执行备份后会生成以下文件:

    `

    backups/20260621/

    ├── install_offline.sh # 一键安装脚本(包含Docker和FreeSWITCH)

    ├── start.sh # 启动脚本

    ├── stop.sh # 停止脚本

    ├── docker-compose.yml # Docker 配置

    ├── Dockerfile # 应用镜像构建文件

    ├── requirements.txt # Python 依赖

    ├── .env # 环境变量

    ├── project_code.tar.gz # 应用源代码

    ├── database.sql # 数据库备份

    ├── recordings/ # 通话录音文件

    ├── images/ # Docker 镜像文件

    │ ├── postgres_15_alpine.tar.gz

    │ ├── redis_7_alpine.tar.gz

    │ └── app.tar.gz

    ├── freeswitch/ # FreeSWITCH 配置

    │ └── etc/freeswitch/

    ├── tcp_proxy_internal.py # ESL TCP 代理脚本

    └── README.txt # 部署说明

    `

    在当前服务器执行备份

    步骤 1:进入项目目录

    `bash

    cd /home/vboxuser/myxiangmu/ai-call-tongzhi

    `

    步骤 2:执行完整备份

    `bash

    执行备份脚本(需要约5-10分钟)

    bash backup_full.sh

    `

    备份完成后会在当前目录生成 backups/20260621/ 目录。

    步骤 3:复制到新服务器

    `bash

    方法1:使用scp传输(需要网络)

    scp -r backups/20260621/ user@新服务器IP:/home/user/

    方法2:使用U盘或移动硬盘

    sudo cp -r backups/20260621/ /mnt/usb/

    `

    在新服务器部署

    前提条件

  • Ubuntu 20.04/22.04/24.04 操作系统
  • 至少 4GB 内存
  • 至少 20GB 可用磁盘空间
  • root 或 sudo 权限
  • 步骤 1:复制备份文件到新服务器

    backups/20260621/ 目录复制到新服务器的任意位置,例如 /home/user/backup/

    步骤 2:执行一键安装

    `bash

    进入备份目录

    cd /home/user/backup/20260621/

    给脚本添加执行权限

    chmod +x install_offline.sh start.sh stop.sh

    执行安装脚本(需要root权限)

    sudo ./install_offline.sh

    `

    安装脚本会自动完成以下操作:

  • 安装 Docker 和 Docker Compose(如果未安装)
  • 加载 Docker 镜像
  • 解压项目代码
  • 安装 FreeSWITCH
  • 配置 FreeSWITCH 网关
  • 启动所有服务
  • 步骤 3:验证服务

    `bash

    检查容器状态

    docker ps

    检查 FreeSWITCH 状态

    sudo systemctl status freeswitch

    测试 Web 页面

    curl http://localhost:8000

    测试 SIP 注册

    curl -X POST http://localhost:8000/api/config/test-sip

    `

    步骤 4:登录系统

    打开浏览器访问:http://新服务器IP:8000

  • 默认用户名:admin
  • 默认密码:admin123

  • 常见问题

    1. Docker 安装失败

    `bash

    如果自动安装失败,手动安装 Docker

    sudo apt-get update

    sudo apt-get install -y docker.io docker-compose-plugin

    sudo systemctl enable docker

    sudo systemctl start docker

    `

    2. FreeSWITCH 启动失败

    `bash

    检查 FreeSWITCH 状态

    sudo systemctl status freeswitch

    查看日志

    sudo journalctl -u freeswitch -f

    重启 FreeSWITCH

    sudo systemctl restart freeswitch

    `

    3. 容器启动失败

    `bash

    查看容器日志

    docker compose logs app

    docker compose logs celery_worker

    重新构建并启动

    docker compose up -d --build

    `

    4. ESL 连接失败

    `bash

    检查 TCP 代理是否运行

    ps aux | grep tcp_proxy_internal

    重启 TCP 代理

    python3 tcp_proxy_internal.py &

    测试 ESL 连接

    nc -zv 127.0.0.1 8022

    `

    5. Web 页面无法访问

    `bash

    检查端口占用

    netstat -tlnp | grep 8000

    检查防火墙

    sudo ufw status

    sudo ufw allow 8000/tcp

    `

    管理命令

    启动系统

    `bash

    cd /home/user/backup/20260621/

    bash start.sh

    `

    停止系统

    `bash

    cd /home/user/backup/20260621/

    bash stop.sh

    `

    查看日志

    `bash

    查看所有容器日志

    docker compose logs -f

    查看应用日志

    docker compose logs app

    查看任务日志

    docker compose logs celery_worker

    `

    备份数据库

    `bash

    docker exec ai-call-tongzhi-db-1 pg_dump -U postgres ai_call > backup_$(date +%Y%m%d).sql

    `

    恢复数据库

    `bash

    cat backup.sql | docker exec -i ai-call-tongzhi-db-1 psql -U postgres ai_call

    `

    FreeSWITCH 配置说明

    SIP 网关配置

    配置文件位置:/etc/freeswitch/sip_profiles/external/outbound.xml

    当前配置:

  • 网关名称:outbound
  • SIP 服务器:124.128.53.59:4060
  • SIP 账号:905697639
  • 外显号码:05342382639
  • 编解码器:PCMA, PCMU
  • 注册:启用
  • 修改 SIP 配置

  • 通过 Web 界面修改:
  • 登录 http://localhost:8000
  • 进入「系统配置」→「SIP Gateway」
  • 修改配置后点击「应用到 FreeSWITCH」
  • 手动修改:
  • `bash

    sudo vim /etc/freeswitch/sip_profiles/external/outbound.xml

    sudo fs_cli -x "reloadxml"

    `

    技术支持

    如遇到问题,请检查:

  • 所有服务是否正常运行
  • 网络连接是否正常
  • 配置文件是否正确
  • 日志中的错误信息

  • 文档生成时间:2026年6月21日

    系统版本:FreeSWITCH 1.10.12 + Docker + FastAPI