README 3.5 KB
Newer Older
smorlat's avatar
smorlat committed
1 2 3
This is Linphone, a free (GPL) video softphone based on the SIP protocol.


4
******************Building linphone ***********************************
5 6 7 8 9

- Install build time dependencies
	- libtool
	- intltool

aymeric's avatar
aymeric committed
10
- you need at least:
Simon Morlat's avatar
Simon Morlat committed
11
 	- belle-sip>=1.3.0
12
	- speex>=1.2.0 (including libspeexdsp part)
13
	- libxml2
14 15 16
	
	+ if you want the gtk/glade interface:
		- libgtk >=2.16.0
aymeric's avatar
aymeric committed
17
	+ if you want video support:
Simon Morlat's avatar
Simon Morlat committed
18
		- libvpx (VP8 codec)
Simon Morlat's avatar
Simon Morlat committed
19
		- libavcodec (ffmpeg) 
20
		- libswscale (part of ffmpeg too) for better scaling performance
21
		- libxv (x11 video extension)
22
		- libgl1-mesa (OpenGL API -- GLX development files)
Simon Morlat's avatar
Simon Morlat committed
23 24 25
		- libglew (OpenGL Extension Wrangler library)
		- libv4l (Video for linux)
		- libx11 (x11)
Simon Morlat's avatar
Simon Morlat committed
26
		- theora (optional)
27 28 29
	+ gsm codec (gsm source package or libgsm-dev or gsm-devel) (optional)
	+ libreadline (optional: for convenient command line in linphonec)
	+ libsoup (optional: for wizard - account creation assistant)
Simon Morlat's avatar
Simon Morlat committed
30
	+ libsqlite3 (optional : for a local history of chat messages)
31
	+ if you want uPnP support (optional):
Yann Diorcet's avatar
Yann Diorcet committed
32
		- libupnp (version 1.6 branch (not patched with 18-url-upnpstrings.patch))
Simon Morlat's avatar
Simon Morlat committed
33 34 35

	Here is the command line to get these dependencies installed for Ubuntu && Debian 

36 37 38
	$ 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
Simon Morlat's avatar
Simon Morlat committed
39 40

	+ for optional library
41 42
	$ sudo apt-get install libreadline-dev libgsm1-dev libtheora-dev \
libsoup2.4-dev libsqlite3-dev libupnp4-dev
43

44 45 46 47 48 49
	+ Install srtp (optional) for call encryption :
		$ git clone git://git.linphone.org/srtp.git
 		$ cd srtp && autoconf && ./configure && make
 		$ sudo make install

	+ Install zrtpcpp (optional), for unbreakable call encryption
Simon Morlat's avatar
Simon Morlat committed
50 51 52 53
 		$ sudo apt-get install cmake
		$ git clone https://github.com/wernerd/ZRTPCPP.git
		$ cd ZRTPCPP 
		$ cmake -DCORE_LIB=true -DSDES=false . && make
54
 		$ sudo make install
Simon Morlat's avatar
Simon Morlat committed
55
		If you get this error: "cc1plus: error: unrecognized command line option ‘-std=c++11’", edit CMakeLists.txt and replace c++11 by c++0x .
aymeric's avatar
aymeric committed
56

57 58 59 60
- Compile linphone

 $ ./autogen.sh
 $ ./configure 
Margaux Clerc's avatar
Margaux Clerc committed
61
 $ make && sudo make install 
62 63 64 65
 $ sudo ldconfig



66 67
For windows compilation see README.mingw.
For macOS X, see README.macos
aymeric's avatar
aymeric committed
68 69


70
******************************** notes for developers: *****************************
aymeric's avatar
aymeric committed
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85

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 the mediastreamer to send and receive streams to the network.

- mediastreamer2/ is one of the important part of linphone. It is a framework library 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.

Simon Morlat's avatar
Simon Morlat committed
86
- gtk/	is the directory that contains the gui frontend of linphone. It uses all libraries descibed above.
aymeric's avatar
aymeric committed
87 88 89

- console/
	* linphonec.c is the main file for the console version of linphone.
90 91
	* 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.
aymeric's avatar
aymeric committed
92 93 94
		
- share/ contains translation, documentation, rings and hello sound files.