All Projects → capnmidnight → Calla

capnmidnight / Calla

Licence: mit
Virtual Meetups through Jitsi

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Calla

Browser Phone
A fully featured browser based WebRTC SIP phone for Asterisk
Stars: ✭ 95 (-90.22%)
Mutual labels:  open-source, webrtc
Freeswitch
FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software implementation that runs on any commodity hardware. From a Raspberry PI to a multi-core server, FreeSWITCH can unlock the telecommunications potential of any device.
Stars: ✭ 1,213 (+24.92%)
Mutual labels:  open-source, webrtc
Spreed
📞😀 Nextcloud Talk – chat, video & audio calls for Nextcloud
Stars: ✭ 994 (+2.37%)
Mutual labels:  open-source, webrtc
Nextcloud Spreed Signaling
Standalone signaling server for Nextcloud Talk.
Stars: ✭ 201 (-79.3%)
Mutual labels:  open-source, webrtc
Goturn
A golang TURN dialer
Stars: ✭ 31 (-96.81%)
Mutual labels:  webrtc
Viraljs
Express.JS middleware to enable P2P distribution for your app. Your decentralized CDN made easy.
Stars: ✭ 952 (-1.96%)
Mutual labels:  webrtc
Gssoc2021 Hotelontouch
👨‍🔧👨‍🔧Manage your all hotel services at one place - This is the project repository for HotelOnTouch Project and this project is actively looking for new contributors👨‍🔧👩‍🏫
Stars: ✭ 30 (-96.91%)
Mutual labels:  open-source
Rocket.chat
The communications platform that puts data protection first.
Stars: ✭ 31,251 (+3118.43%)
Mutual labels:  webrtc
Passwordcockpit
Passwordcockpit is a simple, free, open source, self hosted, web based password manager for teams. It is made in PHP, Javascript, MySQL and it run on a docker service. It allows users with any kind of device to safely store, share and retrieve passwords, certificates, files and much more.
Stars: ✭ 34 (-96.5%)
Mutual labels:  open-source
Ios
📱 Nextcloud iOS app
Stars: ✭ 971 (+0%)
Mutual labels:  open-source
Webrtc P2p
Stars: ✭ 31 (-96.81%)
Mutual labels:  webrtc
Hacktoberfest2020
beginner-friendly project to help you in open-source contributions. Made specifically for contributions in HACKTOBERFEST 2020! Hello World Programs in any language and C and Cpp program , Please leave a star ⭐ to support this project! ✨
Stars: ✭ 31 (-96.81%)
Mutual labels:  open-source
Jessesquires.com
Turing complete with a stack of 0xdeadbeef
Stars: ✭ 31 (-96.81%)
Mutual labels:  open-source
Place2live
Analysis of the characteristics of different countries
Stars: ✭ 30 (-96.91%)
Mutual labels:  open-source
Hacktoberfest2k19
Hacktoberfest is here! Raise the PR and earn goodies.
Stars: ✭ 34 (-96.5%)
Mutual labels:  open-source
Waggle.js
An experiment to distribute the bandwidth among video viewers
Stars: ✭ 29 (-97.01%)
Mutual labels:  webrtc
Dashvis
An open-source Dashboard built for users, to organize their resources via Tables and Folders.
Stars: ✭ 31 (-96.81%)
Mutual labels:  open-source
Smartisandialog
Smartisan style Dialog.
Stars: ✭ 33 (-96.6%)
Mutual labels:  open-source
Aic Mobile Android
Art Institute of Chicago Official Mobile App - Android
Stars: ✭ 31 (-96.81%)
Mutual labels:  open-source
Ios P2p Engine
Let your viewers become your unlimitedly scalable CDN.
Stars: ✭ 31 (-96.81%)
Mutual labels:  webrtc

Calla

A wrapper library for Jitsi Meet that adds audio spatialization, to be able to create virtual meeting rooms.

PROBLEM

Even when it works, teleconferencing still kind of sucks. Only one person can realistically talk at any one time. This is fine for people giving presentations, but in real meetings, people speak over and around each other, or pair off into smaller subgroups, still being able to overhear the larger group.

SOLUTION

