/webrtc-mcu

INTEL WebRTC MCU Cluster Manage Service

Primary LanguageJavaScriptMIT LicenseMIT

intel-mcu-icon

Create high-performance, reliable, and scalable real-time communication solutions. Server and client tools to deliver RTC experiences with video conferencing capabilities. Optimized for Intel® Architecture to take full advantage of Intel hardware-acceleration with H.264 and HEVC encode/decode.

Version

  • 0.0.1 Nightly Build.

About

  • This service need Node.JS®.
  • The service can be run independently, Intel WebRTC MCU® needs to connect to this service, managed by this service.
  • This service provides a remote call API.
  • This service requires runtime injection of Intel WebRTC MCU®.
  • Use WebSocket to send system information between nodes and centers.
  • Tasks are passed between nodes and centers through RabbitMQ®

You need to

You need to have the following dependencies ready.

System environment

  • MongoDB (>= 3.6.x) MongoDB is a document database with the scalability and flexibility that you want with the querying and indexing that you need.
  • Redis (>= 4.x) Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.
  • Node.JS (>= 10.x) Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
  • PostgreSQL (>= 10.x) PostgreSQL is a powerful, open source object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability.
  • RabbitMQ (>= 3.7.x) RabbitMQ is the most widely deployed open source message broker.

NPM module dependencies

  • axios Promise based HTTP client for the browser and node.js.
  • body-parser Node.js body parsing middleware.
  • cookie-parser Parse HTTP request cookies.
  • cookie-session Simple cookie-based session middleware.
  • ejs Embedded JavaScript templates for node.
  • express Fast, unopinionated, minimalist web framework for node.
  • mongodb Mongo DB Native NodeJS Driver.
  • nodemailer Send e-mails with Node.JS.
  • redis redis client for node.
  • toml TOML parser for Node.js and the Browser. Parses TOML v0.4.0.
  • ws Simple to use, blazing fast and thoroughly tested WebSocket client and server for Node.js.
  • uuid Generate RFC-compliant UUIDs in JavaScript.
  • http-proxy A full-featured http proxy for node.js.
  • amqplib AMQP 0-9-1 library and client for Node.JS.
  • moment Parse, validate, manipulate, and display dates in javascript.
  • decimal.js An arbitrary-precision Decimal type for JavaScript.
  • pg-promise Promises/A+ interface for PostgreSQL.
  • chalk Terminal string styling done right.

Debug

      
          ┌─┐       ┌─┐
       ┌──┘ ┴───────┘ ┴──┐
       │                 │
       │       ───       │
       │  ─┬┘       └┬─  │
       │                 │
       │       ─┴─       │
       │                 │
       └───┐         ┌───┘
           │         │
           │         │
           │         │
           │         └──────────────┐
           │                        │
           │                        ├─┐
           │                        ┌─┘    
           │                        │
           └─┐  ┐  ┌───────┬──┐  ┌──┘         
             │ ─┤ ─┤       │ ─┤ ─┤         
             └──┴──┘       └──┴──┘ 
             
               CNM Bless 
             Code Not BUG! 

Install

You neead install npm package.

~ npm install

You need to create a new configuration file.

~ vim ./configure.toml
# http configure
[http]
# you web host
host = "localhost"
# you need listen port
port = 80
# http origin
origin = "http://localhost"
# html view files
views = "./page/html"
# html static public files
public = "./page/public"

# http session configure
[session]
name = ""
maxAge = 0
keys = []

# mongodb configure
[mongodb]
host = "127.0.0.1"
port = 27017
dbname = "console"
document = [
  "admin",
  "log",
  "system",
  "cluster"
]

# mongodb auth configure
# !when you need to fill in the certification
[mongodb.auth]
user = ""
password = ""

# redis configure
[redis]
host = "127.0.0.1"
port = 6379
password = ""

# crypto configure
[crypto]
type = "aes256"
key = ""

# email service configure
[nodemailer]
service = "smtp.qq.com"
host = "smtp.qq.com"
port = 465
secureConnection = true
secure = true

# email service auth configure
[nodemailer.auth]
user = ""
pass = ""

# intel webrtc mcu listen configure
[service]
port = 88
router = "/masterApi"

# log configure
[log]
path = "./mcu.log"

Save this configuration file. next. You need to create a new default management account in the database.

~ mongo
use console
db.admin.insert({ username: "root", password: "root" })

You can now login to this service with this newly created default admin account. next. Start this Service.

~ node mcu.js

or use pm2

~ pm2 start mcu.js -i auto

Now please start enjoying!

Instructions for use

  • Console included Brief information report for the entire service.

index

  • Cluster node new, edit, status view.

server

  • View server information.

view-cluster

  • WebRTC service list view edit add.

service

  • Rooms list view edit add.

rooms

  • Room edit.

room-edit

Supplementary explanation

This service is still in the testing phase, so you must be responsible for the loss of data and other system losses caused by unknown problems.

License

MIT

Copyright (c) 2018 Mr.Panda.