【FreeSWITCH】录音功能调试报告-2

1.2.2       从接听到挂断分时录音

 

              【测试案例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,均为单声道。

 

1.2.3       从终端按键到挂断

 

              【测试案例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,单声道。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
freeswitch是一个功能强大的开源电话交换平台,可以用于构建语音、视频和聊天应用程序。想要将freeswitch移植到ARM架构下进行交叉编译,可以按照以下步骤进行。 首先,确保你有一个可以运行Linux操作系统的ARM开发板或设备。ARM架构有许多不同的变种,所以你需要选择适合你设备的版本。 其次,安装交叉编译工具链。交叉编译工具链包含用于在一种架构上生成另一种架构的二进制文件的工具。你需要为ARM架构下载并安装适当的交叉编译工具链。 然后,获取freeswitch的源代码。你可以从官方网站上下载最新的源代码包或从版本控制系统中获取最新的开发版本。将源代码解压到你的开发环境中。 接下来,配置freeswitch的编译选项。进入freeswitch的源代码目录,执行./configure命令来配置编译选项。在configure命令中,使用--host选项指定目标架构为ARM,指定交叉编译工具链的路径。 然后,进行编译。运行make命令来编译freeswitch。这可能需要一些时间,因为编译freeswitch可能涉及到许多依赖库的编译和链接。 最后,将编译后的二进制文件和依赖库安装到ARM设备中。使用make install命令来安装freeswitch到指定的目录。 完成上述步骤后,你就成功地将freeswitch移植到ARM架构中,并进行了交叉编译。现在,你可以在ARM设备上运行freeswitch,并构建语音、视频和聊天应用程序了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值