jitsi / jitsi-videobridge

Jitsi Videobridge is a WebRTC compatible video router or SFU that lets build highly scalable video conferencing infrastructure (i.e., up to hundreds of conferences per server).
https://jitsi.org/jitsi-videobridge
Apache License 2.0
2.91k stars 992 forks source link

Jitsi videobridge plugin for openfire is broken #178

Open deleolajide opened 8 years ago

deleolajide commented 8 years ago

Followed the notes in build.xml

<!--
    The easiest way to build the plugin is:
    1. execute in jitsi-videobridge $ ant clean dist.openfire
    2. add a soft link in openfire source plugins
        folder (openfire_src_X.X.X/src/plugins)
        jitsiVideobridge -> jitsi-videobridge/dist/openfire/jitsiVideobridge
    3. in openfire build folder (openfire_src_X.X.X/build) execute:
        $ ant plugin -Dplugin=jitsiVideobridge
-->

STEP 3 is BROKEN

 [of.javac] C:\Projects\ignite\openfire\src\plugins\jitsivideobridge\src\java\org\jitsi\videobridge\openfire\PluginImpl.java:149: error: constructor ComponentImpl in class ComponentImpl cannot be applied to given types;
 [of.javac]         Component component = new ComponentImpl();
 [of.javac]                               ^
 [of.javac]   required: String,int,String,String,String
 [of.javac]   found: no arguments
 [of.javac]   reason: actual and formal argument lists differ in length
 [of.javac] 1 error
     [echo] Error building plugin: jitsivideobridge. Exception:
bgrozev commented 8 years ago

The plugin for openfire is not maintained here. It looks like the plugin hasn't been updated after a change in jitsi-videobridge over 5 months ago.

bgrozev commented 8 years ago

My bad! I wasn't aware that it's here. Apologies.

thedjnK commented 8 years ago

To add to this, the jar files on https://download.jitsi.org/jitsi-videobridge/openfire/ have apparently been created in june but are also broken. They can be installed but attempting to uninstall them from the openfire web interface fails. They continually error as can be seen in http://pastebin.com/uHVEaF98 and the title in in the server tab is 'plugin.title' - this page is just a broken table.

guusdk commented 8 years ago

Most of the issues described here should be fixed by #328 and #330. Could you guys retest?

deleolajide commented 8 years ago

@guusdk thanks for the PR. I have done a retest and can confirm build now works and plugin gets built ok. I have tested the jitsivideobridge in Openfire 4.0.3, it loads ok and I can see heartbeats to the jitsi-videobridge component, but there are some errors at startup

2016.10.21 21:27:22 org.jitsi.impl.neomedia.device.DeviceSystem - Failed to initialize org.jitsi.impl.neomedia.device.PortAudioSystem
java.lang.reflect.UndeclaredThrowableException
    at org.jitsi.impl.neomedia.device.DeviceSystem.invokeDeviceSystemInitialize(DeviceSystem.java:441)
    at org.jitsi.impl.neomedia.device.DeviceSystem.invokeDeviceSystemInitialize(DeviceSystem.java:348)
    at org.jitsi.impl.neomedia.device.DeviceSystem.<init>(DeviceSystem.java:493)
    at org.jitsi.impl.neomedia.device.AudioSystem.<init>(AudioSystem.java:204)
    at org.jitsi.impl.neomedia.device.AudioSystem2.<init>(AudioSystem2.java:81)
    at org.jitsi.impl.neomedia.device.PortAudioSystem.<init>(PortAudioSystem.java:163)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.jitsi.impl.neomedia.device.DeviceSystem.initializeDeviceSystems(DeviceSystem.java:288)
    at org.jitsi.impl.neomedia.device.DeviceSystem.initializeDeviceSystems(DeviceSystem.java:230)
    at org.jitsi.impl.neomedia.device.DeviceSystem.initializeDeviceSystems(DeviceSystem.java:160)
    at org.jitsi.impl.neomedia.device.DeviceConfiguration.<init>(DeviceConfiguration.java:347)
    at org.jitsi.impl.neomedia.MediaServiceImpl.<init>(MediaServiceImpl.java:160)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.jitsi.impl.libjitsi.LibJitsiImpl$ServiceLock.initializeService(LibJitsiImpl.java:196)
    at org.jitsi.impl.libjitsi.LibJitsiImpl$ServiceLock.getService(LibJitsiImpl.java:131)
    at org.jitsi.impl.libjitsi.LibJitsiImpl.getService(LibJitsiImpl.java:91)
    at org.jitsi.impl.libjitsi.LibJitsiOSGiImpl.getService(LibJitsiOSGiImpl.java:95)
    at org.jitsi.service.libjitsi.LibJitsi.invokeGetServiceOnImpl(LibJitsi.java:172)
    at org.jitsi.service.libjitsi.LibJitsi.getMediaService(LibJitsi.java:124)
    at org.jitsi.videobridge.Videobridge.start(Videobridge.java:1451)
    at org.jitsi.videobridge.VideobridgeBundleActivator.start(VideobridgeBundleActivator.java:61)
    at org.jitsi.impl.osgi.framework.BundleImpl.start(BundleImpl.java:293)
    at org.jitsi.impl.osgi.framework.launch.FrameworkImpl.startLevelChanged(FrameworkImpl.java:460)
    at org.jitsi.impl.osgi.framework.startlevel.FrameworkStartLevelImpl$Command.run(FrameworkStartLevelImpl.java:126)
    at org.jitsi.impl.osgi.framework.AsyncExecutor.runInThread(AsyncExecutor.java:111)
    at org.jitsi.impl.osgi.framework.AsyncExecutor.access$000(AsyncExecutor.java:17)
    at org.jitsi.impl.osgi.framework.AsyncExecutor$1.run(AsyncExecutor.java:220)
