mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 13:03:29 +00:00
164 lines
6.4 KiB
Markdown
164 lines
6.4 KiB
Markdown
# Video call providers
|
|
|
|
Zulip makes it convenient to [start a
|
|
call](https://zulip.com/help/start-a-call) with the click of a button, using the
|
|
call provider of your choice. The call providers
|
|
supported by Zulip are:
|
|
|
|
- [Jitsi Meet](https://zulip.com/integrations/doc/jitsi), a fully-encrypted,
|
|
100% open source video conferencing solution.
|
|
- [Zoom](https://zulip.com/integrations/doc/zoom)
|
|
- [BigBlueButton](https://zulip.com/integrations/doc/big-blue-button)
|
|
|
|
By default, Zulip uses the [cloud version of Jitsi Meet](https://meet.jit.si/)
|
|
as its call provider. This page documents the configurations required to support
|
|
other [video call integration
|
|
options](https://zulip.com/help/configure-call-provider) on a self-hosted Zulip
|
|
server.
|
|
|
|
:::{note}
|
|
You can disable the video and voice call buttons for your organization by
|
|
[setting the call
|
|
provider](https://zulip.com/help/configure-call-provider)
|
|
to "None".
|
|
:::
|
|
|
|
## Jitsi
|
|
|
|
You can configure Zulip to use a self-hosted
|
|
instance of Jitsi Meet by providing the URL of your self-hosted Jitsi Meet
|
|
server [in organization
|
|
settings](https://zulip.com/help/configure-call-provider#use-a-self-hosted-instance-of-jitsi-meet).
|
|
No server configuration changes are required.
|
|
|
|
## Zoom
|
|
|
|
To use a [Zoom](https://zoom.us) integration on a self-hosted
|
|
installation, you'll need to register a custom Zoom application for
|
|
your Zulip server. Zulip supports two types of custom Zoom apps:
|
|
|
|
- [Server to Server OAuth app](#server-to-server-oauth-app): Easiest to set up,
|
|
but requires users to be part of the Zoom organization that created the
|
|
application in order to create calls.
|
|
|
|
- [General OAuth app](#general-oauth-app): Recommended for settings where the
|
|
limitations of the Server to Server OAuth app are problematic (e.g., this is
|
|
used by Zulip Cloud).
|
|
|
|
### Server to Server OAuth app
|
|
|
|
This Zoom application type, introduced in Zulip 10.0, is easiest to
|
|
set up, and is ideal for most installations that self-host Zulip. To
|
|
[create Zoom meeting links in Zulip
|
|
messages](https://zulip.com/help/start-a-call#start-a-call) using this
|
|
integration, users will will need to be members of your Zoom
|
|
organization and use the same email address in Zulip that they have
|
|
registered with Zoom.
|
|
|
|
You can set up this integration as follows:
|
|
|
|
1. Select [**Build App**](https://marketplace.zoom.us/develop/create)
|
|
at the Zoom Marketplace. Create a **Server to Server OAuth App**.
|
|
|
|
1. Choose an app name such as "ExampleCorp Zulip".
|
|
|
|
1. In the **Information** tab:
|
|
|
|
- Add a short description and company name.
|
|
- Add a name and email for the developer contact information.
|
|
|
|
1. In the **Scopes** tab, add the `meeting:write:meeting:admin` and
|
|
`meeting:write:meeting:master` scopes.
|
|
|
|
1. In the **Activation** tab, activate your app. You can now
|
|
[configure your Zulip server](#configure-your-zulip-server)
|
|
to use the app.
|
|
|
|
### General OAuth app
|
|
|
|
This Zoom application type is more flexible than the server-to-server
|
|
integration. However, current Zoom policy requires all General OAuth
|
|
apps to go through the full Zoom Marketplace review process, even for
|
|
[unlisted
|
|
apps](https://developers.zoom.us/docs/platform/key-concepts/#private-vs-beta-vs-published-vs-unlisted-apps)
|
|
that will only be used by a single customer. As a result, you have to
|
|
do quite a bit of publishing overhead work in order to create this
|
|
type of Zoom application for your Zulip server.
|
|
|
|
1. Select [**Build App**](https://marketplace.zoom.us/develop/create)
|
|
at the Zoom Marketplace. Create a **General App**.
|
|
|
|
1. In the **Basic Information** tab:
|
|
|
|
- Choose an app name such as "ExampleCorp Zulip".
|
|
- Select **User-managed app**.
|
|
- In the **OAuth Information** section, set the **OAuth Redirect URL**
|
|
to `https://zulip.example.com/calls/zoom/complete` (replacing
|
|
`zulip.example.com` by your main Zulip hostname).
|
|
|
|
1. In the **Scopes** tab, add the `meeting:write:meeting` scope.
|
|
|
|
1. Switch to the **Production** tab and complete the information needed
|
|
for the [Zoom App Marketplace Review
|
|
Process](https://developers.zoom.us/docs/distribute/app-review-process/)
|
|
in the **App Listing** and **Technical Design** tabs.
|
|
|
|
1. [Submit your app for
|
|
review](https://developers.zoom.us/docs/build-flow/submitting-apps-for-review/).
|
|
Select the **Publish the app by myself** option on the **App Submission**
|
|
page so that the app will be
|
|
[unlisted](https://developers.zoom.us/docs/build-flow/publishing-your-apps/#unlisted-apps).
|
|
|
|
1. Once your app has been approved by the Zoom app review team, then
|
|
you can proceed to [configure your Zulip server](#configure-your-zulip-server)
|
|
to use the app.
|
|
|
|
### Configure your Zulip server
|
|
|
|
1. In `/etc/zulip/zulip-secrets.conf`, set `video_zoom_client_secret`
|
|
to be your app's "Client Secret".
|
|
|
|
1. In `/etc/zulip/settings.py`, set `VIDEO_ZOOM_CLIENT_ID` to your
|
|
app's "Client ID". If your using a Zoom
|
|
[Server to Server OAuth app](#server-to-server-oauth-app),
|
|
set `VIDEO_ZOOM_SERVER_TO_SERVER_ACCOUNT_ID` to be your app's "Account ID".
|
|
|
|
1. Restart the Zulip server with
|
|
`/home/zulip/deployments/current/scripts/restart-server`.
|
|
|
|
This enables Zoom support in your Zulip server. Finally, [configure Zoom as the
|
|
video call
|
|
provider](https://zulip.com/help/configure-call-provider)
|
|
in the Zulip organizations where you want to use it.
|
|
|
|
## BigBlueButton
|
|
|
|
To use the [BigBlueButton](https://bigbluebutton.org/) video call
|
|
integration on a self-hosted Zulip installation, you'll need to have a
|
|
BigBlueButton server (version 2.4+) and configure it:
|
|
|
|
1. Get the Shared Secret using the `bbb-conf --secret` command on your
|
|
BigBlueButton Server. See also [the BigBlueButton
|
|
documentation](https://docs.bigbluebutton.org/admin/customize.html#extract-the-shared-secret).
|
|
|
|
2. Get the URL to your BigBlueButton API. The URL has the form of
|
|
`https://bigbluebutton.example.com/bigbluebutton/` and can also be
|
|
found using the `bbb-conf --secret` command.
|
|
|
|
You can then configure your Zulip server to use that BigBlueButton
|
|
Server as follows:
|
|
|
|
1. In `/etc/zulip/zulip-secrets.conf`, set `big_blue_button_secret`
|
|
to be your BigBlueButton Server's shared secret.
|
|
|
|
2. In `/etc/zulip/settings.py`, set `BIG_BLUE_BUTTON_URL` to your
|
|
to be your BigBlueButton Server's API URL.
|
|
|
|
3. Restart the Zulip server with
|
|
`/home/zulip/deployments/current/scripts/restart-server`.
|
|
|
|
This enables BigBlueButton support in your Zulip server. Finally, [configure
|
|
BigBlueButton as the video call
|
|
provider](https://zulip.com/help/configure-call-provider)
|
|
in the Zulip organizations where you want to use it.
|