9

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?

4
  • 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, 2016 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, 2016 at 15:19
  • Well got it compiling, check my answer below.
    – Videonauth
    May 10, 2016 at 18:51
  • @d3pd I want to install flexisip on ubuntu 18 and build linphone android and ios apps. I searched a lot but did not find any complete and easy to follow solution. Then I found this ficus.myvnc.com/en/blog/… It is using docker. I wanted to ask if there is any other guide available. I am not a techie, but I can follow guides.
    – Umair
    Jan 26, 2020 at 18:45

5 Answers 5

10

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

For Ubuntu 18.04 you need the following packages as well:

python-pystache libv4l-dev libpulse-dev libglew-dev doxygen libbsd-dev \
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

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

git clone https://gitlab.linphone.org/BC/public/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.

3
  • 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, 2016 at 6:45
  • 1
    I also had to install the python2 version of pystache as well as the apt binaries for doxygen and graphviz. Jan 17, 2018 at 20:21
  • @videonauth I want to install flexisip on ubuntu 18 and build linphone android and ios apps. I searched a lot but did not find any complete and easy to follow solution. Then I found this ficus.myvnc.com/en/blog/… It is using docker. I wanted to ask if there is any other guide available. I am not a techie, but I can follow guides.
    – Umair
    Jan 26, 2020 at 18:44
5

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!

5

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
3
  • 1
    I tried this method, but I get: The application com.belledonnecommunications.linphone/x86_64/4.1.1 requires the runtime org.freedesktop.Platform/x86_64/1.6 which was not found. How do I install the freedesktop thingy?
    – Old Geezer
    Sep 1, 2019 at 14:02
  • I could verify, that this works with Ubuntu 18.04, although I got no entry in the start menu, I had to use flatpak list and flatpak run to start the application and to add a menu entry. Apr 7, 2020 at 14:02
  • Flatpak support has been deprecated in favor of AppImage
    – Sysfu
    Aug 10, 2020 at 21:35
4

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) Download from Flatpak

sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt update
sudo apt install flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak --user install --from https://linphone.org/flatpak/linphone.flatpakref
flatpak run com.belledonnecommunications.linphone --verbose

b) 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.9/gcc_64/lib/cmake"
PATH="~/Qt/5.9.9/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 python3-distutils python3-pystache python3-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 python3-distutils python3-pystache python3-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
python3 prepare.py --use-system-dependencies --all-codecs --debug --list-cmake-variables -DENABLE_AMRWB=OFF -DENABLE_AMR=OFF -DENABLE_UNMAINTAINED=ON -DENABLE_JPEG=OFF
make
gdb ./OUTPUT/desktop/bin/linphone -ex 'run --verbose'

In Ubuntu 14.04 LTS, you go for python2. In Ubuntu 18.04 LTS, you can remove the -DENABLE_JPEG=OFF. In Ubuntu 19.10, you have to patch a header file. 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.

10
  • 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 Jun 24, 2018 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? Jun 26, 2018 at 8:42
  • @AlexanderTraud I tried the flatpack method but I get " The application com.belledonnecommunications.linphone/x86_64/4.1.1 requires the runtime org.freedesktop.Platform/x86_64/1.6 which was not found" What is this freedesktop thing?
    – Old Geezer
    Sep 1, 2019 at 14:03
  • @OldGeezer which version of Ubuntu do you use? Normally, the runtime Freedesktop is installed/available via Flathub. Previously, Flathub was added automatically. However, Flatpak changed their instructions (which I updated/added above). Therefore: Are you able to add Flathub? Is Freedesktop found now? If not, which version of Ubuntu do you use? Sep 3, 2019 at 12:41
  • I am on 18.04. I finally managed to install by following this video youtube.com/watch?time_continue=51&v=2FM-wq6gPpA, which is performing an extra step before using apt-get install linphone. I am confused why there are so many different methods.
    – Old Geezer
    Sep 3, 2019 at 14:11
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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .