Coder Social home page Coder Social logo

jitsi-slack's Introduction

Jitsi Slack - Jitsi Meet Integration for Slack

This project provides a Slack integration to enable starting video conferences from Slack and easily inviting Slack members to conferences.

Enables starting and joining Jitsi Meet meetings from within Slack

Getting Started

These instructions will get you started with the ability to run the project on your local machine for development purposes.

Prerequisites

Go

A working setup for the Go Programming Language is needed. Here is a getting started guide. The project is currently using go version 1.16 along with module support.

Slack

A slack account needs to be created as well as an app. The app created is intended for development purposes. The following functionality must be enabled in the Add features and functionality section of the slack app configuration:

  • App Home
    • Bot Name: 'jitsi_meet'
  • Slash Commands
    • set up '/jitsi' with: https://[server]/slash/jitsi
  • OAuth & Permissions
    • redirect URL: https://[server]/slack/auth
    • Scopes: chat:write, commands, im:write, users:read
  • Event Subscriptions:
    • request URL: https://[server]/slack/event
    • Subscribe to workspace events: 'app_uninstalled'

Note: This uses Slack v2 OAUTH 2.0. For legacy support, see: v0.1.2

Configuration

SLACK_SIGNING_SECRET=<signing secret of slack app>
SLACK_CLIENT_ID=<client id of slack app>
SLACK_CLIENT_SECRET=<client secret of slack app>
SLACK_APP_ID=<slack app id>
SLACK_APP_SHARABLE_URL=<slack app url for sharing install>
DYNAMO_REGION=<dynamodb region used>
TOKEN_TABLE=<dynamodb table name for storing oauth tokens>
SERVER_CFG_TABLE=<dynamodb table name for server config info>
JITSI_TOKEN_SIGNING_KEY=<key used to sign conference asap jwts>
JITSI_TOKEN_KID=<key identifier for conference asap jwts>
JITSI_TOKEN_ISS=<issuer for conference asap jwts>
JITSI_TOKEN_AUD=<audience for conference asap jwts>
JITSI_CONFERENCE_HOST=<conference hosting service i.e. https://meet.jit.si>
HTTP_PORT=<port to run HTTP, default is 8080>
STATS_PORT<port to serve Prometheus stats, default is to prevent stats>

Note that JITSI_TOKEN_SIGNING_KEY is a dataurl that contains a base64-encoded PKCS1 or PKCS8 key, and should look something like:

data:application/pkcs1;kid=[urlencoded kid];base64,[base64 pkcs1 key]

Running

Clone this project and build with go build cmd/api/main.go or build and run with go run cmd/api/main.go

Dependency Management

Dependency management for this project uses go module as of go version 1.16. More information can be found at go command documentation.

Versioning

This project uses Semantic Versioning for the code and associated docker containers. Versions are tracked as tags on this repository.

License

This project is licensed under the Apache 2.0 License LICENSE

jitsi-slack's People

Contributors

damencho avatar jmacelroy avatar onerinas avatar sawall avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jitsi-slack's Issues

Slack command fails with ` "dispatch_unknown_error"`

Operating System: Ubuntu 18.04
Go version: 1.11

Description:

I have deployed the code to a server and run the following command:

go run cmd/api/main.go
{"level":"info","time":"2020-05-10T15:27:01Z","message":"listening on :8080"}

I have also created a TokenTable and ServerCfg table in AWS and supplied the credentials as

Unfortunately, when I try a slash command to run Jitsi, I get the following error:

/jitsi failed with the error "dispatch_unknown_error"

I will appreciate any guidance on this.

enable messages tab and handle app_home_opened event

feedback from Slack upon app submission:

On testing it would appear that the "Messages" tab is being used by your app but it has been disabled in this resubmission. As it is being used to send invites could you please implement the following:

  • Could you please enable the tab.
  • Could you please use the app_home_opened event to send a welcome message the first time any user opens your app's "Messages" tab.

redis support

redis support is needed to allow deployment outside of AWS

Update Slack status while in some Jitsi conf

Hello !

We (20 people company) use a shared room for our daily morning unformal coffee. It's an important moment to bind with other teammates in a remote or mixed remote setup.

But when someone arrives a little early he feels a little lonely and has to wait while others may be online but not yet in the coffee room.
Slack beeing the go-to work central plazza, it would be great to have a visual cue that could tell everyone you're in the conf room up for a coffee. Like in the real world really.
The addon could add a โ˜• after your status when you enter the room, and remove it when you exit that room.

Just as a side note, we are using at.cafe which uses such a trick by adding a logo after the name which indicates where we are : in office A, B, C, at home, ill or on holiday. It has been proven very helpful to sync accross teams.

Some kind of notification like that would be awesome and increase unformal time together which is so critical to remote work.

Would that seem interesting as a feature ?

`server_config.AuthenticatedURLSupport` is deprecated

It appears that there used to be an option to flag whether or not a custom server supports JWT authenticated URLs. This code should either be cleaned out of server_config.go and elsewhere or added to /jitsi server config options.

Currently, non-default servers are unable to use JWTs.

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.