root/freepbx/branches/2.3.views/INSTALL

Revision 4170, 9.1 kB (checked in by fool4kate, 2 years ago)

Rebranded freePBX to FreePBX

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 ###
2 Installing FreePBX
3
4 ###
5 Important Warning!
6 FreePBX _will_ overwrite any exisiting asterisk configurations you may have. This project attempts
7 to manage as much of asterisk as it can, and this means lots of automatically generated dialplans.
8 Please visit both the Documentation wiki (http://www.aussievoip.com.au/wiki/FreePBX) and the Dev
9 wiki (http://www.freepbx.org/wiki) for instructions, hints and tips. As a rule of thumb, any
10 existing sip, iax, or extensions files can be copied to the same name with _custom.conf appended,
11 and things will continue to work as before.
12
13
14 ###
15 FreePBX has several requirements, including the following packages (names may vary based on distro):
16
17         libxml2
18         libxml2-devel
19         libtiff
20         libtiff-devel
21         lame
22         httpd (or Apache2)
23         mysql (or mysql-client)
24         mysql-devel (or libmysqlclient10-dev)
25         mysql-server
26         php (or php4)
27         (on debian, also install libapache2-mod-php4)
28         php4-pear (if pear is not included with your php)
29         php-mysql
30         (on SUSE, also install php4-gettext and php4-session)
31         php-gd
32         openssl
33         openssl-devel (or libssl-dev)
34         kernel-devel (or linux-source)
35         perl
36         perl-CPAN
37         bison
38         ncurses-devel (or libncurses5-dev)
39         audiofile-devel (or libaudiofile-devel)
40         curl
41         sox
42
43        
44 ###
45 FreePBX requires the following changes to php and apache for uploading new MOH files:
46 (Note: Thise are reasonably distro specifc. Check http://www.aussievoip.com/wiki/FreePBX
47 for more documentation)
48
49
50         - vi +482 /etc/php.ini  (or /etc/php4/apache2/php.ini)
51                 upload_max_filesize=20M
52         - vi +14 /etc/httpd/conf.d/php.conf (if you have it)
53                 LimitRequestBody 20000000
54
55 ###
56 Download the latest FreePBX files:
57
58         - download the latest FreePBX tarball to /usr/src
59         - tar -zxvf freepbx<version>.tar.gz
60
61 ###
62 Getting Asterisk and Zaptel from SVN or download the latest Asterisk and Zaptel source archives
63 (FreePBX uses the v2.0 branch)
64
65         - cd /usr/src
66         - svn checkout http://svn.digium.com/svn/asterisk/branches/1.2 asterisk-1.2
67         - svn checkout http://svn.digium.com/svn/zaptel/branches/1.2 zaptel-1.2
68         - svn checkout http://svn.digium.com/svn/libpri/branches/1.2 libpri-1.2
69
70 ###
71 For TDM zap devices (FXO/FXS):
72
73         - cd /usr/src/zaptel
74         - make && make install
75
76         If you will be using a Digium telephony card that supports T1/E1 signaling do this step as well:
77         - cd /usr/src/libpri
78         - make && make install
79        
80 ###
81 Patching Asterisk with softfax/spandsp.
82
83         - Download the latest 0.2 spandsp files from http://www.soft-switch.org
84         - cd /usr/src/spandsp-xxx
85         - ./configure
86         - make && make install
87
88         The spandsp libraries are installed to /usr/local/lib.  Therefore /usr/local/lib must be added to the LD_LIBRARY_PATH environment variable of the user that starts the asterisk process. To be safe, also add it to /etc/ld.so.conf and run ldconfig.
89
90         Copy the following files (from soft-switch.org) to /usr/src/asterisk/apps/ :
91
92         - cp app_rxfax.c /usr/src/asterisk/apps/
93         - cp app_txfax.c /usr/src/asterisk/apps/
94         - cp apps_makefile.patch /usr/src/asterisk/apps/
95
96         - cd /usr/src/asterisk/apps
97         - patch < apps_makefile.patch
98
99                
100 ###
101 Create a group and non-root user:
102
103         - groupadd asterisk
104         - useradd -c "asterisk PBX" -d /var/lib/asterisk -g asterisk asterisk
105        
106        
107 ###
108 Building Asterisk and configuring it to run as a non-root user
109
110         - mkdir /var/run/asterisk
111         - cd /usr/src/asterisk
112         - make clean && make && make install
113
114 ###
115 Get and build cdr_mysql module for asterisk
116
117         - cd /usr/src/asterisk-addons
118         - perl -p -i.bak -e 's/CFLAGS.*D_GNU_SOURCE/CFLAGS+=-D_GNU_SOURCE\nCFLAGS+=-DMYSQL_LOGUNIQUEID/' Makefile
119         - make clean && make && make install
120        
121 ###
122 Install asterisk-sounds
123
124         - cd /usr/src/asterisk-sounds
125         - make install
126        
127 ###
128 Setting up MySQL for CDR and FreePBX web interface
129
130         - /usr/bin/mysql_install_db
131         - /etc/init.d/mysqld start (or /etc/init.d/mysql start)
132
133         - mysqladmin -u root password 'db_root_pwd'
134         - mysqladmin create asteriskcdrdb -p
135         - mysql --user=root --password=db_root_pwd asteriskcdrdb < /usr/src/freepbx<version>/SQL/cdr_mysql_table.sql
136        
137         - mysqladmin create asterisk -p
138         - mysql --user root -p asterisk < /usr/src/freepbx<version>/SQL/newinstall.sql
139
140        
141 ###
142 Grant access to these two databases you just created
143
144 **Note the default mysql username/password is asteriskuser/amp109. 
145 **If you change either of these, you will be prompted for them while running ./install below
146
147         - mysql --user root -p
148
149                 mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'amp109';
150                 Query OK, 0 rows affected (0.00 sec)
151
152                 mysql> GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'amp109';
153                 Query OK, 0 rows affected (0.00 sec)
154                
155                 mysql> quit
156
157 ###
158 Run the "install" script to install all the FreePBX files: 
159
160         - /usr/src/FreePBX/install_amp
161        
162 ###
163 Configure zaptel driver:
164
165         a. Edit /etc/zaptel.conf to reflect installed Digium telephony card(s).
166        
167         Only the parameters/values relevant to a TDM400P with 4 FXO modules are included below:
168
169         fxsks=1-4
170         loadzone=us
171         defaultzone=us
172
173         Only the parameters/values relevant to a TE110P (T1 configuration) are included below:
174        
175         span=1,1,0,esf,b8zs
176         bchan=1-23
177         dchan=24
178         loadzone=us
179         defaultzone=us
180
181         b. ztcfg -v
182
183                         Zaptel Configuration
184                         ======================
185                        
186                         1 channels configured.
187        
188         If you get a warning about unable to open master device /dev/zap/ctl, that's ok.  It's a result
189         of the zaptel module(s) not loaded yet.
190
191         Detailed information with regard to Asterisk's configuration files can be found here:
192         http://voip-info.org/wiki-Asterisk+config+files
193
194 ###
195 Configure zapata module in asterisk config.
196
197         - edit /etc/asterisk/zapata.conf to reflect installed digium interfaces (see zapata.conf.template)
198
199         Only the parameters/values relevant to a TDM400P with 4 FXO modules are included below:
200
201         [channels]
202         language=en
203         #include zapata_additional.conf
204         context=from-pstn
205         signalling=fxs_ks
206         faxdetect=incoming
207         usecallerid=yes
208         callerid=asreceived
209         echocancel=yes
210         callprogress=no
211         busydetect=no
212         echocancelwhenbridged=no
213         echotraining=800
214         group=0
215         channel=1-4
216
217
218         Only the parameters/values relevant to a TE110P (T1 configuration) are included below:
219
220         [channels]
221         language=en
222         #include zapata_additional.conf
223         context=from-pstn
224         switchtype=national
225         pridialplan=national
226         signalling=pri_cpe
227         faxdetect=incoming
228         usecallerid=yes
229         echocancel=yes
230         callerid=asreceived
231         echocancelwhenbridged=no
232         echotraining=800
233         group=0
234         channel=1-23
235
236
237         Note: if your configuration is using zap channels as FXS endpoints, zapata.conf must
238         contain the following line in order to provision these endpoints in FreePBX's Extensions admin:
239         #include zapata_additional.conf
240
241         Detailed information with regard to Asterisk's configuration files can be found here:
242         http://voip-info.org/wiki-Asterisk+config+files
243
244 ###
245 httpd (Apache) configuration
246
247         - Edit /etc/httpd/conf/httpd.conf (or /etc/apache2/apache2.conf) so that:
248
249                 User asterisk
250                 Group asterisk
251                
252 ###
253 Chown the PHP session.save_path directory:
254
255         - chown asterisk /var/lib/php/session
256
257                
258 ###
259 Amportal Control Script
260
261         FreePBX's amportal control script starts, stops or kills services in the FreePBX environment, and sets permissions on directories/files in the
262         FreePBX environment:
263
264         [root@pbx root]# amportal
265        
266         ----------AMP Control Script-----------
267         Usage: amportal start|stop|kill|chown
268         start: Starts Asterisk and Flash Operator Panel server
269         stop: Gracefully stops Asterisk and the FOP server
270         kill: Kills Asterisk and the FOP server
271         chown: Sets appropriate permissions on files
272        
273         The amportal script is the recommended way to stop and start asterisk:
274        
275         [root@pbx root]# /usr/sbin/amportal stop
276         [root@pbx root]# /usr/sbin/amportal start
277
278 ###
279 Auto Start
280
281         The module/driver that you load at boot time depends upon whether you are using a
282         TDM400P or TE110P. The wcfxs module should be loaded for the former and the wcte11xp
283         module should be loaded for the latter.
284
285         The following scripts are for RedHat and derivatives that use an rc.local:
286        
287         Edit /etc/rc.d/rc.local to include the following for the TDM400P:
288         #!/bin/sh
289         #
290         # This script will be executed *after* all the other init scripts.
291         # You can put your own initialization stuff in here if you don't
292         # want to do the full Sys V style init stuff.
293         touch /var/lock/subsys/local
294         echo Loading wcfxs
295         /sbin/modprobe wcfxs
296         /usr/sbin/amportal start
297
298         Edit /etc/rc.d/rc.local to include the following for the TE110P:
299
300         #!/bin/sh
301         #
302         # This script will be executed *after* all the other init scripts.
303         # You can put your own initialization stuff in here if you don't
304         # want to do the full Sys V style init stuff.
305         touch /var/lock/subsys/local
306         echo Loading wcte11xp
307         /sbin/modprobe wcte11xp
308         /usr/sbin/amportal start
309
310         For Debian and others (?), you'll have to add startup script(s) to /etc/init.d and link them
311         to the appropriate rc?.d runlevel.
312
313        
314         Also ensure that mysql and apache are set to start at bootup. For RedHat-based systems do the following:
315        
316         - chkconfig --level 3 httpd on
317         - chkconfig --level 3 mysqld on
318
319 ###
320 Start everything (or reboot and it should start automagically):
321
322         - As root run:
323
324                 service httpd restart
325                 (or /etc/init.d/apache2 restart)
326
327         - As root run:
328
329                 amportal start
330
331         - Point your browser to:
332
333                 http://[ip address]  (default login is admin/admin)
334
335 If you notice any errors or updates that are needed to this document, please e-mail:
336 info@coalescentsystems.ca
Note: See TracBrowser for help on using the browser.