由于公司产品需要用到视频会议,之前也自研了MCU产品,逻辑相对简单,但是符合公司产品特性,但是服务器端的CPU使用,已经Qos做的不好。另外我们还实现了SFU的会议系统,但是考虑到终端的性能以及带宽的问题,可能没办法进行超过6方以上的会议,因此又想到了freeswitch.
使用freeswitch 1.10.7版本,下载和安装过程请参考: freeswitch1.10.7公网安装配置_Joe ZHU的博客-CSDN博客
基本安装完成之后就可以正常的使用freeswitch的视频会议。
入会方式有两种:
1. 拨号入会:
- conf/dialplan/default.xml 中定义了拨号入会的入会number 3500
- 拨打3500之后,会执行application conference 会转入执行 conf/autoload_configs/conference.conf.xml中的 video-mcu-stereo
- 具体video-mcu-stereo下面的参数定义请参考:mod_conference - FreeSWITCH - Confluence
2. 命令发起会议
1. 开始一个会议:
bgapi originate user/1001 &conference(3500@video-mcu-stereo)
conference 3500@video-mcu-stereo dial user/1001
这两个命令都可以发起一个会议
2. 在user/1001前可以加入通道变量用于对当前用户在会议中的设置:
比如设置banner:
conference 3500@video-mcu-stereo dial {video_banner_text=1001}user/1001
3. 详细conference的命令可以参数官方问题 mod_conference 模块。多测试一下就知道各个命令的意思。
由于现在视频会议基本上都是需要实现双流(桌面共享/课件投屏).SIP协议中需要实现BFCP,H323中需要实现H239.但是非常可惜的是freeswitch中目前并没有实现这两种双流协议,不确定后续会不会做。
由于sofia-sip已经从freeswitch中独立出来,因为如果需要实现双流的话,需要更改sofia-sip的代码,可以解析出BFCP。并且需要在freeswitch中添加bfcp模块用于实现双流。
后续打算尝试在freeswitch中实现,不确定难度有多大。。。。