Невозможно начать запись в Jitsi с Jibri

Я использовал этот учебник https://github.com/jitsi/jibri и это видео https://www.youtube.com/watch?v=OHHoqKCjJ0E 2

установить джибри

Но я не могу начать запись

На стороне джитси

В /etc/prosody/conf.d/osboxes.osboxes.demoanuswadh.info.cfg.lua

  • Добавляю пользователей для jibri, записал и использую prosodyctl
  • Добавлены компоненты internal.auth и рекордер

В /etc/jitsi/meet/osboxes.demoanuswadh.info-config.js

  • Включено fileRecordingsEnabled: ture
  • Добавлен скрытый домен

В /etc/jitsi/jicofo/sip-communicator.properties

  • org.jitsi.jicofo.jibri.BREWERY=JibriBrewery@internal.auth.osboxes.demoanuswadh.info
  • org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90

это последние сто строк журнала - log.0.txt

ava:312)
at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:744)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:369)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:852)
at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:278)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
at org.eclipse.jetty.server.Server.start(Server.java:415)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
at org.eclipse.jetty.server.Server.doStart(Server.java:382)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.jitsi.jibri.MainKt.launchHttpServer(Main.kt:173)
at org.jitsi.jibri.MainKt.main(Main.kt:158)
Caused by: java.lang.ClassNotFoundException: javax.activation.DataSource
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
… 66 more
MultiException stack 2 of 2
java.lang.IllegalArgumentException: Errors were discovered while reifying SystemDescriptor(
implementation=org.glassfish.jersey.message.internal.DataSourceProvider
contracts={javax.ws.rs.ext.MessageBodyReader,javax.ws.rs.ext.MessageBodyWriter}
scope=javax.inject.Singleton
qualifiers={}
descriptorType=CLASS
descriptorVisibility=NORMAL
metadata=
rank=0
loader=null
proxiable=null
proxyForSameScope=null
analysisName=null
id=106
locatorId=1
identityHashCode=1778422985
reified=false)
at org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:705)
at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:464)
at org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2310)
at org.jvnet.hk2.internal.ServiceLocatorImpl.access$1200(ServiceLocatorImpl.java:128)
at org.jvnet.hk2.internal.ServiceLocatorImpl$9.compute(ServiceLocatorImpl.java:1395)
at org.jvnet.hk2.internal.ServiceLocatorImpl$9.compute(ServiceLocatorImpl.java:1390)
at org.glassfish.hk2.utilities.cache.internal.WeakCARCacheImpl.compute(WeakCARCacheImpl.java:128)
at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1452)
at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1377)
at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1366)
at org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getAllServiceHolders(AbstractHk2InjectionManager.java:158)
at org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getAllServiceHolders(ImmediateHk2InjectionManager.java:54)
at org.glassfish.jersey.internal.inject.Providers.getServiceHolders(Providers.java:329)
at org.glassfish.jersey.internal.inject.Providers.getProviders(Providers.java:157)
at org.glassfish.jersey.message.internal.MessageBodyFactory.initialize(MessageBodyFactory.java:265)
at org.glassfish.jersey.message.internal.MessageBodyFactory$MessageBodyWorkersConfigurator.postInit(MessageBodyFactory.java:136)
at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$2(ApplicationHandler.java:372)
at java.base/java.util.Arrays$ArrayList.forEach(Arrays.java:4390)
at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:372)
at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:316)
at org.glassfish.jersey.internal.Errors.process(Errors.java:316)
at org.glassfish.jersey.internal.Errors.process(Errors.java:298)
at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:256)
at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:315)
at org.glassfish.jersey.server.ApplicationHandler.(ApplicationHandler.java:282)
at org.glassfish.jersey.servlet.WebComponent.(WebComponent.java:335)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:178)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:370)
at javax.servlet.GenericServlet.init(GenericServlet.java:244)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:671)
at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:428)
at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize$0(ServletHandler.java:750)
at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312)
at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:744)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:369)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:852)
at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:278)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
at org.eclipse.jetty.server.Server.start(Server.java:415)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
at org.eclipse.jetty.server.Server.doStart(Server.java:382)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.jitsi.jibri.MainKt.launchHttpServer(Main.kt:173)
at org.jitsi.jibri.MainKt.main(Main.kt:158)

2020-04-18 19:06:12.543 SEVERE: [21] org.jitsi.xmpp.mucclient.MucClientManager.log() Failed to initialize and start a MucClient:
org.jivesoftware.smack.SmackException$ConnectionException: The following addresses failed: ‘osboxes.demoanuswadh.info:5222’ failed because: osboxes.demoanuswadh.info/77.525.75.82 exception: java.net.ConnectException: Connection refused (Connection refused)
at org.jivesoftware.smack.SmackException$ConnectionException.from(SmackException.java:278)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectUsingConfiguration(XMPPTCPConnection.java:619)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:902)
at org.jivesoftware.smack.AbstractXMPPConnection.connect(AbstractXMPPConnection.java:383)
at org.jitsi.xmpp.mucclient.MucClient.initializeConnectAndJoin(MucClient.java:277)
at org.jitsi.xmpp.mucclient.MucClientManager.lambda$addMucClient$0(MucClientManager.java:152)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
2020-04-18 19:06:42.348 WARNING: [30] org.jivesoftware.smackx.ping.PingManager.pingServerIfNecessary() XMPPConnection was not authenticated
2020-04-18 19:22:59.687 INFO: [17] org.jitsi.jibri.api.http.internal.InternalHttpApi.gracefulShutdown() Jibri gracefully shutting down

