售前电话
135-3656-7657
售前电话 : 135-3656-7657
话机在通话过程中,可以启用录音服务保存通话录音。配置有两种方式保存录音:
1) 将 rtp 数据存储成指定格式文件保存在本地。
2) 将录音的 rtp 数据传送给服务器,在服务器上保存成文件格式。
1.2 适用型号
本文档适用于 Fanvil X3S、X4 、X5S、X6、X7、X7C、X210、X210i、XU 系列等型号
1.3 目标受众
此文档是针对那些想了解录音功能是如何改进的公司内部研发或者测试人员。
2 录音框架介绍
2.1 通话录音方案架构
创建本地 stream,和要录音的 stream 进行混音处理,本地的 stream 只接收。通过本地stream,可以本地绑定端口,接收 stream 上经过混音处理的 rtp 数据,再讲 rtp 数据写入本地文件保存或发送给服务器保存。
3 通话录音功能模块介绍
3.1 本地录音
本地录音只有挂载 U 盘才可以支持录音,获取到 U 盘挂载点后对 U 盘可用容量进行检查,创建文件保存 rtp 数据,文件名以“Record_当前系统时间”命名。如果开启本地录音文件大小限制,录音文件达到限制值且 U 盘有可用容量会创建新的录音文件继续保存 rtp数据。录音过程中可暂停、恢复通话录音。
本地录音文件格式为:
在本地录音过程中,会生成以上文件格式信息,保存在录音文件中,用于播放时使用。codec 为录音编码;rtpLen 为 rtp 数据长度;incremet 为时间戳增量;dataSize 为 rtp 数据总长度。录音文件格式为.wav。
3.2 服务器录音
服务器录音需要配置录音服务器地址serverAddr和端口serverPort。话机和服务器通信,分为控制指令和 rtp 数据。
3.2.1 控制指令
开始录音时,话机需要先和服务器通信交互信息,双方确认后,再开始传输 rtp 数据。话机和服务器 Addr + Port 进行控制指令通信,基于 TCP 方式。
首先话机发起录音开始请求,服务器收到后会重新分配一个地址和端口,专门监听话机的 rtp 数据,收到后保存为文件。话机端收到响应后,需要根据服务器响应的消息,连接指定的地址和端口,上传 rtp 数据,基于 UDP 方式。
Record Start 指令格式
指令请求:
cmd=RecordStartRequest&id=xxx&device=xxx&remote_number=xxx&remote_name=xxx&local_number=xxx&local_name=xxx&dir=in|out&codec=xxx
指令响应:
cmd=RecordStartResponse&id=xxx&result=success|failed&reason=xxx&server=xxx&port =xxx
id 表示此次录音的唯一标识,由话机端生成一个随机数,整个录音过程中,保持该值不变
device 表示设备的 mac 地址,用于服务器端分类管理设备dir 表示通话类型,呼入还是呼出
codec 表示 rtp 的编码,PCMA|PCMU
server port 表示监听 rtp 数据的服务器和端口,由录音服务器动态生成
注意:如果服务器回复 failed,表示服务器有问题,无法保存录音,话机需要提示录音失败停止指令,既可以由话机端发送,也可以由服务器端发送。当服务器端录音异常时,可以发送 Stop 指令通知录音结束。
Recrod Stop 指令格式
指令请求:
cmd=RecordStopRequest&id=xxx&remote_number=xxx&remote_name=xxx&local_number=xxx&local_name=xxx&reason=xxx
指令响应:
cmd=RecordStopResponse&id=xxx&result=success
如果录音期间,socket 连接出错,双方都需要设置为录音已停止状态,清楚之前的状态。
RecordStopRequest 指令中,除了 cmd 和 id 是必选参数,其它都是可选。如果有,且和RecrodStartRequest 指令中的值不一样时,使用新值覆盖。
3.2.2 RTP 数据
话机从服务器响应消息中提取出地址和端口,使用 UDP 方式上传 rtp 数据。直到收到停止指令,或者 socket 异常了,停止 rtp 发送,设置为录音停止状态。
3.3 服务停止/播放