آموزش کانفیگ و نصب بیگ بلو باتن

آموزش کانفیگ و نصب بیگ بلو باتن
Avatar
نویسنده: پارس پک
شنبه 28 اردیبهشت 1398
مطالعه: ۳۷ دقیقه ۰ نظر ۱۹۸۸ بازدید

نصب بیگ بلو باتن؛ این مطلب شما را راهنمایی می کند تا بتوانید نصب bbb نسخه 2.2 را یاد بگیرید. این دستور مخفف شده عبارت BigBlueButton می باشد که به عنوان میانگین وب سایت شما کاربرد ندارد. بلکه این یک اپلیکیشن وب کامل است که از قابلیت‌های داخلی مرورگر آن برای مواردی همچون ارسال و یا دریافت صدا و فیلم استفاده می شود. همچنین سرور این برنامه می‌تواند تماس های ورودی API، پردازش اسلایدهای آپلودشده، کنترل کردن مدیاهای مختلف و تبدیل رسانه های ضبط شده به صورت ثبت شده را اجرا کند.

سرویس دهنده کامل HTML5

BigBlueButton از یک سرویس دهنده کامل HTML5 برای رابط کاربری خود بهره می برد. این بدان معنی است که همان سرویس دهنده روی دسک تاپ ، لپ تاپ ، chromebook و دستگاه های تلفن همراه شما (iOS 12.2+ و Android 6.0+) اجرا می شود. ما برای شما Chrome و FireFox را توصیه می کنیم؛ زیرا این مرورگرها بهترین پشتیبانی را برای webRTC از خود ارائه می دهند.
سرویس دهنده bbb ارائه دهنده موارد زیر می‌باشد:

  • بارگذاری 2 برابر سریع تر از نسخه‌های قبلی
  • اشتراک گذاری صوتی ، فیلم و صفحه با کیفیت بالا (با بهره گیری از WebRTC)
  • اشتراک گذاری یادداشت های مشترک برای ویرایش چند کاربر (با استفاده از پروژه عالی EtherPad)
  • کاملاً در دسترس بودن آن برای خوانندگان صفحه
  • اشتراک گذاری ویدیوهای YouTube در طول session

نصب کوکی ها

برای نصب بیگ بلو باتن دو گزینه کوکی در پیش روی شما قرار دارد:

  • bbb-install.sh
  • step-by-step

اگر از هر کدام از انتخاب‌های شما صرف نظر شود، به منظور موفقیت آمیز بودن فرآیند نصب، به موارد زیر احتیاج دارید:

  • خرید یک سرور اختصاصی
  • اطمینان حاصل کنید که سرور حداقل مجموعه نیازهای BigBlueButton را برآورده می کند.
  • نام هاست را برای آن در نظر بگیرید (توصیه می شود تا SSL تنظیم شود).
  • اگر احتیاج بود، سرور firewall باید پیکربندی شود.

دو موردی که در نصب کوکی های bbb به آن ها گردید، در ادامه به صورت گسترده به آن پرداخته خواهد شد.

bbb-install.sh

اگر قصد دارید تا سرور bbb را به سرعت راه اندازی کنید (یا قبلا سرورهای آن را تنظیم کردید)، این کوکی می‌تواند تنها با یک خط فرمان واحد و در عرض 15 دقیقه عملیات اجرا را انجام دهد و آن را به طور کامل راه اندازی کند.

step by step

اگر می‌خواهید مولفه‌های بیشتری را در رابطه با بیگ بلو باتن بدانید، می توانید از دستورالعمل step by step استفاده کنید.

نکات قبل از نصب بیگ بلو باتن

برای اینکه یک نصب بیگ بلو باتن موفقیت آمیز را داشته باشید، توصیه می شود که در ابتدا با یک سرور 64 بیتی “Clean” که در اوبنتو 16.04 وجود دارد و برای این دستور اختصاص داده شده است، شروع کنید.

منظور از “Clean” این است که سرور مورد نظر هیچ برنامه وبی را از قبل نصب نکرده باشد. ( مانند plesk ، webadmin یا apache) اینگونه موارد برای پورت 80.443 جزو الزامات به شمار می رود.

همچنین منظور از اختصاص داده شده و یا ‘dedicated’ این است که سرور به غیر از bbb برای هیچ چیز دیگری مورد استفاده قرار نگیرد. برنامه هایی که مربوط به BigBlueButton هستند، در بین این گزینه ها قرار می گیرند و Greenlight نمونه‌ای از آن‌ها می‌باشد.

حداقل تجهیزات مورد نیاز سرور

حداقل گزینه‌هایی که مورد نیاز سرور BigBlueButton هستند، شامل موارد زیر می‌باشند:

  • Ubuntu 16.04، 64 بیتی سیستم عامل OS در حال اجرا با هسته Linux 4.x
  • 8 گیگابایت حافظه با قابلیت تعویض فعال (16 گیگابایت حافظه گزینه بهتری است)
  • هسته چهار هسته‌ای (نوع 8 هسته‌ای آن در اولویت قرار دارد)
  • پورت های TCP 80 و 443 در دسترس هستند.
  • پورت های UDP 16384 – 32768 نیز در دسترس می‌باشند.
  • پورت 80 توسط برنامه دیگری استفاده نمی شود.

برای سرور دیگری که قرار است مورد استفاده قرار گرفته شود، به غیر از موارد ذکرشده، گزینه‌های زیر نیز توصیه می‌شوند:

  • 500 گیگ فضای دیسک رایگان (یا بیشتر) برای ضبط
  • پهنای باند 250 مگابیت در ثانیه (متقارن) یا بیشتر
  • سخت افزار اختصاصی
  • یک نام میزبان (مانند bbb.example.com) برای تنظیم گواهی SSL
  • آدرس‌های IPV4 و IPV6

چرا ما یک سرور bare metal پیشنهاد می کنیم؟

bbb برای پردازش بسته های صوتی دریافتی از FreeSWITCH استفاده می کند و FreeSWITCH در یک محیط غیر مجازی بهترین کار را به انجام می رساند.

اگر big blue button را برای توسعه محلی در workstation خود تنظیم کرده اید ، می توانید کمی گزینه‌های مورد نیاز سرور را فراهم کنید؛ زیرا شما تنها کسی هستید که از سرور استفاده خواهید کرد. شما باید از قابلیت اجرای BigBlueButton با موارد زیر بهره مند باشید:

  • CPU دو هسته‌ای
  • نصب بر روی یک مخزن محلی VM یا LXC
  • تنها آدرس IPV4 (بدون نام میزبان)

با این حال، بدون پیکربندی SSL در سرور، نمی توانید از ارتباطات در زمان واقعی وب (WebRTC) برای به اشتراک گذاشتن میکروفون ، وب کم یا صفحه استفاده کنید. به عبارت دیگر ، همه مرورگرها قبل از اینکه بتوانند به یک برنامه HTML5 اجازه دسترسی به اشتراک گذاری مدیاهای مختلف را بدهند، نیاز دارند که صفحه آن‌ها از طریق HTTPS لود شوند.

اگر می خواهید بیگ بلو باتن را بر روی Amazon EC2 نصب کنید، توصیه ما به شما این است که bbb را با نمونه c5.xlarge (یا CPU بهتر) اجرا کنید. این نمونه های جدید محاسباتی، عملکرد بسیار نزدیکی را به baremetal ارائه می دهند.

برای حداقل نیاز کاربران نهایی ، آخرین نسخه Firefox یا Chrome با حداقل نیازهای پهنای باند زیر را توصیه می کنیم.

بررسی‌های قبل نصب

آیا سرور 64 بیتی اوبنتو نسخه 16.04 شما آماده نصب شده است؟

قبل از اینکه عملیات نصب را شروع کنید، چند بررسی مربوط به پیکربندی را انجام دهید تا مطمئن شوید سرور شما می تواند کمترین شرایط لازم را برآورده کند. وقت گذاشتن چند لحظه برای اینکار، باعث کاهش قابل توجه در تغییراتی خواهد شد که هنگام نصب می‌توانید با آن‌ها رو به رو شوید.

در مرحله اول بررسی کنید که محل سرور شما en_US.UTF-8 باشد. برای اینکار نیاز است تا دستور زیر را وارد کنید:

$ cat /etc/default/locale

LANG="en_US.UTF-8"

اگر نمی‌توانید دستور LANG=”en_US.UTF-8″ را پیدا کنید و یا ببینید، دستورات زیر را وارد کنید تا محل مناسبی برای آن تنظیم شود.

$ sudo apt-get install language-pack-en
$ sudo update-locale LANG=en_US.UTF-8

در مرحله بعد یک بار از سیستم خارج شده و دوباره به session در SSH وارد شوید. این کار پیکربندی محلی را برای session شما، بار دیگر لود می‌کند. از این رو یک بار دیگر دستور بالا یعنی /etc/default/locale again را بار دیگر وارد کنید و به اجرا برسانید. پس از تایید می‌توانید تنها خط واحد LANG=”en_US.UTF-8″ را مشاهده کنید.

نکته مهم:

نکته مهمی که در این باره وجود دارد، مربوط به یک خط می باشد. اگر خط اضافی LC_ALL=en_US.UTF-8 را می‌بینید، ورودی LC_ALL را از /etc/default/locale حذف کنید و logout شوید. بعد از این کار دوباره وارد سیستم شوید.

در مرحله بعد باید sudo systemctl show-environment را انجام دهید و اطمینان حاصل کنید که LANG = en_US.UTF-8 را در خروجی می‌بینید. برای اینکار کافیست تا دستور زیر را وارد کنید:

$ sudo systemctl show-environment
LANG=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

اگر دوباره نمی توانید این گزینه را مشاهده کنید، sudo systemctl set-environment LANG=en_US.UTF-8 را به انجام برسانید و دستور بالا یعنی sudo systemctl show-environment را دوباره اجرا کنید و سپس تایید کنید که LANG=en_US.UTF-8 را در خروجی می‌بینید.
از دیگر کارهایی که قبل از نصب بیگ بلو باتن باید انجام دهید این است که سرورتان را چک کنید تا ببینید که از دستور free -h پیروی می‌کند و 4 گیگابایت حافظه داخلی دارد.

مثال

به عنوان مثال در اینجا می‌توانید خروجی یکی از سرورهای تست شده ما را ببینید:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:            31G        5.9G        314M        1.8G         25G         21G
Swap:           31G        360M         31G

