Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux support? #37

Open
jakew009 opened this issue Apr 30, 2019 · 25 comments
Open

Linux support? #37

jakew009 opened this issue Apr 30, 2019 · 25 comments

Comments

@jakew009
Copy link

Are there any plans for Linux support? I tried the Chrome extension in Ubuntu 19.04, but it just sends me in a loop saying the extension isn't installed (even though it installed correctly).

@frederiksen
Copy link
Contributor

Linux is supported. But we have not documented what to do.
Here's what you should do:

@ghost
Copy link

ghost commented May 1, 2019

The plan is to soon support the Linux version officially but as frederiksen wrote you will have to build it yourself. Unfortunately, while the code currently builds under Linux, it does not work it (crashes). I am planning to fix this soon (possibly later this month).

@jakew009
Copy link
Author

jakew009 commented May 1, 2019

Awesome... I shall try it out this afternoon and report back!

@ghost ghost self-assigned this May 20, 2019
@0815fox
Copy link

0815fox commented Jun 21, 2019

@extmchristensen, is there any progress on this, is it worth trying?

I tried to compile it on debian stretch but it fails to link. I had to install libssl.so.1.0.0 from debian jessie (stretch removed support for that version). However, not it is missing three symbols from openssl 1.0.2. I am confused now, is it using 1.0.0 or 1.0.2?

The remaining errors are:

SDKLinux/64-bit/libjabra.so.1.7.3.4: undefined reference to `SSL_get0_alpn_selected@OPENSSL_1.0.2'
SDKLinux/64-bit/libjabra.so.1.7.3.4: undefined reference to `SSL_COMP_free_compression_methods@OPENSSL_1.0.2'
SDKLinux/64-bit/libjabra.so.1.7.3.4: undefined reference to `SSL_CTX_set_alpn_protos@OPENSSL_1.0.2'

Any hints?

@ghost
Copy link

ghost commented Jun 24, 2019

Not sure - I got it to compile and link on ubuntu 18.04 x64 but got a bit delayed with testing/debugging to make sure it actually runs.

@0815fox
Copy link

0815fox commented Jun 24, 2019

Any ideas about the library issue? Why does it need symbols from 1.0.2 while the linker explicitely requires 1.0.0?

@ghost
Copy link

ghost commented Jun 24, 2019

Sorry no idea right now - My current plan is to get linux support working in August (subject to change) at which time I will also look at this library issue.

@jakew009
Copy link
Author

Just gently bumping this one back up :)

@ghost
Copy link

ghost commented Oct 28, 2019

@jakew009 While not officially supported yet, I have heard reports from others that actually got the current version working. Can you try to build it yourself using cmake and see what happens ? (just remember to setup Udev rules
(same way as documented for our nodejs sdk npm)

@sduthil
Copy link

sduthil commented Jan 6, 2020

I tried to compile it on debian stretch but it fails to link. I had to install libssl.so.1.0.0 from debian jessie (stretch removed support for that version). However, not it is missing three symbols from openssl 1.0.2. I am confused now, is it using 1.0.0 or 1.0.2?

...

Any hints?

I had the same problem today: my unit-tests running on Debian Stretch were giving the error: libssl.so.1.0.0: cannot open shared object file: No such file or directory. Debian Stretch comes with libssl.so.1.0.2, so the error makes sense.

I tried using the libssl 1.0.0 from Debian Jessie as you suggested, but then I had this error: version OPENSSL_1.0.2' not found`.

The Jabra library is pre-built against Ubuntu 18.04, and this distribution has a weird way of packaging OpenSSL: as you can see on the package details, it is named libssl1.0.0, but has version 1.0.2. So in Ubuntu 18.04, the library file is named libssl.so.1.0.0, but is actually version 1.0.2. That's why the error is so misleading.

As soon as the libssl from Ubuntu 18.04 was installed, the error disappeared. I did not test it all the way to the headset, though, I just got my unit-tests passing today.

@0815fox
Copy link

0815fox commented Apr 30, 2020

Dear Issue #37 it's your first anniversary, so: Happy Birthday.

Is there any news on this. I am really waiting for this! The software developers in our company are unfortunately forced to use jabra headsets with the 3cx web client (as there is no native app) on their debian machines and always miss their calls because the headset base does not ring. The frustration is big. Basically there is frustration against jabra for not supporting linux and against 3cx for not allowing to configure another audio device for ring tone in their web app. We feel left in the lurch.

We do not mind compiling this ourselves but the compilation process should work with libssl versions from the package sources - and not only those of ubuntu. Is there any chance that jabra invests a bit on this to get the dependency issues of ChromeHost resolved for everyone here? You sold us your product, now please help us making use of it!

@hosler
Copy link

hosler commented May 6, 2020

on branch v3 i get a cmake error:

-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
LIBJABRA
    linked by target "jabrachromehost" in directory /home/hosler/jabra-browser-integration/src/ChromeHost

