13
2020
04

用开源项目Jitsi搭建视频会议系统

前几天我们接到客户的一个需求,就是客户公司有时候会有通过视频会议的方式进行内培训,目前客户用的是一个第三方的视频会议系统,可是当使用人数多的时候,通话质量和桌面分享的质量都会严重下降,后来据供应商分析,这是由于用户数太大,把办公室的带宽耗尽导致的,这就很郁闷了,关键参加培训的人还都在同一个办公室……

咳咳,我们先不纠结为啥同一个办公室还要选择视用频会议来培训的问题,现在客户产生了这个需求,希望能搭建一个内部的视频会议系统,这样多人会议的时候就可以用公司内部的千兆网络,而不需要消耗公司的公网带宽了。


然后非常巧合的是,刚好我以前就有摸索过一套基于开源项目Jitsi的视频会议系统,可以部署在客户内网,为内部员工培训提供视频会议和桌面共享服务,在征得用户同意后,我们开始了POC流程……

注:1、以下内容是基于Ubuntu 18.04.4做的,其他版本的Ubuntu和其他版本的Linux上我们都没有测试过,这里也给一个Ubuntu 18.04.4的种子文件,种子文件源于Ubuntu官方网站https://ubuntu.com/,仅供参考使用:ubuntu-18.04.4-live-server-amd64.iso.torrent

2、本文内容参考Jitsi官方快速部署指导写的,随着时间的推移或者软件版本的更替,官方文档可能会有变化,如本文内容有与官方文档相左的地方,请优先考虑以官方文档为准。官方快速部署指导链接:

https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md



一、安装Ubuntu OS

简单的讲就是装系统,引导进入安装向导咱们这里不做讨论,不同的服务器引导方式可能不一样,不同的介质安装的引导方式也可能不一样,如有需要帮助可以参考对应服务器的安装文档。

引导进入安装程序之后第一步是选择语言,这里建议用English,虽然我们都是中国人,但是计算机世界里,还是英文通用性和兼容性都更好些。然后依次会让用户选择键盘layout、配置IP地址 、配置代理服务器地址(可选)、配置Ubuntu archive的镜像、格式化硬盘以及创建用户等等,这里就根据实际情况配置就可以了。

接下来会让用户选择是否安装OpenSSH Server,这个建议安装一下,按一下空格,然后Done,就可以了,不配置可能会导致无法SSH连接服务器,这个必然是会给运维带来麻烦的。

然后就是选择软件包,这里根据实际情况选择,如果这台服务器只是用来做这个视频会议系统的话,那可以保持默认,直接点Done。

然后应该就进入安装流程了,接下来就是耐心等待,等待过程中可以选“View full log”查看详细的安装过程,直到看到如图所示的位置显示“Finished install!”,那就是安装完成了,直接选Reboot就可以了。

1.jpg


二、Jitsi部署前置工作

Ubuntu OS安装完成,在开始部署Jitsi之前,我们还需要了解一些前置工作:

  1. 端口号:Jitsi默认需要 用到三个端口,TCP80,TCP443和UDP10000,记得要在防火墙上允许这三个端口。

  2. 域名解析:因为Jitsi默认会强制HTTPS访问,所以避免出现什么连接不安全的告警,最好是准备一个域名,用域名就会涉及到解析了,我们这个案例由于只是内网使用,所以域名解析到服务器的内网IP就可以了。

  3. SSL证书:上面说了默认会强制 HTTPS访问,所以必然SSL证书也应该准备一下了,如果有现有通配符证书那当然最好,直接用上就行,如果没有的话可以去申请一张免费的SSL证书,申请好了之后一般会拿到三个文件,一个key文件,一个certificate文件,一个chain文件,这里主要上传key文件和certificate文件到服务器就可以了,SSL要提前上传,并记下上传的位置,因为后面Jitsi的安装过程中会用到。


三、安装部署Jitsi

