jitsi meet在ECS及本地虚拟机安装配置与嵌入使用

jitsi meet 说明

jitsi meet 是一个开源的视频会议解决方案,可以通过查看 官网
和 开源项目地址了解. 在 这里可以进行体验. 在开源库中有项目地址,这里做下简单介绍.

  • jitsi-meet web端的会议项目源码,不建议clone自己编译,来安装部署,会出一些问题,比较麻烦,我们直接用快速安装,会自动安装prosody和 jicofo videobridge 等服务,然后前后端就搭建好了,通过修改配置来弄
  • docker-jitsi-meet doker 的安装版本.能搭建成功,不太容易改东西.
  • jigasi 服务器端应用程序,充当Jitsi Meet会议的网关。目前,支持电话会议
  • jitsi 是桌面版本的应用程序.

安装与配置

vps 阿里云或百度云安装

环境准备

  1. 购买百度云或阿里云的ECS
  2. 系统要求,内存至少2g,最好用Ubuntu 16.04 64位系统
  3. 开发阶段放行所有端口,阿里云是在网页功能的防火墙,通过防火墙放行所有tcp和udp端口.百度云是在安全组,将实例应用到放行所有tcp和udp的安全组就行.
  4. 系统先安装NGINX ,使用命令apt-get install nginx -y(非root用户前所有命令前加sudo)

快速安装方式

  1. 增加仓库
echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list
  1. 添加key
wget -qO -  https://download.jitsi.org/jitsi-key.gpg.key | apt-key add 
  1. 更新包
apt-get update
#上面语句出错请使用下面这个
apt-get install apt-transport-https
  1. 安装jitsi meet

根据网络状况,安装过程不等,百度云vps只需不到10s,阿里云需要几分钟,如果用自己电脑的虚拟机,用公司的网络,没有设置镜像的话,可能要十多分钟.

apt-get -y install jitsi-meet
  1. 输入域名

这里简单的话,可以直接输入公网ip 就行.自己有绑定机器的域名的话,直接输入域名就行. 要是没有买域名,要想用域名的方式的话.可以进行模拟.需要在 虚拟机的hosts中映射 127.0.0.1到虚拟域名.通过外网访问的机器需要绑定同样域名到你部署机器的对外IP .
比如:

#自己本机window的C:\Windows\System32\drivers\etc\HOSTS
182.61.47.152  yhbdmeeting.com
#购买的vps 或者虚拟机执行 sudo vim /etc/hosts
127.0.0.1 yhbdmeeting.com

  1. 选择生成证书,选第一个选项就好
  2. 这时候访问应用,2人以上参与的话,可能会遇到端口转发的问题,需要进行额外配置
/etc/jitsi/videobridge/sip-communicator.properties

新增

org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=

例如针对我的百度云vps内网网的情况则添加以下内容,然后重启vps

org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=172.16.0.2
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=182.61.47.152
  1. 然后通过https://yourPublicIP访问 或者https://yourDomain , 必须通过Chrome或者火狐浏览器中, 测试多人功能的时候,可以用一个浏览器开三四个窗口进同一房间来做

  2. 如果想要控制创建房间的权限,可以通过参考 文档来做.不过我测试,结果是只要你浏览器不清除cookie的话,只要认证过一次后,以后再创建房间的话,也不需要再输入账号密码了,不是很好,要看下其他方式.

如果出现问题可以对照 官方快速安装文档

本地虚拟机中安装

环境准备

  1. 安装 VirtualBox
  2. 下载 ubuntu 镜像 16和18 都行.安装过程参照网上教程.安装桌面版本的就行
  3. 网络模式保持默认网卡1 网络地址装换nat就行
  4. 设置端口转发

设置->网络->网卡1(网络地址装换nat)->高级->端口转发,新增以下规则,其中主机IP填写自己电脑 ipconfig 查出的IP , 子系统IP是虚拟机执行ifconfig查出的IP

协议 主机IP 主机端口 子系统IP 子系统端口
tcp 192.168.28.212 80 10.0.2.15 80
tcp 192.168.28.212 443 10.0.2.15 443
tcp 192.168.28.212 4443 10.0.2.15 4443
tcp 192.168.28.212 4443 10.0.2.15 4443
udp 192.168.28.212 10000 10.0.2.15 10000
  1. 其余步骤同vps安装.
  2. 别人访问你电脑的IP就行 https://yourIp ,会自动转发到虚拟机中的应用中去.当然也可以用虚拟的域名.同vps中的操作一样.但是要访问的人的电脑,都得把域名绑定到你机器的IP 在我的例子中是绑定到192.168.28.212

如果安装有问题可以参考如何在Ubuntu上安装Jitsi Meet视频会议平台 以及 快速安装

定制化修改

修改方式介绍

配置文件的名称会根据你填写的domain或者ip来生成这里统一用{yourDomain}
主要是通过修改配置文件,以及静态资源来做.

会议方面最主要有两个配置文件

