FreeSWITCH conference guide(FreeSWITCH会议指南)

参考资料 https://freeswitch.org/confluence/display/FREESWITCH/mod_conference

conference基础部分

查询已经存在的会议

conference <conf name> list [delim <string>]|[count]conference <conf name> xml_list

邀请用户加入会议

  • API bgapi originate user/1003 &conference(test@default)
    呼叫分机1003,分机应答后加入会议test.会议名字字母数字都可以。FreeSWITCH会自动创建会议。
  • API conference <confname> bgdial <dial-string> [<callerid_number> [<callerid_name>]]。 例子:conference 8000@default bgdial user/1003 8000 conference,呼叫分机1003加入会议,分机1003的来电显示为conference<1003>。

成员加入会议标志

例子confname++flags{endconf|moderator}.

  • mute (静音)Enter conference muted
  • deaf (不听会议声音)Enter conference deafed (can not hear conference); will also mute the mic
  • mute-detect (成员静音时说话播放提示)Play the mute_detect_sound when talking detected by this conferee while *muted
  • dist-dtmf Send any DTMF from this member to all participants
  • moderator (主席)Flag member as a moderator
  • nomoh (只有一个成员时不播放背景音乐)Disable music on hold when this member is the only member in the conference
  • endconf Ends conference when all members with this flag leave the conference after profile param endconf-grace-time has expired
  • mintwo End conference when it drops below 2 participants after a member enters with this flag
  • ghost Do not count member in conference tally
  • join-only (只允许加入已经存在的会议)Only allow joining a conference that already exists
  • positional Process this member for positional audio on stereo outputs 1.4
  • no-positional Do not process this member for positional audio on stereo outputs 1.4
  • join-vid-floor Locks member as the video floor holder 1.6
  • no-minimize-encoding Bypass the video transcode minimizer and encode the video individually for this member 1.6
  • vmute Enter conference video muted 1.6
  • second-screen Open a ‘view only’ connection to the conference, without impacting the conference count or data. 1.6

剔出成员

kick 和 hup 区别,hup不播放提示音。

conference <confname> kick <member_id>|all|last|non_moderator
conference <confname> hup <member_id>|all|last|non_moderator

会议密码

  1. 呼出的通话加入会议,默认不需要密码。如果要禁用这个特性,需要设置通道变量conference_enforce_security为true。
  2. 会议密码(pin),可以在配置文件中设置,也可以在APP参数中指定密码,也可以通过API来设置密码,APP参数中指定的密码具有最高优先级。

APP中设置密码

<action application="conference" data="confname@profilename+pin">

API设置密码

设置成员密码

conference <confname> pin <pin-number>

设置主席密码

conference <confname> pin mod <pin-number>

清除密码

conference <confname> nopin

配置文件设置密码

<profiles><profile name="default"><param name="pin" value="12345"/><param name="moderator-pin" value="54321"/></profile>
</profiles>

通道变量设置密码

通道变量·conference_moderator_pin·设置主席密码。

通道变量验证密码

通道变量supplied_pin=X-ConfPin=pin,可以用来验证密码。

会议录音

通过API,或者配置来对会议进行录音。

API控制会议录音

多次执行录音命令,可以录音到多个文件。record对应recording startnorecord对应recording stopchkrecord对应recording checkpause对应recording pauseresume对应recording resume它们功能完全一样。

conference <confname> record <file-path>
conference <confname> norecord <file-path>|all
conference <confname> resume <file-path>
conference <confname> chkrecord
conference <confname> pause <file-path>conference <confname> recording start <file-path>
conference <confname> recording check
conference <confname> recording stop <file-path>|all
conference <confname> recording pause <file-path>
conference <confname> recording resume <file-path>

配置会议录音

<param name="auto-record" value="$${recordings_dir}/${conference_name}_${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>

对会议进行放音

例子 conference 8000 play test.wav

