Ubuntu18.04 まっさらな環境にOpenMeetings5.0.0-M4をインストール

少し古い記事に結構な数のアクセスをいただいているので、最新の5.0.0-M4(2020/4/23リリース)で環境構築する記事を書いてみることにした。上手く動かないって記事も見かけたので…。





目指すのはフル機能の実装。実際、ちゃんと環境ができて、ホワイトボードが使えるので、Jitsiより会議に向いていると思う。ユーザーのソフトウェアへの理解も必要だけど。

いつも通り、ここにあるチュートリアルに沿って実施。ただし、幾つかオリジナリティを出している。
Confluence / Tutorials for installing OpenMeetings and Tools

やること。

 

インストール

既にある環境に加えることもできるが、まっさらなOSを準備してアップデートした。

$ sudo apt update; sudo apt -y dist-upgrade; sudo apt -y autoremove
$ sudo reboot

 

各種ライブラリのインストール

再起動後にインストール開始。

# OpenJava11のインストール
$ sudo apt install openjdk-11-jdk openjdk-11-jdk-headless
$ java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing)

# 他のバージョンのOpenJavaが入っているなら11を選択
# 入っていないなら不要
$ sudo update-alternatives --config java

# LibreOfficeのインストール
#参照元は最新版をインストールしているが、ここではUbuntu標準のものをインストール
$ sudo apt install libreoffice

# ImageMagic,sox,ffmpegと関連ライブラリのインストール
$ sudo apt install -y imagemagick libjpeg62 zlib1g-dev sox ffmpeg vlc

ここで設定ファイルを1つ変更。
/etc/ImageMagick-6/policy.xml
…
    <!-- disable ghostscript format types -->
    <!-- <policy domain="coder" rights="none" pattern="PS" /> -->
    <policy domain="coder" rights="none" pattern="PS2" />
    <policy domain="coder" rights="none" pattern="PS3" />
    <policy domain="coder" rights="none" pattern="EPS" />
    <!-- <policy domain="coder" rights="none" pattern="PDF" /> -->
    <policy domain="coder" rights="none" pattern="XPS" />
</policymap>

※2行をコメント化

MariaDBのインストールと設定

MariaDBにユーザーとデータベースを作る。

# MariaDBのインストール(MySQLでも大丈夫だと思う)
$ sudo apt install mariadb-server
$ sudo mysql

MariaDB [(none)]> create database openmeetings default character set 'utf8';

MariaDB [(none)]> grant all privileges on openmeetings.* to 'openmeetings'@'localhost' identified by 'om_password' with grant option;

MariaDB [(none)]> quit

※データベース openmeetings、ユーザー openmeetings(これが同じなのはわかりにくいかもしれないけど、運用をはじめると楽)、パスワードはom_passwordにしてある。

Kurento Media Serverのインストールと設定

カメラ、マイク、録画、画面共有に必要なライブラリ。
リポジトリのキーをインストールする。

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83

リポジトリのソースファイルを新規作成。
/etc/apt/sources.list.d/kurento-dev.list

deb [arch=amd64] http://ubuntu.openvidu.io/6.13.0 bionic kms6
deb [arch=amd64] http://mirror.yandex.ru/ubuntu/ bionic main restricted
deb [arch=amd64] http://mirror.yandex.ru/ubuntu/ bionic universe

Kurento Media Serverのインストール。

$ sudo apt update
$ sudo apt install -y kurento-media-server

設定ファイルを変更。
/etc/default/kurento-media-server

…
# Service script settings
# =======================

START_DAEMON="true"    # If not "true", the daemon will refuse to load
DAEMON_ARGS=""         # Passed directly to the kurento-media-server executable
#DAEMON_USER="kurento"  # User as whom Kurento Media Server will run
DAEMON_USER="nobody"
DAEMON_LOG_DIR="/var/log/kurento-media-server"  # Where to store daemon logs

サービス開始。ついでに、再起動後にも起動するように有効化。

$ sudo systemctl start kurento-media-server
$ sudo /lib/systemd/systemd-sysv-install enable kurento-media-server

 

