8

I want to install a current version of Linphone. I have attempted to install using the following procedure on Ubuntu 16.04:

sudo add-apt-repository ppa:linphone/release
sudo apt-get update
sudo apt-get install linphone

This installs only version 3.6.1 (the current version is 3.9.1). I have attempted to install a more current version using the following procedure:

sudo add-apt-repository ppa:rayanayar/linphone
sudo apt-get update
sudo apt-get install linphone

However, when this installation of Linphone is run, the following error is encountered:

linphone: symbol lookup error: /usr/lib/x86_64-linux-gnu/liblinphone.so.8: undefined symbol: belle_sip_stack_set_http_proxy_host

So, how can a current version of Linphone be installed?

  • 3
    How about compiling it from source? You can pint me to the source and i write up an answer regarding it. – Videonauth May 10 '16 at 14:30
  • @Videonauth Hey there! I'd very much appreciate it if you could take a look. The source is available here: linphone.org/downloads-for-desktop.html I've attempted it myself but have run into difficulties ensuring dependencies are available. – d3pd May 10 '16 at 15:19
  • Well got it compiling, check my answer below. – Videonauth May 10 '16 at 18:51
8

To compile from source you need to install first the following packages as dependencies (be carefull to select the whole box and paste it into terminal):

sudo apt-get install git build-essential automake autoconf libtool   \
intltool libgtk2.0-dev libspeexdsp-dev libavcodec-dev libswscale-dev \
libx11-dev libxv-dev libgl1-mesa-dev libreadline-dev libgsm1-dev     \
libtheora-dev libsqlite3-dev libupnp-dev libsrtp-dev open-vm-tools   \
open-vm-tools-dev cmak* libmbedtls-dev libmbedtls-doc libmbedtls10   \
libcunit1 libcunit1-dev libantlr3c-dev libantlr3-runtime-java antlr3 \
libortp-dev libortp9 libmediastreamer-base3 libmediastreamer-dev     \
extra-cmake-modules yasm

Now you can compile and install by doing the following steps:

git clone https://github.com/BelledonneCommunications/linphone-desktop.git
cd linphone-desktop
git submodule sync && git submodule update --init --recursive
./prepare.py
make
sudo make install

Happy building. Please let me know if this worked for you on my system it builds but I don't want to install it.

  • Wow, thank you very much for taking the time to get this compile working. That works for me too on 16.04. That git submodule command is great. Thanks! – d3pd May 11 '16 at 6:45
  • 1
    I also had to install the python2 version of pystache as well as the apt binaries for doxygen and graphviz. – Alex Combas Jan 17 '18 at 20:21
4

As I cannot comment I'll add this as another answer:

I tried the accepted answer today (on xubuntu 16.04) and got the message

Could not find a support sound driver API 

I fixed this by installing libasound2-dev:

sudo apt-get install libasound2-dev

To get rid of some other warnings I installed some more packages:

sudo apt-get install libv4l-dev libvpx-dev libgl1-mesa-dev

Also the make target install does not seem to exist anymore.

But linphone can be run directly from the output directory

OUTPUT/desktop/bin/linphone

Hope this helps!

2

Worked on 16.04

Must be root

sudo su

Install flatpak (It will compile everything for you)

sudo apt install flatpak

Install Linphone using flatpak

flatpak --user install --from https://linphone.org/flatpak/linphone.flatpakref
2

In June 2017, Linphone Desktop 4 was released. With that, its authors Belledonne Communications changed from GTK+ 2 to Qt 5.9 LTS (to be more precise: They changed to QML with Qt Quick Controls 2). Furthermore, they added the possibility to download a ready-to-use binary via Flatpak. Therefore, although the previous answers were correct at their time, they changed:

a) Ubuntu 16.04 LTS

sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt update
sudo apt install flatpak
flatpak --user install --from https://linphone.org/flatpak/linphone.flatpakref
flatpak run com.belledonnecommunications.linphone --verbose

b) Ubuntu 18.04 LTS

sudo apt install flatpak
flatpak --user install --from https://linphone.org/flatpak/linphone.flatpakref
flatpak run com.belledonnecommunications.linphone --verbose

c) Build from Source

  • to go for Ubuntu 14.04 LTS, and/or
  • to debug/contribute to Linphone because you are a developer, and/or
  • to enjoy the latest features and bug fixes, and/or
  • to get more video and audio codecs.

The variant via Flatpak gives you as video codec just VP8. If you build yourself, MP4V-ES, H.263, and H.264 get added. As audio codecs, AMR, AMR-WB, iLBC, iSAC, and SiLK get added. Furthermore optionally, you can add even G.726 and Codec 2. However as of today, those two modules need to be patched to work with other VoIP/SIP implementations (wrong endianness and wrong bitrate).

To compile yourself, you need the Qt Framework. Therefore, you
a) go for the Qt Installer, or
b) go for Ubuntu 18.04 LTS and its existing Qt 5.9 packages.

Step 1a: Qt Installer

wget download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run
chmod u+x ./qt-unified-linux-*.run
./qt-unified-linux-*.run

In the Installer, you go for Qt → Qt 5.9.x → Desktop. When you set the PATH and Qt5_DIR, make sure it matches the version you downloaded:

Qt5_DIR="~/Qt/5.9.7/gcc_64/lib/cmake"
PATH="~/Qt/5.9.7/gcc_64/bin/:$PATH"