Calla adds a small, RPG-style map to the Jitsi meeting view. It gives you an avatar to walk around the room. Users choose where to sit in relation to other users. Users very close to you are set to full volume. Users a little far away have their volume scaled down accordingly. Users too far away to care about are rendered with zero volume.

  • Visit the current installation at www.calla.chat.
  • Enter a room name and user name. Suggest "Calla" for the roomname to meet other people linking from this repo (maybe).
    • Be careful in picking your room name, if you don't want randos to join. Traffic is low right now, but you never know.
    • Try to pick a unique user name. A lot of people use "Test" and then there are a bunch of people with the same name running around.
  • Click "Connect" and wait for the connection to go through.
  • Movement:
    • Click on the map to move your avatar to wherever you want. Movement is instantaneous, with a smooth animation over the transition. Your avatar will stop at walls.
    • Or, use the arrow keys on your keyboard to move.
    • Click on yourself or Hit the E key to spam emoji into the space as emote reactions.
    • You can roll your mouse wheel or pinch your touchscreen to zoom in and out of the map view. This is useful for groups of people standing close to each other to see the detail in ther Avatar.
  • Options:
    • You can change your Microphone and Speaker device in the Options view. Click the Gear icon (⚙️) in the toolbar.

INSTALLATION

NOTE: This project is currently going through an overhaul in how it is setup. In the future, Calla will be just the library for interfacing with Jitsi Meet and spatializing its audio. The application currently visible on calla.chat will become a separate project.

  • First, setup Jitsi Meet on a server of your choice: Jitsi quick-start instructions.
  • Install the Calla front-end (basically the rest of this repository) onto another server of your choice.
    • Modify "JITSI_HOST" in index.html scripts to point to your Jitsi Meet server.
  • You may also want to edit index.html to change/remove the link(s) to this repository and/or my Twitter profile.
  • new setup instructions TBD

Make sure you keep the distinction between your Jitsi installation and your Calla installation clear. You can conceivably run them on the same server, but I won't be digging into customizing a Jitsi installation enough to figure that out, so my setup has them on separate servers.

Docker-compose installation

  • Set up Jitsi Meet using docker-compose: Jitsi Self-Hosting Guide - Docker.

  • Allow CORS access by adding the following two lines to the top of ${CONFIG}/prosody/config/conf.d/jitsi-meet.cfg.lua (you may need to start jitsi once to generate the file):

      consider_bosh_secure = true
      cross_domain_bosh = true
    
  • git clone this repository into the Calla folder under the same ${CONFIG} directory as jitsi.

  • Edit the jitsi docker-compose.yml to add the following service section:

      services:
          # Calla
          calla:
              image: nginx:alpine
              volumes:
                  - ${CONFIG}/Calla/js:/usr/share/nginx/html
              command: sh /usr/share/nginx/html/entrypoint.sh
    
  • Add additional environment variables as necessary:

              environment:
                  - JITSI_HOST=jitsi.example.com
                  - JVB_HOST=jitsi.meet
                  - JVB_MUC=muc.jitsi.meet
    
    • The default JITSI_HOST will be jitsi.<domain>, where calla is served at <domain>
    • The default JVB_HOST will be jitsi.meet; this should be the name of the internal docker network you used in your docker-compose.yml
    • Set JVB_MUC to be the value of muc.${JVB_HOST}
  • Add any additional reverse proxy configurations.

  • Start Jitsi and Calla: $ docker-compose up -d

CONTRIBUTING

Conduct

First, please read the Conduct Policy.

Contributions

If you think you can be a polite person in accordance with the Conduct Policy, I'd be more than happy to add anyone who asks as a contributor. Just email me your profile info and a brief description of what you'd like to work on.

Artwork

Oh man, let's go nuts! I would love to see a wide variety of tilesets for rooms and avatars. Maybe customizable clothing and character features.

  • You can use Tiled to create a tilemap.
  • You can do multiple layers.
  • You can set blocks as non-walkable by opening your Tile Set, selecting the unwalkable block, and adding a custom property to it. Create a boolean value named "Collision", and set its value to "true". All instances of that tile will now be solid on your map.
  • Save your .tmx file to <Calla-proj>\data\tilemaps\<room-name>.tmx.
  • Save your .tsx file to <Calla-proj>\data\tilesets\<tileset-name>\<tileset-name>.tsx.
  • And that's it! Calla reads Tiled files directly.

Testing

The QA team is the software development team's best friend. Testing releases and filing issues is a huge amount of important work.

Documentation

IDK, I planned on just hacking this together as I went, but I will probaby write some notes on whatever I've done along they way. Let me know if anything is particularly unclear and I'll write something about it.

Client

I'm pretty happy with how the client is working right now, but anyone is free to self-service add features. But check the Issues nonetheless.

Server

I'm currently running a VM on Azure with 2 virtual CPUs and 4 GiB of RAM. Operating System is Ubuntu 18.04. This will cost me about $100/mo.

I set the server up using the Jitsi quick-start instructions (Actually, I followed This video on YouTube, but the directions are largely the same, I just found the video nice to see what to expect for results from each command).

There's no backend for Calla. All communication goes through Jitsi, even the data specific to the "game" is serialized through Jitsi. Eventually, I'd like to setup a backend, but for the basics of spatializing Jitsi, it's not necessary.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].