README.md 4.51 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

smorlat's avatar
smorlat committed
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
Simon Morlat's avatar
Simon Morlat committed
45 46


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

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

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

aymeric's avatar
aymeric committed
54

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

57 58 59 60 61 62 63
* **`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
64
* **`ENABLE_VCARD=NO`**               : disable VCard4 support
65
* **`ENABLE_TOOLS=NO`**               : do not build tool binaries
66
* **`ENABLE_LIME=NO`**                : disable Linphone Instant Messaging Encryption
67

68
## Note for packagers
69

François Grisez's avatar
François Grisez committed
70 71 72
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.
73

jehan's avatar
jehan committed
74
Rpm packaging
Simon Morlat's avatar
Simon Morlat committed
75 76
liblinphone can be generated with cmake3 using the following commands:
```
jehan's avatar
jehan committed
77 78 79 80 81
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
82
```
aymeric's avatar
aymeric committed
83

84
# Credits
aymeric's avatar
aymeric committed
85

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

88
# License
Gautier Pelloux-Prayer's avatar
Gautier Pelloux-Prayer committed
89

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


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

aymeric's avatar
aymeric committed
95

Simon Morlat's avatar
Simon Morlat committed
96
- [1] Linphone: https://linphone.org/technical-corner/linphone
Sylvain Berfini's avatar
Sylvain Berfini committed
97 98 99 100 101
- [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
102
- [7] linphone-sdk https://gitlab.linphone.org/BC/public/linphone-sdk