mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 14:03:30 +00:00 
			
		
		
		
	docs: Correct Big Blue Button to BigBlueButton.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
		
				
					committed by
					
						
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							f80419509e
						
					
				
				
					commit
					ee8724e436
				
			@@ -45,33 +45,33 @@ Zoom as the video call
 | 
			
		||||
provider](https://zulip.com/help/start-a-call) in the Zulip
 | 
			
		||||
organization(s) where you want to use it.
 | 
			
		||||
 | 
			
		||||
## Big Blue Button
 | 
			
		||||
## BigBlueButton
 | 
			
		||||
 | 
			
		||||
To use the [Big Blue Button](https://bigbluebutton.org/) video call
 | 
			
		||||
To use the [BigBlueButton](https://bigbluebutton.org/) video call
 | 
			
		||||
integration on a self-hosted Zulip installation, you'll need to have a
 | 
			
		||||
Big Blue Button server and configure it:
 | 
			
		||||
BigBlueButton server and configure it:
 | 
			
		||||
 | 
			
		||||
1. Get the Shared Secret using the `bbb-conf --secret` command on your
 | 
			
		||||
   Big Blue Button Server. See also [the Big Blue Button
 | 
			
		||||
   BigBlueButton Server. See also [the BigBlueButton
 | 
			
		||||
   documentation](https://docs.bigbluebutton.org/2.2/customize.html#extract-the-shared-secret).
 | 
			
		||||
 | 
			
		||||
2. Get the URL to your Big Blue Button API. The URL has the form of
 | 
			
		||||
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 Big Blue Button
 | 
			
		||||
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 Big Blue Button Server's shared 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 Big Blue Button Server's API URL.
 | 
			
		||||
   to be your BigBlueButton Server's API URL.
 | 
			
		||||
 | 
			
		||||
3. Restart the Zulip server with
 | 
			
		||||
   `/home/zulip/deployments/current/scripts/restart-server`.
 | 
			
		||||
 | 
			
		||||
This enables Big Blue Button support in your Zulip server.  Finally, [configure
 | 
			
		||||
Big Blue Button as the video call
 | 
			
		||||
This enables BigBlueButton support in your Zulip server.  Finally, [configure
 | 
			
		||||
BigBlueButton as the video call
 | 
			
		||||
provider](https://zulip.com/help/start-a-call) in the Zulip
 | 
			
		||||
organization(s) where you want to use it.
 | 
			
		||||
 
 | 
			
		||||
@@ -54,7 +54,7 @@ const realm_available_video_chat_providers = {
 | 
			
		||||
    },
 | 
			
		||||
    big_blue_button: {
 | 
			
		||||
        id: 4,
 | 
			
		||||
        name: "Big Blue Button",
 | 
			
		||||
        name: "BigBlueButton",
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -656,7 +656,7 @@ test("set_up", ({override, mock_template}) => {
 | 
			
		||||
        },
 | 
			
		||||
        big_blue_button: {
 | 
			
		||||
            id: 4,
 | 
			
		||||
            name: "Big Blue Button",
 | 
			
		||||
            name: "BigBlueButton",
 | 
			
		||||
        },
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -238,7 +238,7 @@
 | 
			
		||||
            <h3>VIDEO CALLS</h3>
 | 
			
		||||
            <p>
 | 
			
		||||
                Create and join video calls with a single click. Powered
 | 
			
		||||
                by your choice of Zoom, Jitsi Meet or Big Blue Button.
 | 
			
		||||
                by your choice of Zoom, Jitsi Meet, or BigBlueButton.
 | 
			
		||||
            </p>
 | 
			
		||||
        </a>
 | 
			
		||||
        <a class="feature-block" href="/help/configure-authentication-methods" target="_blank" rel="noopener noreferrer">
 | 
			
		||||
 
 | 
			
		||||
@@ -28,7 +28,7 @@ supported by zulip are:
 | 
			
		||||
 | 
			
		||||
* [Jitsi Meet](/integrations/doc/jitsi)
 | 
			
		||||
* [Zoom integration](/integrations/doc/zoom)
 | 
			
		||||
* [Big Blue Button integration](/integrations/doc/big-blue-button)
 | 
			
		||||
* [BigBlueButton integration](/integrations/doc/big-blue-button)
 | 
			
		||||
 | 
			
		||||
!!! tip ""
 | 
			
		||||
    It is also possible to disable the video call button for your organization by
 | 
			
		||||
 
 | 
			
		||||
@@ -1,35 +1,35 @@
 | 
			
		||||
Zulip supports using Big Blue Button as its video call video call
 | 
			
		||||
Zulip supports using BigBlueButton as its video call video call
 | 
			
		||||
provider. This is currently only possible on self-hosted Zulip
 | 
			
		||||
installations.
 | 
			
		||||
 | 
			
		||||
To use the [Big Blue Button](https://bigbluebutton.org/) video call
 | 
			
		||||
integration, you'll need to have a Big Blue Button server and
 | 
			
		||||
configure your zulip server to use that Big Blue Button server.
 | 
			
		||||
To use the [BigBlueButton](https://bigbluebutton.org/) video call
 | 
			
		||||
integration, you'll need to have a BigBlueButton server and
 | 
			
		||||
configure your zulip server to use that BigBlueButton server.
 | 
			
		||||
 | 
			
		||||
### Configure Big Blue Button server
 | 
			
		||||
### Configure BigBlueButton server
 | 
			
		||||
 | 
			
		||||
1. Get the Shared Secret using the `bbb-conf --secret` command on your
 | 
			
		||||
   Big Blue Button Server. See also
 | 
			
		||||
   [Big Blue Button documentation](https://docs.bigbluebutton.org/2.2/customize.html#extract-the-shared-secret).
 | 
			
		||||
   BigBlueButton Server. See also
 | 
			
		||||
   [BigBlueButton documentation](https://docs.bigbluebutton.org/2.2/customize.html#extract-the-shared-secret).
 | 
			
		||||
 | 
			
		||||
1. Get the URL to your Big Blue Button API. The URL has the form of
 | 
			
		||||
1. 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.
 | 
			
		||||
 | 
			
		||||
### Configure zulip server
 | 
			
		||||
 | 
			
		||||
1. In `/etc/zulip/zulip-secrets.conf`, set `big_blue_button_secret`
 | 
			
		||||
   as your Big Blue Button Server's shared secret.
 | 
			
		||||
   as your BigBlueButton Server's shared secret.
 | 
			
		||||
 | 
			
		||||
1. In `/etc/zulip/settings.py`, set `BIG_BLUE_BUTTON_URL`
 | 
			
		||||
   as your Big Blue Button Server's API URL.
 | 
			
		||||
   as your BigBlueButton Server's API URL.
 | 
			
		||||
 | 
			
		||||
1. Restart the Zulip server with
 | 
			
		||||
   `/home/zulip/deployments/current/scripts/restart-server`.
 | 
			
		||||
 | 
			
		||||
### Using Big Blue Button
 | 
			
		||||
### Using BigBlueButton
 | 
			
		||||
 | 
			
		||||
1. Select Big Blue Button as the organization's [video call provider](/help/start-a-call#changing-your-organizations-video-call-provider).
 | 
			
		||||
1. Select BigBlueButton as the organization's [video call provider](/help/start-a-call#changing-your-organizations-video-call-provider).
 | 
			
		||||
 | 
			
		||||
1. Zulip's [call button](/help/start-a-call) will now create meetings
 | 
			
		||||
   using Big Blue Button.
 | 
			
		||||
   using BigBlueButton.
 | 
			
		||||
 
 | 
			
		||||
@@ -67,7 +67,7 @@ IGNORED_PHRASES = [
 | 
			
		||||
    r"Emoji One",
 | 
			
		||||
    r"mailinator.com",
 | 
			
		||||
    r"HQ",
 | 
			
		||||
    r"Big Blue Button",
 | 
			
		||||
    r"BigBlueButton",
 | 
			
		||||
    # Code things
 | 
			
		||||
    r".zuliprc",
 | 
			
		||||
    r"__\w+\.\w+__",
 | 
			
		||||
 
 | 
			
		||||
@@ -475,7 +475,7 @@ INTEGRATIONS: Dict[str, Integration] = {
 | 
			
		||||
        "big-blue-button",
 | 
			
		||||
        ["communication"],
 | 
			
		||||
        logo="images/integrations/logos/bigbluebutton.svg",
 | 
			
		||||
        display_name="Big Blue Button",
 | 
			
		||||
        display_name="BigBlueButton",
 | 
			
		||||
        doc="zerver/integrations/big-blue-button.md",
 | 
			
		||||
    ),
 | 
			
		||||
    "capistrano": Integration(
 | 
			
		||||
 
 | 
			
		||||
@@ -59,7 +59,7 @@ TAB_DISPLAY_NAMES = {
 | 
			
		||||
    "restrict-by-email-domain": "Restrict by email domain",
 | 
			
		||||
    "zoom": "Zoom",
 | 
			
		||||
    "jitsi-meet": "Jitsi Meet",
 | 
			
		||||
    "bigbluebutton": "Big Blue Button",
 | 
			
		||||
    "bigbluebutton": "BigBlueButton",
 | 
			
		||||
    "disable": "Disabled",
 | 
			
		||||
    "chrome": "Chrome",
 | 
			
		||||
    "firefox": "Firefox",
 | 
			
		||||
 
 | 
			
		||||
@@ -455,7 +455,7 @@ class Realm(models.Model):
 | 
			
		||||
        },
 | 
			
		||||
        # ID 2 was used for the now-deleted Google Hangouts.
 | 
			
		||||
        # ID 3 reserved for optional Zoom, see below.
 | 
			
		||||
        # ID 4 reserved for optional Big Blue Button, see below.
 | 
			
		||||
        # ID 4 reserved for optional BigBlueButton, see below.
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if settings.VIDEO_ZOOM_CLIENT_ID is not None and settings.VIDEO_ZOOM_CLIENT_SECRET is not None:
 | 
			
		||||
@@ -465,7 +465,7 @@ class Realm(models.Model):
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    if settings.BIG_BLUE_BUTTON_SECRET is not None and settings.BIG_BLUE_BUTTON_URL is not None:
 | 
			
		||||
        VIDEO_CHAT_PROVIDERS["big_blue_button"] = {"name": "Big Blue Button", "id": 4}
 | 
			
		||||
        VIDEO_CHAT_PROVIDERS["big_blue_button"] = {"name": "BigBlueButton", "id": 4}
 | 
			
		||||
 | 
			
		||||
    video_chat_provider: int = models.PositiveSmallIntegerField(
 | 
			
		||||
        default=VIDEO_CHAT_PROVIDERS["jitsi_meet"]["id"]
 | 
			
		||||
 
 | 
			
		||||
@@ -11277,10 +11277,10 @@ paths:
 | 
			
		||||
    get:
 | 
			
		||||
      tags: ["streams"]
 | 
			
		||||
      operationId: create_big_blue_button_video_call
 | 
			
		||||
      summary: Create Big Blue Button video call
 | 
			
		||||
      summary: Create BigBlueButton video call
 | 
			
		||||
      description: |
 | 
			
		||||
        Create a video call URL for a Big Blue Button video call.
 | 
			
		||||
        Requires Big Blue Button to be configured on the Zulip server.
 | 
			
		||||
        Create a video call URL for a BigBlueButton video call.
 | 
			
		||||
        Requires BigBlueButton to be configured on the Zulip server.
 | 
			
		||||
      responses:
 | 
			
		||||
        "200":
 | 
			
		||||
          description: Success.
 | 
			
		||||
@@ -11296,7 +11296,7 @@ paths:
 | 
			
		||||
                      msg: {}
 | 
			
		||||
                      url:
 | 
			
		||||
                        description: |
 | 
			
		||||
                          The URL for the Big Blue Button video call.
 | 
			
		||||
                          The URL for the BigBlueButton video call.
 | 
			
		||||
                        type: string
 | 
			
		||||
                        example: "/calls/bbb/join?meeting_id=%22zulip-something%22&password=%22something%22&checksum=%22somechecksum%22"
 | 
			
		||||
                    example:
 | 
			
		||||
 
 | 
			
		||||
@@ -211,7 +211,7 @@ class TestVideoCall(ZulipTestCase):
 | 
			
		||||
            "/calls/bigbluebutton/join",
 | 
			
		||||
            {"meeting_id": "zulip-1", "password": "a", "checksum": "check"},
 | 
			
		||||
        )
 | 
			
		||||
        self.assert_json_error(response, "Error authenticating to the Big Blue Button server.")
 | 
			
		||||
        self.assert_json_error(response, "Error authenticating to the BigBlueButton server.")
 | 
			
		||||
 | 
			
		||||
    @responses.activate
 | 
			
		||||
    def test_join_bigbluebutton_redirect_server_error(self) -> None:
 | 
			
		||||
@@ -226,7 +226,7 @@ class TestVideoCall(ZulipTestCase):
 | 
			
		||||
            "/calls/bigbluebutton/join",
 | 
			
		||||
            {"meeting_id": "zulip-1", "password": "a", "checksum": "check"},
 | 
			
		||||
        )
 | 
			
		||||
        self.assert_json_error(response, "Error connecting to the Big Blue Button server.")
 | 
			
		||||
        self.assert_json_error(response, "Error connecting to the BigBlueButton server.")
 | 
			
		||||
 | 
			
		||||
    @responses.activate
 | 
			
		||||
    def test_join_bigbluebutton_redirect_error_by_server(self) -> None:
 | 
			
		||||
@@ -240,7 +240,7 @@ class TestVideoCall(ZulipTestCase):
 | 
			
		||||
            "/calls/bigbluebutton/join",
 | 
			
		||||
            {"meeting_id": "zulip-1", "password": "a", "checksum": "check"},
 | 
			
		||||
        )
 | 
			
		||||
        self.assert_json_error(response, "Big Blue Button server returned an unexpected error.")
 | 
			
		||||
        self.assert_json_error(response, "BigBlueButton server returned an unexpected error.")
 | 
			
		||||
 | 
			
		||||
    def test_join_bigbluebutton_redirect_not_configured(self) -> None:
 | 
			
		||||
        with self.settings(BIG_BLUE_BUTTON_SECRET=None, BIG_BLUE_BUTTON_URL=None):
 | 
			
		||||
@@ -248,4 +248,4 @@ class TestVideoCall(ZulipTestCase):
 | 
			
		||||
                "/calls/bigbluebutton/join",
 | 
			
		||||
                {"meeting_id": "zulip-1", "password": "a", "checksum": "check"},
 | 
			
		||||
            )
 | 
			
		||||
            self.assert_json_error(response, "Big Blue Button is not configured.")
 | 
			
		||||
            self.assert_json_error(response, "BigBlueButton is not configured.")
 | 
			
		||||
 
 | 
			
		||||
@@ -212,7 +212,7 @@ def join_bigbluebutton(
 | 
			
		||||
    checksum: str = REQ(),
 | 
			
		||||
) -> HttpResponse:
 | 
			
		||||
    if settings.BIG_BLUE_BUTTON_URL is None or settings.BIG_BLUE_BUTTON_SECRET is None:
 | 
			
		||||
        raise JsonableError(_("Big Blue Button is not configured."))
 | 
			
		||||
        raise JsonableError(_("BigBlueButton is not configured."))
 | 
			
		||||
    else:
 | 
			
		||||
        try:
 | 
			
		||||
            response = requests.get(
 | 
			
		||||
@@ -230,14 +230,14 @@ def join_bigbluebutton(
 | 
			
		||||
            )
 | 
			
		||||
            response.raise_for_status()
 | 
			
		||||
        except requests.RequestException:
 | 
			
		||||
            raise JsonableError(_("Error connecting to the Big Blue Button server."))
 | 
			
		||||
            raise JsonableError(_("Error connecting to the BigBlueButton server."))
 | 
			
		||||
 | 
			
		||||
        payload = ElementTree.fromstring(response.text)
 | 
			
		||||
        if payload.find("messageKey").text == "checksumError":
 | 
			
		||||
            raise JsonableError(_("Error authenticating to the Big Blue Button server."))
 | 
			
		||||
            raise JsonableError(_("Error authenticating to the BigBlueButton server."))
 | 
			
		||||
 | 
			
		||||
        if payload.find("returncode").text != "SUCCESS":
 | 
			
		||||
            raise JsonableError(_("Big Blue Button server returned an unexpected error."))
 | 
			
		||||
            raise JsonableError(_("BigBlueButton server returned an unexpected error."))
 | 
			
		||||
 | 
			
		||||
        join_params = urlencode(  # type: ignore[type-var] # https://github.com/python/typeshed/issues/4234
 | 
			
		||||
            {
 | 
			
		||||
 
 | 
			
		||||
@@ -631,7 +631,7 @@ SOCIAL_AUTH_SAML_SUPPORT_CONTACT = {
 | 
			
		||||
## integration, set JITSI_SERVER_URL = None.
 | 
			
		||||
# JITSI_SERVER_URL = 'https://jitsi.example.com'
 | 
			
		||||
 | 
			
		||||
## Controls the Big Blue Button video call integration.  You must also
 | 
			
		||||
## Controls the BigBlueButton video call integration.  You must also
 | 
			
		||||
## set big_blue_button_secret in zulip-secrets.conf.
 | 
			
		||||
# BIG_BLUE_BUTTON_URL = "https://bbb.example.com/bigbluebutton/"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -490,7 +490,7 @@ v1_api_and_json_patterns = [
 | 
			
		||||
    ),
 | 
			
		||||
    # Used to generate a Zoom video call URL
 | 
			
		||||
    rest_path("calls/zoom/create", POST=make_zoom_video_call),
 | 
			
		||||
    # Used to generate a Big Blue Button video call URL
 | 
			
		||||
    # Used to generate a BigBlueButton video call URL
 | 
			
		||||
    rest_path("calls/bigbluebutton/create", GET=get_bigbluebutton_url),
 | 
			
		||||
    # export/realm -> zerver.views.realm_export
 | 
			
		||||
    rest_path("export/realm", POST=export_realm, GET=get_realm_exports),
 | 
			
		||||
@@ -607,7 +607,7 @@ i18n_urls = [
 | 
			
		||||
    path("calls/zoom/register", register_zoom_user),
 | 
			
		||||
    path("calls/zoom/complete", complete_zoom_user),
 | 
			
		||||
    path("calls/zoom/deauthorize", deauthorize_zoom_user),
 | 
			
		||||
    # Used to join a Big Blue Button video call
 | 
			
		||||
    # Used to join a BigBlueButton video call
 | 
			
		||||
    path("calls/bigbluebutton/join", join_bigbluebutton),
 | 
			
		||||
    # API and integrations documentation
 | 
			
		||||
    path("integrations/doc-html/<integration_name>", integration_doc),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user