OpenMeetingsのインストール

ダウンロードページはココ、今回は5.0.0-M4をダウンロードしてくる。
Apache OpenMeetings / Downloads

$ wget https://downloads.apache.org/openmeetings/5.0.0-M4/bin/apache-openmeetings-5.0.0-M4.tar.gz

展開して配置。配置場所は/opt/open504ではなく/usr/share/openmeetingsにする。

$ tar xzvf apache-openmeetings-5.0.0-M4.tar.gz
$ mv apache-openmeetings-5.0.0-M4 openmeetings
$ mkdir -p openmeetings/webapps/openmeetings/data/streams/{1,2,3,4,5,6,7,8,9,10,11,12,13,14}
$ mkdir -p openmeetings/webapps/openmeetings/data/streams/hibernate
$ sudo chmod -R 750 openmeetings/webapps/openmeetings/data/streams
$ sudo chown -R nobody:root openmeetings/
$ sudo mv openmeetings/ /usr/share/

mysql-connectorをダウンロードして配置。
ORACLE / JDBC Driver for MySQL(Connector/J)

$ wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.20.tar.gz
$ sudo chown nobody:root mysql-connector-java-8.0.20/mysql-connector-java-8.0.20.jar
$ sudo mv mysql-connector-java-8.0.20/mysql-connector-java-8.0.20.jar /usr/share/openmeetings/webapps/openmeetings/WEB-INF/lib/

※参照元は8.0.19をダウンロードしようとしていたが、今日は8.0.20になっていてそのままではダウンロードできなかった。この後、バージョンが変わったら変わっていくだろうから適宜修正が必要になると思われる。

OpenMeetingsの自動起動スクリプトを作成

自動起動スクリプトが提供されるようになった(tomcat3という名前でダウンロードできた)。

だけど、前回と同じく幾つかの手直しをする。2020/05/22 ファイル名修正
/etc/init.d/openmeetings
#!/bin/sh
### BEGIN INIT INFO
# Provides:          Openmeetings
# Required-Start:    mysql apache2 kurento-media-server
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Apache Openmeetings Service
# Description:       Openmeetings provides video conferencing, instant messaging,
#                    white board, collaborative document editing and other groupware
#                    tools using API functions of the Red5 Streaming Server for
#                    Remoting and Streaming.
### END INIT INFO

# set the environment
# JAVA_OPTS=""
# CATALINA_OPTS=""
CATALINA_HOME=/usr/share/openmeetings
RUN_USER=nobody

# set TIME OUT values
# TIMELIMIT=10
# SLEEPTIME=40

# Function to wait until all Tomcat processes are killed
waitForTomcatToDie()
{
    PROCESSES=`ps auxwww | grep $HOME | grep 'java' | grep 'tomcat' | grep -v 'grep'`
    while [ ! -z "$PROCESSES" ] && [ $SECONDS -lt $TIMELIMIT ] && [ $TIMELIMIT -ne 0 ]; do
        echo -n "."
        sleep $SLEEPTIME
        PROCESSES=`ps auxwww | grep $USER | grep 'java' | grep 'tomcat' | grep -v 'grep'`
    done
    echo ""
    if [ ! -z "$PROCESSES" ]; then
        PROCESS_ID=`echo $PROCESSES | awk '{ print $2 }'`
        echo "Killing process: $PROCESS_ID"
        kill -9 $PROCESS_ID
    fi
}

# See how we were called.
case "$1" in
    start)
        $CATALINA_HOME/bin/startup.sh -u $RUN_USER -Dcatalina.base$CATALINA_BASE
    ;;
    # debug)
        # DEBUG_PORT=10001
        ## export JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address{DEBUG_PORT},server=y,suspend=n"
        # $CATALINA_HOME/bin/startup.sh -Dcatalina.base{CATALINA_BASE}
        # ;;
    stop)
        # $CATALINA_HOME/bin/shutdown.sh
        $CATALINA_HOME/bin/shutdown.sh
        waitForTomcatToDie
        echo "...Tomcat stopped."
        ;;
    restart)
        $0 stop
        echo "...Restarting..."
        sleep 8
        $0 start
        ;;
    status)
        status $PROG -p $PIDFILE
        RETVAL=$?
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart|status}"
        RETVAL=1
