How to dial into the meeting via Viber call for free
In this video, we present how we used the Viber Out functionality to call a toll-free number of Cisco Webex and join a meeting that did not have a toll-free number in our country.
In this video, we present how we used the Viber Out functionality to call a toll-free number of Cisco Webex and join a meeting that did not have a toll-free number in our country.
After updating our GNU/Linux distribution from Fedora 26 to Fedora 27, and maybe updating Viber Desktop client as well, Viber stopped working. To be more precise it could not connect to the internet any more. (Note: we used the RPM package of Viber Desktop to install Viber on our Fedora system).
#Make sure all necessary packages are installed sudo dnf install openssl openssl-devel; #Create a symbolic link from the system installed libssl shared object to the Viber installation folder sudo ln -s /usr/lib64/libssl.so.10 /opt/viber/lib/libssl.so;
To find the installation folder of Viber, we used the following command:
find / -iname viber 2>/dev/null;
that led us to the installation location of Viber which was /opt/viber/Viber.
Executing the binary in a terminal gave us the following errors
$ /opt/viber/Viber Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory... Qt WebEngine resources not found at /opt/viber/resources. Trying parent directory... Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory... Qt WebEngine resources not found at /opt/viber/resources. Trying parent directory... qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init qt.network.ssl: QSslSocket: cannot resolve sk_new_null qt.network.ssl: QSslSocket: cannot resolve sk_push qt.network.ssl: QSslSocket: cannot resolve sk_free qt.network.ssl: QSslSocket: cannot resolve sk_num qt.network.ssl: QSslSocket: cannot resolve sk_pop_free qt.network.ssl: QSslSocket: cannot resolve sk_value qt.network.ssl: QSslSocket: cannot resolve SSL_library_init qt.network.ssl: QSslSocket: cannot resolve SSL_load_error_strings qt.network.ssl: QSslSocket: cannot resolve SSL_get_ex_new_index qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method qt.network.ssl: QSslSocket: cannot resolve SSLv23_server_method qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get_chain qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf qt.network.ssl: QSslSocket: cannot resolve SSLeay qt.network.ssl: QSslSocket: cannot resolve SSLeay_version qt.network.ssl: Incompatible version of OpenSSL qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init QQuickItem: Cannot set activeFocusOnTab to false once item is the active focus item. QQuickItem: Cannot set activeFocusOnTab to false once item is the active focus item. qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init QQuickItem: Cannot set activeFocusOnTab to false once item is the active focus item. qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
From the error we could see that the application was trying to access the functions SSLv23_client_method and SSL_library_init and it could not find them.
It was obvious that the missing functions were related to the SSL protocol, so we executed the following to make sure all necessary OpenSSL packages were installed.
sudo dnf install openssl openssl-devel;
After that we tried Viber again and gave us the same error.
So we made the assumption that Viber could not ‘see’ the installation of OpenSSL.
Then we decided to use the following command to:
OpenSSL on our system,SSLv23_client_method method.
find / -iname libssl.so* -print -exec sh -c 'nm -D "$1" | grep SSLv23_client_method' _ {} \; 2>/dev/null;
Executing the command yielded the following results:
$ find / -iname libssl.so* -print -exec sh -c 'nm -D "$1" | grep SSLv23_client_method' _ {} \; 2>/dev/null;
/usr/lib/libssl.so
/usr/lib/libssl.so.1.1
/usr/lib/libssl.so.10
00027880 T SSLv23_client_method
/usr/lib/libssl.so.1.0.2m
00027880 T SSLv23_client_method
/usr/lib/libssl.so.1.1.0g
/usr/lib64/libssl.so
/usr/lib64/libssl.so.1.1
/usr/lib64/libssl.so.10
000000000002dd10 T SSLv23_client_method
/usr/lib64/libssl.so.1.0.2m
000000000002dd10 T SSLv23_client_method
/usr/lib64/libssl.so.1.1.0g
/opt/viber/lib/libssl.so
From the results two libraries in the lib64 folder got our interest, so we executed ls -l on both to check them out:
$ ls -l /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.1.0.2m; lrwxrwxrwx. 1 root root 16 Nov 13 13:52 /usr/lib64/libssl.so.10 -> libssl.so.1.0.2m -rwxr-xr-x. 1 root root 448640 Nov 13 13:52 /usr/lib64/libssl.so.1.0.2m
As you can see in the results, the two files that got us interested were in end the same file so we decided to use /usr/lib64/libssl.so.10 whose name was not tight to a minor distribution version of the library and would automatically link to any minor updates in the future.
After examining the Viber installation folder in /opt/viber/, we saw that there was a lib folder there with no SSL libraries available (even though all the QT and networking libraries were there already):
$ ls /opt/viber/lib/ libicudata.so.52 libQt5Gui.so.5 libQt5Qml.so.5 libQt5WebEngine.so.5 libicui18n.so.52 libQt5Location.so.5 libQt5QuickControls2.so.5 libQt5WebEngineWidgets.so.5 libicuuc.so.52 libQt5MultimediaQuick_p.so.5 libQt5Quick.so.5 libQt5WebSockets.so.5 libpng12.so.0 libQt5Multimedia.so.5 libQt5QuickTemplates2.so.5 libQt5Widgets.so.5 libqgsttools_p.so.1 libQt5MultimediaWidgets.so.5 libQt5QuickWidgets.so.5 libQt5XcbQpa.so.5 libqrencode.so libQt5Network.so.5 libQt5Sql.so.5 libQt5Concurrent.so.5 libQt5OpenGL.so.5 libQt5Svg.so.5 libxcb-xinerama.so.0 libQt5Core.so.5 libQt5Positioning.so.5 libQt5WebChannel.so.5 libQt5DBus.so.5 libQt5PrintSupport.so.5 libQt5WebEngineCore.so.5
Examining our OS, we saw that in the rest of the locations were the QT libraries were installed there was a copy of the libssl as well.
So we decided to make a soft symbolic link of the /usr/lib64/libssl.so.10 shared library in the Viber libraries folder.
We did two tests:
libssl.so.10 failed.libssl.so succeeded and solved the issue!The command that we used was the following:
sudo ln -s /usr/lib64/libssl.so.10 /opt/viber/lib/libssl.so;
After performing this step, Viber was working again as expected!
$ sudo ln -s /usr/lib64/libssl.so.10 /opt/viber/lib/libssl.so; $ /opt/viber/Viber Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory... Qt WebEngine resources not found at /opt/viber/resources. Trying parent directory... Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory... Qt WebEngine resources not found at /opt/viber/resources. Trying parent directory... QQuickItem: Cannot set activeFocusOnTab to false once item is the active focus item. QQuickItem: Cannot set activeFocusOnTab to false once item is the active focus item. QQuickItem: Cannot set activeFocusOnTab to false once item is the active focus item. QQuickItem: Cannot set activeFocusOnTab to false once item is the active focus item. QQuickItem: Cannot set activeFocusOnTab to false once item is the active focus item. qml: type="" qml: type="" qrc:/QML/Feed/FeedView.qml:98:5: QML ListViewEx: Binding loop detected for property "bottomMargin" QObject: Cannot create children for a parent that is in a different thread. (Parent is QObject(0x7f3f5f970520), parent's thread is QThread(0x4191210), current thread is QThread(0x515f5b0) Invalid SOS parameters for sequential JPEG
Success!