实时将FreeSWITCH通话中的语音媒体流导出到其它程序或机器中mod_rst
过节期间把以前分享的mod_rst改了下实时将FreeSWITCH通话中的语音媒体流导出到其它程序或机器中
支持双路音频实时数据通过udp 传输给其它的udp server,从而进行识别或旁路录音等实时对media bug 数据转发的模块接收udp包并写进文件中//理论上,不需要回应包,但收到包后回一个//ACK :478525a8-8263-4550-b18c-d027d11c9865//如果是数据则格式如下://DATA:UUID:FLAG:PAYLOAD:LENGTH:xxx//如 DATA:478525a8-8263-4550-b18c-d027d11c9865:R:00:160:xxxxx//uuid为FS的session_id//FALG为FS在channel中的read/write,用R或W//payload为编码,如00,pcmu,08 PCMA,18 G729 ,04 G723, 10 PCM//每次收到包后,需要更新下时间,如果某条通道不论read write长时间没有包过来,则我们需要自行BYE//如果是开始需要送udp包,则发://INV :UUID:CALLER:CALLEE//如:// INV :478525a8-8263-4550-b18c-d027d11c9865:18621575908:02131570530//如果是挂机则发://BYE :UUID//如// BYE :478525a8-8263-4550-b18c-d027d11c9865
在好几年前写了个模块,是半拉子,应该是编译都没通过,但由于事多,当时提交后就没有再进行编写。由于一些朋友的提问,所以重新写了下,提交到了github.
开源应用分两部分:一、mod_rst 用于将实时流通过media bug获取到后通过udp输出;二、udp_server按照协议进行流的收取并写入左右声道的文件中。
安装使用:
1. 将rst.conf.xml拷贝到/usr/local/freeswitch/conf/autoload_configs/rst.conf.xml2. mod_rst.so拷贝到/usr/local/freeswitch/mod/mod_rst.so3. 通这fs_cli中 load mod_rst 如无异常可以正常加载4. 后台启动udp_server5. 在freeswitch的dialplan中配置路由<action application="set" data="execute_on_answer='rst serverip serverport'"/>如不指定serverip、serverport那么自动使用默认的ip/port。6. 如果是esl连接,那么在inbound模式下中调用时使用 uuid_rst uuid serverip serverport即可
地址: https://github.com/nwaycn/rst.git
宁卫通信