Step 1b: Qt Packages

sudo apt install qt5-default qttools5-dev qttools5-dev-tools libqt5svg5-dev libqt5texttospeech5-dev qtdeclarative5-dev qtdeclarative5-dev-tools qtquickcontrols2-5-dev qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtqml-models2 qml-module-qtquick-templates2 qml-module-qt-labs-folderlistmodel qml-module-qt-labs-settings qml-module-qt-labs-platform

As noted above, this works only with the latest Ubuntu. For older Ubuntu releases, I would go for the Qt Installer as described in alternative A. Furthermore, comments in the source code indicate, that Belledonne Communications is not sticking to long-term-support (LTS) releases but is going require the next stable release, when one after next stable branch was released (for example, when Qt 5.11 is released, Linphone might require Qt 5.10 already). Therefore, when you read this answer, this alternative B might already be no option anymore.

Step 2 for Ubuntu 14.04 LTS

sudo apt install autoconf libasound2-dev build-essential libbsd-dev cmake3 curl doxygen git libglew-dev graphviz libtool default-jre-headless nasm libpcap-dev pkg-config python-pystache python-six libudev-dev libwww-perl libxv-dev yasm libpolarssl-dev libsqlite3-dev libxml2-dev libsrtp0-dev libgsm1-dev libopus-dev libspeexdsp-dev libavcodec-extra libavcodec-dev libswscale-dev libv4l-dev libvpx-dev libantlr3c-dev antlr3 xsdcxx libxerces-c-dev libspandsp-dev libopencore-amrnb-dev libopencore-amrwb-dev libvo-amrwbenc-dev

Step 2 for Ubuntu 16.04 LTS

sudo apt install autoconf libasound2-dev build-essential libbsd-dev cmake curl doxygen git libglew-dev graphviz libtool default-jre-headless nasm libpcap-dev pkg-config python-pystache python-six libudev-dev libwww-perl libxv-dev yasm libmbedtls-dev libsqlite3-dev libxml2-dev libsrtp0-dev libgsm1-dev libopus-dev libspeexdsp-dev libavcodec-extra libavcodec-dev libswscale-dev libv4l-dev libvpx-dev libantlr3c-dev antlr3 xsdcxx libxerces-c-dev libspandsp-dev libopencore-amrnb-dev libopencore-amrwb-dev libvo-amrwbenc-dev libcodec2-dev

Step 2 for Ubuntu 18.04 LTS

sudo apt install autoconf libasound2-dev build-essential libbsd-dev cmake curl doxygen git libglew-dev graphviz libtool default-jre-headless nasm libpcap-dev pkg-config python-pystache python-six libturbojpeg0-dev libudev-dev libwww-perl libxv-dev yasm libmbedtls-dev libsqlite3-dev libxml2-dev libsrtp2-dev libgsm1-dev libopus-dev libspeexdsp-dev libavcodec-extra libavcodec-dev libswscale-dev libv4l-dev libvpx-dev libantlr3c-dev antlr3 xsdcxx libxerces-c-dev libspandsp-dev libopencore-amrnb-dev libopencore-amrwb-dev libvo-amrwbenc-dev libcodec2-dev

Step 3

git clone git://git.linphone.org/linphone-desktop --recursive
cd ./linphone-desktop
./prepare.py --use-system-dependencies --all-codecs --debug --list-cmake-variables -DENABLE_AMRWB=OFF -DENABLE_AMR=OFF -DENABLE_JPEG=OFF
make
gdb ./OUTPUT/desktop/bin/linphone -ex 'run --verbose'

In Ubuntu 18.04 LTS, you can remove the -DENABLE_JPEG=OFF. As of today, several bugs are in the AMR(-WB) implementation; therefore it is disabled here.


Side note: Please, double-check the value of quality_reporting_enabled in the file ~/.config/linphone/linphonerc whether it reflects your data-collection and privacy interests. For me, an 0 disabled the telemetry data which was send to Belledonne Communications after each call. Yet, I found no way to change that value via the graphical user-interface.

  • sounds good. Unfortunately this did not work for me on 18.04: The usual "recipe for target 'all' failed" as always with Linphone Desktop. /cmake' Makefile:83: recipe for target 'all' failed make[1]: *** [all] Error 2 make[1]: Leaving directory '/usr/local/src/linphone-desktop/WORK/desktop/cmake' Makefile:14: recipe for target 'desktop-build' failed make: *** [desktop-build] Error 2 – opinion_no9 Jun 24 '18 at 6:49
  • @opinion_no9 you are lucky: Yesterday, I had to re-build the latest Linphone on a vanilla Ubuntu 18.04 LTS installation. However, it was made without any issue. (1) Which cmake-builder failed exactly – the main one? (2) Did cmake produce a file called CMakeOutput.logfor that failed builder? I see that you try to compile in /usr/local/src. I have not tried that yet but did everything in the home folder of a normal user. (3) Did you try to build in your normal Documents folder already? – Alexander Traud Jun 26 '18 at 8:42
1

Many thanks to Alexander TRAUD for his howTo without which I would not even have tried.

I still have to add the XercesC library and everything has compiled on Linux Mint 19 (Ubuntu 18.04):

apt install libxerces-c-dev
./prepare.py -c
./prepare.py --use-system-dependencies --all -codes --debug --list-cmake-variables -DENABLE_JPEG = OFF -DENABLE_DOC = OFF
make

This should do the job.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.