Commit a2ff0d32 authored by François Grisez's avatar François Grisez

Update README.md

parent 5fc24f41
Linphone
========
This is Linphone, a free (GPL) video softphone based on the SIP protocol.
# Warning
**WARNING:** Unless you exactly know what you are doing, you should take at look at *linphone-desktop[1]*.
Unless you exactly know what you are doing, you should take at look at [linphone-desktop](https://github.com/BelledonneCommunications/linphone-desktop).
Building Linphone
-----------------
# Otherwise…
### Required dependencies
## Building Linphone
* *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)
- Install build time dependencies
- libtool
- intltool
- you need at least:
- belle-sip>=1.3.0
- speex>=1.2.0 (including libspeexdsp part)
- libxml2
- bctoolbox
### Opitonal dependencies
+ if you want the gtk/glade interface:
- libgtk >=2.16.0
+ if you want video support:
- libvpx (VP8 codec)
- libavcodec (ffmpeg)
- libswscale (part of ffmpeg too) for better scaling performance
- libxv (x11 video extension)
- libgl1-mesa (OpenGL API -- GLX development files)
- libglew (OpenGL Extension Wrangler library)
- libv4l (Video for linux)
- libx11 (x11)
- theora (optional)
+ gsm codec (gsm source package or libgsm-dev or gsm-devel) (optional)
+ libreadline (optional: for convenient command line in linphonec)
+ libsqlite3 (optional : for a local history of chat messages)
+ if you want uPnP support (optional):
- libupnp (version 1.6 branch (not patched with 18-url-upnpstrings.patch))
* *Belcard[5]*: VCard support
* gtkmacintegration: integration with MacOSX menu
Here is the command line to get these dependencies installed for Ubuntu && Debian
$ sudo apt-get install libtool intltool libgtk2.0-dev libspeexdsp-dev \
libavcodec-dev libswscale-dev libx11-dev libxv-dev libgl1-mesa-dev \
libglew1.6-dev libv4l-dev libxml2-dev
### Build instructions
+ for optional library
$ sudo apt-get install libreadline-dev libgsm1-dev libtheora-dev \
libsqlite3-dev libupnp4-dev libsrtp-dev
cmake . -DCMAKE_INSTALL_PREFIX=<prefix> -DCMAKE_PREFIX_PATH=<search_prefixes>
make
make install
+ Install zrtp (optional), for unbreakable call encryption
$ git clone git://git.linphone.org/bzrtp.git
$ cd bzrtp && ./autogen.sh && ./configure && make
$ sudo make install
- Compile linphone
### Supported build opitons
$ ./autogen.sh
$ ./configure
$ make && sudo make install
$ sudo ldconfig
* `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
### Note for packagers
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.
For windows compilation see README.mingw.
For macOS X, see README.macos
## Notes for developers
Notes for developers
--------------------
Here is a short description of the content of the source tree.
- 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.
- **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.
- 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.
- **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.
- 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.
- **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.
- gtk/ is the directory that contains the gui frontend of linphone. It uses all libraries descibed above.
- **gtk/** is the directory that contains the gui frontend of linphone. It uses all libraries descibed above.
- console/
- **console/**
* linphonec.c is the main file for the console version of linphone.
* 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.
- share/ contains translation, documentation, rings and hello sound files.
- **share/** contains translation, documentation, rings and hello sound files.
------------------------------
- [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>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment