README.md 3.96 KB
Newer Older
François Grisez's avatar
François Grisez committed
1 2 3
Linphone
========

4 5
This is Linphone, a free (GPL) video softphone based on the SIP protocol.

François Grisez's avatar
François Grisez committed
6 7
**WARNING:** Unless you exactly know what you are doing, you should take at look at *linphone-desktop[1]*.

8

François Grisez's avatar
François Grisez committed
9 10
Building Linphone
-----------------
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 17 18 19 20 21 22
* *BcToolbox[2]*: portability layer
* *BelleSIP[3]*: SIP stack
* *Mediastreamer2[4]*: multimedia engine
* libxml2
* zlib
* libsqlite3: user data storage (disablable)
* libnotify: system notification (GNU/Linux only;disablable)
* libgtk2: graphical interface (disablable)
* gettext and libintl: internationalization support (disablable)
23 24


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

François Grisez's avatar
François Grisez committed
27 28
* *Belcard[5]*: VCard support
* gtkmacintegration: integration with MacOSX menu
Simon Morlat's avatar
Simon Morlat committed
29 30


François Grisez's avatar
François Grisez committed
31
### Build instructions
Simon Morlat's avatar
Simon Morlat committed
32

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

aymeric's avatar
aymeric committed
38

François Grisez's avatar
François Grisez committed
39
### Supported build opitons
40

François Grisez's avatar
François Grisez committed
41 42 43 44 45 46 47 48 49 50 51 52 53
* `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_GTK_UI=NO`              : do not build the GTK user interface
* `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
* `ENABLE_NLS=NO`                 : disable internationalization
* `ENABLE_ASSISTANT=NO`           : disable account creation wizard
54

François Grisez's avatar
François Grisez committed
55
### Note for packagers
56

François Grisez's avatar
François Grisez committed
57 58 59
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.
60

aymeric's avatar
aymeric committed
61 62


François Grisez's avatar
François Grisez committed
63 64
Notes for developers
--------------------
aymeric's avatar
aymeric committed
65 66 67

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

François Grisez's avatar
François Grisez committed
68 69
- **oRTP/** is a poweful implementation of the RTP protocol. See the oRTP/README for more details.
	    It is used by mediastreamer2 to send and receive streams to the network.
aymeric's avatar
aymeric committed
70

François Grisez's avatar
François Grisez committed
71 72 73 74 75
- **mediastreamer2/** is one of the important part of linphone. It is a framework for audio
	              and video processing. It contains several objects for grabing audio and video and outputing
	              it (through rtp, to file).
	              It contains also codec objects to compress audio and video streams.
                      The mediastream.h files contain routines to easyly setup audio streams.
aymeric's avatar
aymeric committed
76

François Grisez's avatar
François Grisez committed
77 78
- **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
79

François Grisez's avatar
François Grisez committed
80
- **gtk/** is the directory that contains the gui frontend of linphone. It uses all libraries descibed above.
aymeric's avatar
aymeric committed
81

François Grisez's avatar
François Grisez committed
82
- **console/**
aymeric's avatar
aymeric committed
83
	* linphonec.c is the main file for the console version of linphone.
84 85
	* 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.
86

François Grisez's avatar
François Grisez committed
87 88 89 90 91
- **share/** contains translation, documentation, rings and hello sound files.


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

aymeric's avatar
aymeric committed
92

François Grisez's avatar
François Grisez committed
93 94 95 96 97
- [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>