/Etc/jitsi/jibri/config.json

    {

    // NOTE: this is a *SAMPLE* config file, it will need to be configured with

    // values from your environment

    // Where recording files should be temporarily stored

    "recording_directory":"/xxxxxxxxxx/xxxxxxxxx/recordings",

    // The path to the script which will be run on completed recordings

    "finalize_recording_script_path": "/path/to/finalize_recording.sh",

    "xmpp_environments": [

        {

            // A friendly name for this environment which can be used

            //  for logging, stats, etc.

            "name": "prod environment",

            // The hosts of the XMPP servers to connect to as part of

            //  this environment

            "xmpp_server_hosts": [

                "osboxes.demoanuswadh.info"

            ],

            // The xmpp domain we'll connect to on the XMPP server

            "xmpp_domain": "osboxes.demoanuswadh.info",

            // Jibri will login to the xmpp server as a privileged user 

            "control_login": {

                // The domain to use for logging in

                "domain": "auth.osboxes.demoanuswadh.info",

                // The credentials for logging in

                "username": "jibri",

                "password": "xxxxxxxxxxxxxxxxxx"

            },

            // Using the control_login information above, Jibri will join 

            //  a control muc as a means of announcing its availability 

            //  to provide services for a given environment

            "control_muc": {

                "domain": "internal.auth.osboxes.demoanuswadh.info",

                "room_name": "JibriBrewery",

                "nickname": "jibri-nickname"

            },

            // All participants in a call join a muc so they can exchange

            //  information.  Jibri can be instructed to join a special muc

            //  with credentials to give it special abilities (e.g. not being

            //  displayed to other users like a normal participant)

            "call_login": {

                "domain": "recorder.osboxes.demoanuswadh.info",

                "username": "recorder",

                "password": "xxxxxxxxxxxxxxxxxxxxxx"

            },

            // When jibri gets a request to start a service for a room, the room

            //  jid will look like:

            //  roomName@optional.prefixes.subdomain.xmpp_domain

            // We'll build the url for the call by transforming that into:

            //  https://xmpp_domain/subdomain/roomName

            // So if there are any prefixes in the jid (like jitsi meet, which

            //  has its participants join a muc at conference.xmpp_domain) then

            //  list that prefix here so it can be stripped out to generate

            //  the call url correctly

            "room_jid_domain_string_to_strip_from_start": "conference.",

            // The amount of time, in minutes, a service is allowed to continue.

            //  Once a service has been running for this long, it will be

            //  stopped (cleanly).  A value of 0 means an indefinite amount

            //  of time is allowed

            "usage_timeout": "0"

        }

    ]

}

Буду признателен за любую помощь. заранее спасибо

3 ответа

В вашем журнале написано, что соединение отклонено.

2020-04-18 19:06:12.543 SEVERE: [21] org.jitsi.xmpp.mucclient.MucClientManager.log() Failed to initialize and start a MucClient:[...] failed because: osboxes.demoanuswadh.info/77.525.75.82 exception: java.net.ConnectException: Connection refused (Connection refused)

Проверить пользователя, домен и пароль в jitsi. Когда будете готовы, удалите log.0.txt или переименуйте его и перезапустите службу jibri, чтобы получить чистый журнал.

Перед установкой Jibri необходимо включить 5222порт на сервере Jitsi. Лучше, если вы можете использовать сервер Debian только для Jibri. Не сервер Jitsi. Потому что FFmpeg and chromium сервисы могут бесперебойно работать на сервере Debian.

      2020-04-18 19:06:12.543 SEVERE: [21] org.jitsi.xmpp.mucclient.MucClientManager.log() Failed to initialize and start a MucClient:
org.jivesoftware.smack.SmackException$ConnectionException: The following addresses failed: ‘osboxes.demoanuswadh.info:5222’ failed because: osboxes.demoanuswadh.info/77.525.75.82 exception: java.net.ConnectException: Connection refused (Connection refused)

В вашем журнале указано, что jibri подключается к osboxes.demoanuswadh.info (будет ли он разрешен для localhost или общедоступного IP-адреса?)

Если вы установили jitsi-meet и jibri на одном хосте, убедитесь, что osboxes.demoanuswadh.info должен быть разрешен как localhost.

Если вы установили на другой компьютер в одной подсети, osboxes.demoanuswadh.info должен быть преобразован в частный IP-адрес.

Если вы установили на другой компьютер в одной подсети, osboxes.demoanuswadh.info должен быть преобразован в общедоступный IP-адрес.

В последних двух случаях убедитесь, что ваша просодия прослушивает привязку порта 5222 к 0.0.0.0, также разрешите доступ к брандмауэру с помощью ufw (брандмауэр ubuntu)

Другие вопросы по тегам