README.md 4.4 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 12 13 14 15 16 17 18 19 20 21 22
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

Copyright © Belledonne Communications, all rights reserved.

Liblinphone is dual licensed:
-   under a GNU GPLv3 license for free (see LICENSE.txt file for details)
-   under a proprietary license, for closed source projects. Contact sales@belledonne-communications.com for costs and other service information.

# 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
23

24

25 26
# Building liblinphone

Simon Morlat's avatar
Simon Morlat committed
27 28
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.
29

Simon Morlat's avatar
Simon Morlat committed
30
Here the main dependencies listed:
31

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


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

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

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

aymeric's avatar
aymeric committed
53

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

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

67
## Note for packagers
68

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

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

83
# Credits
aymeric's avatar
aymeric committed
84

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

87
# License
88

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


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

aymeric's avatar
aymeric committed
94

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