conference <confname> play [{vol=<volume>,full-screen=true,png_ms=100}]<file-path> [async|<member_id> [nomux]]
conference <confname> play_status [<member_id>]
conference <confname> pause_play [<member_id>]
conference <confname> stop [current|all|async|last]> [<member_id>]
conference <confname> file_seek [+|-]<val>
conference <confname> file-vol <val> [async]

会议提示音

就是会议成员加入,离开等提示音。

API设置提示音

conference <confname> enter_sound on|off|none|file <filename>
conference <confname> exit_sound on|off|none|file <filename>

配置文件设置提示音

<!-- <param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/> -->
<param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/>
<param name="moh-sound" value="$${hold_music}"/>
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
<param name="locked-sound" value="conference/conf-locked.wav"/>
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
<param name="pin-sound" value="conference/conf-pin.wav"/>
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>

会议加锁

conference <confname> lock
conference <confname> unlock

会议静音

conference <confname> mute <member_id>|all|last|non_moderator [quiet]
conference <confname> tmute <member_id>|all|last|non_moderator [quiet]
conference <confname> unmute <member_id>|all|last|non_moderator [quiet]

只说模式

conference <confname> deaf <member_id>|all|last|non_moderator
conference <confname> undeaf <member_id>|all|last|non_moderator

桥接会议

桥接会议,就是连接2会议。

<action application="conference" data="bridge:confname[@profile]:none|endpoint[+flags{mute|deaf|...}]">

事件

You can subscribe to the following to receive conference events:
conference::maintenance
The “suppress-events” parameter can be added to the conference profile to prevent events from firing. e.g. if you’re not interested in start or stop talking events:

<profile name="default"><param name="suppress-events" value="start-talking,stop-talking"/>
</profile>

The events that can be suppressed are:
add-member, del-member, energy-level, volume-level, gain-level, dtmf, stop-talking, start-talking, mute-member, unmute-member, kick-member, dtmf-member, energy-level-member, volume-in-member, volume-out-member, play-file, play-file-member, speak-text, speak-text-member, lock, unlock, transfer, bgdial-result and floor-change.

  • energy-level Conference default energy level changed
  • gain-level Conference default gain level changed
  • volume-level Conference default volume level changed
  • floor-change Conference floor changed
  • lock Conference locked, no one else can enter
  • record Conference recording started or stopped
  • unlock Conference unlocked
  • play-file-done Conference–level play file ended
  • play-file Conference–level play file started
  • mute-detect Detected member speaking (as detected by energy level) while muted
  • dtmf-member Key bound to DTMF is hit by member
  • dtmf Key bound to transfer, event, or execute_application is hit by member
  • add-member Member added to a conference
  • mute-member Member became muted
  • unmute-member Member became unmuted
  • energy-level-member Member energy level changed
  • volume-in-member Member gain level changed
  • kick-member Member kicked
  • del-member
  • Member removed from a conference
  • start-talking Member started talking (as detected by energy level)
  • stop-talking Member stopped talking (as detected by energy level)
  • transfer Member transferred to another conference
  • volume-out-member Member volume level changed
  • play-file-member Member–level play file started
  • bgdial-result Result from bgdial API command

DTMF按键控制(caller-controls)

配置会议控制按键,profile通过<param name="caller-controls" value="none"/>设置管理的caller-controls。none就是不使用控制按键,不设置时会使用default组。

Caller controls are used to modify the state of the conference, such as lowering the volume, mute a participant, and such. Below are the commands that can be assigned to digits and executed during a conference. The “moderator-controls” group provides additional controls for participants who enter the conference with the moderator flag set. See below.
Reserved Control Group Names

Name Description
none Use this name to prevent installing caller-controls for callers to a conference.
default This group of settings will be assigned if no “caller-controls” is specified. You can also assign it explicitly. This group is defined in vanilla config, thus removing it from the configurations will make no caller controls at all.

例子:

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

详细配置

