Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Jitsi-meetのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Jitsi-meet
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:電話]] [[Category:Voice over IP]] [[en:Jitsi-meet]] [https://jitsi.org Jitsi] はセキュアなビデオ会議ソリューションを簡単に構築・デプロイすることができるオープンソースプロジェクトのセットです。Jitsi の中心は Jitsi Videobridge と Jitsi Meet で、インターネット上で会議を行うことができます。コミュニティの他のプロジェクトを使うことでオーディオ会議やダイアルイン、録音、サイマルキャストなどの機能を有効化できます。 == インストール == ''Jitsi-meet'' はいくつかのコンポーネントで設定されています。 * {{ic|jitsi-meet}}: Web インターフェイス用のファイル。Web サーバーによって提供されるファイル経由でアクセスされます。 * {{ic|jitsi-meet-prosody}}: jitsi の韻律プラグイン * {{ic|jitsi-meet-turnserver}}: スタン/ターンサーバーを実行する設定の例 * {{ic|jitsi-videobridge}}: すべての参加者にビデオストリームを提供するビデオブリッジングサービス * {{ic|jicofo}}: Jitsi カンファレンスの焦点は誰が話すかを決定すること * [[Prosody]]: セットアップのベースとなる無料の XMPP サーバー ユーザー間のインターフェースのグラフィカルな概要は、[https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-manual こちら] に示されています。 git バージョン、nightly バージョン、または安定バージョンのいずれかを使用できます。 これらを同時にインストールすることは可能ですが、別のポートと韻律の複数のインスタンスを使用する必要があります (プラグインを仮想ホストごとにスコープすることはできません) 通常バージョンか bin バージョンを選択する必要があります。bin 1 は通常のバージョンと競合します (つまり、nightly と nightly-bin は同時にインストールできませんが、stable と nightly は可能です) 1 つだけを使用するようにしてください: * [[Jitsi-meet#設定パス|stable]] * [[Jitsi-meet#設定パス|nightly]] * [[Jitsi-meet#設定パス|git]] 一部のパッケージでは、設定例が {{ic|/usr/share/doc}} にインストールされます。必ず {{ic|/etc/pacman.conf}} でこの行をコメント化してください: {{bc|<nowiki>#NoExtract = usr/share/gtk-doc/html/* usr/share/doc/*</nowiki>}} スタンドアロンサーバーを実行するには、これらのオプションパッケージが必要です: * {{Pkg|nginx}} * {{Pkg|coturn}} * {{Pkg|prosody}} * {{Pkg|lua52}} * {{Pkg|lua52-sec}} * {{Pkg|lua52-zlib}} * {{AUR|lua52-event}} == 設定 == {{Note|この設定により、誰もが接続できるオープンなサーバーが得られます。理論的根拠については、[https://jitsi.org/blog/security/ Jitsi 哲学] を参照してください。認証については [[Jitsi-meet#ヒントとテクニック|ヒントとテクニック]] を参照してください。}} サーバー名が {{ic|example.com}} の場合、jitsi の一般的な選択は {{ic|meet.example.com}} になりますが、自由に選択できます。ただし、セキュリティの観点から、独自のサブドメインで Web アプリをホストすることが強く推奨されます。 選択したサブドメインのエントリでサーバーの DNS レコードを更新する必要があります (上記の例では {{ic|meet}}) 残りの部分では、これが完了していることを前提としています。 また、{{ic|meet.example.com}} ドメインの SSL/TLS 証明書も必要です。無料の証明書を取得する方法については、[[certbot]] を参照してください。 以下では、次のプレースホルダーが使用されます: * {{ic|JITSIFQDN}}: {{ic|jitsi-meet}} ドメイン、例: {{ic|meet.example.com}} * {{ic|SECRET_JVB_USER}}: ビデオブリッジのパスワード * {{ic|SECRET_FOCUS_USER}}: 認証者のパスワード パスワードは、{{ic|mktemp -u XXXXXXXX}} または {{ic|pwgen}} などの安全な方法で取得する必要があります。'''必ず別の安全なパスワードを使用してください。''' === 設定パス === {| class="wikitable" |- ! パッケージ ! 設定パス |- | colspan="2" {{C|'''Stable'''}} |- | {{AUR|jitsi-meet}}<br/>{{AUR|jitsi-meet-bin}} | {{ic|/etc/webapps/jitsi-meet}} |- | {{AUR|jitsi-meet-prosody}}<br/>{{AUR|jitsi-meet-prosody-bin}} | {{ic|/usr/lib/jitsi-meet-prosody}} |- | {{AUR|jitsi-meet-turnserver}}<br/>{{AUR|jitsi-meet-turnserver-bin}} | {{ic|/usr/share/doc/jitsi-meet-turnserver}} |- | {{AUR|jicofo}}<br/>{{AUR|jicofo-bin}} | {{ic|/etc/jicofo}} |- | {{AUR|jitsi-videobridge}}<br/>{{AUR|jitsi-videobridge-bin}} | {{ic|/etc/jitsi-videobridge}} |- | colspan="2" {{C|'''Nightly'''}} |- | {{AUR|jitsi-meet-nightly}}<br/>{{AUR|jitsi-meet-nightly-bin}} | {{ic|/etc/webapps/jitsi-meet-nightly}} |- | {{AUR|jitsi-meet-prosody-nightly}}<br/>{{AUR|jitsi-meet-prosody-nightly-bin}} | {{ic|/usr/lib/jitsi-meet-prosody-nightly}} |- | {{AUR|jitsi-meet-turnserver-nightly}}<br/>{{AUR|jitsi-meet-turnserver-nightly-bin}} | {{ic|/usr/share/doc/jitsi-meet-turnserver-nightly}} |- | {{AUR|jicofo-nightly}}<br/>{{AUR|jicofo-nightly-bin}} | {{ic|/etc/jicofo-nightly}} |- | {{AUR|jitsi-videobridge-nightly}}<br/>{{AUR|jitsi-videobridge-nightly-bin}} | {{ic|/etc/jitsi-videobridge-nightly}} |- | colspan="2" {{C|'''Git'''}} |- | {{AUR|jitsi-meet-git}} | {{ic|/etc/webapps/jitsi-meet-git}} |- | {{AUR|jitsi-meet-prosody-git}} | {{ic|/usr/lib/jitsi-meet-prosody-git}} |- | {{AUR|jitsi-meet-turnserver-git}} | {{ic|/usr/share/doc/jitsi-meet-turnserver-git}} |- | {{AUR|jicofo-git}} | {{ic|/etc/jicofo-git}} |- | {{AUR|jitsi-videobridge-git}} | {{ic|/etc/jitsi-videobridge-git}} |} === ループバック === jitsi-meet コンポーネントがローカル IP を使用して相互に到達できるようにします。ドメインがサーバーの実際の IP を返さない Cloudflare のようなプロキシの背後にある場合でも機能します。 {{ic|/etc/hosts}} 内: {{bc|1= 127.0.0.1 '''JITSIFQDN''' auth.'''JITSIFQDN''' ::1 '''JITSIFQDN''' auth.'''JITSIFQDN''' }} === prosody の設定 === {{Pkg|prosody}} は前提条件であり、Jitsi サービス用の構成をそれに追加する必要があります。prosody サーバーをまだセットアップしていない場合は、今すぐ {{Pkg|prosody}} と {{Pkg|lua52-sec}} をインストールしてください。prosody 設定の残りの部分では、prosody がローカルにインストールされていることを前提としています。 パッケージ {{AUR|jitsi-meet-prosody}} は、簡単にカスタマイズできる設定を提供します。 {{bc|<nowiki> # cd /etc/prosody # mkdir conf.d # cp /usr/share/doc/jitsi-meet-prosody/prosody.cfg.lua-jvb.example conf.d/jitsi.cfg.lua </nowiki>}} 次に、これを末尾に追加します: {{hc|/etc/prosody/prosody.cfg.lua|2= Include "conf.d/*.cfg.lua" }} 設定をカスタマイズします: {{hc|/etc/prosody/conf.d/jitsi.cfg.lua|2= -- replace all occurences of '''jitmeet.example.com''' by '''JITSIFQDN''' -- replace all occurences of '''focusUser''' by '''focus''' -- then add or update those section VirtualHost "'''JITSIFQDN'''" ssl = { key = "/etc/prosody/certs/'''JITSIFQDN'''.key"; certificate = "/etc/prosody/certs/'''JITSIFQDN'''.crt"; } VirtualHost "auth.'''JITSIFQDN'''" ssl = { key = "/etc/prosody/certs/auth.'''JITSIFQDN'''.key"; certificate = "/etc/prosody/certs/auth.'''JITSIFQDN'''.crt"; } authentication = "internal_hashed" }} {{hc|/etc/prosody/conf.d/jitsi.cfg.lua|2= -- Proxy to jicofo's user JID, so that it does not have to register as a component. Component "focus.'''JITSIFQDN'''" "client_proxy" target_address = "focus@auth.'''JITSIFQDN'''" }} ここで、'''JITSIFQDN''' および '''JITSIFQDN''' の証明書を生成する必要があります。 certbot を使用する場合は、次のコマンドを使用して証明書をインポートできます: # prosodyctl --root cert import /etc/letsencrypt/live 自己生成した証明書を使用したい場合は、以下を使用できます: {{bc|1= [prosody]$ prosodyctl cert generate '''JITSIFQDN''' [prosody]$ prosodyctl cert generate auth.'''JITSIFQDN''' # mv /var/lib/prosody/*.{crt,cnf,key} /etc/prosody/certs/ # trust anchor /etc/prosody/certs/'''JITSIFQDN'''.crt # trust anchor /etc/prosody/certs/auth.'''JITSIFQDN'''.crt # update-ca-trust }} ユーザー jvb と focus を登録します: {{bc|1= # prosodyctl register jvb auth.'''JITSIFQDN''' '''SECRET_JVB_USER''' # prosodyctl register focus auth.'''JITSIFQDN''' '''SECRET_FOCUS_USER''' # prosodyctl mod_roster_command subscribe focus.'''JITSIFQDN''' focus@auth.'''JITSIFQDN''' }} 次に、{{ic|prosody.service}} を [[再起動]] (または、インストールしたばかりの場合は [[起動/有効化]]) します。 === jitsi-videobridge の設定 === jitsi-videobridge の設定。'''nightly''' および '''git''' バージョンの場合は、'''-nightly''' または '''-git''' を '''/etc/jitsi-videobridge''' に追加します。 MUC_NICKNAME の場合は、'''uuidgen''' コマンドを使用します。 {{hc|/etc/jitsi-videobridge/sip-communicator.properties|2= org.jitsi.videobridge.xmpp.user.shard.DOMAIN=auth.'''JITSIFQDN''' org.jitsi.videobridge.xmpp.user.shard.PASSWORD='''SECRET_JVB_USER''' org.jitsi.videobridge.xmpp.user.shard.MUC_JIDS=JvbBrewery@internal.auth.'''JITSIFQDN''' org.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME='''UUIDGEN_RESULT''' }} {{ic|jitsi-videobridge.service}} を [[起動/有効化]] してください。 === jicofo の設定 === jicofo の設定。nightly および git バージョンの場合は、/etc/jitsi-videobridge に -nightly または -git を追加します。 {{hc|/etc/jicofo/jicofo.conf|2= jicofo { xmpp: { client: { client-proxy: "focus.'''JITSIFQDN'''" xmpp-domain: "'''JITSIFQDN'''" domain: "auth.'''JITSIFQDN'''" username: "focus" password: "'''SECRET_FOCUS_USER'''" conference-muc-jid = conference.'''JITSIFQDN''' } trusted-domains: [ "recorder.'''JITSIFQDN'''" ] } bridge: { brewery-jid: "JvbBrewery@internal.auth.'''JITSIFQDN'''" } } }} {{ic|jicofo}} サービスを[[起動|起動・有効化]]してください。 === jitsi-meet の設定 === jitsi-meet Web アプリの設定。'''nightly''' および '''git''' バージョンの場合は、'''-nightly''' または '''-git''' を '''/etc/jitsi-videobridge''' に追加します。 {{hc|/etc/webapps/jitsi-meet/config.js|2= var config = { hosts: { domain: ''''JITSIFQDN'''', // ... muc: 'conference.'''JITSIFQDN'''' }, bosh: '//'''JITSIFQDN'''/http-bind', // ... } }} === nginx の設定 === [[nginx#TLS]] の説明に従って、TLS を使用して [[nginx]] を設定します。 提供された例をコピーしてみましょう。 {{bc|1= # cd /etc/nginx # mkdir sites # cp /usr/share/doc/jitsi-meet/jitsi-meet.example sites/jitsi.conf }} 次に、それをメイン設定に含めます: {{hc|/etc/nginx/nginx.conf|2= http { // ... // this should be placed near to the close bracket of the http block include sites/*.conf; } }} 次に、jitsi 設定を自分の設定に変更します: {{hc|/etc/nginx/sites/jitsi.conf|2= server { # ... server_name '''JITSIFQDN'''; # ... # use prosody path directly ssl_certificate /etc/prosody/certs/'''JITSIFQDN'''.crt; ssl_certificate_key /etc/prosody/certs/'''JITSIFQDN'''.key; # or use letencrypt path ssl_certificate /etc/letsencrypt/live/'''JITSIFQDN'''/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/'''JITSIFQDN'''/privkey.pem; # set the config path # replace alias /etc/jitsi/meet/jitmeet.example.com-config.js by location = /config.js { alias /etc/webapps/jitsi-meet/config.js; } # ... location ~ ^/([^/?&:'"]+)/config.js$ { set $subdomain "$1."; set $subdir "$1/"; alias /etc/webapps/jitsi-meet/config.js; } } }} それから {{ic|nginx.service}} を [[再起動]] してください。 == ヒントとテクニック == === NAT 経由で実行 === 以下のポートをサーバーに転送する必要があります: HTTPS: *TCP/443 Jitsi Videobridge: *TCP/4443 *UDP/10000 === SIP への Jitsi ゲートウェイ (Jigasi) === Jitsi-meet ミーティングを従来の SIP とインターフェースするには、{{AUR|jigasi}} または {{AUR|jigasi-git}} をインストールし、prosody 設定を編集します: {{hc|/etc/prosody/prosody.cfg.lua|2= Component "callcontrol.'''JITSIFQDN'''" component_secret = "'''SECRET_JIGASI_USER'''" }} SIP アクセス認証情報を入力します ({{ic|SIPUSER}} {{ic|SIPSERVER}} および {{ic|SIPPASSWORD}}) {{hc|/opt/jigasi/jigasi-home/sip-communicator.properties|2= net.java.sip.communicator.impl.protocol.sip.acc1403273890647.ACCOUNT_UID=SIP\:"SIPUSER@SIPSERVER" net.java.sip.communicator.impl.protocol.sip.acc1403273890647.PASSWORD=SIPPASSWORD net.java.sip.communicator.impl.protocol.sip.acc1403273890647.SERVER_ADDRESS=SIPSERVER net.java.sip.communicator.impl.protocol.sip.acc1403273890647.USER_ID=SIPUSER }} SIP が接続しているデフォルトのルーム名を変更するには、上記の設定の {{ic|org.jitsi.jigasi.DEFAULT_JVB_ROOM_NAME}} を変更します。 次に、jigasi 設定を編集します {{hc|/etc/jitsi/jigasi/config|2= JIGASI_HOST=callcontrol.'''JITSIFQDN''' JIGASI_HOSTNAME=jitsi-videobridge.'''JITSIFQDN''' JIGASI_SECRET='''SECRET_JIGASI_USER''' JIGASI_OPTS="" LOGFILE=/var/log/jitsi/jigasi.log }} {{hc|/opt/jitsi-meet/config.js|2= hosts.call_control = 'callcontrol.meet.jit.si' }} 次に、{{ic|jigasi.service}} を [[起動/有効化]] します。 === ルーム作成時のアクセス制限 === ビデオ会議室の '''作成''' を認証されたユーザーに制限するには、次の手順を実行します。会議への参加者はまだ認証されていないことに注意してください。 prosody の jitsi ドメインに認証を追加し、ゲスト用の新しい仮想ホストを追加します: {{hc|/etc/prosody/conf.d/jitsi.cfg.lua|2= -- change authentification of your domain VirtualHost "'''JITSIFQDN'''" authentification = "internal_plain" -- add guest virtual host to allow anonymous user to join your room VirtualHost "guest.'''JITSIFQDN'''" authentication = "jitsi-anonymous" c2s_require_encryption = false modules_enabled = { -- copy the content of the modules_enabled -- of the VirtualHost "'''JITSIFQDN'''" -- remove only the module "muc_lobby_rooms" of the list -- example: "bosh"; "pubsub"; "ping"; -- Enable mod_ping "speakerstats"; "external_services"; "conference_duration"; } }} {{ic|jitsi-meet}} の設定ファイルを編集します。 {{hc|/etc/webapps/jitsi-meet/config.js|2= var config = { host: { // anonymous users need to use a dedicated muc without authentication anonymousdomain: 'guest.'''JITSIFQDN'''', }, } }} {{ic|jicofo}} の認証を追加します: {{hc|/etc/jicofo/jicofo.conf|2= jicofo { authentication { enabled = true type = XMPP login-url = '''JITSIFQDN''' enable-auto-login = true } } }} 次に、目的のユーザーを作成します。 {{bc|1= # prosodyctl register <username> '''JITSIFQDN''' <password> }} {{ic|jigasi}} を使用している場合のみ (知らない場合は編集しません)、匿名認証を許可しないように SIP インターフェースを編集します: {{hc|/etc/jitsi/jigasi/sip-communicator.properties|2= org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=false }} これらの手順は [https://github.com/jitsi/jicofo#secure-domain このガイド] から引用されています。 === JWTトークンによるアクセス制限 === ビデオ会議室の '''作成''' を JWT トークン (認証用の外部サービス) で認証するユーザーに制限するには、次の手順を実行します。会議への参加者はまだ認証されていないことに注意してください。 これらの依存関係をインストールします: * {{AUR|lua52-base64}} * {{Pkg|lua52-basexx}} * {{AUR|lua52-cjson}} * {{AUR|lua52-jwtjitsi}} * {{Pkg|lua52-luaossl}} prosody の jitsi ドメインに認証を追加し、ゲスト用の新しい仮想ホストを追加します: {{hc|/etc/prosody/conf.d/jitsi.cfg.lua|2= -- change authentification of your domain VirtualHost "'''JITSIFQDN'''" authentification = "token" app_id = "APP_ID" app_secret = "APP_SECRET" allow_empty_token = false modules_enabled = { -- keep existing modules and add "presence_identity"; } c2s_require_encryption = false -- add guest virtual host to allow anonymous user to join your room VirtualHost "guest.'''JITSIFQDN'''" authentication = "jitsi-anonymous" c2s_require_encryption = false modules_enabled = { -- copy the content of the modules_enabled -- of the VirtualHost "'''JITSIFQDN'''" -- remove only the module "muc_lobby_rooms" of the list -- example: "bosh"; "pubsub"; "ping"; -- Enable mod_ping "speakerstats"; "external_services"; "conference_duration"; "presence_identity"; } Component "conference.'''JITSIFQDN'''" "muc" modules_enabled = { -- add this to the modules_enabled "token_verification"; } }} {{ic|jitsi-meet}} の設定ファイルを編集します: {{hc|/etc/webapps/jitsi-meet/config.js|2= var config = { host: { // anonymous users need to use a dedicated muc without authentication anonymousdomain: 'guest.'''JITSIFQDN'''', }, } }} {{ic|jicofo}} の認証を追加します: {{hc|/etc/jicofo/jicofo.conf|2= jicofo { authentication { enabled = true type = JWT login-url = '''JITSIFQDN''' enable-auto-login = true } } }} 次に、{{ic|prosody.service}} と {{ic|jicofo.service}} を [[再起動]] (または、インストールしたばかりの場合は [[起動/有効化]]) します。 これで、JWT トークンを使用してユーザーを認証できるようになりました。 仕様はここで読むことができます: [https://github.com/jitsi/lib-jitsi-meet/blob/master/doc/tokens.md Jitsi Meet Tokens] ここでは、nodejs での簡単な例を示します: {{bc|<nowiki> const jwt = require('jsonwebtoken') const crypto = require('crypto'); const words = require('random-words') const yourDomain = "JITSIFQDN" const appId = "APP_ID" const appSecret = "APP_SECRET" const userName = "YOUR_USERNAME" const userEmail = "YOUR_EMAIL" function getBody(domain, appId, name, email, room) { const md5Email = crypto.createHash('md5').update(email).digest("hex"); const id = crypto.createHash('sha1').update(`${name}:${email}`).digest("hex") return { context: { user: { avatar: `https:/gravatar.com/avatar/${md5Email}`, name, email, id, }, group: 'users' }, "aud": "jitsi", "iss": appId, "sub": domain, room, } } const room = process.argv[2] || words({exactly: 3, join: '-'}) const data = getBody( yourDomain, appId, userName, userEmail, room, ) const options = { algorithm: 'HS256', expiresIn: '2h', } const jwtToken = jwt.sign(data, appSecret, options) console.log(`https://${yourDomain}/${room}?jwt=${jwtToken}`) </nowiki>}} === ログの評価 === パブリックに利用可能な IP アドレスの場合、上記の設定はパブリックビデオ会議サーバーにつながります。サーバーの使用を監視するには、[[journalctl]] を使用して、少なくとも漠然とした使用法を把握できます: # journalctl --unit=jicofo.service --grep="created new conference" --output cat 新しいチャットルーム作成のすべてのイベントを表示し、 # journalctl --unit=jicofo.service --grep="Stopped" --output cat チャットルームの破壊に関するすべてのイベントを表示します。 'member' を grep すると、参加者に関する (匿名の) 情報も得られます。 === 独自の STUN サーバーを実行する === デフォルトでは、Jitsi Meet は jitsi.org の STUN サーバーを使用します。{{Pkg|coturn}} を使用し、jitsi-meet の設定で設定することで、独自の STUN サーバーを簡単に実行できます。 == トラブルシューティング == === ログを確認してください === すべてのサービスユニット (つまり、{{ic|prosody.service}}、{{ic|jitsi-videobridge.service}}、{{ic|jicofo.service}}) を [[停止]] し、一度に 1 つずつ [[起動]] して各サービスユニットの [[systemd/ジャーナル|ジャーナル]] 内の新しいメッセージをたどって、何か問題があるかどうかを確認します。ほとんどの問題は、パスワードまたは設定の問題が原因です。 まったく異なるバージョンからアップグレードした場合、または構成に問題があった場合は、他のバージョンを開始してください。どの部分が間違っているかを探すよりも早いでしょう。 === Matrix ルームについてヘルプを求める === matrix ルームに参加して、そこで助けを求めることができます: * [https://matrix.to/#/#jitsimeet:matrix.org?via=matrix.org Jitsi Meet help and testing] == 参照 == * [https://jitsi.org/ プロジェクトのホームページ] * [https://community.jitsi.org/ ヘルプコミュニティ] * [https://github.com/jitsi/jitsi-meet/blob/master/doc/README.md 公式ドキュメント] * [https://tutorials.celogeek.com/books/jitsi-meet-on-arch-linux Arch Linux チュートリアルの詳細]
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:C
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:META Table cell
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
Jitsi-meet
に戻る。
検索
検索
Jitsi-meetのソースを表示
話題を追加