در اینجا 31 گیگ حافظه نشان داده شده است. ( این یک سروری است که با 32 گیگابایت حافظه طراحی شده است.

اگر مقداری را برای Mem مشاهده می‌کنید: در ستون کل کمتر از 4 گیگ (مثال بالا نشان دهنده 31 گیگ است)، در نهایت سرور شما فضای کافی برای اجرای بیگ بلو باتن را ندارد. از این رو باید حافظه سرور را حداقل به 4G افزایش دهید.
از دیگر مراحل بررسی کردن این موضوع می‌باشد که اوبنتو نسخه 16.04 را دارد یا خیر. برای اینکار باید دستور زیر را وارد کنید:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.x LTS"

در مرحله بعدی نوبت آن است تا چک کنید که آیا نسخه 64 بیتی اوبنتو 16.04 در سرور شما اجرا می شود یا نه. دستور زیر برای اینکار مورد استفاده قرار می گیرد:

$ uname -m
x86_64

بعد بررسی کنید که سرور شما از IPV6 پشتیبانی می کند. برای اینکار نیاز به وارد کردن دستور زیر دارید:

$ ip addr | grep inet6
inet6 ::1/128 scope host
...

اگر خط inet6 :: 1/128 دامنه میزبان را نمی بینید ، پس از نصب bigbluebutton، باید تنظیمات مربوط به FreeSWITCH را تغییر دهید تا بتوانید پشتیبانی از IPV6 را غیرفعال کنید.

بعد بررسی کنید که سرور شما هسته لینوکس 4.x را اجرا می کند که برای اینکار هم به دستور زیر نیاز است:

$ uname -r
4.15.0-38-generic

بعد باید بررسی کنید که سرور شما (حداقل) 4 هسته CPU داشته باشد. برای اینکار نیز باید از دستور زیر استفاده کنید:

$ cat /proc/cpuinfo | awk '/^processor/{print $3}' | wc -l
4

توجه:

BigBlueButton روی هسته 2.6 هسته ای اجرا نمی شود (مانند لینوکس 2.6.32-042stab133.2 در x86_64 در OpenVZ VPS).

بعضی اوقات از ما سؤال می شود “چرا شما فقط از نسخه 64 بیتی اوبونتو 16.04 پشتیبانی می کنید؟”. پاسخ ما برای اینتخاب کردن این بوده که کیفیت بیش از کمیت است. مدتها پیش نتیجه گرفتیم که بهتر است این پروژه دارای نصب مستحکم و آزمایش شده و مستند برای نسخه خاصی از لینوکس باشد که واقعا کار می کند، واقعاً با تلاش ها و پشتیبانی‌هایی که انجام شد، هیچکدام نتوانستند به خوبی کار کنند و آنطور که باید از خود عملکرد نشان دهند.

یک نام میزبان و یک گوهی ssl داشته باشید

در این باره توصیه ما به شما این است که برای سرور BigBlueButton خود یک نام دامنه کاملاً واجد شرایط (مانند FQDN) مانند bigbluebutton.example.com را اختصاص دهید و پیکربندی سرور را با گواهی لایه سوکت های امن (SSL) تنظیم نمایید. با انجام این کار، nginx، سرور وب که با BigBlueButton نصب می شود را قادر می سازد تا محتوا را از طریق پروتکل انتقال ابر متن امن (HTTPS) ارائه دهد. بدون استفاده از HTTPS ، مرورگرها اجازه نخواهند داد که وبکم‌ها یا میکروفون خود را به اشتراک بگذارند. همچنین، بدون فعال کردن HTTPS، برخی از مرورگرها از محتوای ناامن شکایت می کنند و نارضایتی خود را اعلام می کنند.

به طور خلاصه ، روی هر سرور مورد استفاده، تنظیم نام دامنه و گواهی SSL معتبر ضروری است.

برای به دست آوردن نام دامنه، تعداد زیادی registrars دامنه خوب مانند GoDadday و Solutions Network وجود دارند.
همچنین برای دریافت گواهینامه SSL گزینه های زیادی وجود دارند که به علت گستردگی آن نمی‌توان در این مطلب به آن پرداخت.

پیکربندی فایروال در صورت نیاز

اگر بین خودتان و کاربرانتان فایروال دارید، بهترین گزینه مورد نظر این است که پیکربندی های مربوط به آن را ببینید.

به روز رسانی

قبل از اینکه به روز رسانی را شروع کنید، اگر از طریق پرونده‌ها و فایل‌های پیکربندی تغییراتی را در بیگ بلو باتن به وجود آورده‌اید، باید از این اصلاحات نسخه پشتیبان تهیه کنید تا بعد از به روز رسانی مجدد، تمامی آن‌ها را دوباره اعمال کنید.

ارتقاء از bigbluebutton 2.2

اگر شما در حال به روزرسانی و ارتقا BigBlueButton 2.2 هستید و برای تنظیم گواهی SSL / TLS از Let Encrypt استفاده کرده‌اید و هیچ تغییر سفارشی در پیکربندی انجام نداده اید، پس باید بتوانید تا اسکریپت bbb-install.sh را اجرا کنید. هدف از اینکار رسیدن تا به جدیدترین نسخه از BigBlueButto 2.2 دست پیدا کنید و آن را ارتقا ببخشید.

اگر نسخه قبلی BigBlueButton 2.2 را با استفاده از دستورالعمل های step-by-step نصب کرده‌اید، باید از هرگونه تغییر در تنظیمات سفارشی پشتیبان گیری انجام داده و سپس با استفاده از دستورات زیر به روزرسانی را شروع کنید. ابتدا همه بسته ها را با استفاده از dist-upgrade از بین ببرید. اینکار باعث خواهد شد تا آخرین نسخه از پکیج BigBlueButton 2.2 نصب شود.

ما برای این عملیات PPA را به ffmpeg تغییر داده‌ایم. اگر قبلاً این کار را نکرده اید، کافیست دستورات زیر را وارد کنید:

$ sudo rm -f /etc/apt/sources.list.d/jonathonf-ubuntu-ffmpeg-4-xenial.list
$ sudo add-apt-repository ppa:bigbluebutton/support

بعد، بسته ها را با بهره گیری از دستورات زیر به روز و آپدیت کنید:

$ sudo apt-get update
$ sudo apt-get dist-upgrade

در مرحله بعد ، از bbb-conf –setip برای اختصاص دادن دوباره آدرس آی پی سرور یا نام هاست به فایل‌های پیکربندی BigBlueButton بهره ببرید که دستور واردشده به صورت زیر خواهد بود:

$ sudo bbb-conf --setip <IP_or_hostname>
$ sudo bbb-conf --check

مثال

به عنوان مثال، اگر سرور خود را با نام میزبان bbb.example.com پیکربندی کرده بودید باید این کار را می کردید:

$ sudo bbb-conf --setip bbb.example.com
$ sudo bbb-conf --check

ارتقاء از bigbluebutton 2.0

اگر نسخه قبلی BigBlueButton 2.0 را نصب کرده‌اید و سپس تغییرات سفارشی را ایجاد نموده‌اید ، ابتدا باید از تغییرات خود نسخه پشتیبان تهیه کنید. بعد از تهیه بکاپ از تغییرات، می توانید از bbb-install.sh برای به روزرسانی و یا انجام مراحل زیر استفاده کنید. پس از اتمام به روزرسانی ، تغییرات خود را دوباره اعمال کنید.

ابتدا باید bbb-client را از نصب در بیاورید:

$ sudo apt-get purge -y bbb-client

و بسته های قدیمی تر Kurento را با دستور زیر پاک کنید:

$ sudo apt-get purge -yq kms-core-6.0 kms-elements-6.0 kurento-media-server-6.0
$ sudo bbb-conf --restart

سپس می توانید از بین دو کوکی نصب برای به روزرسانی به BigBlueButton 2.2 یکی را انتخاب کنید. پس از اتمام به روزرسانی، می‌توانید دوباره تغییرات سفارشی را اعمال کنید.

توجه:

اگر از bbb-install.sh برای به روزرسانی BigBlueButton 2.0 استفاده می کنید، دیگر نیازی به پاک کردن پکیج‌های bbb-client و Kurento نیست؛ زیرا اسکریپت مربوط به روزرسانی، ارتقاء شما را از BigBlueButton 2.0 تشخیص داده و به طور خودکار آن را برای شما انجام می دهد.

نصب

آماده نصب هستید؟ در اینجا یک لیست سریع از کارهایی که قبل از نصب باید انجام دهید، وجود دارد:

  • شما یک سرور 64 بیتی Ubuntu 16.04 دارید که حداقل انتظارات را برآورده می‌کند.
  • اگر سرور در پشت فایروال قرار دارد، شما باید فایروال خود را تنظیم کنید تا بتوانید پورت‌های مناسب را به سرور BigBlueButton منتقل کنید (و از طریق یک رایانه خارجی آزمایش کنید که اتصالات از طریق فایروال به سرور BigBlueButton شما منتقل می شوند).
  • شما یک نام دامنه کاملاً واجد شرایط (مانند bigbluebutton.example.com) دارید که آدرس IP سرور BigBlueButton شما (یا آدرس IP فایروال شما) را برطرف می‌کند.
  • همچنین شما یک گواهی SSL معتبر برای نام هاست دارید (یا قصد دارید با استفاده از Letry Encrypt، که در این اسناد وجود دارد، یکی از آنها را دریافت کنید)

اگر یک توسعه دهنده برای تنظیم BigBlueButton هستید و آن را برای توسعه یا آزمایش در یک VM محلی ایجاد کرده‌اید و قصد استفاده از FireFox را دارید ، می توانید از مراحل بالاتر بهره مند شوید.

در این مرحله دیگر شما آماده نصب هستید.

1. سرور خود را به روز کنید

ابتدا مطمئن شوید که سرور شما با جدیدترین پکیج‌ها و به روزرسانی‌های امنیتی آپدیت شده‌اند.

از طریق SSH به سرور خود وارد شوید. شما باید حسابی داشته باشید که بتواند دستورات را به صورت root (از طریق sudo) اجرا کند. پس از ورود به سیستم، ابتدا با انجام موارد زیر اطمینان حاصل کنید که multiverse xenail را در لیست /etc/apt/source.list خود دارید.

$ grep "multiverse" /etc/apt/source.list

پس از وارد کردن دستور فوق باید خط تعریف نشده را برای مخزن multiverse مشاهده کنید که ممکن است شبیه مورد زیر باشد:

deb http://archive.ubuntu.com/ubuntu xenial multiverse

و یا این:

deb http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse

نگران نباشید اگر نام میزبان شما در URL با موارد بالا متفاوت باشد، مهم این است که شما یک پیوند غیرقابل تعریف شده را مشاهده می کنید که شامل چندگانگی است. اگر این کار را نکردید ، دستور زیر را اجرا کنید تا مخزن چند هسته ای را به پرونده /etc/apt/source.list خود اضافه کنید.

$ echo "deb http://archive.ubuntu.com/ubuntu/ xenial multiverse" | sudo tee -a /etc/apt/source.list

اگر شما یک سازنده و طراحی هستید که BigBlueButton را برای آزمایش و توسعه بر روی VM نصب می‌کنید ، برخی از مؤلفه های BigBlueButton مانند Tomcat هنگام راه اندازی به منبع entropy احتیاج دارند. در یک VM، entropy موجود می تواند کم اجرا شود، Tomcat می تواند برای مدت زمان طولانی قبل از راه اندازی مسدود شود. (گاهی اوقات چند دقیقه)

برای دادن مقادیر زیادی VM به entropy، یک پکیجی را تحت عنوان haveged نصب کنید. مانند دستور زیر:

$ sudo apt-get install haveged

دو برنامه مورد نیاز BigBlueButton وجود دارد:

ffmpeg (ایجاد ضبط) و yq (به روزرسانی فایل های YAML).

نسخه پیش فرض ffmpeg در اوبونتو 16.04 قدیمی است و yq در مخازن پیش فرض وجود ندارد. بنابراین، قبل از نصب BigBlueButton، برای اطمینان از نصب نسخه های مناسب، باید بایگانی‌های بسته شخصی زیر (PPA) را به سرور خود اضافه کنید.

$ sudo add-apt-repository ppa: bigbluebutton / support -y
$ sudo add-apt-repository ppa: rmescandon / yq -y

بعد، سرور خود را به آخرین پکیج‌های موجود (و رفع مشکلات امنیتی) ارتقا دهید.

$ sudo apt-get update
$ sudo apt-get dist-upgrade

اگر مدتی به روز رسانی‌های خود را انجام نداده‌اید ، ممکن است apt-get پیشنهاد reboot کردن سرورتان را بعد از اتمام dist-upgradeبدهد. قبل از رفتن به مرحله بعدی و پردازش آن، reboot را انجام دهید.

مشتری BigBlueButton HTML5 از MongoDB که از یک پایگاه داده بسیار کارآمد استفاده می‌کند، برای همگام سازی وضعیت مشتری‌ها استفاده می شود. برای نصب MongoDB موارد زیر را انجام دهید:

$ wget -qO - https://www.mongodb.org/static/pgp/server-3.4.asc | sudo apt-key add -
$ echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
$ sudo apt-get update
$ sudo apt-get install -y mongodb-org curl

سرویس دهنده BigBlueButton HTML5 به یک سرور nodejs نیاز دارد. برای نصب nodej ها، موارد زیر را انجام دهید:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

2. نصب کلید apt get برای مخزن بیگ بلو باتن

همه بسته های bbb به صورت دیجیتالی با کلید عمومی پروژه امضا می‌شوند. قبل از نصب بیگ بلو باتن، باید کلید عمومی پروژه را به زنجیره کلید سرور خود اضافه کنید. برای این کار دستور زیر را وارد کنید:

$ wget https://ubuntu.bigbluebutton.org/repo/bigbluebutton.asc -O- | sudo apt-key add -

اگر سرور خود را با BigBlueButton 2.0 (یا نسخه قبلی) به روز می کنید ، ابتدا باید بسته bbb-client را حذف کنید. طبق دستور زیر:

$ sudo bbb-conf --stop
$ sudo apt-get purge -y bbb-client

این بدان دلیل است که برخی از پرونده‌های متعلق به bbb-client ، به bbb-web انتقال داده می‌شوند. حذف بسته bbb-client قبل از به روزرسانی با BigBlueButton 2.2 به bbb-web امکان می دهد تا این فایل‌ها را بدون تناقض و یا نقصی از نسخه قدیمی bbb-client ایجاد کند.

در مرحله بعد، سرور شما باید بداند که بسته های BigBlueButton 2.2 را کجا دانلود کند. برای پیکربندی مخزن پکیج، دستور زیر را وارد کنید:

$ echo "deb https://ubuntu.bigbluebutton.org/xenial-22/ bigbluebutton-xenial main" | sudo tee /etc/apt/source.list.d/bigbluebutton.list

سپس apt-get را برای پایین آوردن پیوندها به آخرین پکیج‌های bbb، به اجرا برسانید. مانند دستور زیر:

$ sudo apt-get update

3. پشتیبان گیری از تنظیمات سفارشی

اگر این یک نصب جدید باشد، می‌توانید از این مرحله صرف نظر کنید.

اگر با استفاده از BigBlueButon2.0 یا نسخه قبلی BigBlueButton 2.2 به روزرسانی را انجام می‌دهید، تغییرات سفارشی ایجاد کرده‌اید، مانند:

  • گواهی SSL خود را در / etc / nginx / sites-available / bigbluebutton تنظیم کنید.
  • FreeSWITCH را برای پذیرش تماس‌های تلفنی دریافتی پیکربندی کنید.
  • پرونده پیش فرض /var/www/bigbluebutton-default/default.pdf را تغییر دهید.

4. نصب bigbluebottun

توجه: اگر از BigBlueButton 2.0 برای به روزرسانی بهره می‌برید (یا قبل از آن)، از sudo apt-get purbb-client برای از نصب خارج کردن و یا حذف bbb-client استفاده کنید. این مورد برای وقتی است که بخواهید ورژن جدید از bbb را نصب کنید.

اکنون ما آماده نصب bbb هستیم. دو دستور زیر را وارد کنید:

$ sudo apt-get install bigbluebutton
$ sudo apt-get install bbb-html5

برای هر دستور، هنگامی که از شما خواسته شد تا عملیات را به انجام برسانید، “Y” را تایپ کنید و سپس ENTER را فشار دهید.

نکته 1:

شما می توانید هرگونه خطای “عدم بارگیری پرونده های داده اضافی” در بسته نصب ttf-mscorefonts-installer را نادیده بگیرید. این مشکل با ابونتو 16.04 کاملا شناخته شده است.

نکته 2:

گر فرآیند نصب کردن قبل از اتمام با خطایی مواجه شد ، مراحل را دوباره مورد بررسی قرار دهید. اگر خطاهای پیکربندی را پیدا کرده و آن‌ها را برطرف کردید، می توانید با استفاده از دستور sudo apt-get install -f، نصب را تمام کنید.

نکته 3:

گر بعد از نصب sudo apt-get -f هنوز خطایی دارید ، همین جا توقف کنید. نصب تمام نشده است و bbb اجرا نخواهد شد. برای کمک به راهنمایی عیب یابی و گزینه های دیگر مراجعه کنید.

پس از اتمام نصب، می توانید HTML5 را به صورت پیش فرض مشتری قرار دهید (همین مورد توصیه می‌شود مگر اینکه به مشتری Flash نیاز داشته باشید).

سرانجام ، برای اطمینان از به روز بودن همه بسته‌ها، در آخر dist-upgrade را انجام دهید. مانند دستور زیر:

$ sudo apt-get dist-upgrade

پس از اتمام نصب، می توانید HTML5 را به صورت پیش فرض (توصیه) قرار دهید.

سپس bbb را ری استارت کنید:

$ sudo bbb-conf --restart

با این کار تمامی اجزای سرور bbb به ترتیب مجدداً راه اندازی می‌شوند.

توجه:

نگران نباشید اگر در ابتدا خطای

# Not running: tomcat7 or grails و یا Error: Could not connect to the configured hostname/IP address

را مشاهده کردید. چرا که راه اندازی مدتی طول می‌کشد.

پس از اتمام ری استارت شدن ، تنظیمات را با استفاده از bbb-conf –check بررسی کنید. هنگام اجرای این دستور، باید خروجی مشابه موارد زیر را مشاهده کنید:

$ sudo bbb-conf --check

BigBlueButton Server 2.2.0 (1571)
                    Kernel version: 4.4.0-142-generic
                      Distribution: Ubuntu 16.04.6 LTS (64-bit)
                            Memory: 16432 MB

/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties (bbb-web)
       bigbluebutton.web.serverURL: http://178.128.233.105
                defaultGuestPolicy: ALWAYS_ACCEPT

/etc/nginx/sites-available/bigbluebutton (nginx)
                       server name: 178.128.233.105
                              port: 80, [::]:80
                    bbb-client dir: /var/www/bigbluebutton

/var/www/bigbluebutton/client/conf/config.xml (bbb-client)
                Port test (tunnel): rtmp://178.128.233.105
                              red5: 178.128.233.105
              useWebrtcIfAvailable: true

/opt/freeswitch/etc/freeswitch/vars.xml (FreeSWITCH)
                       local_ip_v4: 178.128.233.105
                   external_rtp_ip: stun:stun.freeswitch.org
                   external_sip_ip: stun:stun.freeswitch.org

/opt/freeswitch/etc/freeswitch/sip_profiles/external.xml (FreeSWITCH)
                        ext-rtp-ip: $${local_ip_v4}
                        ext-sip-ip: $${local_ip_v4}
                        ws-binding: :5066
                       wss-binding: :7443

/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml (record and playback)
                     playback_host: 178.128.233.105
                 playback_protocol: http
                            ffmpeg: 4.1.1-0york1~16.04

/etc/bigbluebutton/nginx/sip.nginx (sip.nginx)
                        proxy_pass: http://178.128.233.105:5066


** Potential problems described below **

هر خروجی‌ای که به دنبال مشکلات احتمالی باشد، ممکن است خطاهای پیکربندی یا خطاهای نصب را نشان دهد. در بسیاری از موارد ، پیام ها به شما توصیه می کنند که چگونه با استفاده از راه حل‌های موجود مسئله را حل کنید.

همچنین می توانید از sudo bbb-conf –status استفاده کنید تا بررسی کنید که تمام مراحل بیگ بلو باتن شروع شده و در حال اجرا هستند.

$ sudo bbb-conf --status
red5 ——————————————————► [✔ - active]
nginx —————————————————► [✔ - active]
freeswitch ————————————► [✔ - active]
redis-server ——————————► [✔ - active]
bbb-apps-akka —————————► [✔ - active]
bbb-transcode-akka ————► [✔ - active]
bbb-fsesl-akka ————————► [✔ - active]
tomcat7 ———————————————► [✔ - active]
mongod ————————————————► [✔ - active]
bbb-html5 —————————————► [✔ - active]
bbb-webrtc-sfu ————————► [✔ - active]
kurento-media-server ——► [✔ - active]
etherpad ——————————————► [✔ - active]
bbb-web ———————————————► [✔ - active]
bbb-lti ———————————————► [✔ - active]

در این مرحله، سرور بیگ بلو باتن شما به آدرس IPV4 توجه می‌کند. به عنوان مثال، اگر سرور شما در آدرس IP 178.128.233.105 است، می‌توانید http://178.128.233.105/ را باز کنید و صفحه welcome را ببینید.

نصب bbb
صفحه welcome bigbluebutton 

با این وجود نمی توانید وارد صفحه شوید، مگر اینکه نسخه API demos را نصب کرده باشید. (اگر بخواهید این دستور را امتحان کنید، با خطای احتمالی 404 رو به رو خواهید شد)

اگر قصد استفاده از این سرور را با front-end دارید، به نسخه‌های API demos نیازی نیست. شما می‌توانید bbb را با یکی از موارد شخص ثالث ادغام کنید و در جهت یکپارچه سازی آدرس سرور به جلو بروید. همچنین شما می توانید از bbb-conf برای نشان دادن اطلاعاتی استفاده کنید که از bbb-conf –secret بهره مند هستند. مانند دستور زیر:

$ sudo bbb-conf --secret

URL: http://178.128.233.105/bigbluebutton/
Secret: 330a8b08c3b4c61533e1d0c5ce1ac88f

Link to the API-Mate:
http://mconf.github.io/api-mate/#server=http://178.128.233.105/bigbluebutton/&sharedSecret=330a8b08c3b4c61533e1d0c5ce1ac88f

5. نصب نسخه api demos

نسخه‌های api demos مجموعه ای از صفحات Java Server (JSP) هستند که یک واسط مبتنی بر وب را برای آزمایش API bbb پیاده سازی می‌کنند.

برای نصب نمونه های API، دستور زیر را وارد کنید:

$ sudo apt-get install bbb-demo

پس از نصب، می‌توانید نام خود را در صفحه اصلی وارد کرده و روی “عضویت” کلیک کنید.

عضویت html5
نحوه عضویت در bigbluebutton

این شما را به جلسه پیش فرض موسوم به “Demo meeting” پیوند می‌دهد. در اینجا می‌توانید از صفحه با استفاده از FireFox، باز کردن پانل Shared Notes ، کشیدن روی تخته سفید و اشتراک گذاری یک وب کم عکس بگیرید.

first-install
Demo meeting در bbb

هنگامی که نمونه‌های API تمام شد، می‌توانید برای حدف آن‌ها اقدام کنید:

$ sudo apt-get remove bbb-demo

6. سرور خود را مجدداً راه اندازی کنید

می توانید سرور BigBlueButton را در هر زمان و با استفاده از دستورات مجدداً راه اندازی کرده و بررسی کنید.

$ sudo bbb-conf --restart
$ sudo bbb-conf --check

bbb-conf –check برخی از پرونده‌های گزارش را برای برخی پیام‌های خطا اسکن می‌کند. باز هم اگر هر خروجی‌ای که به دنبال مشکلات احتمالی بوده ، ممکن است نشان دهنده خطاهای پیکربندی یا خطاهای نصب باشند. در بسیاری از موارد، پیام‌های موجود به شما توصیه می کنند که چگونه مسئله را حل کنید.

توجه کنید که sudo bbb-conf –check به شما هشدار می‌دهد که نسخه‌های API demos نصب شده‌اند و این امکان را برای همه فراهم می کند که به سرور به منظور اجرای session دسترسی پیدا کنند. (حذف نسخه‌های API demos)

اگر پیامهای هشدار دهنده دیگری را مشاهده کردید ، به بررسی نصب troubleshooting بپردازید.

7. مراحل نهایی

اگر این سرور برای تولید در نظر گرفته شود، باید:

  • برای سرور یک نام میزبان در نظر بگیرید
  • برای پشتیبانی از HTTPS اقدام به خرید ssl و نصب آن کنید.
  • سیستم خود را ایمن کنید – دسترسی به پورت‌های خاص را محدود کنید.
  • پیکربندی سرور برای کار در پشت فایروال (در صورت لزوم)
  • سخه‌های API demos را حذف کنید (اگر آنها را برای آزمایش کردن نصب کرده‌اید)
  • یک سرور TURN را تنظیم کنید (اگر سرور شما در اینترنت است و کاربرانی دارید که از پشت فایروال‌های محدود کننده به آن دسترسی دارند)

اختصاص دادن یک نام هاست

برای هر سرور BigBlueButton تولیدی ، باید آن را به یک نام میزبان اختصاص دهید.

اگر قبلاً این کار را نکرده اید ، باید یک نام دامنه را از ارائه دهنده سرویس نام دامنه (DNS) خریداری کنید و با استفاده از رابط وب ارائه دهنده، A record را پیکربندی کنید. بدین صورت که به آدرس IP سرور خود اشاره کند.

پس از تنظیم A record، دستور زیر و EXTERNAL_HOST_NAME را با نام میزبان سرور BigBlueButton خود وارد کنید:

$ ping EXTERNAL_HOST_NAME

در اینجا مثالی از خروجی با استفاده از demo.bigbluebutton.org آورده شده است:

$ ping demo.bigbluebutton.org
PING demo.bigbluebutton.org (146.20.105.32) 56(84) bytes of data.
64 bytes from 146.20.105.32: icmp_seq=1 ttl=44 time=27.5 ms

توجه: اگر سرور شما اجازه عبور ICMP را نمی دهد ، هیچ بایتی برنگردانده نمی شود، اما باید آدرس IP سرور خود را در داخل براکت ها () بعد از نام میزبان ببینید.

اگر نام میزبان به آدرس IP سرور (یا آدرس IP فایروال) در حال حل کردن مشکل خود است، در مرحله بعدی از ابزار تنظیمات پیکربندی bbb یعنی bbb-conf برای به روزرسانی پرونده‌های پیکربندی بندی شده bbb بهره ببرید تا در hostname مورد استفاده قرار بگیرد.

$ sudo bbb-conf --setip HOSTNAME

به عنوان مثال ، اگر نام میزبان شما bigbluebutton.example.com بود، ئستور به صورت زیر می‌باشد:

$ sudo bbb-conf --setip bigbluebutton.example.com

در این مرحله ، شما باید سرور BigBlueButton را به آدرس IP (یا نام میزبان) توجه کنید و به درخواست‌های API پاسخ دهید. با این حال اگر سعی کردید به صفحه پیش فرض سرور با یک مرورگر وارد شوید، خطای زیر را دریافت می‌کنید:

HTTP Status 404 - /demo/demo1.jsp

چرا؟ سرور BigBlueButton برای لیست تماس های API خود را آماده می‌کند، اما front-end به صورت پیش فرض نصب نشده است. به راحتی می توانید نسخه‌های API demos را برای آزمایش سرور نصب کنید. ما در مرحله بعد نمایه های API را نصب خواهیم کرد.

با این حال، اگر قصد استفاده از front-end را برای سرور BigBlueButton دارید، به API demos احتیاج ندارید ، به عنوان مثال ، اگر شما یک سرور Moodle دارید و می خواهید پلاگین بیگ بلو باتن را برای Moodle را پیکربندی کنید باید به سرور BigBlueButton دسترسی پیدا کنید.

پیکربندی ssl در سرور bigbluebutton خود

برای امنیت بیشتر باید پشتیبانی SSL را به سرور BigBlueButton خود اضافه کنید. همچنین، مانند Chrome 47 ، کاربران Chrome نمی توانند میکروفون خود را از طریق WebRTC به اشتراک بگذارند، مگر اینکه BigBlueButton از طریق HTTPS لود شود.

پیکربندی BigBlueButton برای استفاده در نام دامنه

لطفاً تمام دستورات موجود در این بخش را به عنوان root اجرا کنید.

برای به دست آوردن گواهی SSL معتبر برای سرور خود، باید از قبل نام سرور را به سرور BigBlueButton اختصاص داده باشید.

برای اهداف داکیومنت سازی، از نام دامنه “shembull.com”، با یک سرور BigBlueButton میزبان در “bigbluebutton.example.com” استفاده خواهیم کرد.

هنگامی که نام یک دامنه دارید و آن را با یک میزبان DNS پیکربندی کرده‌اید، A record را به آن اضافه کنید که به سرور شما اشاره دارد. سپس می‌توانید از bbb-conf setip command برای پیکربندی BigBlueButton بهره ببرید که از نام دامنه استفاده خواهد کرد، برای مثال:

$ sudo bbb-conf --setip bigbluebutton.example.com

به دست آوردن گواهی ssl

قبل از اینکه بتوانید nginx را در BigBlueButton در محتوای سرور از طریق HTTPS پیکربندی کنید، باید یک گواهی SSL معتبر داشته باشید. دامنه معتبر (گاهی اوقات به نام “کلاس 1”) با استفاده از 4096 bit RSA key و SHA-256 checksum گواهی بندی می‌شوند که حداقل پیشنهادی فعلی است و باید کارآمد باشد.

تعدادی از ارائه دهندگان وجود دارند که می‌توانید از آنها گواهی دریافت کنید. بسیاری از شرکت‌های فروش نام دامنه نیز دارای گواهینامه هستند.

برخی از ارائه دهندگان بزرگ گواهینامه های SSL مشهور عبارتند از Comodo ، Symantec ، GoDaddy ، GlobalSign و DigiCert. بعلاوه، گواهینامه‌های SSL رایگان از StartSSL و CACert در دسترس هستند و برخی از اطلاعات آن نیز وجود دارند: گواهینامه های StartSSL بدون پرداخت هزینه خدمات قابل لغو نیستند و بیشتر افراد root مورد نیاز CACert را در مرورگر وب خود نصب نکرده اند.

هر ارائه دهنده یک سری از مراحل را برای تولید گواهینامه به شما ارائه می‌دهد، اما آن‌ها به طور معمول شامل تولید یک کلید خصوصی و درخواست گواهی در محل، ارسال درخواست گواهی برای امضاء و ارسال مجدد گواهینامه امضا شده پس از انجام هرگونه تاییدیه لازم هستند.

برای نصب گواهینامه در BigBlueButton، باید پرونده‌هایی برای گواهی، کلید خصوصی و هرگونه گواهی واسطه در قالب PEM داشته باشید.

اگر هنوز مجوز SSL ندارید و سرور شما در اینترنت است، می‌توانید از Lets Encrypt برای به دست آوردن مجوز SSL رایگان تجدیدپذیر استفاده کنید (بعد از 90 روز منقضی می‌شود ، اما به طور خودکار قابل تجدید هستند). اگر برای زمانی است که می‌خواهید از رمزگذاری Let استفاده کنید، سپس با استفاده از Let’s Encrypt آن را راه اندازی نمایید.

nginx را برای استفاده از https پیکربندی کنید

بسته به اختیار گواهینامه خود (CA)، اکنون باید 2 یا به تعداد بیشتر پرونده به شرح زیر داشته باشید:

  • گواهی
  • کلید خصوصی
  • گواهینامه واسط (ممکن است بیش از یک وجود داشته باشد)

قدم بعدی نصب فایل‌ها روی سرور است.

دایرکتوری / etc / nginx / ssl را ایجاد کنید. مطابق دستور زیر:

$sudo mkdir / etc / nginx / ssl

و اکنون فایل کلید خصوصی را برای استفاده nginx ایجاد کنید (hostname را در filename با نام خودتان جایگزین کنید). علاوه بر این، مجوزها را برطرف کنید تا فقط root بتواند کلید خصوصی را بخواند. مانند آنچه در زیر می‌بینید:

# cat >/etc/nginx/ssl/bigbluebutton.example.com.key <<'END'
Paste the contents of your key file here
END
chmod 0600 /etc/nginx/ssl/bigbluebutton.example.com.key

و پرونده گواهی. توجه داشته باشید که nginx به گواهی سرور شما و لیست گواهینامه‌های واسطه در کنار هم و در یک فایل نیاز دارد (hostname را در filename با نام خودتان جایگزین کنید). همانند زیر:

# cat >/etc/nginx/ssl/bigbluebutton.example.com.crt <<'END'
Paste (in order) the contents of the following files:
1. The signed certificate from the CA
2. In order, each intermediate certificate provided by the CA (but do not include the root).
END

علاوه بر این، ما مجموعه ای از پارامترهای 4096-bit diffie-hellman را برای بهبود امنیت برخی از انواع رمزها تولید خواهیم کرد. این مرحله می‌تواند چندین دقیقه طول بکشد، به خصوص در صورت اجرای آن در یک ماشین مجازی. مثل دستوری که در ادامه وجود دارد:

sudo mkdir -p / etc / nginx / ssl
sudo opensl dhparam -out /etc/nginx/ssl/dhp-4096.pem 4096

اکنون می توانیم پیکربندی nginx را برای استفاده از SSL ویرایش و ادیت کنیم. برای اضافه کردن خطوط مشخص شده، پرونده / etc / nginx / sites-available / bigbluebutton را ویرایش کنید. سپس اطمینان حاصل کنید که از نام‌های صحیح برای مطابقت با گواهینامه و پرونده‌های کلیدی‌ای که ایجاد شده‌اند در بالا استفاده می‌کنید. به دستور زیر به خوبی توجه کنید:

server {
  server_name bigbluebutton.example.com;
  listen 80;
  listen [::]:80;
  listen 443 ssl;
  listen [::]:443 ssl;

  ssl_certificate /etc/nginx/ssl/bigbluebutton.example.com.crt;
  ssl_certificate_key /etc/nginx/ssl/bigbluebutton.example.com.key;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256";
  ssl_prefer_server_ciphers on;
  ssl_dhparam /etc/nginx/ssl/dhp-4096.pem;

برای ارجاع، توجه داشته باشید كه تنظیمات SSL مورد استفاده در بالا براساس موارد پیشنهادی در https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/ می‌باشد و پشتیبانی از همه مرورگرهای مدرن (از جمله IE8) را ارائه می‌دهد. (نه IE6 ، در ویندوز XP). لطفا توجه داشته باشید که تنظیمات SSL توصیه شده با پیدا شدن آسیب پذیری‌های جدید، در معرض تغییرات بسیاری قرار می‌گیرند.

پیکربندی freeswitch برای استفاده از ssl

اگر فایروال را بر روی سرور خود دارید و پورت 5066 را باز کرده‌اید ، این قانون را تغییر دهید تا به جای آن پورت 7443 را باز کنید.

همچنین، اگر سرور BigBlueButton شما در پشت فایروال قرار دارد، برای جلوگیری از بروز خطای 1002 در مشتری، ممکن است لازم باشد مقدار آن را با یک آدرس IP خارجی EXTERNAL_IP_ADDRESS: 7443 مشخص کنید.

در مرحله بعد، websocket به آدرس ngnix انتقال پیدا می‌کند.
پرونده /etc/bigbluebutton/nginx/sip.nginx را ویرایش کرده و پروتکل و پورت را بر روی خط proxy_pass تغییر دهید. مانند چیزی که نشان داده شده است:

location /ws {
proxy_pass https://203.0.113.1:7443;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_read_timeout 6h;
proxy_send_timeout 6h;
client_body_timeout 6h;
send_timeout 6h;

BigBlueButton را برای بارگیری session از طریق HTTPS پیکربندی کنید

با nginx که حالا برای استفاده SSL پیکربندی شده است، مرحله بعدی این می‌باشد که FreeSWITCH را برای استفاده HTTPS پیکربندی کنید. این کار برای این است که یک اتصال صوتی را آغاز نمایید. مانند چیزی که در دستور زیر می‌بینید:

Edit

/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties

and update the property

bigbluebutton.web.serverURL

to use HTTPS:

#----------------------------------------------------
# This URL is where the BBB client is accessible. When a user successfully
# enters a name and password, she is redirected here to load the client.
bigbluebutton.web.serverURL=https://bigbluebutton.example.com

در مرحله بعدی پرونده /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties را ویرایش کرده و ویژگی jnlpUrl و jnlpFile را در HTTPS آپدیت کنید.

streamBaseUrl=rtmp://bigbluebutton.example.com/screenshare
jnlpUrl=https://bigbluebutton.example.com/screenshare
jnlpFile=https://bigbluebutton.example.com/screenshare/screenshare.jnlp

همچنین فایل

/var/www/bigbluebutton/client/conf/config.xml

باید آپدیت شود تا به مشتری bbb بگوید که اجزای خود را با استفاده از HTTPS بارگیری کند. به روز رسانی می‌تواند تنها با استفاده از یک فرمان واحد انجام گیرد:

$ sudo sed -e 's|http://|https://|g' -i /var/www/bigbluebutton/client/conf/config.xml

همچنین اگر به برگرداندن این دستورات نیاز دارید، می‌توانید اسکریپت ذکرشده را معکوس اجرا کنید:

$ sudo sed -e 's|https://|http://|g' -i /var/www/bigbluebutton/client/conf/config.xml

را برای ویرایش دادن و اعمال تغییرات باز کنید:

kurento:
wsUrl: ws://bbb.example.com/bbb-webrtc-sfu

به:

kurento:
wsUrl: wss://bbb.example.com/bbb-webrtc-sfu

همچنین برای اعمال تغییرات به صورت زیر عمل کنید:

note:
enabled: true
url: http://bbb.example.com/pad

به

note:
enabled: true
url: https://bbb.example.com/pad

در مرحله بعد، ضبط‌های ایجادشده را اصلاح کنید تا توسط HTTPS سرو شوند.

/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml را ویرایش کنید و مقدار playback_protocol را همانطور که در ادامه می‌بینید، تغییر دهید:

playback_protocol: https

اگر API demos را در مرحله 5 نصب کرده‌اید، /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp را ویرایش کرده و مقدار BigBlueButtonURL را با استفاده از HTTPS تغییر دهید:

// This is the URL for the BigBlueButton server
String BigBlueButtonURL = "https://bigbluebutton.example.com/bigbluebutton/";

در نهایت برای اینکه تمامی تغییرات اعمال شوند، کلیه مولفه‌های bbb باید دوباره راه اندازی شوند. مانند زیر:

$ sudo bbb-conf --restart

استفاده از Let’s Encrypt

اگر یک نام دامنه به سرور BigBlueButton (یعنی bigbluebutton.example.com) اختصاص داده شده است و سرور در اینترنت است ، می توانید از Encrypt (رمزگذاری) برای به دست آوردن گواهی نامه SSL رایگان استفاده کنید.

ابتدا ابزار پیکربندی Let’s Encrypt را نصب کنید. لطفاً تمام دستورات را در این بخش root اجرا نمایید. مانند زیر:

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get install certbot

در مرحله بعدی، مجموعه‌ای از پارامترهای Diffie-Hellman 4096 بیتی را ایجاد کنید تا امنیت برخی از انواع رمزها ارتقا پیدا کنند.

sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhp-4096.pem 4096

قبل از تولید گواهی بر روی سرور خود ، باید BigBlueButton را پیکربندی کنید تا از نام میزبان مورد نظر استفاده شود. اگر قبلاً این کار را نکرده‌اید، از دستور زیر استفاده کرده (bigbluebutton.example.com را با نام DNS خود جایگزین کنید) و در نهایت سرور BigBlueButton را با نام میزبان خود پیکربندی کنید:

$ sudo bbb-conf --setip bigbluebutton.example.com

در مرحله بعد، با استفاده از ابزار certbot، گواهی SSL را از Let’s Encrypt درخواست کنید. دوباره bigbluebutton.example.com را با نام میزبان خود جایگزین کنید.

$ sudo certbot --webroot -w /var/www/bigbluebutton-default/ -d bigbluebutton.example.com certonly

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/bigbluebutton.example.com/fullchain.pem. Your cert will
   expire on 20XX-YY-ZZ. To obtain a new version of the certificate in
   the future, simply run Let's Encrypt again.
 - If you like Let's Encrypt, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

این دستورات باعث ایجاد پرونده‌های زیر می‌شوند:

$ ls /etc/letsencrypt/live/bigbluebutton.example.com/
cert.pem chain.pem fullchain.pem privkey.pem

حال باید فایل پیکربندی شده /etc/nginx/sites-available/bigbluebutton را ویرایش کنید و خطوط مشخص شده زیر به را به آن اضافه نمایید. اطمینان حاصل کنید که از نام های صحیح برای مطابقت با گواهینامه و پرونده‌های کلیدی که در بالا ایجاد کرده‌اید استفاده می‌کنید (و دوباره bigbluebutton.example.com را با نام میزبان خود جایگزین کنید).

server {
  server_name bigbluebutton.example.com;
  listen 80;
  listen [::]:80;
  listen 443 ssl;
  listen [::]:443 ssl;
  ssl_certificate /etc/letsencrypt/live/bigbluebutton.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/bigbluebutton.example.com/privkey.pem;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256";
  ssl_prefer_server_ciphers on;
  ssl_dhparam /etc/nginx/ssl/dhp-4096.pem;

گواهینامه‌هایی که برای Let’s Encrypte هستند، تنها به مدت 90 روز کارکرد ویژه دارند و می‌توانند به صورت خودکار تمدید شوند. برای اینکه بتوانید این درخواست خودکار را به صورت هفته‌ای تمدید کنید، پرونده crontab را در root ویرایش کنید. مانند زیر:

$ sudo crontab -e

و دو خط زیر را نیز در انتها اضافه کنید:

30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log
35 2 * * 1 /bin/systemctl reload nginx

دو دستورالعمل ذکرشده هر روز دوشنبه، ساعت 2:30 بامداد دستور تمدید certbot را اجرا می‌کنند و سپس nginx را در ساعت 2:35 بامداد مجددا بارگزاری کنید. ( بنابراین از گواهی تجدیدشده استفاده می‌شود)

برای تمام کردن پیکربندی SSL، کار زیر را انجام دهید:

نصب bbb پیچیدگی‌های بسیاری را به خود اختصاص داده است؛ ولی اگر بتوان تمامی آن‌ها را فرا گرفت، می‌تواند به کاربردهای عمیق آن دست یافت.

جمع بندی

در این مقاله به بررسی نصب بیگ بلو باتن پرداخته شد. برای اینکه بتوانید این فرآیند را با موفقیت پشت سر بگذارید، نیاز است تا تمامی مراحل گفته شده را با دقت و ترتیب زیاد طی کنید و آن‌ها را مرحله به مرحله به انجام برسانید.

سوالات متداول

سوالات رایجی در رابطه با نصب bbb وجود دارند که برای داشتن اطلاعات در رابطه با آن‌ها کافیست موارد زیر را دنبال کنید.

1. چند کوکی در نصب bbb وجود دارند؟

برای اینکه بتوانید فرآیند bbb را به انجام برسانید، می‌توانید از دو کوکی استفاده کنید که هر کدام از آن‌ها از ویژگی‌های خاصی برخوردار هستند.

2. در صورت موفقیت آمیز بودن نصب کوکی‌ها انجام چه کاری در اولیت قرار دارد؟

در صورت رو به رو شدن با موفقیت باید یک سرور اختصاصی را به دست بیاورید.

3. برای اینکه بدانیدمحل سرور شما en_US.UTF-8 است، چه دستوری باید وارد شود؟

برای اینکار نیاز است تا دستور زیر را وارد کنید:

 $ cat /etc/default/locale

 LANG="en_US.UTF-8"

4. برای bbb چند برنامه مورد نیاز است؟

دو برنامه مورد نیاز BigBlueButton وجود دارد:

ffmpeg (ایجاد ضبط) و yq (به روزرسانی فایل های YAML).