话机在通话过程中,可以启用录音服务保存通话录音。配置有两种方式保存录音:
1) 将 rtp 数据存储成指定格式文件保存在本地。
2) 将录音的 rtp 数据传送给服务器,在服务器上保存成文件格式。
1.2 适用型号
本文档适用于 Fanvil X3S、X4 、X5S、X6、X7、X7C、X210、X210i、XU 系列等型号
1.3 目标受众
此文档是针对那些想了解录音功能是如何改进的公司内部研发或者测试人员。
2 录音框架介绍
3.1 本地录音
4.1 本地录音
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=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 数据的服务器和端口,由录音服务器动态生成
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
cmd=RecordStopResponse&id=xxx&result=success
如果录音期间,socket 连接出错,双方都需要设置为录音已停止状态,清楚之前的状态。
RecordStopRequest 指令中,除了 cmd 和 id 是必选参数,其它都是可选。如果有,且和RecrodStartRequest 指令中的值不一样时,使用新值覆盖。
3.2.2 RTP 数据
话机从服务器响应消息中提取出地址和端口,使用 UDP 方式上传 rtp 数据。直到收到停止指令,或者 socket 异常了,停止 rtp 发送,设置为录音停止状态。
3.3 服务停止/播放
读取保存在录音文件中的格式信息,根据 codec 获取 rtp 时钟周期,再通过其它格式信息即可计算出录音文件可播放时间和 rtp 发送周期。
4 通话录音功能使用介绍
4.1 本地录音
本地录音有挂载 U 盘才可以支持录音。该功能 X5S 和 X6 支持,但是 X3S 和 X4 不支持。
使用本地录音时需要在话机应用-录音管理界面开启录音,选择录音模式为本地。页面如下:

开启录音后,需要配置快捷键-功能键为录音,并在话机上插入 USB,话机建立一路通话,在通话中按下设置的 DSSKEY,开始录音,话机 LCD 的通话界面会显示录音图标。

在录音过程中再次按下配置的 DSSKEY 录音结束,通话界面的录音图标消失。通话结束后在话机应用-USB 界面可以查看录音并播放,如有多条录音,按上下键可以切换录音进行查看。

4.2 服务器录音
4.2.1 本地录音服务器
本地服务器录音需要安装本地录音服务器。
服务器路径:\\172.16.1.8\firmware\Applications\RecordServerRecordServer
目前录音软件只支持 PCMA\PCMU\G722 编码电话录音服务器目录结构:
.Doc 电话录音服务器的相关文档资料
.RecordServer-2017-9-6.zip 电话录音服务器的软件,解压后在文件夹中找到RecordServer.exe 的可执行文件,双击打开可以启动电话录音服务器软件
使用本地服务器录音时,要先在话机 web 开启录音,类型选择为 network,填写录音服务器地址和端口以及选择语音编码。网页如下:

话机配置一个 DSSKEY 为录音按钮,之后开启录音服务器,话机建立一路通话,在通话中按下该录音键,话机会开始录音,在 LCD 上可以看到录音图标。

在录音中再次按下配置的录音键,话机停止录音,LCD 上的录音图标消失。录音结束可以在录音服务器看到刚才的录音,下载下来可以正常收听。

4.2.2 Sip info 录音
话机注册到支持 sip info 录音的服务器,如 3CX 服务器。注册完账号后,在网页的录音模块勾选开启录音,录音类型选择为 sip info

配置一个 DSSKEY 为录音按钮,建立一路通话,通话中按下配置的 DSSKEY 开始对通话进行录音,录音中在按一下配置的 DSSKEY 关闭录音。进入录音服务器,点击页面左侧的录音,在录音页面可以看到刚才保存的录音。