README.md 3.37 KB
Newer Older
jehan's avatar
jehan committed
1
liblinphone
François Grisez's avatar
François Grisez committed
2 3
========

jehan's avatar
jehan committed
4
This is liblinphone, a free (GPL) video voip library based on the SIP protocol.
5

jehan's avatar
jehan committed
6
This library is used by Linphone. It's source code is available at *linphone-desktop[1]*.
François Grisez's avatar
François Grisez committed
7

8

jehan's avatar
jehan committed
9
Building liblinphone
François Grisez's avatar
François Grisez committed
10
-----------------
11

François Grisez's avatar
François Grisez committed
12
### Required dependencies
13

François Grisez's avatar
François Grisez committed
14 15 16
* *BcToolbox[2]*: portability layer
* *BelleSIP[3]*: SIP stack
* *Mediastreamer2[4]*: multimedia engine
jehan's avatar
jehan committed
17
* *Belcard[5]*: VCard support
François Grisez's avatar
François Grisez committed
18 19 20 21
* libxml2
* zlib
* libsqlite3: user data storage (disablable)
* gettext and libintl: internationalization support (disablable)
22 23


François Grisez's avatar
François Grisez committed
24
### Opitonal dependencies
25

jehan's avatar
jehan committed
26
* *Bzrtp[6]*: zrtp stack used for Linphone Instant Messaging Encryption
Simon Morlat's avatar
Simon Morlat committed
27 28


François Grisez's avatar
François Grisez committed
29
### Build instructions
Simon Morlat's avatar
Simon Morlat committed
30

François Grisez's avatar
François Grisez committed
31 32 33 34
	cmake . -DCMAKE_INSTALL_PREFIX=<prefix> -DCMAKE_PREFIX_PATH=<search_prefixes>
	
	make
	make install
35

aymeric's avatar
aymeric committed
36

François Grisez's avatar
François Grisez committed
37
### Supported build opitons
38

François Grisez's avatar
François Grisez committed
39 40 41 42 43 44 45 46 47 48
* `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=NO`                 : do not generate the reference documentation of liblinphone
* `ENABLE_UNIT_TESTS=NO`          : do not build testing binaries
* `ENABLE_VCARD=NO`               : disable VCard support
* `ENABLE_SQLITE_STORAGE=NO`      : disable SQlite user data storage (message, history, contacts list)
* `ENABLE_TOOLS=NO`               : do not build tool binaries
jehan's avatar
jehan committed
49
* `ENABLE_LIME=YES`               : disable Linphone Instant Messaging Encryption
50

François Grisez's avatar
François Grisez committed
51
### Note for packagers
52

François Grisez's avatar
François Grisez committed
53 54 55
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.
56

jehan's avatar
jehan committed
57 58 59 60 61 62 63
Rpm packaging
liblinphone can be generated with cmake3 using the following command:
mkdir WORK
cd WORK
cmake3 ../
make package_source
rpmbuild -ta --clean --rmsource --rmspec liblinphone-<version>-<release>.tar.gz
aymeric's avatar
aymeric committed
64 65


François Grisez's avatar
François Grisez committed
66 67
Notes for developers
--------------------
aymeric's avatar
aymeric committed
68 69 70 71

Here is a short description of the content of the source tree.


François Grisez's avatar
François Grisez committed
72 73
- **coreapi/** is the central point of linphone, which handles relationship between sip signalisation and media
               streaming. It contains an easy to use api to create a sip phone.
aymeric's avatar
aymeric committed
74 75


François Grisez's avatar
François Grisez committed
76
- **console/**
aymeric's avatar
aymeric committed
77
	* linphonec.c is the main file for the console version of linphone.
78 79
	* sipomatic.c / sipomatic.h contains the code for sipomatic, the test program that auto-answer to linphone calls.
	* shell.c (program name: linphonecsh) is a small utilities to send interactive commands to a running linphonec daemon.
80

François Grisez's avatar
François Grisez committed
81 82 83 84 85
- **share/** contains translation, documentation, rings and hello sound files.


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

aymeric's avatar
aymeric committed
86

François Grisez's avatar
François Grisez committed
87 88 89 90 91
- [1] linphone-desktop: git://git.linphone.org/linphone-desktop.git
- [2] bctoolbox: git://git.linphone.org/bctoolbox.git *or* <https://www.linphone.org/releases/sources/bctoolbox>
- [3] belle-sip: git://git.linphone.org/belle-sip.git *or* <https://www.linphone.org/releases/sources/belle-sip>
- [4] mediastreamer2: git://git.linphone.org/mediastreamer2.git *or* <https://www.linphone.org/releases/sources/mediastreamer>
- [5] belcard: git://git.linphone.org/belcard.git *or* <https://www.linphone.org/releases/sources/belcard>
jehan's avatar
jehan committed
92
- [5] bzrtp: git://git.linphone.org/bzrtp.git *or* <https://www.linphone.org/releases/sources/bzrtp>