<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi,</p>
    <p>I tried to setup a jitsi server on my DragonFlyBSD machine. I've
      encountered a few problems, some of them fatal as far as I
      understand. Could anyone help? I understand that this is not a
      "top priority" problem but anyway :) FYI we have a lot of free
      bandwidth and capacity in our servers and we do a lot of virtual
      conferences lately for well known reasons.<br>
    </p>
    <p>I found two quite useful guides, easy to follow:</p>
    <p><a class="moz-txt-link-freetext" href="https://honeyguide.eu/posts/jitsi-freebsd/?utm_source=discoverbsd">https://honeyguide.eu/posts/jitsi-freebsd/?utm_source=discoverbsd</a></p>
    <p><a class="moz-txt-link-freetext" href="https://www.bobeager.uk/jitsi.html">https://www.bobeager.uk/jitsi.html</a> (Warning! the jitsi-meet
      config.js doesn't work the way he described!)<br>
    </p>
    <p>Of course these are for FreeBSD, but they are very helpful
      anyway. It's also evident that the relevant DragonFly packages are
      actually mechanically produced from the corresponding FreeBSD
      ones.<br>
    </p>
    <p>1. <tt>net-im/jitsi-videobridge</tt> and <tt>net-im/jicofo</tt>
      both use the <tt>${name}_env_file</tt> mechanism in the
      corresponding <tt>rc</tt> files. This is quite new in FreeBSD
      (available from 12.x), and evidently it's not ported to DragonFly.
      I ended up hand modifying the rc script and sourcing the env file,
      an easy fix.</p>
    <p><tt>/usr/local/etc/rc.d/jicofo</tt>:</p>
    <p><tt>...</tt></p>
    <p><tt>{</tt><tt><br>
      </tt><b><tt>        . $jicofo_env_file</tt></b><tt><br>
      </tt><tt>        daemon -p ${pidfile} -o /var/log/${name}.log \</tt><tt><br>
      </tt><tt>                ${command} -Xmx${MAX_MEMORY} \</tt><tt><br>
      </tt><tt>...</tt></p>
    <p><br>
    </p>
    <p>2. jitsi-videobridge is throwing java exceptions (log excerpt
      below). I found the <font color="#ff0034"><b>bold, red</b></font>
      parts especially "disturbing". This component should work smoothly
      after a very minimal configuration:<br>
    </p>
    <p><tt>/usr/local/etc/jitsi/videobridge/jitsi-videobridge.conf</tt>:<br>
    </p>
    <p><tt>JVB_XMPP_HOST=localhost</tt><tt><br>
      </tt><tt>JVB_XMPP_DOMAIN=meet.somedomain.hu</tt><tt><br>
      </tt><tt>JVB_XMPP_PORT=5347</tt><tt><br>
      </tt><tt>JVB_XMPP_SECRET=SomeSecret</tt></p>
    <p><tt>VIDEOBRIDGE_MAX_MEMORY=3072m</tt><tt><br>
      </tt>
    </p>
    <tt>
    </tt>
    <p><tt>/usr/local/etc/jitsi/videobridge/sip-communicator.properties</tt>:<br>
    </p>
    <tt>org.jitsi.videobridge.TCP_HARVESTER_PORT=4443</tt><tt><br>
    </tt>
    <p>I'm quite sure my jitsi-videobridge doesn't work but I'm not even
      sure. It should listen on the tcp port 4443 and the udp port 10000
      but according to <tt>netstat -na</tt> it does not, so it's very
      likely not working.<br>
    </p>
    <p>Thanks for any help in advance,<br>
    </p>
    <p>Regards:</p>
    <pre class="moz-signature" cols="72">Balázs
</pre>
    <p><tt><br>
      </tt></p>
    <p><tt>2021-01-27 18:09:45.271 INFO: [1] NewConfig$1.invoke#88:
        Loaded NewConfig with origin: merge of system properties,system
        properties,reference.conf @
<a class="moz-txt-link-freetext" href="jar:file:/usr/local/share/java/classes/jitsi-videobridge.jar!/reference.conf">jar:file:/usr/local/share/java/classes/jitsi-videobridge.jar!/reference.conf</a>:
        1</tt></p>
    <tt>2021-01-27 18:09:45.276 INFO: [1]
      LegacyConfigFileLoader$Companion.load#40: Attempting to load
      legacy config file at path /usr/local/etc/jitsi, videobridge,
      sip-communicator.properties</tt><tt><br>
    </tt><tt>2021-01-27 18:09:45.473 INFO: [1]
      LegacyConfigFileLoader$Companion.load#40: Attempting to load
      legacy config file at path /usr/local/etc/jitsi, videobridge,
      sip-communicator.properties</tt><tt><br>
    </tt><tt>2021-01-27 18:09:45.474 INFO: [1]
      JitsiConfig$Companion.reload#40: Reloading.</tt><tt><br>
    </tt><tt>2021-01-27 18:09:45.483 INFO: [1] NewConfig$1.invoke#88:
      Loaded NewConfig with origin: merge of system properties,system
      properties,reference.conf @
<a class="moz-txt-link-freetext" href="jar:file:/usr/local/share/java/classes/jitsi-videobridge.jar!/reference.conf">jar:file:/usr/local/share/java/classes/jitsi-videobridge.jar!/reference.conf</a>:
      1</tt><tt><br>
    </tt><tt>2021-01-27 18:09:45.483 INFO: [1]
      LegacyConfigFileLoader$Companion.load#40: Attempting to load
      legacy config file at path /usr/local/etc/jitsi, videobridge,
      sip-communicator.properties</tt><tt><br>
    </tt><tt>2021-01-27 18:09:45.484 INFO: [1]
      LegacyConfigFileLoader$Companion.load#40: Attempting to load
      legacy config file at path /usr/local/etc/jitsi, videobridge,
      sip-communicator.properties</tt><tt><br>
    </tt><tt>2021-01-27 18:09:45.523 INFO: [13]
      ConfigurationActivator.start#45: Registered the
      LegacyConfigurationServiceShim in OSGi.</tt><tt><br>
    </tt><tt>2021-01-27 18:09:45.526 INFO: [13]
      AbstractVersionActivator.start#91: VersionService registered: JVB
      2.1.SNAPSHOT</tt><tt><br>
    </tt><tt>2021-01-27 18:09:45.542 INFO: [13]
      org.eclipse.jetty.util.log.Log.initialized: Logging initialized
      @648ms to org.eclipse.jetty.util.log.JavaUtilLog</tt><tt><br>
    </tt><tt>2021-01-27 18:09:45.641 INFO: [13]
      org.eclipse.jetty.server.Server.doStart: jetty-9.4.z-SNAPSHOT;
      built: 2019-02-15T16:53:49.381Z; git:
      eb70b240169fcf1abbd86af36482d1c49826fa0b; jvm 1.8.0_181-b13</tt><tt><br>
    </tt><tt>2021-01-27 18:09:47.488 INFO: [13]
      org.eclipse.jetty.server.handler.ContextHandler.doStart: Started
      o.e.j.s.ServletContextHandler@1f475259{/,null,AVAILABLE}</tt><tt><br>
    </tt><tt>2021-01-27 18:09:47.501 INFO: [13]
      org.eclipse.jetty.server.AbstractConnector.doStart: Started
      ServerConnector@14a826bd{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}</tt><tt><br>
    </tt><tt>2021-01-27 18:09:47.501 INFO: [13]
      org.eclipse.jetty.server.Server.doStart: Started @2608ms</tt><tt><br>
    </tt><tt>2021-01-27 18:09:47.512 INFO: [13]
      AbstractJettyBundleActivator.start#613: Not starting the Jetty
      service for
      org.jitsi.videobridge.websocket.WebSocketBundleActivator(port=-1)</tt><tt><br>
    </tt><font color="#ff0034"><tt><b>2021-01-27 18:09:47.525 WARNING:
          [13] UlimitCheck.printUlimits#111: Running with open files
          limit null (hard null), thread limit null (hard null). These
          values are too low and they will limit the number of
          participants that the bridge can serve simultaneously.</b></tt><tt><b><br>
        </b></tt></font><tt>2021-01-27 18:09:47.528 INFO: [13]
      VideobridgeExpireThread.start#92: Starting with 60 second
      interval.</tt><tt><br>
    </tt><tt>2021-01-27 18:09:47.529 WARNING: [13]
      Videobridge.start#909: No authorized source regexp configured.
      Will accept requests from any source.</tt><tt><br>
    </tt><tt>2021-01-27 18:09:47.632 INFO: [13]
      JitsiConfig$Companion.reload#40: Reloading.</tt><tt><br>
    </tt><tt>2021-01-27 18:09:47.638 INFO: [13] NewConfig$1.invoke#88:
      Loaded NewConfig with origin: merge of system properties,system
      properties,reference.conf @
<a class="moz-txt-link-freetext" href="jar:file:/usr/local/share/java/classes/jitsi-videobridge.jar!/reference.conf">jar:file:/usr/local/share/java/classes/jitsi-videobridge.jar!/reference.conf</a>:
      1</tt><tt><br>
    </tt><tt>2021-01-27 18:09:47.638 INFO: [13]
      LegacyConfigFileLoader$Companion.load#40: Attempting to load
      legacy config file at path /usr/local/etc/jitsi, videobridge,
      sip-communicator.properties</tt><tt><br>
    </tt><tt>2021-01-27 18:09:47.639 INFO: [13]
      LegacyConfigFileLoader$Companion.load#40: Attempting to load
      legacy config file at path /usr/local/etc/jitsi, videobridge,
      sip-communicator.properties</tt><tt><br>
    </tt><tt>2021-01-27 18:09:47.648 INFO: [13]
      AbstractHealthCheckService.start#96: Started with interval=10000,
      timeout=PT30S, maxDuration=PT3S, stickyFailures=false.</tt><tt><br>
    </tt><tt>2021-01-27 18:09:47.660 INFO: [13]
      OctoRelayService.start#62: Octo relay is disabled.</tt><tt><br>
    </tt><tt>2021-01-27 18:09:47.723 INFO: [28]
      ComponentBase.loadConfig#202: Component org.jitsi.videobridge.
      config: </tt><tt><br>
    </tt><tt>2021-01-27 18:09:47.723 INFO: [28]
      ComponentBase.loadConfig#203:   ping interval: 10000 ms</tt><tt><br>
    </tt><tt>2021-01-27 18:09:47.724 INFO: [28]
      ComponentBase.loadConfig#204:   ping timeout: 5000 ms</tt><tt><br>
    </tt><tt>2021-01-27 18:09:47.724 INFO: [28]
      ComponentBase.loadConfig#205:   ping threshold: 3</tt><tt><br>
    </tt><tt>2021-01-27 18:09:48.157 INFO: [24]
      org.ice4j.ice.harvest.MappingCandidateHarvesters.initialize:
      Initialized mapping harvesters (delay=513ms). 
      stunDiscoveryFailed=false</tt><tt><br>
    </tt><tt>2021-01-27 18:09:57.675 INFO: [25]
      Videobridge.createConference#319: create_conf, id=c552d97d6078c229
      gid=null logging=false</tt><tt><br>
    </tt><tt>2021-01-27 18:09:57.690 INFO: [25]
      TaskPools.<clinit>#81: TaskPools detected 8 processors,
      creating the CPU pool with that many threads</tt><tt><br>
    </tt><tt>2021-01-27 18:09:57.831 INFO: [25]
      org.ice4j.ice.harvest.AbstractUdpListener.<init>:
      Initialized AbstractUdpListener with address
      217.116.43.47:10000/udp. Receive buffer size 419430 (asked for
      1048 5760)</tt><tt><br>
    </tt><tt>2021-01-27 18:09:57.832 INFO: [25]
      org.ice4j.ice.harvest.SinglePortUdpHarvester.<init>:
      Initialized SinglePortUdpHarvester with address
      217.116.43.47:10000/udp</tt><tt><br>
    </tt><font color="#ff0034"><b><tt>Error loading native library:
          java.lang.Exception: Unsupported OS: DragonFlyBSD</tt></b><b><tt><br>
        </tt></b></font><tt>2021-01-27 18:09:58.607 SEVERE: [25]
      RecurringRunnableExecutor.run#230: The invocation of the method
      org.jitsi.videobridge.health.Health.run() threw an exception.</tt><tt><br>
    </tt><tt>java.lang.UnsatisfiedLinkError:
      org.jitsi_modified.sctp4j.SctpJni.usrsctp_init(I)Z</tt><tt><br>
    </tt><tt>        at
      org.jitsi_modified.sctp4j.SctpJni.usrsctp_init(Native Method)</tt><tt><br>
    </tt><tt>        at
      org.jitsi_modified.sctp4j.Sctp4j.init(Sctp4j.java:40)</tt><tt><br>
    </tt><tt>        at
org.jitsi.videobridge.sctp.SctpManager.<clinit>(SctpManager.java:54)</tt><tt><br>
    </tt><tt>        at
      org.jitsi.videobridge.Endpoint.createSctpConnection(Endpoint.java:860)</tt><tt><br>
    </tt><tt>        at
      org.jitsi.videobridge.health.Health.check(Health.java:77)</tt><tt><br>
    </tt><tt>        at
      org.jitsi.videobridge.health.Health.performCheck(Health.java:211)</tt><tt><br>
    </tt><tt>        at
org.jitsi.health.AbstractHealthCheckService.run(AbstractHealthCheckService.kt:144)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor.run(RecurringRunnableExecutor.java:216)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor.runInThread(RecurringRunnableExecutor.java:292)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor.access$000(RecurringRunnableExecutor.java:36)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor$1.run(RecurringRunnableExecutor.java:328)</tt><tt><br>
    </tt><tt>2021-01-27 18:10:07.677 INFO: [25]
      Videobridge.createConference#319: create_conf, id=2cf3fa4f00c2ff3a
      gid=null logging=false</tt><tt><br>
    </tt><tt>2021-01-27 18:10:07.683 SEVERE: [25]
      RecurringRunnableExecutor.run#230: The invocation of the method
      org.jitsi.videobridge.health.Health.run() threw an exception.</tt><tt><br>
    </tt><tt>java.lang.NoClassDefFoundError: Could not initialize class
      org.jitsi.videobridge.sctp.SctpManager</tt><tt><br>
    </tt><tt>        at
      org.jitsi.videobridge.Endpoint.createSctpConnection(Endpoint.java:860)</tt><tt><br>
    </tt><tt>        at
      org.jitsi.videobridge.health.Health.check(Health.java:77)</tt><tt><br>
    </tt><tt>        at
      org.jitsi.videobridge.health.Health.performCheck(Health.java:211)</tt><tt><br>
    </tt><tt>        at
org.jitsi.health.AbstractHealthCheckService.run(AbstractHealthCheckService.kt:144)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor.run(RecurringRunnableExecutor.java:216)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor.runInThread(RecurringRunnableExecutor.java:292)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor.access$000(RecurringRunnableExecutor.java:36)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor$1.run(RecurringRunnableExecutor.java:328)</tt><tt><br>
    </tt><tt>2021-01-27 18:10:17.677 INFO: [25]
      Videobridge.createConference#319: create_conf, id=cd809d65b2aa732a
      gid=null logging=false</tt><tt><br>
    </tt><tt>2021-01-27 18:10:17.683 SEVERE: [25]
      RecurringRunnableExecutor.run#230: The invocation of the method
      org.jitsi.videobridge.health.Health.run() threw an exception.</tt><tt><br>
    </tt><tt>java.lang.NoClassDefFoundError: Could not initialize class
      org.jitsi.videobridge.sctp.SctpManager</tt><tt><br>
    </tt><tt>        at
      org.jitsi.videobridge.Endpoint.createSctpConnection(Endpoint.java:860)</tt><tt><br>
    </tt><tt>        at
      org.jitsi.videobridge.health.Health.check(Health.java:77)</tt><tt><br>
    </tt><tt>        at
      org.jitsi.videobridge.health.Health.performCheck(Health.java:211)</tt><tt><br>
    </tt><tt>        at
org.jitsi.health.AbstractHealthCheckService.run(AbstractHealthCheckService.kt:144)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor.run(RecurringRunnableExecutor.java:216)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor.runInThread(RecurringRunnableExecutor.java:292)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor.access$000(RecurringRunnableExecutor.java:36)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor$1.run(RecurringRunnableExecutor.java:328)</tt><tt><br>
    </tt><tt>2021-01-27 18:10:27.697 INFO: [25]
      Videobridge.createConference#319: create_conf, id=4bb74965720a56d9
      gid=null logging=false</tt><tt><br>
    </tt><tt>2021-01-27 18:10:27.702 SEVERE: [25]
      RecurringRunnableExecutor.run#230: The invocation of the method
      org.jitsi.videobridge.health.Health.run() threw an exception.</tt><tt><br>
    </tt><tt>java.lang.NoClassDefFoundError: Could not initialize class
      org.jitsi.videobridge.sctp.SctpManager</tt><tt><br>
    </tt><tt>        at
      org.jitsi.videobridge.Endpoint.createSctpConnection(Endpoint.java:860)</tt><tt><br>
    </tt><tt>        at
      org.jitsi.videobridge.health.Health.check(Health.java:77)</tt><tt><br>
    </tt><tt>        at
      org.jitsi.videobridge.health.Health.performCheck(Health.java:211)</tt><tt><br>
    </tt><tt>        at
org.jitsi.health.AbstractHealthCheckService.run(AbstractHealthCheckService.kt:144)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor.run(RecurringRunnableExecutor.java:216)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor.runInThread(RecurringRunnableExecutor.java:292)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor.access$000(RecurringRunnableExecutor.java:36)</tt><tt><br>
    </tt><tt>        at
org.jitsi.utils.concurrent.RecurringRunnableExecutor$1.run(RecurringRunnableExecutor.java:328)</tt><tt><br>
    </tt><br>
  </body>
</html>