python3解析FreeSWITCH会议室列表信息

操作系统 :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 mike_zhang@live.com

验证命令如下:

复制代码
uuid_getvar c7ba756d-1959-4781-a2c8-2f8b291b0553 my_email

示例代码如下(setConfRealTime1.py):

完整代码可从如下渠道获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20240429 获取。
运行效果如下:

4、运行效果视频

运行效果视频可从如下渠道获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 2024042901 获取。

三、资源下载

本文涉及源码及预编译二进制文件,可以从如下途径获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20240429 获取。

相关推荐
程序员小远4 小时前
软件测试之bug分析定位技巧
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·bug
江上清风山间明月4 小时前
Android 系统中进程和线程的区别
android·python·线程·进程
mit6.8244 小时前
[LivePortrait] docs | Gradio用户界面
python
听风吟丶5 小时前
Java 函数式编程深度实战:从 Lambda 到 Stream API 的工程化落地
开发语言·python
饮长安千年月6 小时前
玄机-第八章 内存马分析-java03-fastjson
开发语言·python·安全·web安全·网络安全·应急响应
天天爱吃肉82186 小时前
新能源汽车动力系统在环(HIL)半实物仿真测试台架深度解析
人工智能·python·嵌入式硬件·汽车
卡次卡次16 小时前
注意点:挂载与插硬盘,容器挂载实现持久化存储
python
2401_841495646 小时前
【LeetCode刷题】找到字符串中所有字母异位词
数据结构·python·算法·leetcode·数组·滑动窗口·找到字符串中所有字母异位词
MediaTea7 小时前
Python 第三方库:OpenPyXL(Excel 文件读写与操作)
开发语言·python·excel
自学互联网7 小时前
python爬虫入门案例day05:Pexels
开发语言·爬虫·python