summarylogtreecommitdiffstats
path: root/README.freeswitch
blob: 2dfed86692c4f6786268d2a6c6ff6f1209ef6d59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
== USAGE ==

Start the freeswitch daemon with /etc/rc.d/freeswitch.
Add 'freeswitch' to DAEMONS in /etc/rc.conf and it will start at boot time.
All configuration is done in /etc/freeswitch/.  
/usr/bin/fs_cli will bring up the console to freeswitch once it's running.

== SUPPORT ==

See http://wiki.freeswitch.org for up-to-date configuration documentation.
Official (paid) support available through http://freeswitch.org or 
consulting at freeswitch dot org.
#freeswitch on Freenode IRC network.

== DESCRIPTION ==

From http://freeswitch.org:

Welcome To FreeSWITCH
The World's First Cross-Platform Scalable FREE Multi-Protocol Soft Switch

FreeSWITCH is a scalable open source cross-platform telephony platform designed to route and
interconnect popular communication protocols using audio, video, text or any other form of media.
It was created in 2006 to fill the void left by proprietary commercial solutions. FreeSWITCH also
provides a stable telephony platform on which many telephony applications can be developed using
a wide range of free tools.

FreeSWITCH was originally designed and implemented by Anthony Minessale with the help of Brian West
and Michael Jerris. All 3 are former developers of the popular Asterisk open source PBX.  The project
was initiated to focus on several design goals including modularity, cross-platform support,
scalability and stability. Today, many more developers and users contribute to the project on a daily
basis.

We support various communication technologies such as Skype, SIP, H.323 and GoogleTalk making it easy
to interface with other open source PBX systems such as sipXecs, Call Weaver, Bayonne, YATE or
Asterisk.

FreeSWITCH supports many advanced SIP features such as presence/BLF/SLA as well as TCP TLS and sRTP.
It also can be used as a transparent proxy with and without media in the path to act as a SBC
(session border controller) and proxy T.38 and other end to end protocols. 

FreeSWITCH supports both wide and narrow band codecs making it an ideal solution to bridge legacy
devices to the future. The voice channels and the conference bridge module all can operate at 8, 12,
16, 24, 32 or 48 kilohertz and can bridge channels of different rates. The G.729 codec is also
available under a commercial license.

FreeSWITCH builds natively and runs standalone on several operating systems including Windows,
Mac OS X, Linux, BSD and Solaris on both 32 and 64 bit platforms.

FreeSWITCH supports FAX, both over audio and T.38, and can gateway between the two.

Our developers are heavily involved in open source and have donated code and other resources to other
telephony projects including openSER, sipXecs, The Asterisk Open Source PBX and Call Weaver. 

== FEATURES ==

From http://wiki.freeswitch.org/wiki/Specsheet:

Possible Uses

 * Rating & Routing Server
 * Transcoding B2BUA
 * IVR & Announcement Server
 * Conference Server
 * Voicemail Server
 * SBC (Session Border Controller)
 * Basic Topology Hiding Session Border Controller
 * Zaptel, Sangoma, Rhino, PIKA Hardware Support (Analog and PRI), and Khomp Brazilian telephony hardware manufacturer
 * Fax server
 * T.38 gateway, termination, and origination mode
 * T.30 to T.38 and T.38 to T.30 gateway
  See also: mod_spandsp
  And, of course, a PBX

