【测试案例3】设想这样一种监控式的使用环境,终端1000呼叫总台1239,总台对1000进行监控式录音,即录音不间断,并且为了便于存储与查找,将长时间的录音按固定长度切割,录入不同文件。使用Lua脚本实现,首先在Dialplan中加入如下配置:
<extension name="RecordTest4">
<conditionfield="destination_number" expression="^1239$">
<actionapplication="answer" data=""/>
<actionapplication="lua" data ="test_record.lua"/>
</condition>
</extension>
在scripts文件夹下添加test_record.lua文件,代码如下:
api=freeswitch.API()
functionmain_1()
while(session:ready()==true) do
nowtime= api:getTime()
session:recordFile("/tmp/ RecordTest_1.2.2_"..nowtime..".wav",10)
end
end
--函数执行
session:answer()
main_1()
代码中利用session:recordFile()进行录音,其功能类似于测试案例1中的record命令,参数为file_name, max_len_secs,silence_threashold, silence_secs,分别表示录音文件名,录音最长秒数,静音阈值,静音容忍秒数,后三个参数可省略。
测试案例中将录音最长秒数设为10s,通话时长34s,录音文件有4个,文件名以RecordTest_1.2.2_开头,文件名中的数字为录音开始时的新世纪时间毫秒数,文件大小依次为10s,10s,10s,4s,均为单声道。
【测试案例4】终端1000呼叫总台1240,总台监听1000按键操作,当终端按0时开始录音,直到挂断。使用Lua脚本实现,首先在Dialplan中加入如下配置:
<extension name="RecordTest5">
<conditionfield="destination_number" expression="^1240$">
<actionapplication="answer" data=""/>
<actionapplication="lua" data ="test_record2.lua"/>
</condition>
</extension>
在scripts文件夹下添加test_record2.lua文件,代码如下:
functionmain_1()
if(session:ready()==true) then
digits=session:playAndGetDigits(1,1,3,5000,"#",
"ivr/homemenu.wav",error_say, "^0$")
if(digits=="0") then
session:recordFile("/tmp/ RecordTest_1.2.3.wav")
end
end
--函数执行
session:answer()
main_1()
测试案例中通话时长10s,第5s按下0按键,文件时长5s,单声道。