前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Freeswitch控制会议中只剩一人时自动挂断电话

Freeswitch控制会议中只剩一人时自动挂断电话

作者头像
呱牛笔记
发布2023-11-04 10:06:58
2140
发布2023-11-04 10:06:58
举报
文章被收录于专栏:呱牛笔记呱牛笔记

需求:语音会议中,会议参与的任何一人挂断电话时候,如果会议中只剩下一人,则自动挂断电话。

实现,使用bgapi的方式,参考https://github.com/lusongcn/freeswitch-esl-php 提供的php bgapi接口实现。

//demo.php

代码语言:javascript
复制
<?php
require_once 'lib/freeSwitchEsl.php';
$freeswitch = new Freeswitchesl();
$connect = $freeswitch->connect("127.0.0.1","8021","ClueCon");
if ($connect) {
	$version = $freeswitch->api("version");
	var_dump($version); 
        $status = $freeswitch->events("plain","ALL");
	while (true) {
		$received_parameters = $freeswitch->recvEvent();
		if (!empty($received_parameters)) {
			$info = $freeswitch->serialize($received_parameters,"json");
			//var_dump($info);
			$Event_Name = $freeswitch->getHeader($received_parameters,"Event-Name");
			//echo $Event_Name;
			$Action = $freeswitch->getHeader($received_parameters,"Action");
			//echo $Action;
			if ($Action == "del-member"){
				var_dump($info);
				$Conference_Size = $freeswitch->getHeader($received_parameters,"Conference-Size");
				echo $Conference_Size;
				$Conference_Id = $freeswitch->getHeader($received_parameters,"Conference-Name");
				echo $Conference_Id;
				if ($Conference_Size <= 1) {
					//判断是会议离开,并且会议只剩下一个人,则挂断会议
					$hangupall = $freeswitch->bgapi("conference ".$Conference_Id." hup all"); 
				}
			}
		}
	}
}
$freeswitch->disconnect();

运行demp.php

代码语言:javascript
复制
> php demo.php

FreeSWITCH Version 1.9.0+git~20180619T173242Z~25e9376b29~64bit (git 25e9376 2018-06-19 17:32:42Z 64bit)

就可以监听到freeswitch中会议消息的变化,然后根据会议中的人数,判断是否自动结束这个会议。

本文为呱牛笔记原创文章,转载无需和我联系,但请注明来自呱牛笔记 ,it3q.com

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-11-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档