一个是config.js 程序参数配置 比如选择默认语言,是否开启欢迎页面,退出会议时是否展现反馈页面,在配置文件中都有相应注释说明

sudo vim /etc/jitsi/meet/{yourDomain}-config.js

比如可以修改默认语言为中文 defaultLanguage: ‘zhCN’

以及interface_config.js web界面表现配置,例如可以去掉页面中一些不必要的东西

sudo vim  /usr/share/jitsi-meet/interface_config.js 

其中网页的静态资源位置位于,

cd /usr/share/jitsi-meet

这里可以更改水印的图片image/watermark.png,以及补全和修改中文对应的翻译之类的lang/main-zhCN.json.不知道怎么往虚拟机上传文件的话,可以使用
FinalShell SSH 工具,有上传的功能,选好后文件夹,拖进去就行了

更改了这些文件后, 应该是要重启nginx的 .可以用一下命令.

 /etc/init.d/nginx stop
 /etc/init.d/nginx start

顺便提一下 部署后的web站点配置是在

cat  /etc/nginx/sites-available/{yourDomain}.conf

但是更改后端的配置 比如装prosody和 jicofo videobridge的话, 要重启相应服务,不知道怎么重启就干脆重启vps ,在/etc/init.d 下面可以重启

/etc/init.d/prosody restart
/etc/init.d/jicofo restart
/etc/init.d/jitsi-videobridge restart

一些说明

  • 我们是要调用摄像头的,但是摄像头只能在localhost下以及https下调用,所以你在后面提到的嵌入到另外应用的开发时,你的应用必须发布成https.使用springboot的话,由于使用的是内嵌的Tomcat,我们需要在返回Tomcat容器的时候做一些配置. 如果是spring-mvc等其他手动部署的话,我们只需要对Tomcat的配置文件进行修改.然后在idea改下部署的访问协议为https,端口改成8443?,两种方式参照网上教程弄.
  • 如果在更改语言前访问过应用,即使服务器重启后,重新访问还是不会生效的.其实是改过来的,你可以尝试用隐身模式试一下.忘记了清楚cookie管用不,应该能起作用的,它优先使用保存在本地的语言设置.
  • 2个人是走的p2p,直接双方连接,不经过服务器分发,所以要保证应用确实良好运作的话,应该用3人及其以上来测试.一个人可以用同一浏览器开3个tab来测试.
  • 自带的语言翻译功能是可以用的,但是说英语才能翻译,中文的话应该是可以设置,但是方言那么多,所有没啥用,可以关了
  • 我还有其他问题怎么办? 可以去 官方论坛 ,搜一下相关问题,没有的话可以自己提问,社区的开发者都挺热心的,不过是英文社区的哈.也可以去jitsi meet的github托管页面的issue查找他们遇到问题的解决方案.

一些位置

  • 配置证书位置
    /etc/jitsi
  • 配套服务启动位置
    /etc/init.d/jicofo
    /etc/init.d/jitsi-videobridge
    /etc/init.d/prosody
  • jitsi meet 部署资源位置
    /usr/share/jitsi-meet
  • 日志位置
    /var/log/jitsi
    /var/log/prosody

嵌入使用

使用方式

安装好后我们就可以用自己部署来提供服务,通过使用Jitsi Meet api的方式将Jitsi Meet嵌入到自己其他应用程序中。我们只需要提供部署的地址,如果不自己部署的话,想先体验下它的api我们使用官方部署好的 meet.jit.si 来测试.

测试页面 官网有提供

<html itemscope itemtype="http://schema.org/Product" prefix="og: http://ogp.me/ns#" xmlns="http://www.w3.org/1999/html">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="content-type" content="text/html;charset=utf-8">
    head>
    <body>
        <script src="https://meet.jit.si/external_api.js">script>
        <script>
            var domain = "meet.jit.si";
            var options = {
                roomName: "JitsiMeetAPIExample",
                width: 700,
                height: 180,
                parentNode: undefined,
                configOverwrite: {},
                interfaceConfigOverwrite: {
                    filmStripOnly: true
                }
            }
            var api = new JitsiMeetExternalAPI(domain, options);
        script>
    body>
html>

然后可以调用它的 api 来执行操作

这里可能会遇到问题,如果你是使用像我们之前那样自己部署的服务器,因为安装的时候选择的证书是那种糊弄证书,
本来正常情况直接访问https下会告诉你不安全,你点继续才加载出来.但是这里是通过代码给我们弄进来的,如果你之前没有在浏览器打开并同意过内嵌的域名下任何页面的话,只会看到加载不成功的空白.如果现在马上直接打开一次,同意后,再刷新的话就好了.这个看网上有不优雅的解决方案,在Chrome快捷右键在目标那一栏启动增加参数,大概是这个样子

C:\Users\jk969\AppData\Local\CentBrowser\Application\chrome.exe --ignore-certificate-errors --allow-running-insecure-content

你可能感兴趣的:(安装与使用)