吴伟贤のBlog

Feed Rss

freeswitch cookbook 第5章(六) 创建会议室

07.20.2013, freeswitch, by .

转自:http://www.8000hz.com/archives/101.html

 

Creating conferences
创建会议室

FreeSWITCH擅长让多方连接到一个”会议室”, 可以听到彼此说话. 默认的配置已经有一些会议的示例, 我们可以从它学起. 请记住在FreeSWITCH中并不需要显示地去”创建”一个会议室  ———-  拨号方案中的conference应用会为我们做好一切.

Getting ready

除了有一个文件编辑器外, 你还需要至少两部电话用于测试, 最好是有一个或两个人,那样就可以检验你的电话会议是否工作正常. 同时, 你已经安装了FreeSWITCH默认的配置文件,声音文件和音乐文件.

How to do it…

遵循以下步骤:

1.    拨打号码 3000,然后听. 你将会加入到一个标准的电话会议室. 还有如果会议室中仅有你一个人,你就只能在里面听保持音乐了.
2.    使用另一个电话拨打3000, 两个人就在同一个会议室了.
3.    拨打3000加入更多的成员.

Freeswitch默认的拨号方案已经预定义了一些会议室并且已经可以使用了(注意, 直到至少一个人拨入, 会议才算真正的开启).
默认的拨号方案有以下会议号码:

Extension Range Conference Audio Sampling Rate
3000-3099 8 kHz
3100-3199 16 kHz
3200-3299 32 kHz
3300-3399 48 kHz

采样率表示会议中允许成员最大的采样率. 例如如果你有一个使用G722编码,16kHz采样率的话机加入会议室3000, 在发送到其他参会成员前,你的声音会被重新采样为8khz. 如果你拥有多个支持宽带音频的电话, 然后一定要去使用一个高采样率的会议室以获取更高的声音质量.

如果你仅仅需要几个人进入到一个会议室中可以彼此说话, 那么用默认拨号方案中的那些会议就好了, 顶多就是把会议室号码改成你想要的.

There’s more…
会议模块还支持不少功能的, 比如 来电控制和会议主持人. 继续阅读获取有关使用这些功能的信息.

Caller controls  主叫控制

在一个会议中你可以给参会者很多的控制权限. 最普通的就是如下:

>   Talk volume:  主叫发送的声音的音量(这就是, 麦克风增益控制)
>   Listen volume: 你听到的声音音量.
>   Energy threshold: 将主叫的声音认为是他是在说话的最小音量. 当主叫在一个比较嘈杂的环境中时, 提高这个值的大小可以消减背景噪音.

查看默认的主叫控制配置, 打开 conf/autoload_configs/conference.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"/>
    <control action="vol talk dn" digits="1"/>
    <control action="vol listen up" digits="6"/>
    <control action="vol listen zero" digits="5"/>
    <control action="vol listen dn" digits="4"/>
    <control action="hangup" digits="#"/>
  </group>
</caller-controls>

这个主叫控制组的名字是”default”, 而且它不能修改(名字不能修改, 内容随便你). 不过, 你可以定义你自己的主叫控制 ,然后把它们添加到你的会议定义中.

每一种会议都需要在conference.conf.xml文件中的<profiles>章节中添加一个”配置文件”.

假设你创建了一个主叫控制组名字叫”custom”. 在会议配置文件添加这一行就可以让这种会议使用你创建的主叫控制了:

<param name="caller-controls" value="custom"/>

现在所有加入到会议的成员都要使用你指定的主叫控制了.

Conference moderator and PIN
会议主持人和密码

一些会议室有一个”会议主持人”的概念, 他对会议有一定程度的控制权. 在Freeswitch中, 会议主持人就是一个普通会议成员,他是否加入会议室会对会议产生影响.

会议主持人影响会议的两大主要方法如下:

>    所有的成员必须等待, 主持人不来会议不开始
>    主持人离开整个会议结束(所有参会成员都踢出会议室)

通过修改拨号方案中conference 应用的参数来创建一个会议主持人.
对比下面两行”

<action application="conference" data="$1@default"/>
<action application="conference" data="$1@default+flags{moderator}"/>

注意我们添加”+flags{moderator}”就将主叫设置为会议主持人了. 你可以使用逗号分割来添加多个参数, 例如, “+flag{moderator,mute}”.

给会议室添加一个密码也类似. 上面列出的两个会议室可以这样来添加一个密码:

<action application="conference" data="$1@default+1234"/>
<action application="conference" data="$1@default+1234+flags{moderator}"/>

在这两个例子中, 会议室密码都是”1234”, 如果他或她不能输入正确的会议室密码就别想加入到会议.

评论已关闭。