《FreeSWITCH参考手册》

1.12 mod_conference

FreeSWITCH支持多人电话会议,该功能是由mod_conference模块实现的。

mod_conference是实现了一个conferenceApp和API。在默认的配置中,直接拨打3000就可以进入一个会议。

从下列Dialplan可以看出,它使用conference App将来话送入一个会议:

<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>

其中,conference App的参数是一个会议的名称和一个会议的Profile,它们之间是以@分隔的。domain_name一般是一个IP地址,所以,假设我们呼叫的是3000,FreeSWITCH的IP地址是192.168.1.2的话,将上述参数进行变量替换后,结果是:3000-192.168.1.2@default

@前面的就是会议的名称,后面的default是会议的一个Profile。

会议的Profile定义了会议的一些特性,如各种提示音等。

为了简单起见,我们以3000作为会议的名称,修改Dialplan如下:

     <action application="conference" data=“3000@default"/>

这个,拨打3000就可以进入3000这个会议(室)。通过conference API命令,可以对会议执行一系列的操作,如下列命令将全部人员静音

conference 3000 mute all

取消静音:

conference 3000 unmute all

其中,会议中的每一路参与的电话称作一个成员(member),以member_id来标识,使用下列命令可以列出会议中所有的成员,进而知道成员的member_id

conference 3000 list

得到了成员的member_id后,便可以对成员进行单独操作,如以下命令仅对member_id2的成员静音:

conference 3000 mute 2

或将它踢出会议

conference 3000 kick 2

当然,该命令的参数还有很多,具体的可输入不带参数的conference命令查看帮助。

conference

除语音会议外,FreeSWITCH也支持视频会议。1.4版以前的FreeSWITCH不支持视频的转码,因而仅支持主持人式的视频会议。具体的讲,所有与会成员中会有一个成员会获得一个video floor,持有该floor的人的视频会广播到其它所有成员的终端上,即,所有成员都会看到该成员的视频。在默认情况下,floor的持有和转换是通过声音激励的方式实现的,即,通过一点的算法,根据当前声音的能量值来决定谁持有floor,一般来说是当前说话的成员持有该floor,即谁说话看谁。

自1.6版开始,FreeSWITCH支持视频转码和视频会议,我们以后再讲。



本书版权所有 © 杜金房及各位贡献者 2016-2023,仅供在线阅读,谢绝一切形式转载。 本书还在写作中,持续更新。 如果你也想写上几句,欢迎加入我们。 | 返回首页 |