操作系統 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 Python版本:3.9.12 進行FreeSWITCH會議室相關功能開發過程中,會遇到需要解析會議室列表信息併進行特定操作的情況,比如設置特定通道變數、發送dtmf、錄音等。今天整理下CentOS7環境下,使用Py ...
操作系統 :CentOS 7.6_x64
FreeSWITCH版本 :1.10.9
Python版本:3.9.12進行FreeSWITCH會議室相關功能開發過程中,會遇到需要解析會議室列表信息併進行特定操作的情況,比如設置特定通道變數、發送dtmf、錄音等。
今天整理下CentOS7環境下,使用Python3解析FreeSWITCH會議室列表信息然後進行特定操作的筆記,並提供相關示例代碼、運行效果視頻和配套文件下載。
-
會議室信息格式及欄位說明
-
使用Python3解析會議室列表信息
-
運行效果截圖及視頻
- 配套資源下載
一、會議室信息格式及欄位說明
1、會議室信息獲取
發起會議:
conference test bgdial user/1001 conference test bgdial loopback/6001 conference test bgdial loopback/6002
查看會議列表:
conference list
數據格式如下:
+OK Conference test (3 members rate: 8000 flags: running|answered|enforce_min|dynamic|exit_sound|enter_sound|json_status) 7;loopback/6002-a;baee0b74-4a4d-4df4-97e7-3a072e83fcf5;Outbound Call;6002;hear|speak|talking;0;0;100 6;loopback/6001-a;11be5368-ce8a-41f1-8efd-1ba415122cb2;Outbound Call;6001;hear|speak|talking|floor;0;0;100 5;sofia/internal/1001@192.168.137.1:9800;c7ba756d-1959-4781-a2c8-2f8b291b0553;Outbound Call;1001;hear|speak;0;0;100
2、會議室信息欄位解釋
conference list命令沒有表頭,可在FreeSWITCH源碼中找到欄位解釋。
文件:mod/applications/mod_conference/mod_conference.c
函數:conference_list
欄位含義列表如下 :
會議室成員id
channel name
成員uuid
caller id name
caller id number
flags
volume_in_level
volume_out_level
energy_level
3、其它格式
1)xml格式
命令:
conference xml_list
2)json格式
命令:
conference json_list
二、使用python3進行會議室信息解析
xml格式和json格式都攜帶有欄位解釋信息,這裡以conference list返回的結果為例進行解析。
1、文本解析
關鍵點:
1)解析會議室名稱;
2)獲取會議室成員信息;
示例代碼如下(parseConfTest1.py):
完整代碼可從如下渠道獲取:
關註微信公眾號(聊聊博文,文末可掃碼)後回覆 20240429 獲取。 運行效果如下:2、ESL實時解析
這裡演示下使用ESL實時獲取會議室列表信息,並列印出會議室成員的uuid列表。
python3.9.12版本的ESL編譯及使用,可參考這篇文章:
https://www.cnblogs.com/MikeZhang/p/py39esl-20230424.html 通過ESL介面實時獲取會議列表信息併進行解析。 示例代碼如下(parseConfRealTime1.py):完整代碼可從如下渠道獲取:
關註微信公眾號(聊聊博文,文末可掃碼)後回覆 20240429 獲取。 運行效果如下:3、對會議室成員執行特定操作
這裡以設置通道變數為例,演示下如何對會議室成員批量執行操作。
設置通道變數的命令如下:
uuid_setvar c7ba756d-1959-4781-a2c8-2f8b291b0553 my_email [email protected]
驗證命令如下:
uuid_getvar c7ba756d-1959-4781-a2c8-2f8b291b0553 my_email
示例代碼如下(setConfRealTime1.py):
完整代碼可從如下渠道獲取:
關註微信公眾號(聊聊博文,文末可掃碼)後回覆 20240429 獲取。 運行效果如下:4、運行效果視頻
運行效果視頻可從如下渠道獲取: 關註微信公眾號(聊聊博文,文末可掃碼)後回覆 2024042901 獲取。三、資源下載
本文涉及源碼及預編譯二進位文件,可以從如下途徑獲取:
關註微信公眾號(聊聊博文,文末可掃碼)後回覆 20240429 獲取。微信公眾號:
轉載請註明出處,謝謝!