FreeSwitch中的会议功能设置

简介: FreeSwitch中的会议功能设置

FreeSwitch 默认支持会议功能,有如下特点:

(1) 不需要创建一个会议室的操作,只需要通过 conference 拨码计划就可以实现;

(2) 会议室不真正存在, 直到有人呼入为止;

(3) 会议功能很强大,能实现灵活控制。


这样讲太学术化,来点直观的,步骤如下:


(1) 运行 FREESWITCH 服务器程序;           (2) 注册 1000、1001、1002三部IP话机;           (3) 通过 1000 呼叫 3000,通话建立后, 1000 将听到一段保持音乐;           (4) 通过 1001 呼叫 3000,通话建立后, 1001将能听到1000的声音,1000也能听到1001的声音;           (5) 通过 1002 呼叫 3000,通话建立后,  1002将能听到 1000 和 1001的声音,1001能听到1000和1002的声音,1000也能听到 1001 和 1002 的声音。            
复制代码


那 3000 这个号码是怎么来的? 请看 \conf\dialplan\default.xml 中的内容,如下所示:


<extension name="nb_conferences">                 <condition field="destination_number" expression="^(30\d{2})$">                    <action application="answer"/>                    <action application="conference" data="$1-${domain_name}@default"/>                 </condition>              </extension>             ...... 
复制代码


\

FreeSwitch 提供了一些控制会议成员行为的方法,罗列如下:


(1)Talk volume: The volume of the audio the caller sends (that is, gain control).


与会成员讲话的音量控制;  
复制代码


(2)Listen volume: The volume of the audio the caller hears.


与会成员收听语音的音量控制;  
复制代码


(3)Energy threshold: The minimum energy level of the audio from the caller to be considered talking. Raising the energy level will cut down on background noise when a participant is in a noisy environment.


语音门限控制 。  
复制代码


具体用法,可以查看:\conf\autoload_configs\console.conf.xml ,内容如下:


<caller-controls>                  <group name="default">                    <control action="mute" digits="0"/>             // 静音                    <control action="deaf mute" digits="*"/>      // 解除静音                    <control action="energy up" digits="9"/>     // 增加门限                    <control action="energy equ" digits="8"/>   //                    <control action="energy dn" digits="7"/>     // 降低门限                    <control action="vol talk up" digits="3"/>     // 提高讲话音量                     <control action="vol talk zero" digits="2"/>  // 讲话音量设置为0                    <control action="vol talk dn" digits="1"/>     // 降低讲话音量                    <control action="vol listen up" digits="6"/>  // 提高收听音量                    <control action="vol listen zero" digits="5"/> // 收听音量设置为0                    <control action="vol listen dn" digits="4"/>    // 降低收听音量                     <control action="hangup" digits="#"/>           // 退出会议                </group>             </caller-controls> 
复制代码


\

FreeSwitch中可以设置主持人以及会议密码。设置了主持人后,可以影响会议的开展;设置了会议密码后,与会成员必须输入正确密码才能入会。

主持人对会议的影响主要体现在以下两个方面:


(1)直到主持人入会后,会议才开始;       (2)主持人退出会议后,会议才结束。    
复制代码


那怎么设置主持人?方法如下:


<action application="conference" data="$1@default"/> // 未设置主持人         <action application="conference" data="$1@default+flags{moderator}"/> // 设置了主持人           如何设置会议密码?方法如下:         <action application="conference" data="$1@default+1234"/> // 设置入会密码为 1234           如何既设置主持人,又设置会议密码?方法如下:        <action application="conference" data="$1@default+1234+flags{moderator}"/> 
复制代码


\

FreeSwitch 是否支持视频会议?答案是 支持的!

FreeSwitch 默认只支持与会成员看到当前“嗓门最大”的那个人的视频。

在实际应用中,当讲话人改变时,视频会切换,但切换的时候,视频会有马赛克现象。此问题期待高手解决!


场景描述如下:


三个用户 1000、1001、1002 都注册到同一台服务器。

(1)1000 呼叫 3000,进入会议,同时发送自己的视频,1000 可以看到自己;

(2)1001 呼叫 3000,进入会议,可以看到 1000 的视频。若1001也发送自己的视频,双方看到的视频是当前讲话声音大的一方的视频;


(3)1002 呼叫 3000,进入会议,可以看到当前讲话一方的视频。若 1002 也发送自己的视频,三方看到的视频是当前讲话声音大的一方的视频。


再扩展下思维,能否让 FreeSwitch 实现融屏功能,实现与会各方都能彼此看到自己!那FreeSwitch就更强大了。以下是几个相关的资源简介:


(1)BigBluebutton 这个视频会议项目中用到了 FreeSwitch, 项目主页:  http://www.bigbluebutton.org/ 。但对视频的处理只是转发各路视频,没有实现融屏合成一路视频推送到各方显示。  
复制代码


(2)openvcs 是一个开源的 SIP MCU 实现。 在 Windows 下实现了融屏的原型设计,但在效率以及并发处理方面,还有许多需要完善的地方。但提供了一个开发 SIP MCU 的思路,这个是很有价值的。


邀请手机用户或座机用户入会: 在 FS_CLI.EXE 中运行 类似 conference  dial Sofia/gateway/xyz/1234567890 即可。

相关文章
freeswitch 默认拨号方案(下)
freeswitch默认拨号方案中(conf/dialplan/default.xml)设置了一些基本的测试功能和PBX电话系统功能 包含了分机互拨及简单IVR功能
|
4月前
|
存储 网络协议 Ubuntu
【Linux开发实战指南】基于UDP协议的即时聊天室:快速构建登陆、聊天与退出功能
UDP 是一种无连接的、不可靠的传输层协议,位于IP协议之上。它提供了最基本的数据传输服务,不保证数据包的顺序、可靠到达或无重复。与TCP(传输控制协议)相比,UDP具有较低的传输延迟,因为省去了建立连接和确认接收等过程,适用于对实时性要求较高、但能容忍一定数据丢失的场景,如在线视频、语音通话、DNS查询等。 链表 链表是一种动态数据结构,用于存储一系列元素(节点),每个节点包含数据字段和指向下一个节点的引用(指针)。链表分为单向链表、双向链表和循环链表等类型。与数组相比,链表在插入和删除操作上更为高效,因为它不需要移动元素,只需修改节点间的指针即可。但访问链表中的元素不如数组直接,通常需要从
265 2
|
3月前
ASA对接 LDAP ,少不了这些关键配置。
ASA对接 LDAP ,少不了这些关键配置。
|
Web App开发 Windows
webRTC:jssip登录freeswitch的正确办法及代码
webRTC:jssip登录freeswitch的正确办法及代码
839 0
webRTC:jssip登录freeswitch的正确办法及代码
|
网络协议
Discourse 论坛激活邮件问题
在大部分情况下都没有问题,但是在一些特定的邮件地址,例如 iCloud,我们在发送激活邮件的时候有提示为:
215 0
FreeSwitch会议Banner功能调用流程
FreeSwitch会议Banner功能调用流程
133 0
Freeswitch视频会议终于成功,及提供解决办法
Freeswitch视频会议终于成功,及提供解决办法
402 0
|
编解码 Linux C语言
freeswitch媒体协商的三种配置方案
概述 在企业级VOIP通信中,语音质量是重要的关注点,而语音质量的好坏和媒体编解码有重要的关系。 freeswitch作为一款免费开源的软交换平台,支持多种不同的编解码格式,具体详情本文不多描述。 而不同的终端也会支持多种不同的编解码格式,在呼叫创建过程中就需要编解码的协商。 编解码的协商过程是很容易让人困惑的,即使是对SIP和SDP很熟悉的人也一样。 那么,freeswitch在软交换的过程中,是如何控制A/B路之间媒体的协商过程?如何配置出我们想要的协商方案?不同方案都有什么优缺点? 本文主要描述freeswitch在媒体协商过程中的三种常见方案。 文章中有较多的配置和日志打印信息可以略过
FreeSwitch下配置DID的方法以及呼叫多个用户
FreeSwitch下配置DID的方法以及呼叫多个用户