-- Configuring incomplete, errors occurred!
See also "/home/hosler/jabra-browser-integration/src/ChromeHost/CMakeFiles/CMakeOutput.log".

@waynedmoore
Copy link

I followed all the advice and got the app compiled into the folder jabra-browser-integration/src/ChromeHost/bin. I copied the JSON file into ~/.config/google-chrome/NativeMessagingHosts and updated the path.

Now I'm a bit stuck. Do I copy the jabrachromehost executable into ~/.config/google-chrome/NativeMessagingHosts or do I update the JSON file to point to where I originally compiled jabrachromehost? Or something else?

@ghost
Copy link

ghost commented Jun 1, 2020

jabrachromehost, libjabra and com.jabra.nm.json should all be located in the same folder (see chrome documentation for exact location).

@waynedmoore
Copy link

I have libjabra.so.1.8.3.10 in /usr/lib.

Should Chrome call jabrachromehost directly or should it run as a background process? If I try to execute jabrachromehost directly, I get a segmentation fault so maybe something went wrong in compilation.

@samex
Copy link

samex commented Mar 3, 2021

I have libjabra.so.1.8.3.10 in /usr/lib.

Should Chrome call jabrachromehost directly or should it run as a background process? If I try to execute jabrachromehost directly, I get a segmentation fault so maybe something went wrong in compilation.

Same here, I copied files to same location, but the error "Segmentation fault (core dumped)" still exists. The Webclient says "Native host has exited."

Im using Arch-Linux with Kernel Version 5.10.18-1

@Kiendeleo
Copy link

I would love to see some more documentation on how exactly to do this. I would love to be able to use my Jabra headset on my Linux PC and have the buttons and status indicator work.

@vdegove
Copy link

vdegove commented May 8, 2021

Same here, if anybody could give noob friendly instructions to compile and install on Debian Stable or Ubuntu it would be greatly welcomed!

@samex
Copy link

samex commented Sep 1, 2021

With new version of the SDK (1.8.8.4, April 21) its finally working without libssl. jabrachromehost can compiled now without errors or conflicts, you should modify the CMakeLists.txt and change the .so file version to 1.8.8.4 and place the new downloaded version to SDKLinux/64bit/

I assume u installed the chrome extension already:

@vdegove
Compile jabrachromehost on linux:

builded file under src/ChromeHost/bin

copy this file to /home/{USERNAME}/.config/google-chrome/NativeMessagingHosts/

like @frederiksen described above:

edit /home/{USERNAME}/.config/google-chrome/NativeMessagingHosts/com.jabra.nm.json
change path to /home/{USERNAME}/.config/google-chrome/NativeMessagingHosts/jabrachromehost

@Kiendeleo
Copy link

@samex Thank you for the write-up. I followed all of the steps, and it seemed to work, but It is not being recognized by the app that I was trying to use it with (RingCentral). How would one check to make sure this is working?

@samex
Copy link

samex commented Sep 2, 2021

@Kiendeleo , at Jabras SDK download you can find demo folder within the zip file, start the binary file (JabraDemo) as root and it should show up all the informations and settings of your jabra headset. Im using 3CX webclient.

@vdegove
Copy link

vdegove commented Sep 2, 2021

@samex thanks a lot! Will try. I'll just update the customer service machines first to Debian 11, then try to compile on Debian 11. Cheers!

@infinitytrans
Copy link

infinitytrans commented Oct 27, 2021

@samex

Sadly this doesnt work like it should. Or I am doing something stupid?

It compiles totally fine - with 1.8.8.4 and with the new 1.10.1.0 too.

copied the binary, the library and the json-file to ~/.config/google-chrome/NativeMessagingHosts. Editing the Json-File and added the right path. Installed the Jabra-Chrome-Extenstion.

When I try to use it (3CX Webclient), the Webclient even tells me "Headset Ready" but it doesnt work at all.

When starting Chrome from CLI I see the following error-message when using 3CX-Webclient with headset integration:

ERROR [14703] [HeadsetIntegrationService::Start@305] Could not connect to Jabra application

This is the same error I get when I start jabrachromehost from cli standalone. So chrome finds jabrachromehost and starts it. But whats wrong there? What does this error mean?

Even tried the demo-application from SDK which works fine. Connects to the headset, changing settings and so on.

Does anyone has any idea?

/EDIT: Tested it with Jabra Envolve 65 and Jabra Engage 75. Both are working with demo-application but none with Chrome.

@infinitytrans
Copy link

infinitytrans commented Oct 27, 2021

Found a solution: If run as root, it works. As it is not a wise idea to run chrome as root (and it's even not possible by default) setting setuid makes it work:

chown root:root jabrachromehost
chmod +s jabrachromehost

Maybe not the best idea but the best I have at the moment.

@samex
Copy link

samex commented Oct 31, 2021

@infinitytrans

I noticed this when I try to run standalone jabrachromehost binary in console/terminal, I needed to put sudo before.
But when connected with the chrome extension is worked well, maybe because my profile on linux is a admin user.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants