README.md 4.61 KB
Newer Older
Erwan Croze's avatar
Erwan Croze committed
1 2
[![pipeline status](https://gitlab.linphone.org/BC/public/linphone/badges/master/pipeline.svg)](https://gitlab.linphone.org/BC/public/linphone/commits/master)

Simon Morlat's avatar
Simon Morlat committed
3
Liblinphone
4
===========
François Grisez's avatar
François Grisez committed
5

Simon Morlat's avatar
Simon Morlat committed
6 7 8 9 10 11
Liblinphone is a high-level SIP library integrating all calling and instant messaging features into an unified easy-to-use API.
It is the cross-platform VoIP library on which the *Linphone[1]* application is based on, and that anyone can use to add audio and video calls
or instant messaging capabilities to an application.

# License

Sylvain Berfini's avatar
Sylvain Berfini committed
12
Copyright © Belledonne Communications
Simon Morlat's avatar
Simon Morlat committed
13

Sylvain Berfini's avatar
Sylvain Berfini committed
14 15 16 17 18
Liblinphone is dual licensed, and is available either :

 - under a [GNU/GPLv3 license](https://www.gnu.org/licenses/gpl-3.0.en.html), for free (open source). Please make sure that you understand and agree with the terms of this license before using it (see LICENSE.txt file for details).

 - under a proprietary license, for a fee, to be used in closed source applications. Contact [Belledonne Communications](https://www.linphone.org/contact) for any question about costs and services.
Simon Morlat's avatar
Simon Morlat committed
19 20 21 22 23 24

# Documentation

-   Supported features and RFCs : https://www.linphone.org/technical-corner/liblinphone/features
-   Multi-language API documentation : https://www.linphone.org/snapshots/docs/liblinphone/multilang/
-   Liblinphone developer guide on Linphone public wiki: https://wiki.linphone.org/xwiki/wiki/public/view/Lib/
François Grisez's avatar
François Grisez committed
25

26

27 28
# Building liblinphone

Simon Morlat's avatar
Simon Morlat committed
29 30
The *linphone-sdk[7]* git project is the **recommended** way to build liblinphone, as it bundles all required an optional dependencies to build liblinphone
as git submodules. It has a top-level CMake build script that makes life easier.
31

Simon Morlat's avatar
Simon Morlat committed
32
Here the main dependencies listed:
33

34 35 36
* **BcToolbox[2]:** portability layer
* **BelleSIP[3]:** SIP stack
* **Mediastreamer2[4]:** multimedia engine
37
* **Belcard[5]:** VCard4 support
Simon Morlat's avatar
Simon Morlat committed
38
* **Belr** generic parsing engine for ABNF defined languages.
39 40
* **libxml2**
* **zlib**
41 42
* **libsqlite3:** user data storage (can be disabled)
* **python interpreter** and **pystache**, **six** python module (needed for C++/C#/Java wrappers and API documentation)
43
* **doxygen** and **dot** (needed for C++ wrapper and API documentation)
Simon Morlat's avatar
Simon Morlat committed
44
* **Bzrtp[6]:** zrtp stack used to secure calls
45
* For API documentation generation: **sphinx**, **javasphinx**, **sphinx_csharp** python modules are needed.
Simon Morlat's avatar
Simon Morlat committed
46 47


Simon Morlat's avatar
Simon Morlat committed
48
## Build instructions (when used standalone, outside of linphone-sdk)
Simon Morlat's avatar
Simon Morlat committed
49

François Grisez's avatar
François Grisez committed
50
	cmake . -DCMAKE_INSTALL_PREFIX=<prefix> -DCMAKE_PREFIX_PATH=<search_prefixes>
51

François Grisez's avatar
François Grisez committed
52 53
	make
	make install
54

aymeric's avatar
aymeric committed
55

Simon Morlat's avatar
Simon Morlat committed
56
## Supported build options
57

58 59 60 61 62 63 64
* **`CMAKE_INSTALL_PREFIX=<string>`** : install prefix
* **`CMAKE_PREFIX_PATH=<string>`**    : column-separated list of prefixes where to search for dependencies
* **`ENABLE_SHARED=NO`**              : do not build the shared library
* **`ENABLE_STATIC=NO`**              : do not build the static library
* **`ENABLE_STRICT=NO`**              : build without strict compilation flags (-Wall -Werror)
* **`ENABLE_DOC=YES`**                : Make the reference documentation of liblinphone to generated
* **`ENABLE_UNIT_TESTS=NO`**          : do not build testing binaries
65
* **`ENABLE_VCARD=NO`**               : disable VCard4 support
66
* **`ENABLE_TOOLS=NO`**               : do not build tool binaries
67
* **`ENABLE_LIME=NO`**                : disable Linphone Instant Messaging Encryption
68

69
## Note for packagers
70

François Grisez's avatar
François Grisez committed
71 72 73
Our CMake scripts may automatically add some paths into research paths of generated binaries.
To ensure that the installed binaries are striped of any rpath, use `-DCMAKE_SKIP_INSTALL_RPATH=ON`
while you invoke cmake.
74

jehan's avatar
jehan committed
75
Rpm packaging
Simon Morlat's avatar
Simon Morlat committed
76 77
liblinphone can be generated with cmake3 using the following commands:
```
jehan's avatar
jehan committed
78 79 80 81 82
mkdir WORK
cd WORK
cmake3 ../
make package_source
rpmbuild -ta --clean --rmsource --rmspec liblinphone-<version>-<release>.tar.gz
Simon Morlat's avatar
Simon Morlat committed
83
```
aymeric's avatar
aymeric committed
84

85
# Credits
aymeric's avatar
aymeric committed
86

87
Belledonne Communications SARL, all rights reserved.
aymeric's avatar
aymeric committed
88

89
# License
90

Simon Morlat's avatar
Simon Morlat committed
91
This software is distributed under GNU GPLv3. Please read COPYING file for full license text.
François Grisez's avatar
François Grisez committed
92 93 94 95


------------------------------

aymeric's avatar
aymeric committed
96

Simon Morlat's avatar
Simon Morlat committed
97
- [1] Linphone: https://linphone.org/technical-corner/linphone
98 99 100 101 102
- [2] bctoolbox: https://gitlab.linphone.org/BC/public/bctoolbox *or* <https://www.linphone.org/releases/sources/bctoolbox>
- [3] belle-sip: https://gitlab.linphone.org/BC/public/belle-sip *or* <https://www.linphone.org/releases/sources/belle-sip>
- [4] mediastreamer2: https://gitlab.linphone.org/BC/public/mediastreamer2 *or* <https://www.linphone.org/releases/sources/mediastreamer>
- [5] belcard: https://gitlab.linphone.org/BC/public/belcard *or* <https://www.linphone.org/releases/sources/belcard>
- [6] bzrtp: https://gitlab.linphone.org/BC/public/bzrtp *or* <https://www.linphone.org/releases/sources/bzrtp>
Simon Morlat's avatar
Simon Morlat committed
103
- [7] linphone-sdk https://gitlab.linphone.org/BC/public/linphone-sdk