准备工作做完了,那么接下来就是开始安装了,Jitsi项目主要包含七个组件,分别是jitsi-videobridge、jicofo、jitsi-meet-web、jitsi-meet-web-config、jitsi-meet-prosody、jitsi-meet和jitsi-meet-turnserver,官方有提供各个组件的软件,你可以U型安泽包纯手动安装,但是这些安装包有很多dependency,光装这七个组件容易产生灵异事件,所以我的建议是通过通过apt-get全自动安装。

  1. 由于默认Jitsi的库默认是不在Ubuntu的安装库里的,所以咱们得先添加Jitsi安装库,方法也很简单,依次使用下面两条命令就可以了:

    echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list
    wget -qO -  https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -

  2. 记得update一下apt-get:

    apt-get update

  3. 上面有提到Jitsi默认是强制HTTPS的,所以我们需要安装HTTPS支持,这个一般Ubuntu系统应该默认都装了的,但是以防万一,我们可以再输一遍安装命令:

    apt-get install apt-transport-https

  4. 接下来就是安装核心组件jitsi-meet了,命令也很简单:

    apt-get -y install jitsi-meet

  5. 安装过程全程都是傻瓜式的,因为用了-y参数,apt-get会自动安装所有有dependency的应用,不过因为大多数应用(或许不是大多数而是全部)的安装包都是在境外的,所以速度可能会有点慢,还是需要有点耐心的。

  6. 安装快接近尾声的时候会弹出如图所示的对话框,注意这里要填的不是机器名哦,是要填用于访问视频会议系统的网址,如果填错了会导致视频会议系统无法正常使用,比如计划使用https://vc.xxx.com访问这个会议系统,那么就输入vc.xxx.com。像前面说的一样建议通过域名访问,如果确实不希望用域名,那么这里可以填服务器的IP地址,如192.168.10.101。

    1.jpg

  7. 设置好网址之后会出现如图所示的证书配置对话框,如果选第一项“Generate a new...”那么系统会自动创建一张SSL证书,但是这张证书是不受浏览器信任的,所以会出现证书错误的报错,虽然不影响使用但是这不是best practice,这里我建议选第二项“I want to...”

    1.jpg

  8. 选了第二项之后会出现两次指定SSL证书路径的对话框,第一个是key文件,第二个certificate文件,记得在Step2里我有提到上传SSL证书并记录上传的路径么?这里就要用到这个路径了。

  9. 设定好之后安装部署过程会自动继续,当CLI回到用户提示符的时候,说明安装已经完成,这个时候你就可以打开浏览器,输入我们上面配置的网址,如果一切正常没有问题的话,就能看到如图所示的界面,这个时候只要随便输入一个会议名称,然后点击右边的“GO”就可以开始视频会议了~

    1.jpg


三、卸载Jitsi

第三步最后我有说如果一切正常没有问题的话,打开网址就能看到开始会议的界面,那么如果没看到这个界面呢?那就是不正常了,有问题了,那怎么办呢?

其实我也不知道怎么办,这套系统虽然是开源的,但是没有一定的编程开发能力还是完全没办法搞的定它的,所以出现问题的时候,我的建议是简单粗暴一点,把各个软件全部卸载掉,然后重新来一遍,因为多次实验证明,安装过程不出问题的话,是肯定可以正常使用的,所以卸载重装,或许可以解决问题

卸载的命令其实也很简单,就是apt-get的purge:

apt-get purge jigasi jitsi-meet jitsi-meet-web-config jitsi-meet-prosody jitsi-meet-turnserver jitsi-meet-web jicofo jitsi-videobridge2

注意有时候可能会卸载不干净,所以如果不确定是否完全卸载,建议这条命令可以运行两次或者三次。


四、个性化Jitsi UI

首先我想说的是Jitsi作为一款完全开源的免费软件,我个人是建议尊重开发者的辛勤劳动,不要做个性化UI,特别不建议替换或者删除带有Jitsi的内容,所以以下内容仅供学习参考,如确实有个性化需求(因为我们都懂的原因),那么可以参考下面的几条尝试修改。

  1. 前端web目录:/usr/share/jitsi-meet

  2. Nginx配置目录:/etc/nginx/sites-available/*网址*.config

  3. 配置文件config.js位置:/etc/jitsi/meet/*网址*-config.js

  4. 前端web配置文件interface_config.js位置:/usr/share/jitsi-meet/interface_config.js

  5. Jitsi服务名称:jitsi-videobridge2 & jicofo

  6. 日志保存位置:

    /var/log/jitsi/jvb.log

    /var/log/jitsi/jicofo.log

    /var/log/prosody/prosody.log


五、注意事项

好吧,虽然说是注意事项,但是目前我发现的需要注意的也就一条,就是使用Jitsi开视频会议的时候,请确保使用Chrome或者Chromium内核的浏览器,否则会导致屏幕分享功能不能用,其他的目前还没有碰到,碰到了再加上去吧。

« 上一篇

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。