CentOS 5.2 and Asterisk 1.6.x installation
Reference: http://www.voip-info.org/wiki/view/CentOS+5+and+Asterisk+1.4.x+installation
Base Install of Asterisk on an i386 CentOS/RHEL box:
More as an aide memoir for us than anything else, but if somebody does find it useful, then that's good too!
For reasons detailed elsewhere, you're best not using a GUI, so do the installation from the command line ('linux-text' at the GRUB prompt). When you select the packages, the only one you need is 'server'. Disk partitioning, networking etc. is all entirely up to you!
At your first login, you'll be presented with a simple administration screen. Disable SELinux and (for now) the firewall.
Dependencies
The first thing to do is to get your box up to date. Try:
yum -y upgrade
and then reboot. Otherwise, to update all the installed packages, at the shell, run
yum -y update
When you've done either of the above, reboot the machine when it's finished (as it'll install a new kernel) and then run
yum -y update
again and repeat until there are no more updates.
Quick method:
Do you trust me? If so, the line below will install all the dependencies you need (and then some!) - cut and paste from here if you're happy to install things you may or may not need.
yum -y install gcc gcc-c++ kernel-devel bison \
openssl openssl-devel perl perl-Net-SSLeay perl-Crypt-SSLeay \
libtermcap-devel ncurses-devel doxygen curl-devel newt-devel \
mlocate lynx tar wget nmap bzip2 mod_ssl crontabs vixie-cron \
speex speex-devel unixODBC unixODBC-devel libtool-ltdl \
libtool-ltdl-devel mysql-connector-odbc mysql mysql-devel \
mysql-server php-mysql php-mbstring php-mcrypt flex screen
openssl openssl-devel perl perl-Net-SSLeay perl-Crypt-SSLeay \
libtermcap-devel ncurses-devel doxygen curl-devel newt-devel \
mlocate lynx tar wget nmap bzip2 mod_ssl crontabs vixie-cron \
speex speex-devel unixODBC unixODBC-devel libtool-ltdl \
libtool-ltdl-devel mysql-connector-odbc mysql mysql-devel \
mysql-server php-mysql php-mbstring php-mcrypt flex screen
Individual application specific dependencies
Asterisk
We've got to be able to compile it!
yum -y install gcc gcc-c++
Note that you may need to use the following if you are running a Xen enabled kernel:
yum -y install kernel-xen-devel
If you want the 'zttool' application, you'll need to:
yum -y install newt-devel
Other things you may find useful (if they're not already installed):
yum -y install mlocate lynx tar wget nmap bzip2 mod_ssl crontabs vixie-cron
Speex (optional)
Speex support depends on 'speex_preprocess_ctl' which is not available in the standard Speex packages. It may be possible to compile an older version of Speex if required.ODBC stuff (optional)
Note that if you have already installed Asterisk, you will need to run 'configure', 'make' and 'make install' to detect ODBC and compile it in.
yum -y install unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel
MySQL ODBC interface/connector (optional, but required if using ODBC and MySQL)
yum -y install mysql-connector-odbc
And then edit the file '/etc/odbcinst.ini' (or '/usr/local/odbcinst.ini') and replace 'Driver = /usr/lib/libmyodbc.so' with 'Driver = /usr/lib/libmyodbc3.so'
MySQL (optional)
yum -y install mysql mysql-devel mysql-server
chkconfig mysqld on
service mysqld start
chkconfig mysqld on
service mysqld start
PHPMyAdmin (optional)
Download the latest version from http://www.phpmyadmin.net/, unzip/unbzip/untar into /var/www/htdocs/phpmyadmin (for the time being). Make sure Apache starts on boot.
yum -y install php-mysql php-mbstring php-mcrypt
chkconfig httpd on
service httpd start
chkconfig httpd on
service httpd start
Surf to https://i.p.address/phpmyadmin and check it works.
Webmin (optional)
If SSL is required, ensure that the correct bits are installed
yum -y install openssl openssl-devel perl perl-Net-SSLeay perl-Crypt-SSLeay
Download the latest version of the RPM from http://www.webmin.com/
rpm -i webmin-VERSION
chkconfig webmin on
service webmin start
chkconfig webmin on
service webmin start
Surf to https://i.p.address:10000 and check it works.
Download and install Asterisk and components
Download
Download the latest asterisk version /usr/src/asterisk and untar the files as follows:
mkdir -p /usr/src/asterisk
cd /usr/src/asterisk
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.6.1-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-addons-1.6.1-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz
tar -zxf dahdi-linux-complete-current.tar.gz
tar -zxf asterisk-1.6.1-current.tar.gz
tar -zxf libpri-1.4-current.tar.gz
tar -zxf asterisk-addons-1.6.1-current.tar.gz
cd /usr/src/asterisk
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.6.1-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-addons-1.6.1-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz
tar -zxf dahdi-linux-complete-current.tar.gz
tar -zxf asterisk-1.6.1-current.tar.gz
tar -zxf libpri-1.4-current.tar.gz
tar -zxf asterisk-addons-1.6.1-current.tar.gz
You'll end up with four tar files and four directories in the directory '/usr/src/asterisk'.
Libpri (optional)
If you are using E1 cards you need to install LIBPRI. If you do want to use LIBPRI, make sure you compile and install it before you compile Asterisk. Replace 'VERSION' with the correct details.
cd /usr/src/asterisk/libpri-VERSION
make clean
make
make install
make clean
make
make install
DAHDI
You're pretty much going to need DAHDI. If not for any hardware then for the dummy timer anyway. Note that the stock CentOS kernels come with a 1000HZ timer and so don't need recompiling (phew!). Replace 'VERSION' with the correct details.
cd /usr/src/asterisk/dahdi-linux-complete-VERSION
make all
make install
make config
make all
make install
make config
Edit /etc/dahdi/modules, /etc/dahdi/system.conf and /etc/asterisk/chan_dahdi.conf for your site.
Set DAHDI to start automatically and then start it.
chkconfig dahdi on
service dahdi start
service dahdi start
Asterisk
cd /usr/src/asterisk/asterisk-VERSION
make clean
./configure
make clean
./configure
Choose which options to install (audio files, voicemail storage, codecs etc.)
make menuselect
make
make install
make
make install
Install sample files in /etc/asterisk, install docs/manpages and set to start on boot.
make samples
make progdocs
make config
chkconfig asterisk on
make progdocs
make config
chkconfig asterisk on
Check Asterisk starts properly:
asterisk -vvvvvvvvvvvvvvvvvvvc
stop now
stop now
If not, you've probably not been following these instructions carefully! Assuming it does start properly, you probably want to start it in the background:
service asterisk start
Asterisk-addons
cd /usr/src/asterisk/asterisk-addons-VERSION
make clean
./configure
make menuselect
./configure
make menuselect
Choose what you do and don't want. Unless you really need oh323, deselect it as it can be the cause of compilation woes.
make
make install
make install
Install sample files in /etc/asterisk
make samples
Edit /etc/asterisk/cdr_mysql.conf and add 'loguniqueid=yes' to the global section.
mISDN drivers for Digium B410P (optional)
Removed - have yet to test installation with DAHDI
Configure MySQL (optional)
The information below shows table definitions for all of the tables Asterisk can use with MySQL or ODBC.Notes
The UniqueID field in the CDR table is not necessarily unique! Due to the very very dodgy way Asterisk handles unique IDs, if you set the field to be the primary key (as advised elsewhere), you will lose data.SQL
Note that the SIP 'qualify' field has a default value set to 'yes'. This is for two reasons. Firstly, I wrote these notes because it's how I use and want to use Asterisk. Secondly, whether qualification is enabled or not in realtime is controlled by the 'rtcachefriends' setting in sip.conf - if it's 'no', then whether 'qualify' is 'yes' or 'no' in the database is irrelevant. It makes sense therefore to enable it in the database and then turn it on or off with the 'rtcachefriends' setting.SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
##
##Database: `asterisk`
##
CREATE DATABASE `asterisk` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `asterisk`;
##########################################################
##
##Table structure for table `cdr`
##
CREATE TABLE IF NOT EXISTS `cdr` (
`recid` mediumint(8) unsigned NOT NULL auto_increment COMMENT 'Record ID',
`calldate` datetime NOT NULL default '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL default '',
`src` varchar(80) NOT NULL default '',
`dst` varchar(80) NOT NULL default '',
`dcontext` varchar(80) NOT NULL default '',
`channel` varchar(80) NOT NULL default '',
`dstchannel` varchar(80) NOT NULL default '',
`lastapp` varchar(80) NOT NULL default '',
`lastdata` varchar(80) NOT NULL default '',
`duration` int(11) NOT NULL default '0',
`billsec` int(11) NOT NULL default '0',
`disposition` varchar(45) NOT NULL default '',
`amaflags` int(11) NOT NULL default '0',
`accountcode` varchar(20) NOT NULL default '',
`uniqueid` varchar(32) NOT NULL default '',
`userfield` varchar(255) NOT NULL default '',
PRIMARY KEY (`recid`),
KEY `calldate` (`calldate`),
KEY `dst` (`dst`),
KEY `accountcode` (`accountcode`),
KEY `src` (`src`),
KEY `disposition` (`disposition`),
KEY `uniqueid` (`uniqueid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
##########################################################
##
##Table structure for table `queue_members`
##
CREATE TABLE IF NOT EXISTS `queue_members` (
`queue_name` varchar(128) NOT NULL default '',
`interface` varchar(128) NOT NULL default '',
`penalty` int(11) default NULL,
PRIMARY KEY (`queue_name`,`interface`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
##########################################################
##
##Table structure for table `queues`
##
CREATE TABLE IF NOT EXISTS `queues` (
`name` varchar(128) NOT NULL,
`musiconhold` varchar(128) default 'default',
`announce` varchar(128) default NULL,
`context` varchar(128) default NULL,
`timeout` int(11) default '60',
`monitor_join` tinyint(1) default NULL,
`monitor_format` varchar(128) default NULL,
`queue_youarenext` varchar(128) default NULL,
`queue_thereare` varchar(128) default NULL,
`queue_callswaiting` varchar(128) default NULL,
`queue_holdtime` varchar(128) default NULL,
`queue_minutes` varchar(128) default NULL,
`queue_seconds` varchar(128) default NULL,
`queue_lessthan` varchar(128) default NULL,
`queue_thankyou` varchar(128) default NULL,
`queue_reporthold` varchar(128) default NULL,
`announce_frequency` int(11) default NULL,
`announce_round_seconds` int(11) default NULL,
`announce_holdtime` varchar(128) default NULL,
`periodic_announce` varchar(128) default NULL,
`periodic_announce_frequency` int(11) default NULL,
`retry` int(11) default '5',
`ringinuse` varchar(5) NOT NULL default 'no',
`autofill` varchar(5) NOT NULL default 'yes',
`autopause` varchar(5) NOT NULL default 'no',
`setinterfacevar` varchar(5) NOT NULL default 'yes',
`wrapuptime` int(11) default '30',
`maxlen` int(11) default NULL,
`servicelevel` int(11) default NULL,
`strategy` varchar(128) default 'ringall',
`joinempty` varchar(128) default 'no',
`leavewhenempty` varchar(128) default 'yes',
`eventmemberstatus` tinyint(1) default NULL,
`eventwhencalled` tinyint(1) default NULL,
`reportholdtime` tinyint(1) default NULL,
`memberdelay` int(11) default NULL,
`weight` int(11) default NULL,
`timeoutrestart` tinyint(1) default NULL,
PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
##########################################################
##
##Table structure for table `sip`
##
CREATE TABLE IF NOT EXISTS `sip` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(80) NOT NULL,
`host` varchar(31) NOT NULL default 'dynamic',
`nat` varchar(5) NOT NULL default 'no',
`type` enum('user','peer','friend') NOT NULL default 'friend',
`accountcode` varchar(20) default 'ACCOUNT',
`amaflags` varchar(13) default NULL,
`callgroup` varchar(10) default NULL,
`callerid` varchar(80) default NULL,
`call-limit` varchar(6) NOT NULL default '10',
`cancallforward` char(3) default 'yes',
`canreinvite` char(3) default 'no',
`context` varchar(80) default 'from-sip',
`defaultip` varchar(15) default NULL,
`dtmfmode` varchar(7) default 'rfc2833',
`fromuser` varchar(80) default NULL,
`fromdomain` varchar(80) default NULL,
`insecure` varchar(4) default NULL,
`language` char(2) default 'en',
`mailbox` varchar(50) default NULL,
`md5secret` varchar(80) default NULL,
`deny` varchar(95) default '0.0.0.0/0.0.0.0',
`permit` varchar(95) default '0.0.0.0/0.0.0.0',
`mask` varchar(95) default NULL,
`musiconhold` varchar(100) default 'default',
`pickupgroup` varchar(10) default NULL,
`qualify` char(3) default 'yes',
`regexten` varchar(80) default NULL,
`restrictcid` char(3) default NULL,
`rtptimeout` char(3) default NULL,
`rtpholdtimeout` char(3) default NULL,
`secret` varchar(80) default 'SECRET',
`setvar` varchar(100) default NULL,
`disallow` varchar(100) default 'all',
`allow` varchar(100) default 'alaw',
`fullcontact` varchar(80) NOT NULL default '',
`ipaddr` varchar(15) NOT NULL default '',
`port` smallint(5) unsigned NOT NULL default '0',
`regserver` varchar(100) default NULL,
`regseconds` int(11) NOT NULL default '0',
`username` varchar(80) NOT NULL,
`defaultuser` varchar(80) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
KEY `name_2` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=301 ;
##########################################################
##
##Table structure for table `voicemail_messages`
##
CREATE TABLE IF NOT EXISTS `voicemail_messages` (
`id` int(11) NOT NULL auto_increment,
`msgnum` int(11) NOT NULL default '0',
`dir` varchar(80) default '',
`context` varchar(80) default '',
`macrocontext` varchar(80) default '',
`callerid` varchar(40) default '',
`origtime` varchar(40) default '',
`duration` varchar(20) default '',
`mailboxuser` varchar(80) default '',
`mailboxcontext` varchar(80) default '',
`recording` longblob,
PRIMARY KEY (`id`),
KEY `dir` (`dir`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1088 ;
##########################################################
##
##Table structure for table `voicemail_users`
##
CREATE TABLE IF NOT EXISTS `voicemail_users` (
`uniqueid` int(11) NOT NULL auto_increment,
`customer_id` varchar(11) NOT NULL default '0',
`context` varchar(50) NOT NULL default 'default',
`mailbox` varchar(11) NOT NULL default '0',
`password` varchar(5) NOT NULL default '6666',
`fullname` varchar(150) NOT NULL,
`email` varchar(50) NOT NULL,
`pager` varchar(50) NOT NULL,
`tz` varchar(10) NOT NULL default 'en',
`attach` varchar(4) NOT NULL default 'yes',
`saycid` varchar(4) NOT NULL default 'yes',
`dialout` varchar(10) NOT NULL,
`callback` varchar(10) NOT NULL,
`review` varchar(4) NOT NULL default 'no',
`operator` varchar(4) NOT NULL default 'no',
`envelope` varchar(4) NOT NULL default 'no',
`sayduration` varchar(4) NOT NULL default 'no',
`saydurationm` tinyint(4) NOT NULL default '1',
`sendvoicemail` varchar(4) NOT NULL default 'no',
`delete` varchar(4) NOT NULL default 'no',
`nextaftercmd` varchar(4) NOT NULL default 'yes',
`forcename` varchar(4) NOT NULL default 'no',
`forcegreetings` varchar(4) NOT NULL default 'no',
`hidefromdir` varchar(4) NOT NULL default 'yes',
`stamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`uniqueid`),
KEY `mailbox_context` (`mailbox`,`context`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=101 ;
## ########################################################
##
##Create realtime user with approximately the right privs.
##
CREATE USER 'astrealtime'@'localhost' IDENTIFIED BY 'MYPASS';
GRANT FILE ON * . * TO 'astrealtime'@'localhost' IDENTIFIED BY 'MYPASS' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
GRANT INSERT ON `asterisk`.`cdr` TO 'astrealtime'@'localhost';
GRANT SELECT , INSERT , UPDATE , DELETE ON `asterisk`.`queue_members` TO 'astrealtime'@'localhost';
GRANT SELECT , UPDATE ON `asterisk`.`queues` TO 'astrealtime'@'localhost';
GRANT SELECT , UPDATE ON `asterisk`.`sip` TO 'astrealtime'@'localhost';
GRANT SELECT , UPDATE ON `asterisk`.`voicemail_users` TO 'astrealtime'@'localhost';
GRANT SELECT , UPDATE , INSERT , DELETE ON `asterisk`.`voicemail_messages` TO 'astrealtime'@'localhost';
Configure various files
Set up CDR to MySQL
Edit /etc/asterisk/cdr_mysql.conf[global]
hostname=localhost
dbname=asterisk
table=cdr
password=MYPASS
user=astrealtime
port=3306
sock=/var/lib/mysql/mysql.sock
userfield=1
Set up realtime
Edit res_mysql.conf[general]
dbhost = localhost
dbname = asterisk
dbuser = astrealtime
dbpass = MYPASS
dbport = 3306
dbsock = /var/lib/mysql/mysql.sock
If you are using version 1.6.0 or lower
Edit /etc/asterisk/extconfig.conf[settings]
queues => mysql,asterisk,queues
queue_members => mysql,asterisk,queue_members
sippeers => mysql,asterisk,sip
sipusers => mysql,asterisk,sip
voicemail => mysql,asterisk,voicemail_users
If you are using version 1.6.1 or higher
Edit /etc/asterisk/extconfig.conf[settings]
queues => mysql,general,queues
queue_members => mysql,general,queue_members
sippeers => mysql,general,sip
sipusers => mysql,general,sip
voicemail => mysql,general,voicemail_users
ODBC configuration (using settings from above)
/etc/odbcinst.ini
[MySQL]Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc3.so
;For x64 systems
;Driver = /usr/lib64/libmyodbc3.so
Setup = /usr/lib/libodbcmyS.so
FileUsage = 1
(Note the '3' which isn't in the original sample file!)
/etc/odbc.ini
; DSN definitions[astrealtime]
Description = Asterisk realtime and other FUNC_ODBC access
Driver = MySQL
Socket = /var/lib/mysql/mysql.sock
Server = localhost
User = astrealtime
Pass = MYPASS
Database = asterisk
Option = 3
/etc/asterisk/res_odbc.conf
; Environment variables[ENV]
; Connections
[astrealtime]
enabled => yes
dsn => astrealtime
username => astrealtime
password => MYPASS
pre-connect => yes
idlecheck => 3600
/etc/asterisk/func_odbc.conf
This really depends on why you need database access from the dialplan!Setting up Asterisk on a vserver
Removed - have yet to test installation with DAHDIn
NOTE:
cspan is like yum but only to install PERL modules
Installing Voiceglue: Two Ways
There are two ways to install Voiceglue. The easy way, and the hard way. The easy was has the advantage of being, well, easy, but has the disadvantage of supporting only a small number of configurations and a small number of platforms. The hard way is, well, harder, but has the advantage of potentially being able to support any unix-y system in arbitrary configurations.
If you're fine with running Voiceglue on the same box as Asterisk and are going to run it on Ubuntu 8.04 or 8.10 or Fedora 9 or 10, then by all means try the easy method.
If you're fine with running Voiceglue on the same box as Asterisk and are going to run it on Ubuntu 8.04 or 8.10 or Fedora 9 or 10, then by all means try the easy method.
The Easy Way
The easy way is mostly automatic. Voiceglue provides a script that should get everything installed and running in one shot. Before the script can run, however, you have to do some preparation work.
Prerequisites
The prerequisites must be satisfied before installing Voiceglue.
Supported Platform
You must be installing on one of the following platforms:
- Ubuntu 8.04 (Hardy)
- Ubuntu 8.10 (Intrepid)
- Ubuntu 9.04 (Jaunty)
- Fedora 9
- Fedora 10
Asterisk Installed
You must have Asterisk installed somehow. The Voiceglue installer doesn't check for an asterisk package, so it's fine to install it from source if you want to.
Supported versions of Asterisk are:
Supported versions of Asterisk are:
- Asterisk 1.2
- Asterisk 1.4
- Asterisk 1.6
The "asterisk" user
The “asterisk” user must be present. This user is what the voiceglue process runs as because it needs to share audio files with Asterisk. It is legal, even with the easy way, to have Asterisk installed on a separate machine from Voiceglue, but the “asterisk” user must be present on the voiceglue host, and should match the uid/gid of the “asterisk” user on the Asterisk host.
Required Packages
There are several software packages that Voiceglue requires. The installer looks for them as packages in the system (debs for Ubuntu, rpms for Fedora) so they must be installed that way. For Ubuntu you use apt/synaptic, for Fedora you use yum/yumex. Here's the list of what's required on each of the supported platforms:
If an entry is blank, it means I didn't have to install that package from a base system because it was already present, so you probably won't have to either.
Package | Ubuntu 8.04 | Ubuntu 8.10 - 9.04 | Fedora 9 or 10 | |
---|---|---|---|---|
gcc/g++ | gcc g++ | gcc g++ | gcc-c++ | |
libc++ | libstdc++-devel | |||
xerces-c | libxerces28-dev | libxerces-c2-dev | xerces-c-devel | |
SpiderMonkey | libmozjs-dev | libmozjs-dev | xulrunner-devel | |
flite | flite | flite | flite | |
sox | sox | sox | sox | |
libsox-fmt-all | libsox-fmt-all | libsox-fmt-all | ||
wget | wget | wget | wget | |
openssl | libssl-dev | libssl-dev | openssl-devel | |
XML ::LibXML | libxml-libxml-perl | libxml-libxml-perl | perl- XML -LibXML | |
BSD::Resource | libbsd-resource-perl | libbsd-resource-perl | perl-BSD-Resource | |
Module::Build | libmodule-build-perl | libmodule-build-perl | perl-Module-Build | |
FFTW 3 | libfftw3-dev | libfftw3-dev | fftw-devel | |
Test::More | perl-Test-Base | |||
pkg-config | pkg-config | pkg-config | pkgconfig |
Download and Unpack Voiceglue
After prerequisites are installed, download and upack the voiceglue distribution. It can always be found at http://voiceglue.org by clicking on the “Download” tab at the top.
I'm assuming that downloading and unpacking a tar file is not hard for a voiceglue user. After all, you installed Asterisk.
I'm assuming that downloading and unpacking a tar file is not hard for a voiceglue user. After all, you installed Asterisk.
Running the install script
From within the top-level voiceglue directory (the one containing doc), run the following command as root:
It first checks the prerequisites listed above, then if those are satisfied, builds and installs all of the software required for Voiceglue. Check the output for errors.
After the script runs to completion,. you should have the following services ready to run with their init scripts in /etc/init.d/:
These services must be brought up in the order shown above, and brought down in the reverse order. Their install scripts will do this automatically on system startup and shutdown.
doc/install-voiceglue
It first checks the prerequisites listed above, then if those are satisfied, builds and installs all of the software required for Voiceglue. Check the output for errors.
After the script runs to completion,. you should have the following services ready to run with their init scripts in /etc/init.d/:
- dynlog
- phoneglue
- voiceglue
These services must be brought up in the order shown above, and brought down in the reverse order. Their install scripts will do this automatically on system startup and shutdown.
Uninstalling voiceglue
If you want to get rid of everything that voiceglue installed (which can be useful for re-installs too in case you're using something like checkinstall to create packages and you want all files re-installed even if they didn't change) you can run the supplied uninstall script.
From within the top-level voiceglue directory (the one containing doc), run the following command as root:
From within the top-level voiceglue directory (the one containing doc), run the following command as root:
doc/uninstall-voiceglue
The Hard Way
Prerequisites
The prerequisites are the same as for the easy way, except that you are not necessarily restricted to the platforms listed there, and the software packages don't necessarily need to be installed as the package format of choice for the distribution.
Voiceglue Contents
The Voiceglue distribution contains the following top-level directories:
Each of these items (except doc) must be installed.
Directory | Contents |
---|---|
Cam-Scom | perl library for IPC |
doc | documentation and install script |
dynlog | perl programs providing unified log collection |
libvglue | voiceglue C/C++ libraries |
openvxi-3.4+vglue | voiceglue-modified openvxi 3.4 C/C++ library |
phoneglue | perl program providing high-level Asterisk interface |
Satc | perl library for phoneglue communication |
SRGSDTMF | perl library for processing SRGS DTMF grammars |
Vgluefftw | perl library for FFTW access |
voiceglue | perl program providing voiceglue interface |
Voiceglue-Conf | perl library for voiceglue configuration |
Vxglue | perl library for interfacing to openvxi |
Installing Voiceglue
The order in which the software components must be installed is:
- Cam-Scom
- dynlog
- Vgluefftw
- Satc
- Voiceglue-Conf
- phoneglue
- SRGSDTMF
- libvglue-headers
- openvxi-3.4+vglue
- libvglue
- Vxglue
- voiceglue
Installing Perl Libraries
Each perl library can be installed with the following sequence of actions:
- Change to that directory
- Run:
perl Build.PL
- Run:
./Build install
Installing Programs
Each program can be installed with the following sequence of actions:
- Change to that directory
- Determine which Makefile is appropriate for your situation
- Run:
make -f Makefile install
Installing libvglue-headers
The libvglue software is installed in two steps. The first step installs just the headers:
- Change to that directory
- Run:
make install-headers
Installing libvglue
When it's time to install libvglue binaries, do:
- Change to that directory
- Run:
make install
Installing openvxi-3.4+vglue
This is the most challenging install step, as it consists of a large number of C/C++ modules that have dependencies on several system libraries.
First, look at the
Next, look at the
Finally, the
First, look at the
exports
file at the top level. It contains the following definitions: SWISBSDK
- The top-level directory of OpenVXIXERCESDIR
- The directory containing the Xerces-C distributionSPIDERMONKEYDIR
- The directory containing the Mozilla SpiderMonkey distributionJSCFLAGS
- The CFLAGS used for compiling against SpiderMonkeyJSLIBFLAGS
- The library flags for linking against SpiderMonkey
Next, look at the
build-openvxi
script in the same top-level directory. It encodes the steps to build OpenVXI. Hopefully, with proper settings in exports
, it will run successfully. Finally, the
install-openvxi
script in the same top-level directory installs the compiled OpenVXI library files and runtime support files to their system destinations. NOTE:
Enable Manager in /etc/astrisk/manager.conf by making " enable=yes " (so that manager will enable)
No comments:
Post a Comment