實時將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.xml
2. mod_rst.so拷貝到/usr/local/freeswitch/mod/mod_rst.so
3. 通這fs_cli中 load mod_rst 如無異??梢哉<虞d
4. 后臺啟動udp_server
5. 在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