esac

exit $RETVAL

作成したファイルを有効化する。

$ sudo chmod 755 /etc/init.d/openmeetings
$ sudo systemctl daemon-reload
$ sudo /lib/systemd/systemd-sysv-install enable openmeetings
$ sudo systemctl start openmeetings

※openmeetingsの起動には少し時間が掛かる。

ココまでの作業でOpenMeetingsのWeb UIが起動するようになった。

OpenMeetingsのWeb UIによる初期設定

ここまで来たところで、ブラウザでアクセスしてみる。
https://temp.hogeserver.hogeddns.jp:5443

ウチの環境では上記のようなURLでアクセスできるけれども、IPアドレスでアクセスする場合もあるかもしれない。
Ubuntu Desktopをインストールしているなら、デスクトップから以下のURLでアクセスできる。
https://localhost:5443

アクセスすると次の画面が表示される。[NEXT >]をクリック。

データベースユーザーとパスワードを入力し、[接続試験]をクリック。
問題なければ[NEXT >]をクリック。

最初のユーザーの情報を入力し、[NEXT >]をクリック。
パスワードには大文字、小文字、数字、記号(!@#$%^&*][)を含める必要があるらしく、名前と一緒だと駄目など結構厳しい制約がある。

自己登録を拒否し、管理者だけがユーザーを登録できるようにしている。

このシステムはメールを送信することがあるので、使えるメールサーバーを入れておくと便利。ウチはメールサーバーを立てていて、LAN内からならば認証がいらないので設定項目が少ない。一方、プロバイダーのサービスを利用しているような場合は、そのプロバイダーが要求する認証情報をここに入れておくと良い(管理用のメールアカウントなど)。

構成を決めたら[NEXT >]をクリック。

ライブラリが使えるかどうかの確認。パスは通っているはずなので、空っぽのままでOKのはず。
心配なので[接続試験]のボタンを全部クリックしてOKであることを確認したら、[NEXT >]をクリック。

暗号タイプはこのままで多分問題なし。
SIPは使わないのでこのままでOK。[NEXT >]をクリック。

最後、インストールボタンと書かれているけれど、[FINISH]をクリック。

数秒でインストール処理が完了する。

FINISHボタンは反応しないので、もう一度URLを入力してアクセスする。
ウチの場合は https://temp.hogeserver.hogeddns.jp:5443 で、アクセスするとログイン画面が出てくる。

最初のユーザーの情報を入力してログインする。

これで初期設定は完了。

その他の設定

自分で用意した証明書で通信する

サービスを公開しようとしたとき、いつもエラー表示からスタートするのは格好が悪い。

SSLはOpenMeetingsで設定することもできるし、ApacheにProxyさせて設定することもできる。

ウチには「自己署名」だけれども、キーと証明書がある。これを使ってPKCS12ファイルを作成してみる。

ここではCA証明書をPKCSに入れているけれど、その先の動作を見ると必要なさそうな気がする。
ドメイン管理されている環境なら、ドメインコントローラーに署名してもらった証明書とキー、Let’s Encryptを使う場合はfullchain.pemとprivkey.pemだけで進めてもいけるんじゃないだろうか(やってみてないからよく分からないけど…)。

  • root.crt (自己CA証明書)
  • temp.crt(サーバー証明書)
  • temp.key(サーバーキー)
$ openssl pkcs12 -export -in temp.crt -inkey temp.key -certfile root.crt -out temp.p12
Enter Export Password: openmeetings[Enter]
Verifying - Enter Export Password: openmeetings[Enter]

PKCS12ファイルからキーストア(temp.jks)を作成。

$ keytool -importkeystore -deststorepass openmeetings -destkeypass openmeetings -destkeystore temp.jks -srckeystore temp.p12 -srcstoretype PKCS12 -srcstorepass openmeetings

※キーストアのパスワードは openmeetings にした。

作ったキーストアを配置し、OpenMeetingsから読み取られるように設定する。

sudo cp temp.jks /usr/share/openmeetings/conf

※パーミションを変えてもいいけれど、変えなくても読み込めるので問題なし。

/usr/share/openmeetings/conf/server.xml
…
    <Connector port="5443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/temp.jks"
                         certificateKeystorePassword="openmeetings"
                         certificateKeystoreType="JKS"
                         certificateVerification="false"
…

これでOpenMeetingsを再起動すれば、証明書が反映される。

$ sudo systemctl restart openmeetings

 

転ばぬ先の杖(タイムアウト問題への対応)

過去、会議が始まってから30分間OpenMeetingsの操作をしないままでいると、次に何か操作をしたときに切断される問題があった。

今のバージョンに同じ問題があるのかどうか分からないが、解決策を設定しておいても損はないんじゃないかと思われる。ユーザー数が数百人規模になったら違うかもしれないけど。

/usr/share/openmeetings/webapps/openmeetings/WEB-INF/web.xml
…
                </web-resource-collection>
                <auth-constraint/>
        </security-constraint>
        <!-- タイムアウト設定 ここから 480分=8時間-->
        <session-config>
                <session-timeout>
                        480
                </session-timeout>
        </session-config>
        <!-- タイムアウト設定 ここまで -->
</web-app>

 

サービス公開ポートを変更

サービスを公開するポートは443じゃなきゃだめ、とか、他のサービスと共存させたいという場合には、Apacheを使ってPorxyさせていた。

あと、OpenMeetingsに証明書を覚えさせるのが面倒なら、ここで設定することもできる。

Apacheをインストールして必要なモジュールを有効化する。

$ sudo apt install apache2
$ sudo a2enmod proxy proxy_http proxy_wstunnel rewrite ssl

設定ファイルを新規作成。
/etc/apache2/sites-available/openmeetings.conf
<VirtualHost *:443>
    ServerName temp.hogeserver.hogeddns.jp
    ServerAdmin webmaster@hogeserver.hogeddns.jp

    ProxyPreserveHost on
    RewriteEngine on
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /(.*)           wss://127.0.0.1:5443/$1 [P,L]
    RewriteCond %{HTTP:Upgrade} !=websocket [NC]
    RewriteRule /(.*)           https://127.0.0.1:5443/$1 [P,L]
    SSLProxyEngine on
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    ProxyPassReverse / https://127.0.0.1:5443/
    ProxyPassReverse /openmeetings/wicket/ wss://127.0.0.1:5443/openmeetings/wicket/

    ErrorLog  ${APACHE_LOG_DIR}/openmeetings-error.log
    CustomLog ${APACHE_LOG_DIR}/openmeetings-access.log combined

    SSLEngine on
    SSLCertificateFile    /etc/ssl/private/temp.crt
    SSLCertificateKeyFile /etc/ssl/private/temp.key
</VirtualHost>

※用意したtemp.crt, temp.keyは所定の場所に配置。

インストール直後に入っている80ポートと443ポートの設定を外し、openmeetingsの設定を投入。

$ sudo a2dissite 000-default.conf
$ sudo a2ensite openmeetings.conf
$ sudo systemctl restart apache2

 

Firewall設定

必要なポートだけを開けておけば、いくらか安全。

$ sudo ufw ssh
$ sudo ufw allow to any port 5443 proto tcp from any ←デフォルトの5443/tcpでサービス公開する場合
$ sudo ufw allow to any port 443 proto tcp from any  ←443/tcpでサービス公開する場合

 

日本語で使いやすく

最初のユーザーでログインし、管理メニューAdministration(管理) → Configuration(グローバル設定) の 15番のDefault lang ID に 15 を設定すれば、これから作られるユーザーのデフォルト言語を日本語にできそう。
自分ユーザーは、プロフィールで日本語を選べば日本語で利用できる

やったこと

OpenMeetingsにアクセスできない

ウチは色々と環境を構築しては作り直し、というのを繰り返していたせいか、Web UIによる初期設定をしようとしても、Chromeがアクセスさせてくれなかった。

危険を承知でアクセスする、という表示もなく、普通にはどうやってもアクセスできない。

自分の構築しているローカルなサーバーなので安全にアクセスができるはず。
まっしろブログ / 「HSTSが使用されているため、現在アクセスできません」の対処方法

Chromeで新しいタブを開き、
chrome://net-internals/#hsts
を入力。Delete domain security policies に当該のサイトを入れる。

Deleteボタンを押した後、当該ページをリロードすれば「安全ではありません」表示が出てきてアクセスができる。

さいごに

このシステムを業務で1年以上使っていたこともあり、懐かしさも感じるし、久しぶりに使ってみたいという気持ちにもなる。サーバーに余裕があればスタンバイさせておくのもあり。

機能が豊富なだけにユーザーを選ぶ側面があって、大人数に公開しようと考えると萎える。だから、ある程度「分かる奴」とだけで使って徐々に広げていくのが良さそうだなって思ったり。

使いやすくする方法もきっとあるだろう。画面の共有サイズのデフォルトが800×600(4:3)ってのは今時っぽくなくて、800×450(16:9)じゃないのかなとか。

このシステムもどんどん進化していくのだろう。楽しみ。

“Ubuntu18.04 まっさらな環境にOpenMeetings5.0.0-M4をインストール” への10件の返信

  1. 参考にさせていただきました。ローカルVM上で構築して動いてます。
    なお、
    「OpenMeetingsの自動起動スクリプトを作成」
    のとこで
    /etc/init.d/openmetings
    になってますが
    /etc/init.d/openmeetings
    かと思います。
    (まぁどっちでも統一されてればいいんでしょうけれども一応)

    あと今はNginxでのリバースプロキシでDDNSで公開してるURL振り分けてるんですが
    OpenMeetingsのリバースプロキシでの公開がうまくいかず四苦八苦中です。
    オフィシャルやらフォーラムの設定パクって設定してますがログイン画面までは出ますが
    そこからの画面遷移がまともに動かない状況です。。

    1. コメントありがとうございます。スクリプトのファイル名は修正ました。

      wssに関わるRewriteとProxyPassReverseの設定は、初めて設定した当時(3.xだったと思いますが)のEdgeで正しく動作しなかったときに設定したものをそのまま持ってきちゃってます。Choromeでは動作していたのですが。
      情報を探してもなかなか見つからず、ChromeでF12を押してどんな風に動作しているのか確認し、Edge(どうやったか忘れましたが)で同じ動作をするように試行錯誤しました。確か…あのときは、ログインできて会議室には入れるのだけれども音声が聞こえないとか、映像が送れないとか、そんな問題が発生していました。

      実はプロキシとリバースプロキシの本当の意味というか、運用の仕方ありかたってのを上手く理解できていないところがあるので、上手く動作したときにはそのポイントを是非教えてください。ネットワークの安全性確保で重要なポイントになりますよね。

  2. ご返信ありがとうございます。

    Nginxとの連携部分はとりあえず以下方法でうまくいきました。
    別途まとめて自分のサイトでも掲載しようと思いますが簡単に記載すると

    ・Tomcat側でCSRFとしてBad Requestになっていた
    (内部リクエストはhttpなのに、originはhttps)
    Nginx側に
    proxy_set_header X-Forwarded-Proto https;
    は設定していたが、Tomcat側にも設定が必要だった。

    ・Nginx側の設定
     ⇒Ajaxを有効にする方法と、X-Forwarded-Protoを使うことでOK

    Server設定等は省略してます。
    本設定だけ別Confにするイメージです。

    map $http_upgrade $connection_upgrade {
    default upgrade;
    ” close;
    }

    server{}省略

    location / {
    proxy_pass http://xxx.xxx.xxx.xxx:5080;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto https;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    }

    これと、server.xmlの
    <Host name="localhost" appBase="webapps"

    以下に

    を追加して正常に動作しています。
    StackOverflowの
    https://stackoverflow.com/questions/19916906/nginx-managed-ssl-with-tomcat-7
    が役に立ちました。
    なお、とりあえず動作していますが、各ディレクティブがすべて必要かどうかまではまだ検証していません。

    リバースプロキシの運用に関しては、当方の場合、
    ・インターネット⇒ポート開放済みRT⇒Nginx(リバースプロキシ)⇒複数の公開サーバ
    という構成で、DDNSでIPアドレスを割り当てた複数のhttpsサイトをLetsEncryptを使用して公開しています。
    同一IPに対して異なるURLを多数公開するための手段としてリバースプロキシを使っていますので、複数種類の
    サーバを公開するのにアドレスを確保しないで済む、という程度の意味はあると思いますが、運用上の在り方と
    いうと悩ましいところですね。。。

    実は以前からいくつかコンテンツを参考にさせていただいていたりします。
    またちょこちょこ覗きに来ます。
    ありがとうございました。

  3. 不等号で囲むと消えちゃうんですね。
    もしかすると管理側には見えているかもしれませんが一応。。閉じ側を省略しています。
    <Valve className="org.apache.catalina.valves.RemoteIpValve"
    remoteIpHeader="x-forwarded-for"
    remoteIpProxiesHeader="x-forwarded-by"
    protocolHeader="x-forwarded-proto"

    1. 情報提供ありがとうございます。
      メッセージの承認が必要になっていました。多分ですがURLが貼ってあったからで、今し方、コメントを承認して表示されました。

      CSRFでしたか…すっかり忘れていました。もしかして…とお伝えできず失礼しました。

      以前、httpとhttpsの差をどうしても設定で逃げられず、ソースコードに手を入れてCSRFを無効化していました。
      https://rohhie.net/openmeetings-still-works-with-proxy-danger
      バージョン3の頃は相手に画面の制御を渡す機能がありまして、それがjnlpで実装されており、それを使うためにサーバーを信用する必要があって、その手順がユーザーに結構な負担を掛ける系だったので5080ポートにPorxyさせざるを得ず、ソースに手を入れる道を選びました。
      バージョンが上がるたびにソースに手を入れ、バージョン4になってもそれが続き…と結構な手間を掛けていたのに。

      今回示して頂いた方法であれば、(まだ試していませんが)設定で問題回避できたということになりますね。
      当時、あちこち解決方法を探して回り、どこにも解決策はないと思っていましたが、示して頂いた記事が6年半前に出ていたとは… orz
      とはいえ、今見ても x-forwarded* の意味は分からないんですが ^^;

      複数サイトについて、リバースプロキシで複数サイトを運営するということには全く気付いていませんでした。その使い方ができますね、確かにそうです!

      私のところは、今はこのサイトと家族用サイトの2つを運営していますが、2つであればプロバイダが許してくれるので、ルーターにPPPoEをブリッジさせて2つのIPアドレスを使う形にして、家族用サイトを保護(?)しています。まとまっていませんが、記事はこちらです。
      https://rohhie.net/migrate-to-v6-plus-while-maintaining-open-servers

      これはルーターをファイアウォール代わりに使う考え方なのですが、その点では恐らく同等程度の安全性が確保できるものの、リバースプロキシの方がよりインテリジェンスな振り分けができそうだなと思いました。ルーター扱いすると、ポートでの振り分けしかできませんので。

      コメントをいただいたことで、考え方を整理する良いきっかけになりました。
      またコメントをいただける日を楽しみにしております。
      別世界の方にもお邪魔させて頂きます。

      ありがとうございました。

  4. 詳しい解説ありがとうございます。

    現在openmetings 3.3.0を運用しています
    FlashPlayerなどの問題でopenmetings 5.0.0に更新しようとして
    このサイトにたどり着きました。

    テスト環境にUbuntu18.04をインストールして試行中です
    (タイトル通りまっさらからのスタートです)

    詳しい解説のおかげで、取り敢えずは動くようになりましたが
    会議室に入室した段階でおかしな現象に悩まされています

    1人だけ会議室に入室した状態でマイクに向かって発声すると
    スピーカーから自分の声が聞こえます。
    マイク → 自分のPC → サーバー → 自分のPC → スピーカー
    みたいで、発声のあとスピーカーからの音声に若干のタイムラグが有ります

    openmetings 3.3.0では発生していませんので
    openmetings 5.0.0固有の物なのか、私の設定か不明です

    グローバル設定の65番に
    mic.echo.cancellation
    がありますがON OFFどちらでも同じです。

    同様の現象は起きていませんでしょうか。
    どうかよろしくお願いします。

    1. それは気になって会議に集中できない現象ですね。最近、Web会議しながら、他の電話が掛かってきたりすると本当に気になるんですよね、イヤホンでやってるせいか集中しちゃってる気がします。

      書いていただいた問題はうちでは発生しませんでした。ただ、この環境は動作を簡単に確認したところで潰し、長期間の運用はしていませんので、もしかしたら気付かなかっただけなのかもしれません。

      既に運用されている方ということなので、問題のほとんどは事前に解消されているでしょうから、セッション管理で問題が発生しているのかな?と思ってしまいますね。

      Openmeetings運用当時、自分の声が遅れてくるときの原因は以下の2つだけでした。
      (1) 隣の席の人がマイクを入れていた
      (2) 遠隔の相手が使っていた装置の相性が悪くて、相手が音を折り返していた
      1人で入っているとのことですので当てはまりませんね。

      試してみるとするなら、
      ・新しいロジックになっているので、念のため別の装置でアクセスしてみる。
      ・旧データーをエクスポートしてきて、こちらでインポートしているなら、一旦データベースをドロップしてまっさらからデータベースを作り直してみる。
      ・あえて1つ2つ前のバージョンで試してみる。
      ことくらいでしょうか。恐らく同じ手順でインストールはできるだろうと思いますので。

      もしこのやり方でインストールしているなら、インストールのし直しは
      ・サービスを止めて、現在インストールした先のディレクトリを移動。
      ・新しいフォルダに別バージョンをインストール。
      ・データーベースをドロップして作り直す。
      ・起動する。
      って感じで試すことはできるかなと思います。

      1. 返答ありがとうございます

        1人で会議室に入室してテストしている時は
        Web UIによる初期設定時に作成したユーザーで入室しているので
        はかのユーザーは作成もしていません

        データベースの指摘がありましたが
        現在の3.3.0もそうですが
        ユーザーは全部で15人くらいで同時入室するのも4人くらいですので
        データベースはWeb UIによる初期設定時に出てくる組み込み済みデータベースH2を使用していて
        MariaDBやmysqlは使用していません。
        もう一度このサイトの通りMariaDBでインストールしてみます。

        お手数をお掛けして申し訳ございませんでした。

        1. なるほど。データベースについて書いたのは、現行のシステムの何らかを引き継いだ結果?かなぁ程度の思いでしたので、まっさらなら原因にはならないのでしょう。私がMariaDBを利用したのは参考にした手順書にそれがあったからで、それに元々WordpressでDB入ってるし…程度の理由からで、これじゃなきゃならないってことは全くないと思います。

          そうなると、ろっひー的に思う要素は2つだけです。
          ・機器との相性
          ・バージョンでたまたま何らかのバグを引き起こしている

          機器との相性については、とあるメーカーのWeb会議システム製品でどうしても処理できないマイク・スピーカーというのがあったらしく、会議をすると音が割れる、何度接続し直しても位置をずらしても駄目というのがありました。設定可能なエコーキャンセル、マイクゲイン等の設定の組み合わせを全て試して駄目でした。

          バージョンによる問題については、Openmeetingsでは過去のバージョンで(特に4近辺だった記憶ですが)最後に入った人の声が全然聞こえない、で、接続し直すと今度は別の人の声が聞こえなくなる、といったセッション管理とミキシングの問題が発生していた記憶があります。こうなったときは別の会議室に入り直して運用してました。ユーザーが1人で1接続ということでしたから関係なさそうですが、もしかしたら関係あるのかもしれないな程度です。

          なお、テストについてですが、1人で1つのアカウントを使って2接続させてました。自分メモとはいえ、記事にするからには最低でも簡単なテストをしないと…と思いつつこの時は2接続なんですけれども。

お気軽にどうぞ ~ 投稿に関するご意見・感想・他

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です