Fixed bug in AST_VDadapt.pl script git-svn-id: svn://192.168.202.10@1115 3d104415-ff17-0410-8863-d5cf3c621b8a
363 lines
14 KiB
Plaintext
363 lines
14 KiB
Plaintext
Ubuntu VICIDIAL Install: 2009-05-12
|
||
|
||
### NOTE ###
|
||
If you just want a quick setup of ViciDial on Ubuntu, take a look at our
|
||
downloadable ViciBox server install ISO available at: http://www.vicibox.com
|
||
|
||
|
||
From a full default install of Ubuntu Server 8.0.4.2:
|
||
|
||
Open a terminal on the system
|
||
$ sudo su
|
||
$ passwd (set the root user's password)
|
||
“apt-get install” the following packages:
|
||
apache2 (web server)
|
||
apache2-mpm-prefork (multi threaded portion to apache2)
|
||
build-essential (this is the build tool chain for gcc)
|
||
iftop (this is a useful tool for looking at the network interface)
|
||
lame (this is a mp3 encoding tool)
|
||
libmysqlclient15-dev (library that lets programs connect to mysql)
|
||
libncurses5-dev
|
||
libploticus0-dev
|
||
libsox-fmt-all (encoding and decoding libraries for sox)
|
||
linux-source (needed if you are going to recompile the linux kernel)
|
||
linux-headers (needed for compiling zaptel)
|
||
mpg123 (mp3 playback utility for the commandline)
|
||
mtop (utility for monitoring mysql)
|
||
mysql-client-5.0 (command for connecting to mysql)
|
||
mysql-doc-5.0 (documentation for mysql)
|
||
mysql-server-5.0 (this will ask for a password you can just press enter a bunch of times)
|
||
mytop (utility for monitoring mysql)
|
||
ntp (time synchronization utility)
|
||
openssh-server (ssh server allows for remote connection)
|
||
php5 (base php files)
|
||
php5-cli (php command line interface (allows us to run php -v for eaccelerator))
|
||
php5-dev (development tools for php5 allows us to compile eaccelerator
|
||
php5-mysql (allows php5 to connect to a mysql server)
|
||
phpmyadmin (vicidial uses apache2 as its webserver please select this)
|
||
ploticus (this is what creates the graphs for the server performance screen)
|
||
screen (vicidial runs its core scripts in screen so this is REQUIRED)
|
||
sipsak (tool for sending various information to sip phones)
|
||
sox (command line encoding and decoding tool)
|
||
subversion (code versioning tool)
|
||
subversion-tools
|
||
unzip
|
||
libcurl3
|
||
curl
|
||
|
||
|
||
Go to terminal:
|
||
$ cd /usr/src
|
||
$ tar -xjf linux-source-*.tar.bz2 (where * is the kernel version)
|
||
$ cpan
|
||
(press enter to go through the prompts. If you have a multi cored system you should enter the -j option when specified with n+1 as the value, where n is the number of CPUs you have in your system. Also enter UNINST=1 when asked. until you get to the mirror selection portion)
|
||
(select 3 mirror sites in your area)
|
||
> install MD5
|
||
> install Digest::SHA1
|
||
> install readline
|
||
> install Bundle::CPAN (do not change settings)
|
||
> quit
|
||
$ cpan (enter through questions until you get to the cpan prompt)
|
||
> o conf commit (saves the config changes)
|
||
> force install Scalar::Util
|
||
> install DBI
|
||
> force install DBD::mysql
|
||
> install Net::Server
|
||
> install Time::HiRes
|
||
> install Net::Telnet
|
||
> install Unicode::Map
|
||
> install Jcode
|
||
> install OLE::Storage_Lite
|
||
> install Spreadsheet::WriteExcel
|
||
> install Proc::ProcessTable
|
||
> install Spreadsheet::ParseExcel
|
||
> install Mail::Sendmail
|
||
> quit
|
||
|
||
cd /usr/src
|
||
wget http://asterisk.gnuinter.net/files/asterisk-perl-0.08.tar.gz
|
||
tar xzf asterisk-perl-0.08.tar.gz
|
||
cd asterisk-perl-0.08
|
||
perl Makefile.PL
|
||
make all
|
||
make install
|
||
|
||
cd /usr/src
|
||
wget http://www.daveltd.com/src/util/ttyload/ttyload-0.5.tar.gz
|
||
tar xzf ttyload-0.5.tar.gz
|
||
cd ttyload-0.5
|
||
make
|
||
make install
|
||
|
||
cd /usr/src
|
||
wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.zip
|
||
unzip eaccelerator-0.9.5.3.zip
|
||
cd eaccelerator-0.9.5.3
|
||
phpize
|
||
./configure
|
||
make
|
||
make install
|
||
cd /etc/php5/conf.d/
|
||
$ vim eaccelerator.ini
|
||
> add the following to the eaccelerator.:
|
||
extension="eaccelerator.so"
|
||
eaccelerator.shm_size="48"
|
||
eaccelerator.cache_dir="/tmp/eaccelerator"
|
||
eaccelerator.enable="1"
|
||
eaccelerator.optimizer="1"
|
||
eaccelerator.check_mtime="1"
|
||
eaccelerator.debug="0"
|
||
eaccelerator.filter=""
|
||
eaccelerator.shm_max="0"
|
||
eaccelerator.shm_ttl="0"
|
||
eaccelerator.shm_prune_period="0"
|
||
eaccelerator.shm_only="0"
|
||
eaccelerator.compress="1"
|
||
eaccelerator.compress_level="9"
|
||
mkdir /tmp/eaccelerator
|
||
chmod 0777 /tmp/eaccelerator
|
||
php -v
|
||
|
||
|
||
mkdir /usr/src/asterisk
|
||
cd /usr/src/asterisk
|
||
|
||
****FOR 1.2 asterisk run the following
|
||
wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.2.30.2.tar.gz
|
||
wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.2.27.tar.gz
|
||
wget http://downloads.digium.com/pub/libpri/releases/libpri-1.2.8.tar.gz
|
||
tar xzf asterisk-1.2.30.2.tar.gz
|
||
tar xzf zaptel-1.2.27.tar.gz
|
||
tar xzf libpri-1.2.8.tar.gz
|
||
cd libpri-1.2.8
|
||
make clean; make; make install
|
||
cd ../zaptel-1.2.27
|
||
make clean; make; make install
|
||
cd ../asterisk-1.2.30.2
|
||
cd apps
|
||
wget http://www.eflo.net/files/app_amd2.c
|
||
mv app_amd2.c app_amd.c
|
||
$ vi Makefile
|
||
replace this line(line 32):
|
||
app_mixmonitor.so app_stack.so
|
||
with this line:
|
||
app_mixmonitor.so app_stack.so app_amd.so
|
||
wget http://www.eflo.net/files/amd2.conf
|
||
mkdir /etc/asterisk
|
||
mv amd2.conf /etc/asterisk/amd.conf
|
||
wget http://www.eflo.net/files/meetme_DTMF_passthru-1.2.23.patch
|
||
patch -p1 < ./meetme_DTMF_passthru-1.2.23.patch
|
||
File to patch: app_meetme.c
|
||
wget http://www.eflo.net/files/meetme_volume_control_1.2.16.patch
|
||
patch -p1 < ./meetme_volume_control_1.2.16.patch
|
||
File to patch: app_meetme.c
|
||
cd ../
|
||
wget http://www.eflo.net/files/cli_chan_concise_delimiter.patch
|
||
patch -p1 < ./cli_chan_concise_delimiter.patch
|
||
File to patch: cli.c
|
||
$ wget http://www.eflo.net/files/app_waitforsilence.c
|
||
$ mv app_waitforsilence.c apps/app_waitforsilence.c
|
||
$ wget http://www.eflo.net/files/enter.h
|
||
$ wget http://www.eflo.net/files/leave.h
|
||
$ mv -f enter.h apps/enter.h
|
||
$ mv -f leave.h apps/leave.h
|
||
$ vi codecs/gsm/Makefile
|
||
add “OPTIMIZE=-O2” to the file before the ifneq section, to fix GSM audio problems
|
||
$ make clean; make; make installation
|
||
$ make samples
|
||
$ modprobe zaptel
|
||
$ modprobe ztdummy
|
||
|
||
****FOR 1.4 asterisk do the following:
|
||
wget http://downloads.digium.com/pub/asterisk/old-releases/asterisk-1.4.21.2.tar.gz
|
||
wget http://downloads.digium.com/pub/zaptel/zaptel-1.4.12.1.tar.gz
|
||
wget http://downloads.digium.com/pub/libpri/libpri-1.4.9.tar.gz
|
||
tar xzf asterisk-1.4.21.2.tar.gz
|
||
tar xzf zaptel-1.4.12.1.tar.gz
|
||
tar xzf libpri-1.4.9.tar.gz
|
||
cd libpri-1.4.9
|
||
make clean; make; make install
|
||
cd ../zaptel-1.4.12.1
|
||
./configure; make clean; make; make install
|
||
cd ../asterisk-1.4.21.2
|
||
$ wget http://www.eflo.net/files/enter.h
|
||
$ wget http://www.eflo.net/files/leave.h
|
||
$ mv -f enter.h apps/enter.h
|
||
$ mv -f leave.h apps/leave.h
|
||
$ vi codecs/gsm/Makefile
|
||
add “OPTIMIZE=-O2” to the file before the ifneq section, to fix GSM audio problems
|
||
./configure; make clean; make; make install
|
||
make samples
|
||
modprobe zaptel
|
||
modprobe ztdummy
|
||
|
||
$ asterisk -vvvvvvvvvvvvvvvvvvvvvvvvvvvvgc (to see if Asterisk runs)
|
||
> show version
|
||
> zap show status
|
||
> show application meetme
|
||
> stop now
|
||
|
||
|
||
*** for asterisk 1.2
|
||
cd /var/lib/asterisk/mohmp3/
|
||
mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-sunshine.mp3 > /var/lib/asterisk/mohmp3/fpm-sunshine.raw
|
||
sox -r 44100 -w -s -c 1 fpm-sunshine.raw -r 8000 -c 1 fpm-sunshine.wav
|
||
sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm
|
||
sox fpm-sunshine.wav -t ul -r 8000 -b -c 1 fpm-sunshine.pcm
|
||
mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-calm-river.mp3 > /var/lib/asterisk/mohmp3/fpm-calm-river.raw
|
||
sox -r 44100 -w -s -c 1 fpm-calm-river.raw -r 8000 -c 1 fpm-calm-river.wav
|
||
sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm
|
||
sox fpm-calm-river.wav -t ul -r 8000 -b -c 1 fpm-calm-river.pcm
|
||
mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-world-mix.mp3 > /var/lib/asterisk/mohmp3/fpm-world-mix.raw
|
||
sox -r 44100 -w -s -c 1 fpm-world-mix.raw -r 8000 -c 1 fpm-world-mix.wav
|
||
sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm
|
||
sox fpm-world-mix.wav -t ul -r 8000 -b -c 1 fpm-world-mix.pcm
|
||
mkdir ../orig-mp3
|
||
mv -f *.mp3 ../orig-mp3/
|
||
mkdir ../quiet-mp3
|
||
cd ../quiet-mp3
|
||
sox -r 44100 -w -s -c 1 ../mohmp3/fpm-sunshine.raw -r 8000 -c 1 fpm-sunshine.wav vol 0.25
|
||
sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm
|
||
sox fpm-sunshine.wav -t ul -r 8000 -b -c 1 fpm-sunshine.pcm
|
||
sox -r 44100 -w -s -c 1 ../mohmp3/fpm-calm-river.raw -r 8000 -c 1 fpm-calm-river.wav vol 0.25
|
||
sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm
|
||
sox fpm-calm-river.wav -t ul -r 8000 -b -c 1 fpm-calm-river.pcm
|
||
sox -r 44100 -w -s -c 1 ../mohmp3/fpm-world-mix.raw -r 8000 -c 1 fpm-world-mix.wav vol 0.25
|
||
sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm
|
||
sox fpm-world-mix.wav -t ul -r 8000 -b -c 1 fpm-world-mix.pcm
|
||
rm -f ../mohmp3/*.raw
|
||
|
||
|
||
**** for asterisk 1.4
|
||
cp -a /var/lib/asterisk/moh /var/lib/asterisk/mohmp3/
|
||
cd /var/lib/asterisk/mohmp3/
|
||
sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm
|
||
sox fpm-sunshine.wav -t ul -r 8000 -b -c 1 fpm-sunshine.pcm
|
||
sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm
|
||
sox fpm-calm-river.wav -t ul -r 8000 -b -c 1 fpm-calm-river.pcm
|
||
sox -r 44100 -w -s -c 1 fpm-world-mix.raw -r 8000 -c 1 fpm-world-mix.wav
|
||
sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm
|
||
sox fpm-world-mix.wav -t ul -r 8000 -b -c 1 fpm-world-mix.pcm
|
||
mkdir ../quiet-mp3
|
||
cd ../quiet-mp3
|
||
sox ../mohmp3/fpm-sunshine.wav -r 8000 -c 1 fpm-sunshine.wav vol 0.25
|
||
sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm
|
||
sox fpm-sunshine.wav -t ul -r 8000 -b -c 1 fpm-sunshine.pcm
|
||
sox ../mohmp3/fpm-calm-river.wav -r 8000 -c 1 fpm-calm-river.wav vol 0.25
|
||
sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm
|
||
sox fpm-calm-river.wav -t ul -r 8000 -b -c 1 fpm-calm-river.pcm
|
||
sox ../mohmp3/fpm-world-mix.wav -r 8000 -c 1 fpm-world-mix.wav vol 0.25
|
||
sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm
|
||
sox fpm-world-mix.wav -t ul -r 8000 -b -c 1 fpm-world-mix.pcm
|
||
|
||
**** for SVN 2.0.5 branch:
|
||
$ mkdir /usr/src/astguiclient
|
||
$ cd /usr/src/astguiclient
|
||
$ svn checkout svn://svn.eflo.net:43690/agc_2-X/branches/agc_2.0.5
|
||
$ cd agc_2.0.5
|
||
$ perl install.pl
|
||
|
||
**** for SVN 2.0 trunk:
|
||
$ mkdir /usr/src/astguiclient
|
||
$ cd /usr/src/astguiclient
|
||
$ svn checkout svn://svn.eflo.net:43690/agc_2-X/trunk
|
||
$ cd trunk
|
||
$ perl install.pl
|
||
|
||
: manual configuration [y]
|
||
: press enter until you get to webroot and set that to the following: /var/www
|
||
: press enter through to the “Sample configuration files” and set that to 'y'
|
||
: press enter through to the end of the script
|
||
: add the highlighted lines to the top of your [default] context:
|
||
$ vi /etc/asterisk/extensions.conf
|
||
$ cd /var/lib/asterisk/sounds
|
||
$ wget http://downloads.vicidial.com/sounds/conf.gsm
|
||
$ cp conf.gsm park.gsm
|
||
|
||
$ mysql
|
||
> CREATE DATABASE `asterisk` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||
> GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@'%' IDENTIFIED BY '1234';
|
||
> GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@localhost IDENTIFIED BY '1234';
|
||
> use asterisk;
|
||
> \. /usr/src/astguiclient/trunk/extras/MySQL_AST_CREATE_tables.sql
|
||
> \. /usr/src/astguiclient/trunk/extras/first_server_install.sql
|
||
> \. /usr/src/astguiclient/trunk/extras/sip-iax_phones.sql
|
||
> quit
|
||
$ /usr/share/astguiclient/ADMIN_update_server_ip.pl –old-server_ip=10.10.10.15
|
||
$ /usr/share/astguiclient/ADMIN_area_code_populate.pl
|
||
$ cp /usr/src/astguiclient/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/
|
||
$ /usr/share/astguiclient/VICIDIAL_IN_new_leads_file.pl --forcelistid=107 –forcephonecode=1
|
||
|
||
$ crontab -e
|
||
Add the following lines:
|
||
### recording mixing/compressing/ftping scripts
|
||
0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl
|
||
#0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl
|
||
1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl –MP3
|
||
#2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --MP3
|
||
### keepalive script for astguiclient processes
|
||
* * * * * /usr/share/astguiclient/ADMIN_keepalive_ALL.pl
|
||
### kill Hangup script for Asterisk updaters
|
||
* * * * * /usr/share/astguiclient/AST_manager_kill_hung_congested.pl
|
||
|
||
### updater for voicemail
|
||
* * * * * /usr/share/astguiclient/AST_vm_update.pl
|
||
### updater for conference validator
|
||
* * * * * /usr/share/astguiclient/AST_conf_update.pl
|
||
### flush queue DB table every hour for entries older than 1 hour
|
||
11 * * * * /usr/share/astguiclient/AST_flush_DBqueue.pl -q
|
||
### fix the vicidial_agent_log once every hour
|
||
33 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl
|
||
### updater for VICIDIAL hopper
|
||
* * * * * /usr/share/astguiclient/AST_VDhopper.pl -q
|
||
### adjust the GMT offset for the leads in the vicidial_list table
|
||
1 1,7 * * * /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --debug --postal-code-gmt
|
||
### reset several temporary-info tables in the database
|
||
2 1 * * * /usr/share/astguiclient/AST_reset_mysql_vars.pl
|
||
### optimize the database tables within the asterisk database
|
||
3 1 * * * /usr/share/astguiclient/AST_DB_optimize.pl
|
||
## adjust time on the server with ntp
|
||
30 * * * * /usr/local/bin/ntpdate -u pool.ntp.org 2>/dev/null 1>&2
|
||
### VICIDIAL agent time log weekly summary report generation
|
||
2 0 * * 0 /usr/share/astguiclient/AST_agent_week.pl
|
||
### remove old recordings more than 7 days old
|
||
# 24 0 * * * /usr/bin/find /var/spool/asterisk/monitor -maxdepth 2 -type f -mtime +7 -print | xargs rm -f
|
||
### remove old vicidial logs and asterisk logs more than 2 days old
|
||
28 0 * * * /usr/bin/find /var/log/astguiclient -maxdepth 1 -type f -mtime +2 -print | xargs rm -f
|
||
29 0 * * * /usr/bin/find /var/log/asterisk -maxdepth 3 -type f -mtime +2 -print | xargs rm -f
|
||
|
||
|
||
cd /etc/init.d/
|
||
cp /usr/src/astguiclient/trunk/extras/init.d/vicidial ./
|
||
chmod 0755 vicidial
|
||
cd /usr/bin
|
||
ln -s /bin/grep grep
|
||
cd ../rc2.d
|
||
ln -s ../init.d/vicidial S35vicidial
|
||
|
||
$ vim /etc/apache2/sites-available/default (add the following lines)
|
||
Alias /RECORDINGS/ "/var/spool/asterisk/monitorDONE/"
|
||
<Directory "/var/spool/asterisk/monitorDONE">
|
||
Options Indexes MultiViews
|
||
AllowOverride None
|
||
Order allow,deny
|
||
Allow from all
|
||
<files *.mp3>
|
||
Forcetype application/forcedownload
|
||
</files>
|
||
</Directory>
|
||
$ chmod 0777 /var/spool/asterisk/monitorDONE/
|
||
$ /etc/init.d/apache2 restart
|
||
|
||
$ vi /etc/fstab (add the following line to the end of the file)
|
||
tmpfs /var/spool/asterisk/monitor tmpfs rw 0 0
|
||
|
||
|
||
|
||
$ shutdown -r 0
|
||
$ screen -ls (should show at least 6 screens, one of which should be asterisk)
|
||
|
||
|
||
In a web browser, go to (http://YOUR_SERVER_IP_ADDRESS/vicidial/admin.php) to see if everything is working. You should also reboot at this point to make sure everything will start back up properly.
|
||
From here on you should follow the tutorials in the VICIDIAL Manager Manual(available at eflo.net)
|