README 3.38 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 12
 	- libosip2>=3.5.0
	- libeXosip2>=3.5.0
13 14 15 16
	- speex>=1.2.0 (including libspeexdsp part)
	
	+ 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)
Simon Morlat's avatar
Simon Morlat committed
22 23 24 25
		- ligl1-mesa (OpenGL API -- GLX development files)
		- 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 36 37 38 39

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

	$ sudo apt-get install libtool intltool libgtk2.0-dev libosip2-dev libexosip2-dev libspeexdsp-dev libavcodec-dev libswscale-dev libx11-dev libvx-dev ligl1-mesa-dev libglew-dev libv4l-dev

	+ for optional library
	$ sudo apt-get install libreadline-dev liggsm1-dev libtheora-dev libsoup2.4-dev libsqlit3-dev libupnp6-dev 
40 41 42 43 44 45 46 47 48 49 50
	
	+ 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
 		$ sudo apt-get install cmake libssl-dev
 		$ git clone git://git.linphone.org/zrtpcpp.git
		$ cd zrtpcpp && cmake -Denable-ccrtp=false . && make
 		$ sudo make install
aymeric's avatar
aymeric committed
51 52


53 54 55 56
- Compile linphone

 $ ./autogen.sh
 $ ./configure 
Margaux Clerc's avatar
Margaux Clerc committed
57
 $ make && sudo make install 
58 59 60 61
 $ sudo ldconfig



62 63
For windows compilation see README.mingw.
For macOS X, see README.macos
aymeric's avatar
aymeric committed
64 65


66
******************************** notes for developers: *****************************
aymeric's avatar
aymeric committed
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81

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
82
- gtk/	is the directory that contains the gui frontend of linphone. It uses all libraries descibed above.
aymeric's avatar
aymeric committed
83 84 85

- console/
	* linphonec.c is the main file for the console version of linphone.
86 87
	* 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
88 89 90
		
- share/ contains translation, documentation, rings and hello sound files.