​FreeSWITCH视频会议“标准”解决方案

本文由FreeSWITCH 中文社区创始人杜金房在LiveVideoStack线上分享的演讲内容整理而成,详细介绍了FreeSWITCH做为一种开源的视频会议解决方案如何在开源、开放的基础上,对接各种无法修改的“标准”视频会议终端、WebRTC浏览器以及微信小程序等,迎接各种挑战。

文 / 杜金房

整理 / LiveVideoStack

我们所谓的“标准”解决方案,并非是指这个解决方案是标准的。而是在做视频会议的过程中,FreeSWITCH作为一个服务器,会面对不同类型的客户端以及各种硬件的终端。由于它们使用了各种各样的标准协议,是我们没办法修改的,所以称它们为标准的客户端。而FreeSWITCH视频会议“标准”解决方案就是指针对这些不可修改的标准客户端所做的一种解决方案。

●视频会议类型●

视频会议大体上可以分为三种类型。一是传统视频会议,传统的视频会议是“标准”的,因为它们之间需要互通。早期的视频会议协议一般是H323,即使现在我们也还会经常遇到H323的设备,但后来大部分被SIP协议的设备所取代。SIP协议是一个文本协议,整体更灵活一些。

近几年开始出现一些云视频会议,今年其实也可以算作云视频会议的元年,由于疫情的原因,大家开始更多地使用视频会议。例如Zoom,腾讯会议、小鱼易连等,据说腾讯会议一周之内上线了10万台服务器,进行紧急扩容,这在传统的视频会议时代是不可能实现的,只有在云计算时代才能快速实现扩容,这也体现了云计算的优势。据了解这些云视频会议厂商,基本都是使用的私有协议,其好处是可以无限制的优化。但私有协议无法进行很好的互联互通,不过各个视频会议厂商为了实现与其它设备互通,自己也会提供一些SDK。

开源领域的视频会议,有FreeSWITCH、Jitsi、Kurento、Janus、Medooze等,这些视频会议也有许多年的历史了,目前大多已经开始支持WebRTC。有的以支持WebRTC为主,例如Kurento和Janus;Janus和Medooze最初是支持SIP的,最近几年我没有太关注;Jitsi对WebRTC的支持非常好。

对于FreeSWITCH,大家可能会有些误解。FreeSWITCH其实最早是用于音频通信的,即PBX 程控交换机,但实际上FreeSWITCH的视频会议功能也非常强。开源的视频会议因为是开源、开放的,使用的是开放的API,因此更多的是使用开放协议如SIP协议。

目前WebRTC比较火,所有的视频会议设备基本都在支持WebRTC,在浏览器里就可以打电话。WebRTC是一个媒体协议,没有规定信令,在信令层面没有标准,因此大家实现起来会比较灵活。FreeSWITCH在信令层实现了两种协议,一种是SIP,它承载在WebSocket上,因为在浏览器里只有WebSocket可以实现双向通信。另外还有自己实现的私有协议Verto。

●互联互通●


随着我们对于视频会议软件的使用越来越多,会发现一个问题:手机和电脑上的视频会议客户端越来越多。

其实我们也非常希望能解决这个问题,方法就是互联互通。我们希望所有的终端都能互联互通,难道只是因为使用的视频会议客户端不同,就不能在一起开会了吗?

理想很丰满,但现实执行起来还是很困难的。

其实更多的是由于商业的原因,没有人会选择这么做。当然从技术层面来说,全部使用私有的协议、服务器和终端,能更好地优化、更好的保证安全等等。总之,实现互联互通任重道远。

虽然任重道远,但其实我们一直想做这方面的事情,FreeSWITCH也连接了很多不同的客户端,希望能跟更多的设备进行互联互通。

●FreeSWITCH的成长史●

说到FreeSWITCH,简单了解一下它的历史。

2006年FreeSWITCH发布了第1个版本。FreeSWITCH本身最开始是作为一个PBX进行的。PBX就是我们所说的企业里的交换机,打电话用的。

2008年发布了1.0版本—凤凰版,像凤凰涅磐一样,经历了无数次的崩溃、优化,所以称为凤凰版。

2012年发布FreeSWITCH1.2版本(FreeSWITCH的版本号都是偶数),1.2版本非常稳定,音频方面也已经非常成熟,在电话方面基本上没什么可做的了。但随着的WebRTC的出现,FreeSWITCH决定接下来要支持WebRTC。

2014年推出1.4版本,开始支持WebRTC。早期的WebRTC还不是很稳定,但WebRTC的标准变得非常快,所以FreeSWITCH也一直在跟着改。

其实早在2008年我就开始做FreeSWITCH了,那时主要做在线教育,早期的在线教育没有视频,只有音频,教师利用音频做英语的对话教学。后来又做了一些其它的项目,要求有视频,然后就增加了一些视频的功能,包括视频的MCU。由于FreeSWITCH早期在视频方面还不是很成熟,做了几个项目不是特别满意,所以后来我们就把视频部分开源了。

2014年-2015年,我们耗费了一年的时间,将自己做的部分合并到FreeSWITCH的主分支中,用一整年的时间将自己写的代码规范化、同时适配Windows、Linux、Unix等各种平台,实现FreeSWITCH在各种平台上的编译和支持,发布了1.6版。这时FreeSWITCH开始支持视频通话和视频会议,之后从2017年开始到2020年,这几年一直在不停的修bug,将FreeSWITCH做得越来越完善。

在视频会议开源的这个分支上,我们也做了很多内容,有的已经合并到1.8版本中,有的合并在1.10版本中。其实我们自己还维护了一个分支没有合并进去,由于将自己的代码合并到开放的分支中需要很多劳动力,所以会在后续逐步完成。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值