点击聊天记录,上拉滚动条报 loadIndex is not defined
点击企业聊天报“layui error hint: dropdown instance with ID '.layim-chat-mine>.layim-chat-text' not found”
前台分机分离 bug,单点登陆支持分机分离
前台的聊天功能中,选择内容右键进行转发 bug
前台的客户名片加载数据报错 bug,同时优化了界面
微模型多语言模型学习,导入命令-播放语音挂机功能开发
微模型-模型学习,导入播放语音后挂机命令,以及内容不变,重复导入不再合成新的语音,后台已开发
后台大模型,chat 增加 RAGFlow
勾选大模型或者微模型,增加不按键转来电接听
表 tbl_callinset 新增字段 ifWelcomeNoKeyValueToCallin、ifWelcomeNoKeyValueToCallin_deepseek两个字段分别存储微模型和大模型,是否不按键转接来电接听,默认不启用
后台大模型,更多弹出框,勾选不按键转接来电接听功能添加,已开发
后台大模型,更多弹出框,勾选不按键转接来电接听功能添加,已开发
开发语音呼叫功能
来电微模型,启用语音呼叫,启用归属坐席范围,联系人从归属坐席查找
涉及启动多语言和不启动多语言,都能兼容这个语音呼叫号码功能
为了适应多语言,导入的 excel 增加系统语音 2 个命令,语音呼叫号码成功和语音呼叫号码重复,表新增以下 4 个字段,记录语音呼叫系统多语言导入和生成的语音相关信息,后台导入 excel 针对这两种已经开发
import_small_callphone_success_VocText:语音呼叫号码成功的文字,用于微模型学习导入判断是否合成新的依据
small_callphone_successVoc_language_list:多语言语音呼叫号码成功字符串,包含语种、语音名、语种对应文字
import_small_callphone_repeat_VocText:语音呼叫号码重复提醒的文字,用于微模型学习
导入判断是否合成新的依据
small_callphone_repeatVoc_language_list:多语言语音呼叫号码重复提醒字符串,包含语种、语音名、语种对应文字
这4个字段类型 => text 不指定长度方式
为了适应不启用多语言,语音呼叫号码功能,准备了语音呼叫号码成功播放的系统音和语音呼叫号码重复的系统音
vocCallPhoneSuccess.wav:系统即将挂机,稍后立即呼叫客户号码,请注意接听。
vocCallPhoneRepeat.wav:根据所说号码查询出联系人重复,请再说一遍,记得在原有的号码位数要多加一位,这样才能更加精准找出唯一的联系人进行呼叫
后台新增启用语音呼叫和仅限归属两个勾选功能,为了显示这两个操作,表 tbl_callinset 增加两个字段,后台显示和修改这两个勾选
ifOpenVocCallPhone:是否启用语音呼叫功能
ifOpenVocCall_belong:是否启用语音呼叫仅限归属自己工号的范围寻找联系人
后台外呼按键 IVR,转分机,添加坐席保存后,刷新页面还是没有,后台有报错
针对微模型 chat
返回 null
播放系统音
微模型学习导入 excel
加入 null
系统语音,后台导入进行合成 null 对应的系统语音
表 tbl_callinset 新增两个字段,用于存储导入的文字和生成的音频信息,import_small_null_VocText
和small_null_Voc_language_list
上传的excel,写入准备上传到 dify 的 excel 内容不对,导致上传到 dify 上面状态显示错误,写入 excel 带特殊符号问题导致写入失败问题
微模型中匹配此的匹配,逻辑判断
index-tts 不支持广东话,涉及广东话的内容不作导入
微模型导入优化,区分不同 Excel,不同语种,不同文档 ID
xxxxxxxxxx
<!--dify相关参数设置-->
<!--微模型学习,上传文件到dify的URL-->
<add key="dify_url" value="http://192.168.1.201:80/v1"/>
<!--微模型学习,调用dify API接口密钥apiKey-->
<add key="dify_apiKey" value="dataset-Hysj4Kx1LX9DWhzfHd4ru5UN"/>
<!--微模型学习,dify操作的知识库ID,用于上传的excel调用dify更新知识库接口参数-->
<add key="dify_datasetId" value="1c906bd0-ac7b-4f88-9301-9a2153e01a6d"/>
<!--微模型学习,dify操作知识库的文档ID,用于上传的excel调用dify更新知识库接口参数——中文-->
<add key="dify_zh_documentId" value="179245fd-881d-40a4-9be3-2b70f00919ae"/>
<!--微模型学习,dify操作知识库的文档ID,用于上传的excel调用dify更新知识库接口参数——英文-->
<add key="dify_en_documentId" value="179245fd-881d-40a4-9be3-2b70f00919ae"/>
电话记录中录音播放窗口嵌套过小
导入中,内容涉及双引号的导入错误
多语言文档导入,有新增数据都会重新生成新音频
微模型,全局有相同关键词,保存提示重复问题,改了个版本,判断关键词重复只局限于同级
优化
微模型模型学习导入
导入excel,命令-转人工和播放语音后挂机,判断重复修改,将excel命令的内容全部存储,然后对需要合成的语音进行对比,如果合成内容一致不进行再合成,更新其它的内容
排查用英语的时候,有些回答在excel,都返回null,登录dify网页,查看工作流程测试,发现也是返回null,最后问文杰,文杰说文档里需要加入元数据,参数指定对应zh(普通话)和en(英文),这样输入英文工作流回复正常
分机分离接口
添加添加黑名单接口
pbx针对微模型或者大模型,来电接听,勾选后不按键转接来电接听功能开发
阿里云TTS,叶莹测试161反馈放音语速有点快,之前调用阿里云TTS输入参数只有一个音量,新增两个参数,语速和音调,接入阿里云TTS,pbx.exe.config新增这2个参数设置
xxxxxxxxxx
<!--阿里云合成语音,语速,默认0,范围-500至500之间-->
<add key="ai_deepseek_Ali_spd" value="0" />
<!--阿里云合成语音,音调,默认50,范围-500至500之间-->
<add key="ai_deepseek_Ali_pit" value="0" />
开发语音呼叫功能不愁
呼叫+工号,将转接坐席
呼叫+号码流程融入到微模型调用一起联调
大模型 AI 不打断问题
播放完导航语,第一次不说话,听到未能识别你说的话后再说话,还是会未能识别你说的话
有概率出现,说了话,播放未能识别你说的话,原因是有个判断,当开始录音时间和说话时间少于0.5秒时会播放未能识别你说的话,先这个判断执行逻辑注释
chat修改,启动多语音,新写个接口,接口参数增加传入语种进行调用
测试选择使用英文后,第一次正常用英语,第二次不说话,播放了中文的未能识别你说的话,找到了一个地方,没用多语言进行查找对应语种进行播放系统音
pbx这边针对微模型导入的播放语音后挂机,这种播放完语音1后直接立马挂机
pbx对接RAGFlow的chat功能开发,对接本地ASR和本地indexTTS
pbx闪退
日志报错,时间类型转换报错,不打断,有个录音开始时间没有导致
在欢迎词阶段,有个bargin是否生效,变量已改
本地来电后挂机推送取值报错的地方
转接坐席分机分离的实体分机,转漫游了,原因代码判断坐席分机分离的漫游状态不对,之前的读的是tbl_user的istrip(虚拟状态),不进行坐席分机分离的时候读这个是对的,改成读tbl_userpicksort的(istrip)
客户那边推送数据日期带有星期,不是标准日期,以及没有产生电话记录问题
pbx添加推送数据地方,日期全部格式话
反馈根据订单创建的,计划回款计划有问题,不能修改提醒类型
查看AI产生的电话记录,对答未能识别你说的话,放音和文字都不对
阿里云TTS对接乒乓不放音问题
坐席漫游,启用满意度评价,目前只做,漫游外线挂机触发满意度评价
短信呼叫功能开发,目前只针对短信猫,根据内容提交人工接听
ragflow有概率出现chat只返回一条数据{"code":100,"data":"","message":"0"},目前版本出现这种情况,一直播放思考音没有后续, 针对这种现象播放“系统繁忙暂未返回您要的信息,请重新说出您的问题。”语音
微模型优化
启动不按键转来电接听,按完没有设置过的键值直接走来电接听,应该走AI
放完导航语不说话,流程有点问题,有概率出现一直静音现象
错误识别多次挂机,英文的播放中文的语音
错误识别多次直接挂机,没有播放你的错误过多即将挂机类似语音,而是播放对应语种的识别错误的语音,直接挂机
放完欢迎词,选择语种英文成功率太低,匹配算法修改,目前改成相互包含
微模型导入的命令-播放语音后挂机,识别这一级,一直播放思考音,没播放对应语音后挂机
针对微模型返回null,进行播放对应系统语音,启用多语言播放excel导入生成的语音,不启用多语言,直接播放导航语内容,重复播放一遍
单点登陆 bug,单点登陆支持分机分离,支持来电弹屏,聊天弹屏设置
升级 jquery 造成的客户联系人加载不出来数据 bug
通话列表,可显示的名称长度需要自适应,窗口在最大化时依旧省略显示的问题 解决方法是根据宽度自动添加三个点
个推推送消息失败 bug
前台的聊天不能复制 bug
日志问题
分机号设置没有删除功能,新增解除分机号功能开发
数据查询
外呼号码池导入与分配速度
是否启用安卓手机下载录音文件功能
transferroam 默认 0,原来的逻辑,1 代表需要找漫游号码漫游外呼
CallRecord 里面的分页功能导致的查询问题
App 是否支持下载录音文件到手机端 安卓系统
/handle/Checkingin.ashx
存在SQL注入漏洞
/handle/email.ashx
存在任意文件上传漏洞
坐席分机分离,同个分机,用其它工号登录后,坐席外呼,电话记录不对
板卡授权数和板卡实际数不一致时,会导致分机号设置有问题
微模型,本地ASR,录音拼接会丢失客户说的话
pbx 去掉调用 webAPI 主从同步接口,其它程序调用
客户端第一次登陆,会提示企业 id 为 0 bug
转漫游功能
修改转接接口,支持 App 端使用
升级 jquery 造成的客户联系人加载不出来数据 bug,及聊天 bug
openAI导入,将音库放到配置项
开发indexTTS,列表展示,列表直接放音,删除,上传到indexTTS服务器
微模型,模型学习多次导入重复的还是新生成,以及导入的IVRCode值和前面的有重复
通道组设置,编辑通道组设置,未分配通道和已选择通道,从左选到右,从右选到左,功能不正常,已修改,涉及其它地方也有类似问题,全部修改,$(this).attr("text")改成$(this).text(),$(this).attr("index")改成$(this).index()
easyUI新版本不支持 editable="false" 这个属性,去掉
报表模板-新建模板,模板名称输入不了,以及报表相关页面一样问题
提醒服务器查询,提交时间不能搜索今天以前的日期
创建订单,选择其它订单创建,回款计划,没显示当前创建者身份
大模型设置,使用 openAI 同时将思考音变成不启用,选中判断 js 用 attr 不对,高版本不支持,发现其它页面还有使用 attr 属性判断是否选中
外呼大模型设置修改,照着来电修改,加入openAI相关显示设置
计划任务,弹出框第一次加载列表显示正常,再次点击列名不正常
选择订单创建的产品列表数量修改不起作用,高版本语法的问题,针对类似,全项目搜索低版本easyUI,datagrid更新行内容语法修改
签审流程-签审流程弹出框,签审用户和抄送区域样式有问题换行了
签审工作台-已提交,根据时间搜索,查询无效,是因为签章的查询语句查询的列不存在导致报错
陕西那边提到openAi,有个指令可能要常换,调用openAI有个参数放到后台设置,故来电表tbl_callinset和外呼表tbl_outivrprocess,各新增一个字段openAI_instructions,默认“用中文说”,pbx调用openAI参数读取后台设置的这个参数
jquery版本升级导致取值不对attr("value")改成.val()
单据列表显示所属部门闪烁问题
选 openAI 将显示更简洁点,不容易误操作,openAI 音色录入改成下拉框选择
模型学习改成2个功能,一个更新导入和全部导入区分开
添加 transferroam 默认 0,原来的逻辑,1 代表需要找漫游号码漫游外呼
外呼接入大模型 OpenAI 流程
不说话定时器,播放完未能识别你说的话后,将可以 bargin 进入,让静默事件生效的变量改成1
修改转外线功能问题,坐席:漫游,在线/离开/离线,转外线不对
写电话记录方法,有部分在用这个方法,里面好几个全局变量,如若重复调用,会出现记录不对的问题修改
OpenAI 不放音优化
优化不放音
思考音加入,挂机后录音拼接,思考音有些没截取导致录音很长的问题
针对发送完语音,增加了个定时器,起了5秒定时器,如果没有接收openAI数据,直接播放未能识别你说的话
阿里云 chat 对接
chat 第一条返回 null,转接人工,电话记录思考音没有切掉,语音时长很长
chat 第一条返回 null,判断多加个条件 node_is_completed=true 和 content=null 一起
群呼调度拨号前,查询区域和是否加0代码优化
PBX 转接接口优化,新增一个参数是否转坐席漫游外线功能开发
第一次登陆,会提示企业 id 为 0 的 bug
公告不滚动 BUG
jQuery 1.4 => jQuery 3.7.1
单点登陆接口返回统一的 JSON 格式数据
语音合成设置增加保存阿里云账号信息
来电或者外呼 deepseek AI 设置 增加阿里云的 webSorket ,语音合成和语音识别,阿里云 chat
AI 设置,增加百度、indexTTS,文字转语音功能
AI 大模型,百度和阿里云,语音库配置增加
微模型,增加模型学习,自动导入,Excel,只需要3列(类型、问题、答案),AI 设置必须是 IndexTTS
jQuery 库、easyUI 库升级,后台修改升级后,语法导致不兼容问题修复
配置文件
<!--微模型学习-->
<!--微模型学习,语音合成类型,默认0,用TTS,其它待定未开发,需要再做-->
<add key="tts_type" value="0" />
<!--微模型学习,语音合成请求路径-->
<add key="tts_url" value="http://192.168.1.201:8085/v1/tts" />
<!--微模型学习,语音合成时间计算规则,1个字几秒,用于界面计算预计时长,例如1个字4秒-->
<add key="tts_produce_time" value="1.1" />
其它后台提到的问题修改
停止数据库的接口
三方通话,转接功能添加漫游状态下是否在漫游中
32 位授权验证
Framework 更新 v4.7.2
阿里云
chat 接入
webSorket 对接的语音合成进行乒乓放音
百度
chat 返回一句话的处理逻辑加入
大模型对接 indexTTS,放音
64 位接入,读取 sqlite 数据库通过接口获取
新增 2 个接口,一个判断板卡是否正常工作,另一个 pbx 退出
配置新增
xxxxxxxxxx
<!--百度合成语音,下载的音频,采样率8000 16bit还是采样率16000 16bit,默认16000 16bit,百度流式下载,流式放音,需要转-->
<add key="ai_deepseek_baidu_textToVoc_16000" value="0" />
<!-- ICDisplayState:FSK来电显示立马接听并不管有没有振铃,摘机播放欢迎词,默认不开启0,1开启,特殊状态接听,因为这种摘机没有振铃接听,板卡不会进入通话状态 -->
<add key="ICDisplayState" value="0" />
解决短信发送失败,增加协议
Framework 更新 v4.7.2
dtmf-response,便于客服人员测试的功能「按键值推送,请填写客户接收地址」,接口请求,将当次请求的值作为返回值返回,接口地址:http://localhost:8000/api/key-response?msg=welcom.wav
如果未携带 msg ,则默认内容为:语音测试内容
voc 本体在服务器端的默认目录:D:\Program Files\AOFAX_CTI\AOFAX-ChatWeb\upFiles\pbx_voc
xxxxxxxxxx
{ "code": 200, "msg": "welcom.wav" }
格式化记录,让短信识别结果能输出到界面,便于验证功能是否正常
聊天中,缓存失效问题
AI参数设置页面
微模型后台设置,导航语和播放语音进入下一步,新增选择AI模型功能
增加ASR选择,可以选本地和百度ASR,文字转语音,增加可以选择百度合成
群呼管理
添加群呼,增加大模型群呼,以及外呼大模型流程设置页面功能开发,用于提交群呼选择大模型流程
增加一些 ASR 识别选项以及语音合成选项
进销存反馈,先后收2次款,再订单完成,销售流水第一笔数量不对问题修复
考勤管理
员工分组,增加判断,先添加班次的考勤规则成功后才能进行班次分组
deepseek AI设置页面修改
通话记录查询功能
针对百度对接的语音合成,将音调、语速放到pbx_config中
框架升级 4.5.2 升级 4.7.2,配置参照 195 的 pbx_config,里面有个配置节点 <runtime></runtime>
对比新增或者修改的,或者省事的话之间全部替换节点内容即可,老升新客户,至于使用百度相关的账号接口信息<appSettings>
配置节点
外线空闲总数和断线总数不对问题修复
来电deepseek AI模式
上传、识别、聊天、合成接口,失败处理,播放“由于系统升级,现在由人工为您解答”
增加Http的百度识别和百度语音合成
语音识别增加百度websorket,语音合成增加百度webSorket对接,以及百度chat对接
chat聊天接口,返回的只有一条的,处理修改,先准备号播放队列,再进行语音合成
来电修改,来电接听(直拨分机、智能转接、按键IVR)之前,判断是否启用微模型或者大模型,启用了优先级高一点,然后在欢迎词阶段,可以按键转到来电接听(直拨分机、智能转接、按键IVR)
遇忙、非工作时间、坐席振铃未接,这三种都增加可以转到微模型或者大模型流程
前台进入到企业聊天bug
音频文件
Deepseek AI 播放的思考音,音频名: thinkVoc_deepseek.wav
Deepseek AI 配置,增加授权文件判断,有 AI 权限才让修改
合同打印功能添加,将之前自定义的 html 用 js 代码将输入框替换成 div 形式
联系人,关键字搜索太慢
关键字搜索完,点击其它页
速度慢
数据不是搜索
存储过程修改,后台调用传参修改
sp_ChatQuantityStatistic
sp_call_YearWeek_statis
sp_call_YearMonth_statis
mysql 查询条件带 date_format() 全部改掉,效率太低
存储过程,视图使用 date_format 函数功能改成 between and
存储过程,视图使用 date_format 函数功能改成 between and
增加日志,跟踪来电外呼过程
来电外呼,推送 tbl_apidata 表,body 字段,插入的 json 字符串,拼接改成标准的 json 字符串不带空格和换行的
Deepseek AI 模式下来电优化,语音转文字和聊天对话之间异步调用优化
来电 Deepseek AI 模式下,录音和实际打断不一致,记录下切割的音频,好用于挂机拼接用切割的音频而不是没切割的音频
来电 Deepseek AI 模式,播放对话音,挂机后,同步音频切割、录音对话切割以及拼接完整录音优化
外呼人工接听,拨号后没有坐席,遇忙处理,通道释放的同时通道状态也跟着变成空闲,已补上
查询慢优化,涉及到 DATE_FORMAT 条件查询去掉这个函数,直接改成时间区间查询
日志重复的太多,正常访问外网 ip 定时器每 15 秒,一天下来不少,3 个只保留一条结果,Deepseek AI模式,对答的文字流每个流打印去除,只拼接好一句话的
文件
RestSharp.dll
System.Runtime.CompilerServices.Unsafe.dll
System.Buffers.dll
System.Memory.dll
群聊,私聊上拉滚动条加载数据显示不正确 bug
进销存问题修复,采购单增加建议价、其它显示优化问题
表 tbl_callinset 增加字段 ifOpenTransferUser_deepseek ,是否启用 AI 转人工,功能开发
配合app开发相关接口修改,去除 session 相关,让接口调用正常工作
库存管理和财务管理权限修改,改成显示全部和不显示
进销存对接 app 接口,取值和返回值不正确修改
反馈的后台其它问题的修复
deepseek AI 模型设置修改
创建销售单和采购单,出单人和部门可修改改成不可修改,出单人就是当前登录者
将完成的采购订单勾选退货,提示不正确,提示的是创建采购订单完成,应提示创建采购退货单完成
将完成的销售订单勾选退货,提示不正确,提示的是创建销售订单完成,应提示创建销售退货单完成
坐席管理权限,库存管理、财务管理权限修改,改成勾选显示全部功能,功能已开发
将创建销售单、销售过期单、创建采购单、采购过期单,同意退回和撤销动作全部隐藏,签审相关操作全部放到签审工作台处理
添加版本本号
修复存在信息泄露漏洞 bug
添加版本本号
添加版本本号
界面卡顿现象修复,更新界面次数减少,更新列表改成只更新一条,不重新渲染整个列表,以及更新界面的时候用异步更新
虚拟坐席,来电转接问题,播放bg2的同时携带回铃音问题修复
人工接听群呼,坐席是虚拟坐席
坐席本地离线,一直呼,就是呼不通,已修改
坐席漫游离线,同上,已修改
在线或者离线虚拟坐席,PBX 使用第二条外线,转接(拨号中,回铃)外呼,过程中(bg) 携带回铃
分机打分机,分机本地漫游或虚拟坐席,离开继续转,只有漫游通话中不转
本地转接后,若被转接坐席先挂机,则无法继续操作转接的动作
本地坐席打漫游分机,一拨通立马挂机,坐席通道和漫游外呼通道不释放
来电坐席接听,转给本地分机,对方未接时再拍回来,通话过程携带「回铃音」
来电坐席接听,转给本地分机,被转接方若在回铃状态时(分机拨分机等),会变更原先状态,导致后续其他问题出现,改成转接方分机只能是空闲的时候才给振铃
能被同时拨,会导致同时被叫时候若一方提前挂断,漫游的状态会被初始化,导致后续问题
「离开」状态的所产生的转接失败,无法拍回来
呼出双漫游后,漫游坐席打本地分机,漫游外呼了
注册板卡函数,回调模式监听事件改成windows监听
右小角退出,实质任务管理器还有,导致退出不彻底,再打开录音系统打开不了的问题修复
未授权打开录音系统,报错,有时候需要手动到任务管理器关掉才能再次打开
点击企业聊天的时候,缓存里面的每个聊天窗口的聊天内容按照日期从小到大排序
群内收到信息的字体内容不同问题
群聊,私聊,引用内容转码,显示转义&HTML 标签
发送信息,APP 收到信息没有缩进
进入到企业聊天报 Cannot read property 'GetStaffList' of null
错误
漫游通道指定功能
DeepSeek AI 页面
进销存相关接口修改
来电漫游,针对后台设置指定漫游通道,漫游外呼的时候会根据这个规则选通道
电话机器人(Deepseek),IVR 来电接听下增加新的一种 AI,和按键 IVR、机器人 IVR 并列
配置文件参数
xxxxxxxxxx
<!--本地deeepseek相关配置-->
<!--文字转语音和语音转文字返回值模式response_mode,文本流还是文本,默认1代表返回文本json,0代表文本流json-->
<add key="response_mode_VocToText" value="1" />
<!--对接deepseek AI模型接口域名地址-->
<add key="webThirdDeepseekURL" value="http://192.168.1.126" />
<!--对接deepseek AI模型上传音频接口地址-->
<add key="thirdDeepseek_upload_URL" value="http://192.168.1.126/v1/files/upload" />
<!--对接deepseek AI模型根据文件id转换文本或者文字转语音接口域名地址-->
<add key="thirdDeepseek_vocToText_URL" value="http://192.168.1.126/v1/workflows/run" />
<!--对接deepseek AI模型接口域名地址-->
<add key="thirdDeepseek_chat_messages_URL" value="http://192.168.1.126/v1/chat-messages" />
<!--对接deepseek AI模型上传文件upload接口-Authorization值、chat-messages接口共用-->
<add key="uploadFile_Authorization" value="app-f8qmB345PsGLS9JRFXM3eC29" />
<!--对接deepseek AI模型根据文件获取识别结果接口,语音转文字-Authorization值-->
<add key="getFileToText_Authorization" value="app-C3Pmez8QeGRugvgLXa5zywj2" />
<!--对接deepseek AI模型文字转语音接口-Authorization值-->
<add key="getTextToVoc_Authorization" value="app-NecWcHa4RbWWhDtli89dXdNb" />
外呼按键IVR,记录客户按键 #
号或者位数进入下一级的问题