forked from easycallcenter365/easycallcenter365
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDeploy.txt
More file actions
358 lines (241 loc) · 17.6 KB
/
Deploy.txt
File metadata and controls
358 lines (241 loc) · 17.6 KB
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
欢迎关注公众号: 呼叫中心之开源技术分享
后续会陆续有视频教程发布。
欢迎加入开源社区
添加微信号: 18556579517
系统使用及配置演示视频:https://mp.weixin.qq.com/s/05GIFKWtHt6EB0mxgL0BuA
我们提供了预编译的二进制文件。 百度网盘下载地址: https://pan.baidu.com/s/1xFgMPCu0VKHKnG69QhyTlA 提取码: etv5
注意:如果是采用预编译的二进制部署方式, 部署之前请把百度网盘中的文件全部下载到本地文件夹。
然后把文件上传到 linux 服务器目录中,仅支持使用Debian12,推荐下载地址: https://mirrors.163.com/debian-cd/current/amd64/iso-dvd/
一. Freeswitch部署
注意:如果你是手动编译的FreeSWITCH,请把编译后的文件打包名为: FreeSWITCH-for-easycallcenter365-1.10.11.zip 后再上传到 linux 目录下。
在从源代码手动编译的情况下,如果需要docker部署,也需要从前面提到的百度网盘下载docker镜像文件 freeswitch-debian12.5-image.tar。
环境准备:docker及mysql8的安装
docker 的安装参考文档: https://gitee.com/easycallcenter365/freeswitch-modules-libs/blob/master/docs/zh-cn/Debian12-install-docker.md 。
mysql8 的安装参考文档: https://gitee.com/easycallcenter365/freeswitch-modules-libs/blob/master/docs/zh-cn/Debian12-install-mysql8.md 。
1. 创建数据库: freeswitch
导入 freeswitch-1.10.11.sql
注意这里设置数据库root密码为: easycallcenter365
2. 导入freeswitch 的docker 镜像
docker load -i freeswitch-debian12.5-image.tar
3. 部署Freeswitch程序
mkdir /home/freeswitch/
unzip -d /home/freeswitch/ FreeSWITCH-for-easycallcenter365-1.10.11.zip
# 注意去掉多余目录,确保Freeswitch的bin目录位于 /home/freeswitch/下;
修改Freeswitch的数据库密码:
vim /home/freeswitch/etc/freeswitch/autoload_configs/switch.conf.xml
(<param name="core-db-dsn" value="mariadb://Server=127.0.0.1;Port=3306;Database=freeswitch;Uid=root;Pwd=easycallcenter365;" />)
vim /home/freeswitch/etc/freeswitch/sip_profiles/external.xml
( <param name="odbc-dsn" value="mariadb://Server=127.0.0.1;Port=3306;Database=freeswitch;Uid=root;Pwd=easycallcenter365;" />)
vim /home/freeswitch/etc/freeswitch/sip_profiles/internal.xml
( <param name="odbc-dsn" value="mariadb://Server=127.0.0.1;Port=3306;Database=freeswitch;Uid=root;Pwd=easycallcenter365;" />)
vim /home/freeswitch/share/freeswitch/scripts/auth_user.lua
( local dbh = freeswitch.Dbh("mariadb://Server=127.0.0.1;Port=3306;Database=easycallcenter365;Uid=root;Pwd=easycallcenter365;"))
请注意:如果你的MySQL和FreeSWITCH不在同一台服务器上,请修改上面的 Server=127.0.0.1 为实际的IP地址。
这里的MySQL用户名和密码,如果和你的不一样, Uid=root;Pwd=easycallcenter365; 请修改为正确的值。
4. 创建docker容器
chmod +x /home/freeswitch/bin/*
docker run --log-opt max-size=100m --log-opt max-file=3 \
--ulimit core=-1 --security-opt seccomp=unconfined --privileged=true \
-itd --name freeswitch-debian12 \
-v /home/Records:/home/Records -v /home/freeswitch:/usr/local/freeswitchvideo \
--network=host freeswitch-debian12-image /usr/local/freeswitchvideo/bin/freeswitch_start.sh
5. 设置容器的时区:
docker cp /usr/share/zoneinfo/Asia/Shanghai freeswitch-debian12:/etc/localtime
6. 进入Freeswitch控制台
docker exec -it freeswitch-debian12 /usr/local/freeswitchvideo/bin/fs_cli
查看状态: sofia status (如果显示数量为0说明安装失败,一般是数据库用户名及密码错误导致)
二. easycallcenter365 的部署
1. 部署 easycallcenter365.jar
首先请导入最新的数据库脚本 easycallcenter365.sql。
MySQL创建一个名为 easycallcenter365 的数据库,然后导入 easycallcenter365.sql 文件。
a. 在本地文件夹,修改 easycallcenter365.jar 和 easycallcenter365-gui.jar 的配置文件;
如果使用的密码是 easycallcenter365 ,则跳过该步骤 b 和 c ;
b. easycallcenter365.jar 中默认设置的MySQL的root密码是 easycallcenter365 ;
配置文件是:\BOOT-INF\classes\application-uat.properties ;
可以使用Winrar打开jar包,鼠标拖拽拷贝出该文件,修改后再覆盖该文件。
注意:修改jar包时,"压缩方式(C)",要选择"存储",否则会导致jar包损坏。
c. easycallcenter365-gui.jar 设置的MySQL的root密码也是 easycallcenter365 ;
配置文件是: \BOOT-INF\classes\application-pro.yml
可以参照上一步骤c,使用Winrar打开jar包修改数据库连接密码。
d. 把 easycallcenter365.jar 和 easycallcenter365-gui.jar 文件上传到linux的 /home/easycallcenter365/ 目录下;
mkdir /home/easycallcenter365/
e. 检查java版本:
# java -version
输出 java version "1.8.0_391"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
如果是OpenJDK,则需要卸载并重新安装 Oracle JDK,
参考文章:https://gitee.com/easycallcenter365/freeswitch-modules-libs/blob/master/docs/zh-cn/debian12-install-jdk8.md
f. 启动两个jar包程序:
cd /home/easycallcenter365/
nohup java -Dfile.encoding=UTF-8 -jar easycallcenter365.jar > /dev/null 2>&1 &
nohup java -Dfile.encoding=UTF-8 -jar easycallcenter365-gui.jar > /dev/null 2>&1 &
三. FunASR的部署
我们提供了 funasr-server 的一键安装包 funASR-0.1.9
链接: https://pan.baidu.com/s/1Cg1xUcxrsLMaUv8CklFLug 提取码: 4tke
通过funASR官方文档进行安装,有比较大的安装失败概率。
下载安装包到本地,然后参考网盘中的文档 "FunAsr-0.1.9-集群离线部署.txt" 进行安装。
四. 运行设置
这里假定服务器的IP地址是: 192.168.14.218
1. 启动服务
docker restart freeswitch-debian12
【如果前面已经启动了 easycallcenter365.jar 和 easycallcenter365-gui.jar ,这里不需要重复启动! 】
nohup java -Dfile.encoding=UTF-8 -jar easycallcenter365.jar > /dev/null 2>&1 &
nohup java -Dfile.encoding=UTF-8 -jar easycallcenter365-gui.jar > /dev/null 2>&1 &
* 注意事项
启动 easycallcenter365.jar 和 easycallcenter365-gui.jar 之前,请确保FreeSWITCH和MySQL已经启动,一定注意启动顺序。
打开 easycallcenter365 日志: tail -f /home/easycallcenter365/logs/easycallcenter365.log
打开 FreeSWITCH 日志: tail -f /home/freeswitch/var/log/freeswitch/freeswitch.log
进入 FreeSWITCH 控制台: docker exec -it freeswitch-debian12 /usr/local/freeswitchvideo/bin/fs_cli
* 阿里云主机设置
如果当前部署是在阿里云上,需要在防火墙中设置相关端口开放。 点击主机实例,找到"安全组",然后点击"管理规则",在访问规则中,
手动添加以下端口:
```txt
自定义TCP 目的: 8899 源: 所有IPV4(0.0.0.0/0) 描述: easycallcenter365-gui
自定义TCP 目的: 1081 源: 所有IPV4(0.0.0.0/0) 描述: easycallcenter365电话工具条
自定义UDP 目的: 21002/31002 源: 所有IPV4(0.0.0.0/0) 描述: easycallcenter365电话语音端口
自定义UDP 目的: 5080 源: 所有IPV4(0.0.0.0/0) 描述: easycallcenter365电话语音呼入端口
```
注意:在阿里云上开放公网端口风险较大,社区版用户需要注意安全风险。建议设置IP来源的地址段。
(云端部署的安全防护措施仅对商业版用户提供支持。)
2. 大模型参数准备
a. 如果您需要对接 DeepSeekV3,请准备好参数 apiKey ;
注意,easycallcenter365使用的是阿里云百炼平台的大模型接口: https://bailian.console.aliyun.com/ ,
选择顶部菜单:模型 -> 文本模型 -> 更多模型,选择 deepseek-v3 ,设置好体验对话框之,可以进行在线调试。
在左下角,"密钥管理"菜单,可以找到API Key。
b 如果您需要对接"扣子Coze智能体", 请准备好 coze-pat-token 和 coze-bot-id 两个参数。
coze-pat-token 参数请在 https://www.coze.cn/open/oauth/pats 后台创建;
点击右上角的"添加",在添加对话框中,过期时间最长可设置为30天,
勾选 "Bot管理" -> "chat",接着 "选择指定工作空间",最后点击确定保存,
创建成功之后,就可以看到令牌的值,复制它, 注意关闭窗口后无法再次看到!
coze-bot-id 参数的值如何查看?
进入扣子主页,https://www.coze.cn/home ,最近编辑 菜单下面,可以看到最近创建的智能体,
选择一个智能体并点击进入,在地址栏中就可以看到, 比如:
https://www.coze.cn/space/7367249902209859647/bot/7447790819148414985
这里的 coze-bot-id 就是 7447790819148414985 。
特别注意:智能体发布的时候,在发布页面的最下方,一定要勾选 API,否则无法调用智能体接口!
c. 如果是对接 MaxKB ,则需要修改三个参数: maxkb-server-url 、maxkb-api-key 、maxkb-model 。
在 MaxKB 后台,点击进入你事先创建好的应用,在 "应用信息" 中找到 "API 访问凭据", 下方的 "Base URL",
复制 "Base URL",在它的值后面追加字符串 /chat/completions,最终完整的示例:
http://222.124.14.142:8081/api/application/abbed614-2313-11f0-b414-0242ac110002/chat/completions
d. 如果对接的是dify,需要准备好2个参数: apiKey 和 dify 的接口地址。
3. 修改语音合成设置
登录可视化web管理后台: http://192.168.14.218:8899/ (这里假定服务器的IP地址是: 192.168.14.218,请修改为实际的IP地址)
用户名: admin 密码: admin123 分机: 1001
后台菜单: "基础配置" -> "语音合成设置" -> "阿里云tts参数配置"
修改三个参数字段: access_key_id、app_key、access_key_secret 。
阿里云 access_key_id和access_key_secret设置:
登录阿里云后台,鼠标悬停在页面的右上角,在弹出的个人信息中,选择 "权限与安全" -> "AccessKey",
在弹出的窗口中,选择 "继续使用云账号 AccessKey",最后在页面上点击按钮 "创建AccessKey"。
身份校验通过后,就会创建成功,请把 AccessKey ID 和 AccessKey Secret 下载到本机。
阿里云语音 app_key的设置,参考文章: https://blog.csdn.net/HaaSTech/article/details/120217461
参数修改后,自动生效,无需重启FreeSWITCH程序。
成功获取 access_key_id和access_key_secret以及app_key后,在后台保存设置即可。
4. 修改语音识别设置
easycallcenter365 社区版,默认仅支持 FunAsr 语音识别,无需设置。
商业版用户,可以支持把语音识别模块替换为 阿里云 或者科大讯飞。
如果选择阿里云语音识别,阿里云后台注意设置语音识别参数,在"项目功能配置"中,找到 "语音识别" -> "修改配置",
商业版语音识别模块支持8K/16K采样率,目前可以支持多种方言及东南亚小语种。
5. 大模型配置
后台菜单: "基础配置" -> "大模型配置",点击添加。
DeepSeekV3配置的例子:
名称: 招生机器人 (举例)
实现类:DeepSeekChat
apiKey: sk-3e88fb8159dxxxxxxxxeaf34246e94 (填写为自己的)
服务地址:https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
模型名称:deepseek-v3
大模型提示词:参考百度网盘同目录下的 "提示词/llmTips.txt"
FAQ内容:参考百度网盘同目录下的 "提示词/faq.txt"
转人工提示:请稍后,正在为您转接人工坐席。
挂机提示:欢迎您再次来电咨询,祝您生活愉快,再见!
客户不说话提示:您好,请问在听吗? 能听到到吗
开场白:您好,欢迎致电未来科技大学,请问有什么可以帮到您?
打断开关:打开
打断关键词:学费 专业 住宿 就业 前景 失业 专科 本科 奖学金 助学金 贷款 助学贷款 等一下 等下 等等 等我一下 先停下 听我说 先听我说
忽略打断关键词:呃 哦 哦哦 嗯 嗯嗯 嗯好的 好的 对 对对 是的 明白 啊 这样啊 是这样啊 这样的 您好 你好
客户意向提示词: 参考百度网盘同目录下的 "提示词/customerSortTips.txt"
说明: "客户意向提示词" 是用于客户意向分类的,适用于外呼场景下对客户分类的需求。目前仅支持 DeepSeekV3。
Coze扣子智能体配置的例子:
名称:招生客服测试
实现类:Coze
服务地址:https://api.coze.cn/v3/chat/
botId:7447790819148414985
token类型:pat
patToken:pat_DDFWN3cHvLW3zjcaQsJxxxxxxxvtjgaspyKZNz4CUwMil
转人工提示:请稍后,正在为您转接人工坐席。
挂机提示:欢迎您再次来电咨询,祝您生活愉快,再见!
客户不说话提示:您好,请问在听吗? 能听到到吗
开场白:您好,欢迎致电未来科技大学,请问有什么可以帮到您?
打断开关:关闭
6. 呼入客服配置
后台菜单: "呼叫中心" -> "呼入配置",点击添加。
添加呼入配置号码
大模型底座: 选择在第6步中设置的大模型
音色: 选择语音播报的发音人
被叫号码:654321 (就是呼入号)
服务方式:选择ai或者acd
转人工业务组: 转人工坐席时的业务组
系统支持配置多个呼入号码,不同的呼入号码可以支持使用不同的大模型底座。
7. 呼入客服的测试
在百度网盘的同目录下载 "软电话.zip" 安装包,
使用软电话之前请先安装vc++运行环境 vcredist_x64_2015-2022.exe。
打开软电话注册并测试:
分机号及密码: 1001 123456
注册地址: 192.168.14.218:5080 (请把 192.168.14.218 改为你自己的虚拟机地址)
注册成功后,拨号: 654321
就可以进行智能客服的呼入电话测试了。 在菜单 "呼入记录查询"中,可以查询对话记录和听录音。
一切正常的话,此时应该可以听到语音播报。
如果无法听到语音播报请查看日志进行问题排查。
一般需要查看 easycallcenter365 和 FreeSWITCH 日志。
查看 easycallcenter365 日志: /home/easycallcenter365/logs/easycallcenter365.log
查看 FreeSWITCH 日志: /home/freeswitch/var/log/freeswitch/freeswitch.log
对于linux新手建议把 easycallcenter365.log 和 freeswitch.log 下载到本机方便查看。
8. 机器人外呼配置
首先需要配置外呼线路。
后台菜单: "基础配置" -> "线路配置",点击添加。
a. 添加线路配置
网关名称: test (不支持汉字,请使用英文或者字母)
网关用途: 不限制
profile名称: external
主叫号码:007
网关地址: 192.168.14.201:5080
外呼语音编码: pcma (或者pcmu)
网关名称描述:测试线路
网关最大并发数:1
是否认证注册: 对接模式
使用优先级:1
b. 创建外呼任务
后台菜单: "AI外呼" -> "外呼任务管理",点击添加。
添加外呼任务
任务名称: 测试外呼
任务类型: AI外呼
最大并发: 1
外呼线路: test
大模型底座:招生机器人
音色:艾夏-普通话女生
下载数据导入模板: 在任务类型,一栏的末尾,点击下载模板。 下载AI外呼任务的 Excel 模板。
任务保存后,打开 Excel 模板,编辑待呼叫的号码列表,保存。
在任务列表中,找到刚刚创建的外呼任务,点击"导入数据"按钮, 选择刚编辑的Excel。
注意:如果服务器配置是4c/8g,单次导入的Excel数据不要超过5万条,否则会报错。
如果配置是8c/16g以上,单次正常可以导入10万条数据。
最后:点击 "启动外呼" 按钮,启动任务。
c. 问题排查
日志及问题排查,参考第8步中提到的日志文件路径。
通过菜单 "AI外呼记录",可以查询外呼记录,如果是线路原因导致外呼失败,可以查看 "挂机原因"字段。
d. 数据导出
通过菜单 "AI外呼记录",可以选择外呼任务,导出指定任务的外呼结果。
9. 对接大模型及智能体注意事项
无论是对接Coze还是MaxKB或Dify,请先在网页界面的对话窗口中,把文字对话的流程跑通。
Coze扣子需要充值,请保持有一定账户余额。
由于DeepSeek官方API速度太慢,这里默认使用的是阿里云百炼平台的大模型接口。
10. 其他说明
本一键安装包用于体验测试,实际投产建议部署在阿里云上。
原因如下:
a. 语音合成调用的是阿里云,语音播报延时受网络波动影响;
b. 语音识别,一般也是使用云端,语音识别结果返回的延时也受到网络波动影响;
FunAsr仅限测试使用,语音识别效果比云服务要差,不推荐用于商用;
c. 无论是调用扣子Coze智能体还是DeepSeekV3,使用的都是云端大模型,也会受到网络波动影响。
11. 其他问题汇总
a. 关于电话工具条的设置问题
如果是想把工具条代码集成到自己的业务系统中,请参考easycallcenter365项目主页文档: https://gitee.com/easycallcenter365/easycallcenter365#%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%E8%BD%AC%E5%86%85%E7%BD%AE%E4%BA%BA%E5%B7%A5%E5%9D%90%E5%B8%AD
如果是想测试 easycallcenter365-gui 管理后台的电话工具条,在管理后台找到,参数管理,修改参数: call-center-server-ip-addr ,改为当前服务器的对外IP地址即可。