2021-11-20 07:00 AM

Build linphone-desktop (Ubuntu 20.04) by using the linphone-sdk image which has been already created on ubuntu 20.04.

Run the linphone-sdk container from the above image, then import the Linphone source into the container, and build & compile it.

Install the built Linphone on the host machine and check its functions.

Source Code

GitLab:Linphone Desktop

1. Run linphone-sdk Container

Start the following linphone-sdk docker container in any directory (projects).

$ docker run --name linphone-desktop -v $PWD:/home/bc -it gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-ubuntu:20.04


2. Download Linphone Desktop, Build & Compile

Build Linphone after installing the required Python packages in the container. Execute the following commands up to the build process.


Set your environment

Summary of Building steps

$ pip install --user six pystache graphviz
$ pip3 install --user six pystache graphviz

$ eval "$(qtchooser -print-env)"
$ export Qt5_DIR=${QTLIBDIR}/cmake/Qt5

$ git clone https://gitlab.linphone.org/BC/public/linphone-desktop.git --recursive

$ cd linphone-desktop
$ mkdir build
$ cd  build

$ cmake --build . --target install --parallel 10 --config RelWithDebInfo


3. Run Linphone Desktop on The Host Machine(Ubuntu 20.04)

You can delete the linphone-desktop container if you don't need it. Exit from the container and delete it.

$ exit
$ docker rm linphone-desktop


Install the following qt5 packages to the host machine.

$ 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


Execute the following commands in project/linphone-desktop/build directory for starting Linphone.

$ ./OUTPUT/bin/linphone --verbose


Or the built binaries and related libraries are stored in the OUTPUT directory, so you can copy the contents in it to the /opt directory and set the path for these.

You can run Linphone:

$ linphone