OKCC系统源码搭建需要准备什么
一、 明确需求与目标 (规划阶段)
业务目标:
呼叫中心的主要功能?(呼入客服、电话营销、混合型、预约提醒、IVR自助服务等)
预期的呼叫量(日均/峰值并发量)?
需要的坐席数量(初期及未来扩展规划)?
需要的功能模块?(ACD智能路由、IVR交互语音应答、录音、监控、报表、CRM集成、外呼预测/预览、WebRTC支持、短信/邮件集成等)
目标用户群体和地域分布?
技术选型与方案:
核心平台: 确认具体的OKCC解决方案。是基于Asterisk/FreePBX的特定发行版(如Issabel, FreePBX Distro)?还是某个社区/商业公司提供的特定OKCC源码包?明确具体要下载和搭建的源码项目名称和版本。
操作系统: 该项目明确支持的操作系统(通常是特定版本的CentOS/RHEL,有时是Ubuntu/Debian)。严格遵循官方文档要求。
数据库: MySQL/MariaDB 是最常见的。确认所需版本。
Web服务器: Apache 或 Nginx。确认项目依赖。
编程语言环境: 需要PHP(特定版本,含必要扩展如PDO, mbstring, curl, gd等)、Python(可能用于脚本)、Perl(Asterisk AGI常用)、Node.js(可能用于实时通信/WebSocket)等。版本兼容性至关重要!
其他依赖: SIP栈(如PJSIP, chan_sip)、音频编解码库(如G.711, G.729 - 注意G.729的许可)、传真支持(如SpanDSP)、文本转语音/语音识别引擎(如Festival, Pocketsphinx - 或集成第三方如Google Cloud ASR/TTS)。
二、 基础设施准备 (硬件与网络)
服务器硬件:
核心服务器: 运行Asterisk、数据库、Web服务的核心服务器。需求取决于坐席数、并发呼叫量、录音量。
CPU: 多核高性能CPU(推荐现代Xeon或EPYC),核心数比主频更重要。高并发下CPU是关键瓶颈。
内存: 足够内存是关键。基础环境可能8GB起步,但50坐席以上建议32GB+,高并发/大数据库需64GB+。Asterisk、数据库(尤其是录音索引)、Web服务都耗内存。
存储:
系统盘: SSD(SATA/NVMe),容量>= 100GB(用于OS、程序、日志)。
数据盘: 强烈推荐高性能SSD阵列(RAID 10最佳)。用于存放数据库、录音文件(录音文件体积巨大,是主要存储消耗者)、语音文件(IVR提示音)。估算:录音文件大小 = 通话时长(秒) * 通道数 * 编解码比特率(kbps) / 8。RAID提供冗余和性能。
网络接口: 至少双千兆网口(建议万兆,尤其在高并发或集成其他服务时)。一个用于SIP/RTP流量(强烈建议独立VLAN或物理隔离),一个用于管理/数据库/Web流量。
可选组件服务器:
数据库服务器: 大规模部署建议将数据库分离到专用服务器。
Web应用服务器: 高负载Web界面可分离。
文件/录音服务器: 海量录音可考虑专用NAS/SAN或对象存储。
TTS/ASR服务器: 若使用本地引擎。
网络环境:
带宽: 计算SIP信令和RTP语音流所需带宽。保守估算:每个并发呼叫(G.711)约100kbps上行+100kbps下行。50并发约需10Mbps专线。考虑峰值、管理流量、录音上传下载。
网络质量: 低延迟(<50ms)、低抖动(<20ms)、低丢包率(<0.5%) 是保障语音质量的关键。企业级路由器/交换机是必须。
防火墙/NAT:
SIP ALG: 必须在所有网络设备(路由器/防火墙)上彻底禁用SIP ALG功能! 它是SIP问题的常见根源。
端口开放: 需要开放UDP端口(SIP: 5060, RTP: 10000-20000范围常见,可配置;IAX2: 4569; WebRTC相关端口如UDP 3478, 5349, TCP 443等)。严格限制访问来源IP(仅限SIP提供商IP、坐席公网IP、管理IP)。
NAT穿越: 如果服务器在内网或坐席在远程,需配置STUN/TURN/ICE(WebRTC必需)或设置SBC边界控制器处理NAT。
IP规划: 为服务器、IP话机、软电话分配静态IP地址。
VLAN: 强烈建议将语音流量(SIP/RTP)划分到独立的VLAN中,与数据流量隔离,保障QoS和安全。
QoS: 在网络设备上为SIP和RTP流量标记优先级(如DSCP EF for RTP, AF31 for SIP),确保语音流畅。
SIP中继/运营商:
选择可靠的SIP中继服务提供商,获取:
注册信息(服务器地址、端口、用户名/认证名、密码)。
分配的DID号码范围。
支持的编解码列表(确保与Asterisk配置匹配)。
了解并发呼叫限制和费率。
三、 软件与依赖环境准备 (构建环境)
操作系统安装:
根据OKCC项目要求,安装指定版本的Linux发行版(如CentOS 7/8 Stream, RHEL, Debian 10/11, Ubuntu 20.04/22.04)。
最小化安装(仅安装基本系统)。
配置静态IP地址、主机名(
hostnamectl set-hostname okcc01
)、DNS解析。配置NTP时间同步(
chronyd
或ntpd
)。更新系统:
yum update
/apt update && apt upgrade
。配置必要的内核参数(
sysctl.conf
,如增加网络连接数限制net.core.somaxconn
,net.ipv4.tcp_max_syn_backlog
等,需参考Asterisk优化文档)。调整文件句柄和进程限制(
/etc/security/limits.conf
)。安全加固: 禁用root SSH登录、使用密钥认证、配置防火墙(
firewalld
/ufw
,仅开放必需端口)、安装入侵检测(如Fail2ban)。
安装基础编译工具链:
CentOS/RHEL:
yum groupinstall "Development Tools"
yum install kernel-devel
Debian/Ubuntu:
apt install build-essential
apt install linux-headers-$(uname -r)
安装核心依赖:
数据库服务器: 安装指定版本的MySQL/MariaDB,配置root密码,创建OKCC使用的数据库和用户,分配权限。
Web服务器: 安装Apache或Nginx。
PHP环境: 安装指定版本的PHP(如PHP 7.4/8.0/8.1)及项目要求的扩展(
php-fpm
,php-mysqlnd
,php-pdo
,php-mbstring
,php-curl
,php-gd
,php-xml
,php-zip
,php-openssl
,php-session
,php-json
等)。配置php.ini
(内存限制memory_limit
、上传大小upload_max_filesize
、时区date.timezone
等)。其他语言环境: 按需安装Python, Perl, Node.js等及其常用模块。
下载OKCC源码:
从官方指定渠道(如GitHub仓库、项目官网、SVN)下载所需版本的OKCC完整源码包。务必验证下载文件的完整性(如校验MD5/SHA256)。
解压到Web服务器的文档根目录(如
/var/www/html/okcc
)。
四、 构建与配置 (部署阶段)
安装Asterisk及其依赖:
根据OKCC项目文档,可能需要先手动编译安装特定版本的Asterisk(及其依赖如Jansson, PJSIP, SQLite3等),或者项目脚本/包管理器会处理。
编译Asterisk时,启用项目需要的模块(
menuselect
工具)。特别注意DAHDI(硬件卡驱动,纯软方案通常不需要)、PJSIP/chan_sip、ODBC数据库连接、格式编解码支持(尤其G729需要单独处理许可)、MP3录音支持等。
安装OKCC Web应用:
通过Web界面(如
http://your-server-ip/okcc/install/
)或命令行脚本运行安装向导。向导会要求提供:
数据库连接信息(主机、库名、用户名、密码)。
管理员账号信息(用户名、密码、邮箱)。
系统时区、基础URL等设置。
安装脚本会自动创建数据库表结构、导入初始数据、配置文件和目录权限。
核心配置:
Asterisk配置文件: OKCC通常通过其Web界面管理大部分Asterisk配置(
extensions.conf
,sip.conf
,pjsip.conf
,iax.conf
,queues.conf
,agents.conf
,voicemail.conf
,rtp.conf
,modules.conf
等)。但可能需要手动微调高级参数或性能优化设置。理解配置文件结构是关键。SIP中继配置: 在OKCC Web界面配置SIP提供商信息(注册信息、DID、编解码)。
分机/坐席配置: 创建坐席分机(SIP/IAX2/WebRTC)、设置密码、关联坐席账号。
IVR配置: 设计并配置交互式语音应答流程。
队列配置: 创建呼叫队列,设置路由策略(轮询、最少接通、随机等)、溢出处理、坐席关联。
录音配置: 设置录音格式(WAV, MP3)、存储路径、保留策略。
外呼配置: 设置外呼模式(预览、预测、渐进)、拨号规则、号码列表导入方式。
集成配置: 配置与CRM、第三方TTS/ASR API等的集成。
坐席端准备:
硬件话机: 选购兼容SIP的IP话机(推荐Yealink, Grandstream, Poly等品牌),配置服务器地址、分机号、密码。
软电话: 推荐使用兼容的软电话(如Zoiper, MicroSIP, Linphone)或OKCC可能提供的WebRTC软电话。安装并配置连接信息。
耳机: 为坐席配备高质量带麦克风的耳机。
五、 测试、优化与上线
全面功能测试:
内部分机互拨。
呼入测试(用手机/固话拨打DID,测试IVR、转接队列、坐席接听、保持、转接、三方通话、语音信箱)。
呼出测试(坐席手动拨号、预览外呼、预测外呼)。
录音回放验证。
坐席状态变更(空闲、忙碌、小休)、监控功能。
报表生成。
WebRTC软电话测试(浏览器兼容性)。
关键集成点测试(CRM弹屏、TTS/ASR)。
性能与压力测试:
模拟高并发呼叫(可使用SIPP等工具),观察CPU、内存、网络、磁盘I/O使用情况。
测试系统在峰值压力下的稳定性、呼叫接通率、语音质量(MOS评分)。
根据测试结果进行优化(调整Asterisk参数、数据库优化、增加硬件资源)。
安全审计:
检查所有服务(SSH, Web, SIP端口)的暴露面。
确保Web应用和操作系统漏洞已修补。
检查密码强度策略。
审查防火墙规则。
考虑部署WAF(Web应用防火墙)。
备份策略:
数据库: 制定定期(如每日)完整备份和增量备份策略(
mysqldump
或Percona XtraBackup)。录音文件: 制定备份或归档策略(考虑存储成本和保留期限)。
配置文件: 备份Asterisk配置目录(
/etc/asterisk
)、OKCC Web应用的配置文件和环境配置(如PHP, Apache/Nginx配置)。系统镜像: 定期对服务器制作系统镜像快照。
测试恢复: 定期验证备份的有效性!
监控与告警:
部署监控系统(如Zabbix, Prometheus+Grafana, Nagios)监控服务器资源(CPU, 内存, 磁盘, 网络)、关键进程状态(Asterisk, MySQL, Apache/Nginx, PHP-FPM)、呼叫队列状态、SIP中继状态、磁盘空间(尤其录音盘)。
配置告警(邮件、短信、钉钉、企业微信)以便及时响应故障。
文档与培训:
编写详细的系统架构文档、配置手册、运维手册、应急处理流程。
对管理员、运维人员、坐席主管、普通坐席进行针对性培训。
总结:
搭建OKCC源码系统是一项系统工程,涉及深度技术规划、严谨环境准备、细致配置和严格测试。成功的核心在于:
清晰的业务需求定义。
严格遵循官方文档要求(特别是OS、软件版本)。
强大的基础设施支撑(性能、网络、存储)。
对Asterisk和Linux系统的深入理解和配置能力。
全面的测试(功能、性能、安全、灾备)。
完善的运维体系(监控、告警、备份、文档)。
建议在投入生产环境前,务必在模拟环境中完成所有搭建和测试步骤。对于关键业务场景,考虑寻求专业Asterisk/OKCC服务商的支持或采用商业发行版/托管服务,以降低风险和运维成本。