Action Description Min. Version
mute Toggle audio from this member into the conference.麦克静音切换,按一下静音,再按一下取消静音。
mute on Disable audio from this member into the conference.静音麦克。
mute off Enable audio from this member into the conference.取消静音麦克。
deaf mute Block audio from conference to this member as well as mute, in one action. 麦克和喇叭都静音。再按一下取消。
energy up Increase minimum energy threshold by 1 unit above which sound will be admitted into conference (noise gate).按一下噪音阈值加200,最大1800,声音只有大于这个阈值才会送到会议其他成员。
energy equ Reset minimum energy threshold to default. 噪音阈值恢复默认值。
energy dn Decrease minimum energy threshold by 1 unit.按一下噪音阈值减少200,最小0
vol talk up Increase member talk (mic) volume into conference by 1 unit,按一下把说话声音放大1个等级,最大可以放大4个等级,对应 {1.3, 2.3, 3.3, 4.3} 这些倍数。
vol talk zero Reset talk volume to default setting. 取消说话声音增溢
vol talk dn Decrease talk volume by 1 unit.,按一下把说话声音降低1个等级,最大可以降低4个等级,对应 {.80, .60, .40, .20}这些倍数。
vol listen up Increase member receive (earpiece) volume by 1 unit.同vol talk up一样,只是修改是听到的声音
vol listen zero Reset member receive volume to default setting
vol listen dn Decrease member receive volume by 1 unit
hangup Leave the conference.离开会议
event Send the DTMF event via CUSTOM conference::maintenance subclass to the event system (even to event socket).触发esl事件
lock Toggle the conference lock state (no new members can enter when locked).切换会议锁定状态,锁定时会议不能加入新成员
transfer Transfer member to a given extension in a dialplan context.例子: <control action="transfer" digits="5" data="100 XML default"/>,离开会议并转到指定上下文。
execute_application Execute a dialplan application.例子:<control action="execute_application" digits="0" data="playback conf_help.wav"/>,执行一个APP,APP执行完成后会返回到会议 。
floor Toggle yourself on and off of talking floor, as long as no one else has floor status. floor标记的意思是会议当前的说话人,一个会议只有一个成员拥有floor标记,会议会自动设置。我看代码的逻辑是,按钮的用处是如果一个成员拥有floor标记,执行按键后,会取消floor标记。如果会议中没有成员有floor标记,就给按键的成员设置floor标记, 不会实际测试时并不想预期的这样,系统会自动修改floor标记的。
vid-floor Video floor. If video floor is currently locked, it will revert to auto; if there is no current holder, you become video floor holder 1.6
vid-floor-force Video floor. If video floor is currently locked, it will revert to auto, otherwise you become the **locked video floor holder 1.6
vmute Video mute. Toggle video from this member into the conference 1.6
vmute on Disable video from this member into the conference 1.6
vmute off Enable video from this member into the conference 1.6
vmute snap Take a video snapshot for this user to be used when in vmute 1.6
vmute snapoff Discard the vmute video snapshot 1.6

