No description
Find a file
2020-02-12 12:02:33 +01:00
.gitlab-ci-files Use local folders for builds 2020-02-11 15:29:13 +01:00
.tx chore(languages): add integration with transifex 2018-02-05 15:24:27 +01:00
assets Add 256 icon 2020-02-03 10:32:02 +01:00
build Simplify qt5.spec. 2018-12-13 17:29:20 +01:00
cmake Remove problematic NO_CMAKE_SYSTEM_PATH option when searching for minizip. 2018-03-23 15:35:17 +01:00
cmake_builder Use local folders for builds 2020-02-11 15:29:13 +01:00
linphone-sdk@cad6724afa Use local folders for builds 2020-02-11 15:29:13 +01:00
src Update options and explanations on error application path 2020-02-12 12:02:33 +01:00
submodules/externals Use linphone-sdk. 2018-11-06 16:04:51 +01:00
tools Build qt 5.10 RPM. 2018-12-07 18:12:42 +01:00
ui Fix item text 2020-02-05 08:57:38 +01:00
.gitignore Use local folders for builds 2020-02-11 15:29:13 +01:00
.gitlab-ci.yml Use local folders for builds 2020-02-11 15:29:13 +01:00
.gitmodules Revert "adding headers for minizip" 2020-01-29 14:55:30 +01:00
application_info.cmake feat(app): deal with autostart on flatpak 2019-01-22 10:50:58 +01:00
build_all_linux.sh Use local folders for builds 2020-02-11 15:29:13 +01:00
build_all_macos.sh Use local folders for builds 2020-02-11 15:29:13 +01:00
build_all_win.bat Use local folders for builds 2020-02-11 15:29:13 +01:00
CHANGELOG.md chore(README.md): add a wiki link (uri handlers) 2018-10-08 15:12:45 +02:00
CMakeLists.txt Update options and explanations on error application path 2020-02-12 12:02:33 +01:00
create_appimage.sh Revert "adding headers for minizip" 2020-01-29 14:55:30 +01:00
LICENSE.txt chore(CMakeLists.txt): rename LICENSE to LICENSE.txt 2018-07-27 11:29:08 +02:00
prepare.py chore(prepare.py): remove transifex targets 2018-12-27 09:40:00 +01:00
README.md Revert "adding headers for minizip" 2020-01-29 14:55:30 +01:00
readme_screen.png feat(README.md): provide a new readme screen 2017-06-15 23:31:18 +02:00
resources.qrc Fix Settings GUI and App Nap 2020-02-04 17:56:59 +01:00

pipeline status

Linphone Desktop

screenshot

Linphone is a free VoIP and video softphone based on the SIP protocol.

Getting started

Installing dependencies:

apt-get install libqt53dcore5:amd64 libqt53dextras5:amd64 libqt53dinput5:amd64 libqt53dlogic5:amd64 libqt53dquick5:amd64 libqt53dquickextras5:amd64 libqt53dquickinput5:amd64 libqt53dquickrender5:amd64 libqt53drender5:amd64 libqt5concurrent5:amd64 libqt5core5a:amd64 libqt5dbus5:amd64 libqt5designer5:amd64 libqt5designercomponents5:amd64 libqt5gui5:amd64 libqt5help5:amd64 libqt5multimedia5:amd64 libqt5multimedia5-plugins:amd64 libqt5multimediawidgets5:amd64 libqt5network5:amd64 libqt5opengl5:amd64 libqt5opengl5-dev:amd64 libqt5positioning5:amd64 libqt5printsupport5:amd64 libqt5qml5:amd64 libqt5quick5:amd64 libqt5quickcontrols2-5:amd64 libqt5quickparticles5:amd64 libqt5quicktemplates2-5:amd64 libqt5quicktest5:amd64 libqt5quickwidgets5:amd64 libqt5script5:amd64 libqt5scripttools5:amd64 libqt5sensors5:amd64 libqt5serialport5:amd64 libqt5sql5:amd64 libqt5sql5-sqlite:amd64 libqt5svg5:amd64 libqt5svg5-dev:amd64 libqt5test5:amd64 libqt5webchannel5:amd64 libqt5webengine-data libqt5webenginecore5:amd64 libqt5webenginewidgets5:amd64 libqt5webkit5:amd64 libqt5widgets5:amd64 libqt5x11extras5:amd64 libqt5xml5:amd64 libqt5xmlpatterns5:amd64 qt5-default:amd64 qt5-doc qt5-gtk-platformtheme:amd64 qt5-qmake:amd64 qt5-qmltooling-plugins:amd64