Features

 * Centralized User/Domain Directory (directory.xml)
 * Nano Second CDR granularity
 * Call recording (In Stereo caller/callee left/right)
 * High Performance Multi-Threaded Core engine
 * Configuration via cURL to your HTTP server (mod_xml_curl).
 * XML Config files for easy parsing.
 * Protocol Agnostic
 * ZRTP support for transparent RTP based key exchange and encryption
 * Configurable RFC 2833 Payload type
 * Inband DTMF generation and detection.
 * Software based Conference (no hardware requirement)
 * Wideband Conferencing
 * Media / No Media modes
 * Proper ENUM/ISN dialing built in
 * Detailed CDR in XML
 * Radius CDR
 * Subscription server
 * Shared Line Appearances
 * Bridged Line Appearances
 * Enterprise/Carrier grade Eventing Engine. (XML Events, Name Value Events, Multicast Events)
 * Loadable File formats and streaming
 * Stream to and play from Shoutcast and Icecast
 * Multi-lingual Speech Phrase Interface
 * ASR/TTS support (native and via MRCP)
 * Basic IP/PBX features
 * Automated Attendant
 * Custom Ring Back Tones (early_media)
 * XML-RPC support
 * Multiple format CDRs supported
 * SQL Engine provides session persistence
 * Thread Isolation
 * Parallel Hunting
 * Serial Hunting
 * Mozilla Public License
 * Support
 * Paid support available
 * Free support via IRC & E-mail
 * Many supported codecs
 * CELT (32 kHz ahd 48 kHz)
 * G.722.1 (wideband)
 * G.722.1C (wideband 32 kHz)
 * G.722 (wideband)
 * G.711
 * G.726 (16k, 24k, 32k, 48k) AAL2 and RFC 3551
 * G.723.1 (passthrough)
 * G.729AB (Requires a license unless using passthrough)
 * AMR (passthrough)
 * iLBC
 * Speex (narrow and wideband)
 * LPC-10
 * DVI4 (ADPCM) 8 kHz and 16 kHz
 * SILK
 * Video Codecs (passthrough):
 * Theora
 * H.261
 * H.263
 * H.264
 * MP4
 * More Codec Information: http://wiki.freeswitch.org/wiki/Codecs
 * Live Migration of calls from one FreeSWITCH box to another. See 
   http://wiki.freeswitch.org/wiki/Freeswitch_HA

Applications

 * Voicemail
 * Multitenancy - Enterprise/Carrier configuration
 * Time of Day Greetings
 * Urgent Message Tagging
 * E-mail Delivery
 * Playback and Rerecord messages before delivery.
 * Keys are templates so you can rearrange to fit your needs.
 * Callback support from inside voicemail.
 * Podcast of Voicemail (RSS)
 * Message Waiting Indicator (MWI)
 * Support for Queues (via mod_fifo or mod_callcenter)
 * Parking (via mod_fifo)
 * Conference
 * Software based Conferencing without any hardware requirements.
 * Wideband conferences.
 * Multiple on-demand or scheduled conferences with entry/exit announcements
 * Play files into the conference or a single member.
 * Relationships
 * TTS integration
 * Transfers
 * Outbound Calling
 * Configurable Key Lay
 * Volume, Gain and Energy level per call.
 * Bridge to Conference transition
 * Multi Party outbound dialing.
 * Inbound Call Center Queues
 * RSS Reader
 * Fax endpoint, gateway and passthrough mode.
 * T.30 (G.711) Audio Fax (via mod_spandsp) formerly known as mod_fax.
 * T.38 faxing (gateway, endpoint and passthrough)

Protocols

 * SIP
 * UDP, TCP, SCTP and TLS transports for full SIP compliance.
 * IPv6 Support
 * SIP Session timers
 * RTP Timers
 * RFC 3263 (SRV and NAPTR)
 * SRTP via SDES (Works with Polycom, Snom, Linksys and Grandstream)
 * Blind SIP Registration
 * STUN Support
 * Jitter buffer
 * NAT Support
 * Distributed SIP registrations
 * Late Codec Negotiation
 * Multiple SIP registrations per user account.
 * Multitenancy - Multiple SIP UAs
 * SIP Reinvites.
 * Can act as an SBC (Session Border Controller)
 * Manage Presence
 * SIP/SIMPLE (can gateway to other chat protocols)
 * SIP Multicast Paging support for Linksys and Snom
 * Intercom/AutoAnswer support.
 * Call features like Call Hold (Re-INVITE), Blind Transfer (REFER), Call Forward (302), etc.
 * Jingle
 * Interop with Google Talk, Google Voice, and Telepathy
 * H.323 with mod_opal (opalvoip.org)
 * mod_h323 - H.323 Endpoint module based on the h323plus library.
 * mod_skinny - Skinny Call Control Protocol (SCCP)

Languages

 * JavaScript (Using the SpiderMonkey JavaScript engine.)
 * ODBC Support from inside your JavaScript
 * Extendable modules for JavaScript
 * Tone Generation
 * Python
 * Perl
 * Lua

Cross Platform

 * Builds native on Windows in MSVC
 * Builds on Mac OS X, Linux, Solaris and *BSD.
 * Minimum/Recommended System Requirements

 * 32-bit OS (64-bit recommended)
 * 512MB RAM (1GB recommended)
 * 50MB of Disk Space
 * System requirements depend on your deployment needs. We recommend you plan for 50% duty cycle.

Performance

 * Tested under load for over 100 hours
 * 10,000,000+ calls
 * At rates exceeding 50 CPS
 * Performance will vary depending on application. You will need to test for your particular situation.