FreeSWITCH会议指南相关推荐

  1. 《 FreeSWITCH权威指南》——2.5 呼叫中心

    本节书摘来自华章计算机< FreeSWITCH权威指南>一书中的第2章,第2.5节,作者:杜金房 张令考 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.5 ...

  2. 会议指南二维码生成_包装和准备技术会议的指南

    会议指南二维码生成 北半球的春天如雨后春笋般涌现,这意味着技术会议季节即将来临. LinuxFest Northwest , OSCON , OpenStack Summit , Write Docs ...

  3. 《 FreeSWITCH权威指南》——1.2 电话实现技术

    本节书摘来自华章计算机< FreeSWITCH权威指南>一书中的第1章,第1.2节,作者:杜金房 张令考 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.2 ...

  4. FreeSWITCH权威指南-前言

    文章目录 前言 为什么写这本书 本书面向的读者 本书的内容及特色 排版及约定 如何阅读本书 实验环境及软.硬件设备选择 资源和勘误 致谢 特别鸣谢 前言 我们已经步入了一个新的时代. 当前, VoIP ...

  5. FreeSWITCH权威指南 -- 1.PSTN与VoIP基础(笔记)

    VoIP(Voice Over IP):承载于IP网上的语音通信. PSTN(Public Switched Telephone Network):公共交换电话网,就是我们日常打电话所使用的电话网络. ...

  6. 高效会议指南之:一对一

    团队成员沟通的另一种有效方式,即一对一会议,One-on-one 等,是互联网公司常用的沟通方式.在<格鲁夫给经理人的第一课>一书中,格鲁夫对「一对一沟通」的介绍如下:在英特尔,一对一会议 ...

  7. FreeSWITCH权威指南-基础篇-1.2-电话实现技术

    文章目录 1.2 电话实现技术 1.2.1 电话号码 1. 固定电话号码 2. 移动电话号码和专用号段 3. 短号码 4.800和400号码 5. 北美电话号码分类计划 6. 电话号码的书写格式 1. ...

  8. freeswitch通过lua脚本实现多方会话功能,包括会议录音自动外呼等

    freeswitch 会议模块 freeswitch 自带有多方会议功能,在安装目录下的conf/autoload_configs/modules.conf.xml中,开启会议功能,通常默认是启用的, ...

  9. 智源大会参会指南:4天 100+场顶尖报告,硬核高密度,如何才能不留遗憾?

    与5位图灵奖得主和100多位专家 共同探讨人工智能的下一个十年 长按图片或点击阅读原文,内行盛会,首次免费注册 北京智源大会倒计时:1天 第二届北京智源大会明天开幕! 欢迎大家参与,共同见证 AI 未 ...

  10. 【LiveVideoStack线上分享】— FreeSWITCH核心架构与流程控制

    FreeSWITCH是一个开源的软交换系统,支持PSTN通话.支持WebRTC.支持基于IP和5G的视频通话和视频会议,并提供开放的API. 今晚7:30 ,我们邀请到了FreeSWITCH 中文社区 ...

最新文章

  1. Linux中Sleep和Wait命令的使用方式
  2. Asp.Net的控件如何与Server交互
  3. linux 进程原理内存,linux进程通信之共享内存原理(基于linux 1.2.13)
  4. 如何区分“Invoice代码”和“Invoice号码”?
  5. 【渝粤教育】国家开放大学2018年春季 8625-22T老年心理健康 参考试题
  6. 菜鸟新手们得福音纯css菜单导航
  7. 图像增强总结-Retinex算法
  8. 计算机命令关闭445端口,怎么关闭445端口-关闭windows端口的批处理命令
  9. 学习笔记(五)——相关系数及Excel实现相关分析操作
  10. 探索Holo_java操作日期
  11. pandas.read_csv读取数据时出现省略号
  12. Android Studio自带图标制作利器 Image Asset Studio
  13. 基于springboot jpa驾校管理系统源码
  14. 云端新增长,混合云融合发展新路径 | 云端会客厅第28期精彩回顾
  15. [机器学习]概率图模型
  16. xpath.extract() 的使用
  17. vc中操作INI文件函数
  18. A. A Blend of Springtime
  19. linux 鼠标侧键,Linux下的鼠标宏映射实现
  20. hp 800 g4 twr linux,惠普 HP EliteDesk 800 G4 35W DM 体验分享 - 1升的迷你小钢炮

热门文章

  1. win10 平板 刷android,Android平板电脑刷Win8 ARM平台将支持Win10
  2. 软考笔记——2.1进程管理、同步互斥、死锁、线程
  3. Windows Azure AppFabric (一) 平台简介
  4. 手动挡五个档位示意图_小型C1手动挡汽车档位分布示意图
  5. web打印三种实现方式
  6. Hibernate技术
  7. 使用fdisk给新增加硬盘分区
  8. 【重构】SqlParameter的作用
  9. 下载官方Intel的Windows 10网卡驱动
  10. windows查看md5命令