Giter VIP home page Giter VIP logo

mochatto's Introduction

issues PRs language

mochatto

Mochatto is an open-source proximity voice chat application for virtual meetings.

Requirements

  • docker-compose > 1.28
  • docker

Dev Requirements

  • yarn
  • node ^18.16

image

Try it out

Dev

  1. make dev
  2. make dev-up

Debugging Server

Requires VSCode

  1. make dev-up
  2. open mochatto/server in VSCode
  3. Go to Debug tab
  4. Run with Docker: Attach to node

Prod

  1. make prod-up

Beta

  1. make beta-up

Test

Make sure that the server is up

Without visual check

  • make test

With browser running

  • make test-headed

Debugging with browser

  • make test-debug

Features

  • Choose Audio Input
  • P2P Voice chat
  • Mute (m)
  • Audio Processing toggles (Echo Cancellation / Auto Gain Control / Noise Suppression)
  • Status (Active / Inactive)
  • Separate rooms /[room-id]
  • Screenshares
  • Password protection for rooms
  • User Lists
  • Change Username
  • Mobile Support
    • Disable Sleep Toggle
    • Disable Share screen
    • Mobile Detection: Fails iPad
    • UI Support
      • In screen scroll
  • Place Images in the space
  • Place Videos in the space
  • Audio Recording

Running own iceServer

docker run -d --network=host coturn/coturn

This will run at port 3478. Make sure that your firewall for port 3478 is not blocked.

Jenkins pipeline

Currently using

Creating dev environment

Whent pull request is created, it will run beta-up, which hosts the branch content to

https://[PR_NUMBER].dev.mochatto.com

Stopping dev environment

We couldn't find a good way to bring the container down, so we're using a crontab with check-for-closed-pr.

NOTE: check-for-closed-pr uses gh command, so make sure to check your token is not expired.

e.g.

0 * * * * sh -c "cd /path/to/repo && ./check-for-closed-pr"

mochatto's People

Contributors

caseregan avatar dependabot[bot] avatar njima1572 avatar siberowl avatar vinmaster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

mochatto's Issues

Share media

Use Youtube API for getting the youtube and place an iframe?

  • Reference
  • Sync seconds within peers
  • Sync play / pause
  • Mute can be done by individual users
  • Volume by distance
  • Remove the video when user leaves
  • Owner can move the video around

[Bug]: Test Issue

Contact Details

Eh

What happened?

A bug happened!

What browsers are you seeing the problem on?

Chrome

Relevant log output

Eh

Refactor for testability

  • Separate rendering logic and business logic (move it into importable ts/js files)
  • Split business logic into testable functions, each with only one responsibility
  • Keep functions pure by using dependency injection (include all variables as parameters) and don't mutate parameters
  • Avoid changing external states (side effects), and keep the "surface area" as minimal as possible when necessary

Record Audio

Would be cool to record what was talked within the session.
At first, what I had in my mind was for podcast recording.

Voice chat bug fixes

Fix bugs:

  • input options not showing up correctly due to not waiting for microphone permission to be accepted
  • when a user leaves the room, [object Object] shows instead of the username
  • occasional horrible audio quality (due to poor automatic noise cancellation)

[Bug]: RTCDataChannel onopen is called twice

Contact Details

No response

What happened?

Expected: RTCDataChannel.onopen should only be called once after the connection is made
What happened: onopen is being called twice for both the caller and answerer

A likely fix:
Only set ondatachannel for the answerer. Currently, createDataChannel is only being invoked by the caller but ondatachannel is being invoked by both.
Reference:
muaz-khan/RTCMultiConnection#33

What browsers are you seeing the problem on?

No response

Relevant log output

Test Media Page

Be able to check the microphone input and camera input
with sound bar and video

[Feature]: Room authentication

What feature?

  • Generate an authentication key when creating a new room
  • Add an authentication process for joining an existing room

今のSpatial Chatに欲しい機能をリストアップ

  • ショートカットキーでミュートしたい
  • ステータスを変更したい(オンライン、オフライン、離席中とか)
  • スクリーンシェアもYoutubeと同じように距離での音声変更したい
  • Youtubeプレイリストの再生
  • 遮蔽物、防音部屋など。
  • #32
  • #31

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.