1、概述
想要了解Janus,首先需要知道WebRTC以及Janus和WebRTC之间的关系,本文将会对这些内容做简单的介绍,同时也会介绍一下Janus的架构,Janus可以实现的功能,并展示如何快速搭建一套Janus的后台服务器,最后利用官方的前端demo,实现sip通话。
2、JANUS简介
什么是WebRTC,它有哪些功能?WebRTC (Web Real-Time Communications) 是一个开源项目是一项实时通讯的技术,旨在使得浏览器能为实时通信提供简单的JavaScript接口,让浏览器通过JS实现即时通信接口。这个接口是通过一系列的信令,建立一个浏览器与浏览器之间(peer-to-peer)的信道,这个信道可以发送任何数据,而不需要经过服务器。并且WebRTC通过实现MediaStream,通过浏览器调用设备的摄像头、话筒,使得浏览器之间可以传递音频和视频。
那么什么是Janus呢?janus是一个WebRTC网关,由Meeteco设计和开发,是为Linux系统量身定制的,也可以在MacOS编译和安装。Windows不受支持,但如果需要的话,Janus可以在Windows 10中的“Windows Subsystem for Linux”上工作。
3、JANUS的架构及各文件作用
3.1、janus架构图
3.2、janus部分目录及文件的作用
plugins # 业务插件目录
docs # Janus相关文档目录
html # 前端相关Demo目录
rtcp.c # RTCP协议的具体实现
rtp.c # RTP协议的实现,它用于传输音视频数据
sctp.c # SCTP协议的实现
sdp.c # SDP协议的实现
sdp-utils.c # 处理SDP的常用工具
test # 测试文件所在目录
record.c # 录制功能的实现
ice.c # 实现对libnice库的封装
janus.c # Janus的主框架程序
log.c # 日志
dtls-bio.c # DTLS中BIO实现
dtls.c # DTLS协议实现
。。。
4、JANUS服务端的简单搭建
好了说了这么多废话,下面就开始Janus服务端的搭建,搭建环境为centos7。
4.1、安装依赖包
首先需要安装janus的相关依赖包,以保证Janus服务能正常运行。其中有些依赖包是在github上的,下载的时候可能出现速度比较慢,或者出现会卡顿无法下载等情况,wget多试几次,多等待一会即可。
#step1 安装相关依赖包
yum install -y epel-release && \
yum update -y && \
yum install -y deltarpm && \
yum install -y gnutls-devel&& \
yum install -y openssh-server sudo which file curl zip unzip wget && \
yum install -y libmi