
シェア:
元Vonage開発者エデュケーター。PHPのバックグラウンドを持つが、一つの言語に縛られることはない。熱心なゲーマーでRaspberry pi愛好家。屋内クライミング施設でボルダリングをしていることが多い。
オープンソースビデオ会議
所要時間:8 分
Vonage Video(旧OpenTok / TokBox)とは何ですか?
Vonage Video (旧TokBox / OpenTok)は、企業がモバイル、ウェブ、デスクトップアプリケーション内でカスタムビデオ体験を構築できるAPIです。
この API は、1 対 1 のビデオ相談、グループ ビデオ チャット、数千人への大規模なブロードキャストなど、あらゆる Video ユースケースをサポートします。どのようなセッションも録画することができ、どのようにファイルを構成し、どのような方法で安全に配信するかをコントロールすることができます。アナリティクスでは、ダッシュボードでプロジェクトごとのサマリーを見たり、セッションごとのアナリティクスを見ることができます。 アドバンスド・インサイトAPI.Video API を使用すると、当社の標準的な常時暗号化機能と GDPR 準拠機能をベースに、高度なセキュリティ、ファイアウォール制御、地域隔離、コンプライアンス証明書オプションなど、幅広い機能を利用できます。Vonage Videoサービスには、他にも多くの機能とサービスがあります。これらの詳細については、ランディングページをご覧ください。
WebRTCとは?
Web Real-Time Communication (WebRTC)は、WebブラウザやモバイルアプリケーションにAPIによるリアルタイム通信を提供する、フリーでオープンソースのプロジェクトです。VideoRTCを利用することで、ウェブブラウザ内で音声や映像の通信が可能になり、ピアツーピアで直接通信を行うことができるため、プラグインのインストールやネイティブアプリケーションのダウンロードが不要になります。
Vonageオープンソース会議・録画とは?
Vonage Open Source Conferencing and Recording は、プライベートなウェブベースのビデオ会議ソリューションです。Vonage Video API Platform(旧OpenTok API)をベースとし、Vonage Video SDKとAPIを使用します。お客様のサーバーにアプリをデプロイすることで、WebRTC上でビデオ会議アプリを動作させることができます。
ご自分のサーバーを持たずに、このサービスを試したい方は、ぜひ私たちの デモページ.このデモページは、オープンソース会議・録画パッケージのデフォルトバージョンによってホストされています。 Githubリポジトリ.
ビデオ会議ソフトをホストするには?
前提条件
インストール
このサーバーを実行するには、リポジトリをクローンし、必要なサードパーティ・ライブラリをすべてインストールする必要があります。ターミナルで以下の3つのコマンドを実行してください:
最小構成
必要な依存関係をすべてインストールしたら、いくつかの設定が必要です。最低限必要なのは、Vonage Video Dashboardから取得できるAPIキーとシークレットを定義することです。
手始めに config.jsonファイルを作成する必要がある。 config.jsonファイルをコピーしてくれる。コマンドを実行する:
このファイルを開くと、最初の数行が下の例のようになる:
{
"showTos": false,
"meetingsRatePerMinute": 30,
"OpenTok":{
"apiKey": "<key>",
"apiSecret": "<secret>",
"publisherResolution": "640x480"
},
...
}必ず交換してください。 <key>と <secret>を Video API キーと、Vonage Video Dashboard から取得した対応する API シークレットに置き換えてください。
ファイル内に認証情報を保持したくない場合は、代わりに環境変数を使うことができる。 config.jsonファイルに保存したくない場合は、代わりに環境変数を使うことができる。以下のコマンドを使って環境変数を設定できる。 <key>と <secret>をあなたの値に置き換えてください:
サーバーの実行
RTCサーバーを実行する前に、Redisが起動していることを確認する必要があるので、ターミナルで以下のコマンドを入力する:
デフォルトのポート(8123)を含むすべてのデフォルト設定でlocalhost上でサーバーを実行するための基本コマンドは以下のとおりである:
しかし、よりカスタマイズされたセットアップのために、コマンドに追加できるフラグもいくつかある。以下にその例をいくつか挙げる:
SSLを使用する場合、サーバーはSSL証明書の名前を serverCert.pemという名前のSSL秘密鍵ファイルが必要です。 serverKey.pem.事前に生成された自己署名SSL証明書のペアは sampleCertsディレクトリにあります。
フラグ -Sはセキュアサーバーの起動を有効にする必要があることをサーバーに伝え、フラグ -C <dir>フラグとディレクトリ名は、証明書がどこにあるかをサーバーに知らせる。これらの証明書を使用してサーバーを実行するには、次のように入力する:
利用可能なオプションの詳細については node server -h.
追加設定オプション
その他にも、ニーズに合わせて設定できるオプションがたくさんある。これらのオプションは、config.jsonファイルか環境変数で設定できます。これらのオプションのキーは、以下の例では各選択肢で最初に指定されています:
appName(config.json)またはAPP_NAME(環境変数) -- ビデオ通話のライフサイクル中、さまざまな場所に表示されるアプリケーション名。デフォルト値は「Vonage Video Conferencing」。introText(config.json) /INTRO_TEXT(環境変数) -- ウィジェットを表示する最初のページでアプリケーション名の下に表示されるテキスト。precallウィジェットを表示する最初のページで、アプリケーション名の下に表示されるテキスト。デフォルト値は'Welcome to Video Conferencing'です。showTos(config.json) /SHOW_TOS(環境変数) -- アプリが利用規約ダイアログボックスを表示し、ルームに参加する前に利用規約への同意を求めるかどうか。デフォルト値はfalse.meetingsRatePerMinute(config.json) /MEETINGS_RATE_PER_MINUTE(環境変数) -- 1分間に作成できる新しいミーティングの最大量を決定します。ユーザーはすでに存在するミーティングに参加することができます。そうでない場合は、現在サービスが利用できないというメッセージが表示されます。この値を負の数に設定すると、レート制限がオフになり、すべてのミーティングが許可されます。この値を0に設定すると、すべての新規ミーティングが拒否されます。デフォルト値は-1です。minMeetingNameLength(config.json) /MIN_MEETING_NAME_LENGTH(環境変数) -- 作成される会議名の最小の長さ。デフォルト値の0は、最小の長さがないことを示す。(設定ファイルでminMeetingNameLength設定で設定できる)。デフォルト値は0。maxUsersPerRoom(config.json) /MAX_USERS_PER_ROOM(環境変数) -- 同時に入室できるユーザーの最大数。これをデフォルトの0に設定すると、任意の数のユーザーを許可することができます。デフォルト値は0です。enableRoomLocking(config.json) /ENABLE_ROOM_LOCKING(環境変数) -- オプションメニューに「会議をロック」コマンドを含めるかどうか。このコマンドにより、ユーザーは新しい参加者が会議に参加できないようにすることができる。デフォルト値はtrue.autoGenerateRoomName(config.json) /AUTO_GENERATE_ROOM_NAME(環境変数) -- ユーザに代わって部屋名を自動生成するかどうか。この設定がオンの場合、新しい会議室の名前を生成するためにhaikunatorを使用します。オフにした場合、ユーザーはランディングページにアクセスした際に部屋/ミーティング名を入力するよう促され、入力するまで先に進むことができません。デフォルト値はtrue.enableEmoji(config.json) /ENABLE_EMOJI(環境変数) -- テキストチャットウィジェットで絵文字サポートを有効にするかどうか。
UIのカスタマイズ
Vonageオープンソース会議および録音UIのカスタマイズ方法については、以下を参照してください。 UIのカスタマイズ.
私のサービスはどのように運営されていますか?
健康状態チェックのエンドポイントは /server/health.このURLをロードして、アプリが必要なすべての外部サービスに接続できるかどうかをチェックできます。成功すると、このヘルスチェックエンドポイントは、HTTPステータスコードが200に設定されたレスポンスと、以下のようなJSONを送信します:
{
"name": "opentok-rtc",
"version": "4.1.1",
"gitHash": "312903cd043d5267bc11639718c47a9b313c1663",
"opentok": true,
"googleAuth": true,
"status": "pass"
}不合格の健康診断の例は以下のようなものである:
{
"name": "opentok-rtc",
"version": "4.1.1",
"git_hash": "312903cd043d5267bc11639718c47a9b313c1663",
"opentok": false,
"error": "OpenTok API server timeout exceeded.",
"status": "fail"
}