Here are the general instructions to build linphone for desktop. The specific instructions for each build platform is described just below.

  1. Install some build tools: CMake, Python and Qt5 (5.9 or newer). C++11 support is required! It's necessary to install the pip command and to execute:

     pip install pystache
    
  2. It's necessary to set the environment variable Qt5_DIR to point to the path containing the cmake folders of Qt5. Example:

     Qt5_DIR="~/Qt/5.9/gcc_64/lib/cmake"
    
  3. The PATH environment variable must point to the Qt5 directory bin. Example:

     PATH="~/Qt/5.9/gcc_64/bin/:$PATH"
    
  4. Prepare the build by running the prepare.py script.

  5. Build the project using the appropriate build tool (make, ninja, Xcode, Visual Studio (2013 or 2015 version)).

Specific instructions for the GNU/Linux and Mac OS X platforms

  1. Prepare the build in a terminal by running the following command in the current directory:

     ./prepare.py -DENABLE_DOC=OFF
    
  2. Build the project in a terminal with:

     make
    

Mac OS X Troubleshooting

To install the required dependencies on Mac OS X, you can use Homebrew. Before you install packages with Brew, you may have to change directories permissions (if you can't change permissions with sudo on a MacOS >= High Sierra, get a look at this StackOverflow answer).

  1. First ensure you have installed pip. You can get it for python 2.7 there.

  2. Then, you can install a pip package with the following command:

     pip install [package]
    

    For instance, if you don't have pystache and the dot package (contained in graphviz), enter the following commands:

     pip install pystache
     pip install graphviz
    
  3. Finish the pre-build by cleaning the obsolete files and then run prepare.py and make again:

     ./prepare.py -c
     ./prepare.py -DENABLE_DOC=OFF
     make
    

Specific instructions for the Windows platform

  1. Ensure that you have downloaded the Qt msvc2015 version (32-bit). (64-bit version is not supported at this moment by Linphone Desktop.) MinGW must be installed too.

  2. Define the Qt5_DIR and PATH environment variable to the Qt5 installation path:

     Qt5_DIR="C:\Qt\5.9\msvc2015\lib\cmake"
     PATH="C:\Qt\5.9\msvc2015\bin;%PATH%"
    
  3. Open a Windows command line (cmd.exe) in the current directory and run:

     python prepare.py -G "Visual Studio 15 2017" -DENABLE_DOC=OFF
    
  4. Run the following command in the root directory of linphone-desktop:

     cmake --build WORK\desktop\cmake --config Release
    

    Or Open the generated Visual Studio solution Project.sln.lnk and build it. Check if the Release option is selected in Visual Studio. (With Win32!)

Known bugs and issues

Customizing your build

Some options can be given during the prepare.py step to customize the build. The basic usage of the prepare.py script is:

    ./prepare.py [options]

Here are the main options you can use.

Building with debug symbols

Building with debug symbols is necessary if you want to be able to debug the application using some tools like GDB or the Visual Studio debugger. To do so, pass the --debug option to prepare.py:

    ./prepare.py --debug [other options]

Generating an installation package (on Windows and Mac OS X platforms)

You might want to generate an installation package to ease the distribution of the application. To add the package generation step to the build just run:

    ./prepare.py --package [other options]

Activate the build of all codecs

    ./prepare.py --all-codecs

Using more advanced options

The prepare.py script is wrapper around CMake. Therefore you can give any CMake option to the prepare.py script. To get a list of the options you can pass, you can run:

    ./prepare.py --list-cmake-variables

The options that enable you to configure what will be built are the ones beginning with ENABLE_. So for example, you might want to build linphone without the opus codec support. To do so use:

    ./prepare.py -DENABLE_OPUS=NO

Updating your build

You need to update the project:

  git pull --rebase
  git submodule sync && git submodule update --init --recursive

Then simply re-building using the appropriate tool corresponding to your platform (make, Visual Studio...) should be sufficient to update the build (after having updated the source code via git). However if the compilation fails, you may need to rebuild everything from scratch using:

    ./prepare.py -c && ./prepare.py [options]

Then you re-build as usual.

Contributing

Languages

Linphone is getting a full internationalization support, using Transifex platform. If you want you can contribute at: https://www.transifex.com/belledonne-communications/linphone-desktop/languages/

License

GPLv2 © Linphone