Jitsi Meet

uuuu.jini·2022년 6월 24일
0
post-thumbnail

사전 지식

Ubuntu 기본 명령어

  • root 계정 비밀번호 설정 : sudo passwd root
  • root 계정 로그인 명령어 : su or su root
  • root 계정 로그아웃 명령어(일반 사용자 계정 전환) : exit

WebRTC

웹 브라우저 간에 플러그인의 도움 없이 서로 통신할 수 있도록 설계된 API이다. WebRTC(Web Real Time Communication) 은 웹 애플리케이션과 사이트가 중간자 없이 브라우저 간에 오디오나 영상 미디어를 포착하고 마음대로 스트림할 뿐 아니라, 임의의 데이터도 교환할 수 있도록 하는 기술이다.

  • 웹, 앱에서 별 다른 소프트웨어 없이, 카메라,마이크 등을 사용해서 실시간 커뮤니케이션을 제공해주는 기술

SIP 프로토콜

세션 개시 프로토콜이란 시그널링 프로토콜로 음성과 화상 통화 같은 멀티미디어 세션을 제어하기 위해서 많이 사용되었으며, 인터넷 상에서 통신하고자 하는 지능형 단말들이 서로 식별하여 그 위치를 찾고, 그들 상호간에 멀티미디어 통신 세션을 생성하거나 삭제 또는 수정하기 위한 절차이며 명시한 응용 계층의 시그널링 프로토콜입니다.

XMPP

Extensible Messaging and Presence Protocol 은 XML에 기반한 메시지 지향 미들웨어용 통신 프로토콜이다. 확장 가능한 메시징과 상태를 위한 규격이다. ( 유저의 상태와 유저간의 양방향 채팅을 할때 통신에 사용되는 것)
xml 기반 인터넷 통신을 위한 오픈 프로토콜이다.

  • XMPP 아키텍쳐 : 고유한 이름을 가지고 있는 클라이언트가 연관된 서버를 통해 고유 이름ㅇ르 사용하여 다른 클라이언트와 통신한다. 각 클라이언트는 프로토콜의 클라이언트 양식을 구현하고 서버에서는 라우팅 기능을 제공한다.
  • Instant Messaging : 다른 사용자와 실시간으로 통신할 수 있을 뿐 아니라 다른 사용자의 상태 정보도 확인할 수 있다.
  • 메시지 지향 미들웨어(MOM) : 응용 소프트웨어 간의 데이터 통신을 위한 소프트웨어이며 일반적으로 비동기 메시지 전달에 기초한 것을 가리킨다.

FQDN ( Fully Qualified Domain Name)

'절대 도메인 네임' 또는 '전체 도메인 네임'이라고 불리는 도메인 전체 이름을 표기하는 방식을 의미한다. 호스트와 도메인을 함께 명시하여 전체 경로를 모두 표기하는 것을 FQDN 이라 한다.

Self-Hosting Gudie-Debian/Ubuntu server

Jitsi-Docs

해당 단계를 따라 quick Jitsi-Meet를 데비안 기반 시스템에 설치할 수 있다.

아래의 배포버전을 사용해야 한다.

  • Debian 10 (Buster) or newer
  • Ubuntu 20.04 (Focal Fossa) or newer

Ubuntu 20.04를 VirtualBox 가상환경에서 설치하여 진행할 예정!

Virtualbox에 Ubuntu 설치 사이트

설치 단계는 rootsudo 접근이 필요

Required packages and repository updates

진행 전 apt updateapt upgrade 수행

아래의 패키지들이 필요하므로 설치

sudo apt install 사용하여 아래 패키지 모두 설치

  • gnupg2
  • nginx-full
  • sudo
  • curl or wget

curl : command line 용 data transfer tool , 다운로드와 업로드 모두 가능, 각종 주요한 프로토콜을 지원한다.
wget : web get 의 약어로 웹상의 파일을 다운로드시 사용하는 명령어

OpenJDK 11 사용 필수이므로 아래 명령어로 설치

sudo apt-get install openjdk-11-jdk

apt-get -y플래그 : yes를 의미 , 설치 시 나타나는 모든 물음에 yes를 사용하겠다는 옵션

필요 패키지 마저 설치

# Run as root or with sudo

# Retrieve the latest package versions across all repositories
apt update

# Ensure support for apt repositories served via HTTPS
apt install apt-transport-https

Ubuntu 시스템에서 Jitsi는 우분투의 universe 패키지 리포지토리 dependencies가 필요하다.

sudo apt-add-repository universe

아래와 같이 이미 모든 소스에서 사용할 수 있도록 설정했습니다.가 뜨는 경우에 universe로 이미 설정이 된 것 !

# Retrieve the latest package versions across all repositories
sudo apt update

Repositories ?

  • Main : 표준으로 지원되는 자유 및 오픈 소스 소프트웨어
  • Universe : 커뮤니티 유지 관리 자유 및 오픈 소스 소프트웨어
  • Restricted : 장치 전용 드라이버
  • Multiverse : 저작권 또는 법전 문제 제한 소프트웨어

Install Jitsi Meet

Domain of your server and set up DNS

현재 빠른 설치를 위해 DNS 설정 생략 예정

Set up the FQDN

생략

Add the Prosody package repository

echo deb http://packages.prosody.im/debian $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list
wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add -

Add the Jitsi package repository

curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg'
echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null

# update all package sources
sudo apt update

Setup and configure your firewall

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10000/udp
sudo ufw allow 22/tcp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp
sudo ufw enable

상태확인
sudo ufw status verbose

어댑터에 브리지

해당 가상환경 guest OS 를 host 레벨까지 끌어 올려 같은 라우터 밑에 두는 방식

VirtualBox

  • 설정 > 네트워크 > 어댑터에 브리지 변경
    : 해당 내부 ip의 네트워크 부분을 공유하는 ip를 가상머신의 os가 할당받게 됨, 해당 ip로 접속하는 형태로 진행할 예정

우분투 ip 확인

  • sudo apt install net-tools
  • ifconfig

Install Jitsi Meet

sudo apt install jitsi-meet

설치를 진행할 경우 분홍색 창이 뜨며 hostname 을 요구한다. 이때 위에서 ifconfig로 확인한 ip주소를 입력해준다. 또한 certification 선택 창이 뜨면 새로 만드는 것을 선택해주면 설치가 완료된다.

Jitsi-Meet 접속

설정한 IP 주소로 접속시 해당 서버의 Jitsi-Meet 접속이 가능하게 된다.


Test

  1. 4명 접속 확인
  2. 카메라,음성 확인
  3. 이모지 전송, 채팅 확인
  4. 화면 공유

[진행 사항]
1. 4명 이상의 사용자가 내부 네트워크에서 화상회의를 들어가서 테스트를 수행
2. 기존 오픈소스의 화상회의 시스템을 서비스 기획자와 검토
3. 코드 빌드하여 변경된 실행파일을 서비스에 반영

profile
멋쟁이 토마토

0개의 댓글