README 3.14 KB
Newer Older
1 2
This is Linphone, a free (GPL) video softphone based on the SIP protocol.

3
# Warning
4

5 6 7 8 9
Unless you exactly know what you are doing, you should take at look at [linphone-desktop](https://github.com/BelledonneCommunications/linphone-desktop).

# Otherwise…

## Building Linphone
10 11 12 13 14

- Install build time dependencies
	- libtool
	- intltool

aymeric's avatar
aymeric committed
15
- you need at least:
Simon Morlat's avatar
Simon Morlat committed
16
 	- belle-sip>=1.3.0
17
	- speex>=1.2.0 (including libspeexdsp part)
18
	- libxml2
jehan's avatar
jehan committed
19
	- bctoolbox
20

21 22
	+ if you want the gtk/glade interface:
		- libgtk >=2.16.0
aymeric's avatar
aymeric committed
23
	+ if you want video support:
Simon Morlat's avatar
Simon Morlat committed
24
		- libvpx (VP8 codec)
25
		- libavcodec (ffmpeg)
26
		- libswscale (part of ffmpeg too) for better scaling performance
27
		- libxv (x11 video extension)
28
		- libgl1-mesa (OpenGL API -- GLX development files)
Simon Morlat's avatar
Simon Morlat committed
29 30 31
		- libglew (OpenGL Extension Wrangler library)
		- libv4l (Video for linux)
		- libx11 (x11)
Simon Morlat's avatar
Simon Morlat committed
32
		- theora (optional)
33 34
	+ gsm codec (gsm source package or libgsm-dev or gsm-devel) (optional)
	+ libreadline (optional: for convenient command line in linphonec)
Simon Morlat's avatar
Simon Morlat committed
35
	+ libsqlite3 (optional : for a local history of chat messages)
36
	+ if you want uPnP support (optional):
Yann Diorcet's avatar
Yann Diorcet committed
37
		- libupnp (version 1.6 branch (not patched with 18-url-upnpstrings.patch))
Simon Morlat's avatar
Simon Morlat committed
38

39
	Here is the command line to get these dependencies installed for Ubuntu && Debian
Simon Morlat's avatar
Simon Morlat committed
40

41 42 43
	$ 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
44 45

	+ for optional library
46
	$ sudo apt-get install libreadline-dev libgsm1-dev libtheora-dev \
47
libsqlite3-dev libupnp4-dev libsrtp-dev
48

49
	+ Install zrtp (optional), for unbreakable call encryption
Simon Morlat's avatar
Simon Morlat committed
50
		$ git clone git://git.linphone.org/bzrtp.git
51 52
		$ cd bzrtp && ./autogen.sh && ./configure && make
		$ sudo make install
aymeric's avatar
aymeric committed
53

54 55 56
- Compile linphone

 $ ./autogen.sh
57 58
 $ ./configure
 $ make && sudo make install
59 60 61 62
 $ sudo ldconfig



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


67
## Notes for developers
aymeric's avatar
aymeric committed
68 69 70

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

71
- oRTP/ is a poweful implementation of the RTP protocol. See the oRTP/README for more details.
72
	It is used by mediastreamer2 to send and receive streams to the network.
aymeric's avatar
aymeric committed
73

74
- mediastreamer2/ is one of the important part of linphone. It is a framework for audio
aymeric's avatar
aymeric committed
75 76 77 78 79 80 81 82
	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
83
- gtk/	is the directory that contains the gui frontend of linphone. It uses all libraries descibed above.
aymeric's avatar
aymeric committed
84 85 86

- console/
	* linphonec.c is the main file for the console version of linphone.
87 88
	* 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.
89

aymeric's avatar
aymeric committed
90 91
- share/ contains translation, documentation, rings and hello sound files.