Caused by: java.lang.UnsatisfiedLinkError: org.jitsi.impl.neomedia.device.CoreAudioDevice.initDevices()I
    at org.jitsi.impl.neomedia.device.CoreAudioDevice.initDevices(Native Method)
    at org.jitsi.impl.neomedia.device.PortAudioSystem.doInitialize(PortAudioSystem.java:198)
    at org.jitsi.impl.neomedia.device.DeviceSystem.initialize(DeviceSystem.java:642)
    at org.jitsi.impl.neomedia.device.DeviceSystem$1.run(DeviceSystem.java:393)
2016.10.21 21:27:22 org.jitsi.impl.neomedia.device.DeviceSystem - Failed to initialize org.jitsi.impl.neomedia.device.DirectShowSystem
java.lang.reflect.UndeclaredThrowableException
    at org.jitsi.impl.neomedia.device.DeviceSystem.invokeDeviceSystemInitialize(DeviceSystem.java:441)
    at org.jitsi.impl.neomedia.device.DeviceSystem.invokeDeviceSystemInitialize(DeviceSystem.java:348)
    at org.jitsi.impl.neomedia.device.DeviceSystem.<init>(DeviceSystem.java:493)
    at org.jitsi.impl.neomedia.device.DeviceSystem.<init>(DeviceSystem.java:475)
    at org.jitsi.impl.neomedia.device.DirectShowSystem.<init>(DirectShowSystem.java:61)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.jitsi.impl.neomedia.device.DeviceSystem.initializeDeviceSystems(DeviceSystem.java:288)
    at org.jitsi.impl.neomedia.device.DeviceSystem.initializeDeviceSystems(DeviceSystem.java:230)
    at org.jitsi.impl.neomedia.device.DeviceSystem.initializeDeviceSystems(DeviceSystem.java:172)
    at org.jitsi.impl.neomedia.device.DeviceConfiguration.<init>(DeviceConfiguration.java:347)
    at org.jitsi.impl.neomedia.MediaServiceImpl.<init>(MediaServiceImpl.java:160)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.jitsi.impl.libjitsi.LibJitsiImpl$ServiceLock.initializeService(LibJitsiImpl.java:196)
    at org.jitsi.impl.libjitsi.LibJitsiImpl$ServiceLock.getService(LibJitsiImpl.java:131)
    at org.jitsi.impl.libjitsi.LibJitsiImpl.getService(LibJitsiImpl.java:91)
    at org.jitsi.impl.libjitsi.LibJitsiOSGiImpl.getService(LibJitsiOSGiImpl.java:95)
    at org.jitsi.service.libjitsi.LibJitsi.invokeGetServiceOnImpl(LibJitsi.java:172)
    at org.jitsi.service.libjitsi.LibJitsi.getMediaService(LibJitsi.java:124)
    at org.jitsi.videobridge.Videobridge.start(Videobridge.java:1451)
    at org.jitsi.videobridge.VideobridgeBundleActivator.start(VideobridgeBundleActivator.java:61)
    at org.jitsi.impl.osgi.framework.BundleImpl.start(BundleImpl.java:293)
    at org.jitsi.impl.osgi.framework.launch.FrameworkImpl.startLevelChanged(FrameworkImpl.java:460)
    at org.jitsi.impl.osgi.framework.startlevel.FrameworkStartLevelImpl$Command.run(FrameworkStartLevelImpl.java:126)
    at org.jitsi.impl.osgi.framework.AsyncExecutor.runInThread(AsyncExecutor.java:111)
    at org.jitsi.impl.osgi.framework.AsyncExecutor.access$000(AsyncExecutor.java:17)
    at org.jitsi.impl.osgi.framework.AsyncExecutor$1.run(AsyncExecutor.java:220)
Caused by: java.lang.UnsatisfiedLinkError: org.jitsi.impl.neomedia.jmfext.media.protocol.directshow.DSManager.init()J
    at org.jitsi.impl.neomedia.jmfext.media.protocol.directshow.DSManager.init(Native Method)
    at org.jitsi.impl.neomedia.jmfext.media.protocol.directshow.DSManager.<init>(DSManager.java:79)
    at org.jitsi.impl.neomedia.device.DirectShowSystem.doInitialize(DirectShowSystem.java:68)
    at org.jitsi.impl.neomedia.device.DeviceSystem.initialize(DeviceSystem.java:642)
    at org.jitsi.impl.neomedia.device.DeviceSystem$1.run(DeviceSystem.java:393)
damencho commented 8 years ago

This should be harmless, but there are properties to disable those device systems. Take a look at: https://github.com/jitsi/jigasi/blob/master/src/main/java/org/jitsi/jigasi/osgi/JigasiBundleConfig.java#L167

guusdk commented 8 years ago

I did not notice these. Is this specific to ones environment, or will this occur for everyone?

deleolajide commented 8 years ago

I was testing on Windows 7

thedjnK commented 8 years ago

I haven't played around with this in a long time so I've forgotten how I was building it previous. Installed a new VM (arch linux x64) and can compile jitsi itself and openfire fine separately but using the instructions from build.xml I'm not able to compile the jitsi plugin for openfire, error log: http://pastebin.com/Fjva1RCs nevermind I was linking the wrong folder, it compiles after linking the right folder.

Also there is non-ascii comment text in src/main/java/org/jitsi/videobridge/eventadmin/metrics/MetricLoggingHandler.java on lines 125 and 126 which cause ant to fail and should be removed.

Not seeing any of the errors pointed out by deleolajide.

guusdk commented 8 years ago

I have created #345 for the newline issue. I did not have the problem on my laptop, but it likely depends on whatever locale you've activated.