Monday, October 27, 2008
Friday, October 17, 2008
MYSQL database repair and optimize
//quick
myisamchk -r -q "tablename.MYI"
//normal
myisamchk -r -q "tablename.MYI"
// optimize
myisamchk -o -q "tablename.MYI"
myisamchk -r -q "tablename.MYI"
//normal
myisamchk -r -q "tablename.MYI"
// optimize
myisamchk -o -q "tablename.MYI"
/etc/network/interfaces (sample)
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 119.111.71.98
netmask 255.255.255.240
gateway 119.111.71.97
allow-hotplug eth1
iface eth1 inet static
address 192.168.100.45
netmask 255.255.254.0
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 119.111.71.98
netmask 255.255.255.240
gateway 119.111.71.97
allow-hotplug eth1
iface eth1 inet static
address 192.168.100.45
netmask 255.255.254.0
Thursday, October 16, 2008
g729 codec opensource
wget http://asterisk.hosting.lv/bin12/codec_g723-ast12-gcc4-glibc-pentium4.so
cp codec_g723-ast12-gcc4-glibc-pentium4.so /usr/lib/asterisk/modules/codec_g723.so
chmod +x /usr/lib/asterisk/modules/codec_g723.so
wget http://asterisk.hosting.lv/bin12/codec_g729-ast12-gcc4-glibc-pentium4.so
cp codec_g729-ast12-gcc4-glibc-pentium4.so /usr/lib/asterisk/modules/codec_g729.so
chmod +x /usr/lib/asterisk/modules/codec_g729.so
stop asterisk (from CLI: stop now)
and restart it by running:
/usr/share/astguiclient/start_asterisk_boot.pl
Check whether the codecs where loaded from asterisk CLI:
> show translation
cp codec_g723-ast12-gcc4-glibc-pentium4.so /usr/lib/asterisk/modules/codec_g723.so
chmod +x /usr/lib/asterisk/modules/codec_g723.so
wget http://asterisk.hosting.lv/bin12/codec_g729-ast12-gcc4-glibc-pentium4.so
cp codec_g729-ast12-gcc4-glibc-pentium4.so /usr/lib/asterisk/modules/codec_g729.so
chmod +x /usr/lib/asterisk/modules/codec_g729.so
stop asterisk (from CLI: stop now)
and restart it by running:
/usr/share/astguiclient/start_asterisk_boot.pl
Check whether the codecs where loaded from asterisk CLI:
> show translation
scratch install centos
Asterisk v.1.2.17 and ASTguiclient v.2.0.3 install from scratch.
MODIFIED by : Marlon Budol Santos
Courtesy by : eflo.net
If you want to read the original installation of Asterisk and VICIDIAL
see this link : http://astguiclient.sourceforge.net/scratch_install.html
**** IMPORTANT - In order for vicidial/astguiclient to function correctly please
read the REQUIREMENTS.txt for a minimum requirements list. ***
INSTALLING AN OPERATING SYSTEM
This installation will be using CentOS 4.4 for the linux distribution,
CentOS 4.4 will also work with these instructions. There are several easier
linux distributions and there are others that are more popular, but CentOS is
a nice non-commercial distro that has been around for a long time.
During the installation you must add the all MySQL, WebServer, Development Tools,
Sox components.
Sox is an audio utility that allows you to mix audio files together at their
start point into one file. it is necessary for Asterisk recordings that record
in and out as separate files. *REQUIRED* (needed for recording mixing)
To update your system just type this directly on the command line;
- yum -y groupinstall "Development Tools"
- yum -y update
If you want to make autoload on startup the MySQL server and the WebServer
just type this directly on the command line;
- chkconfig --level 2345 mysqld on
- chkconfig --level 2345 httpd on
INSTALLING SOFTWARE BEFORE ASTERISK
In this step we will be installing software that Asterisk and/or astGUIclient
needs to be able to function to its fullest ability. Not all of these software
packages are manditory to successfully install Asterisk and some of them can be
installed on other machines on your network like MySQL or Apache. But, in this
installation we are assuming that there are no other machines on our network to
help the Asterisk server, so it must have everything it needs installed locally.
***** NOTE: if you will be using any of the DBI perl scripts: *****
Every machine that you will be using the newer BDI perl scripts on will need
to have the perl modules DBI and DBD::mysql installed on them. To do this
you will also need to at least have the MySQL client installed on the server
(see above) then you will need to go to 'cpan' and "install DBI" and
"install DBD::mysql". You may need to "force install DBD::mysql" if the DBD
tests fail on your first try, but that is OK since the tests are not needed
Installing Perl Modules
NOTE - you can install ActiveState http://www.activestate.com perl which may
improve performance, but it is not required. Here's the source for ActiveState
Perl 5.8: (it's free)
http://downloads.activestate.com/ActivePerl/src/5.8/AP817_source.tgz
I hope to add the lengthy steps for installing it as your default perl on your
server but I need some time and a free machine to do that.
cpan is the "Comprehensive Perl Archive Network". It's a mirrored archive of
most of the perl modules out there complete with a installation and management
command-line interface. Here's what you do to start it:
*REQUIRED* (needed for perl AGIs)
1. perl -MCPAN -e shell # type in the command line
2. You will then go through CPAN setup, just hit ENTER for most prompts except
for the mirrors list, you will want to select at least 4 mirrors
- yes for manual configuration
- enter for the next 18 prompts
- for the "make install options" it's a good idea to add UNINST=1
- enter for the next 4 prompts
- select your continent and country
- select a few cpan mirrors (choose North America then United States, then select all mirror links)
- enter for the next 2 prompts
3. Once you see the cpan> prompt you can begin installing modules
4. If you've never installed cpan before you should probably install the
following modules first: (say YES if asked to install prerequisites)
- install MD5
- install Digest::MD5
- install Digest::SHA1
- install readline (just hit Enter when it asks for operator)
- install Bundle::CPAN
- reload cpan
- then you can install other modules:
- install DBI
- force install DBD::mysql (must at least have mysqlclientlibs installed)
- install Net::Telnet
- install Time::HiRes
- install Net::Server
- install Unicode::Map (needed for super list loader Excel)
- install Jcode (needed for super list loader Excel)
- install Spreadsheet::WriteExcel (needed for super list loader Excel)
- install OLE::Storage_Lite (needed for super list loader Excel)
- install Proc::ProcessTable (needed for super list loader Excel)
- install IO::Scalar (needed for super list loader Excel)
- install Spreadsheet::ParseExcel (needed for super list loader Excel)
- then quit cpan, you are done
5. Go to http://asterisk.gnuinter.net/ and download the asterisk-perl module
(backup link: http://www.freedomphones.net/files/asterisk-perl-0.08.tar.gz)
NOTE: Do NOT use the 0.09 version, it does not work with VICIDIAL
- to install this directly on the command line type:
- cd /usr/local
- wget http://asterisk.gnuinter.net/files/asterisk-perl-0.08.tar.gz
- gunzip asterisk-perl-0.08.tar.gz
- tar xvf asterisk-perl-0.08.tar
- cd asterisk-perl-0.08
- perl Makefile.PL
- make all
- make install
- you are done
Installing other utilities
LAME is a MP3 encoder used to convert audio files from WAV to MP3. We prefer GSM
usually, but some users have standardized on MP3 so they would need this utility
to be loaded to use that option.
*OPTIONAL* (only needed if you will be converting recordings to MP3)
Go to http://lame.sourceforge.net/ and download the lame package
- to install this directly on the command line type:
- cd /usr/local
-wget http://downloads.sourceforge.net/lame/lame-3.96.1.tar.gz
-gunzip lame-3.96.1.tar.gz
-tar xvf lame-3.96.1.tar
-cd lame-3.96.1
-./configure
-make
-make install
- you are done
Screen is a terminal emulator that allows you to run a process as command line
and be able to detach from them ('Ctrl+a' then 'd') and log all output of the
terminal to a screenlog file if desired(add a '-L' to the launching command).
In our installations this is how we launch Asterisk upon startup and still have
the ability to log output and still attach to the screen that executed asterisk
originally.
*REQUIRED* *MANDITORY FOR VICIDIAL SERVERS*
- to install this directly on the command line type:
- yum -y install screen
ttyload is a simple terminal application that shows the processor load in a
graphical time-based scrolling graph. We use it to view how loaded the system is
and it visualizes load spikes very well
*OPTIONAL* (only for obsessive admins like me)
Go to http://www.daveltd.com/src/util/ttyload/ and download the ttyload
package
- to install this directly on the command line type:
- cd /usr/local
- wget http://www.daveltd.com/src/util/ttyload/ttyload-0.4.4.tar.gz
- gunzip ttyload-0.4.4.tar.gz
- tar xvf ttyload-0.4.4.tar
- cd ttyload-0.4.4
- make
- ln -s /usr/local/ttyload-0.4.4/ttyload /usr/bin/ttyload
- you are done
ntpd is the network time protocol daemon that matches the time on your machine
with the time of a master server somewhere in the world. We use it to make sure
the time is the same on our client computers and our servers.
*MANDITORY FOR VICIDIAL SERVERS* (install on server and all clients)
Go to http://www.ntp.org/ and download the ntpd package
- to install this directly on the command line type:
- cd /usr/local
- wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.2p3.tar.gz
If you get compilation errors here try 4.1.2:
- wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.1.2.tar.gz
- gunzip ntp-4.2.2p3.tar.gz
- tar xvf ntp-4.2.2p3.tar
- cd ntp-4.2.2p3
- ./configure
- make
- make install
- vi /etc/ntp.conf (change to just 1 line: "server 18.145.0.30")
- cp /etc/ntp.conf /etc/ntpd.conf # just to be sure
- /usr/local/bin/ntpdate -u 18.145.0.30 # initial sync
- /usr/sbin/ntpd # run it
- you are done
iftop is a good console bandwidth visualization tool that shows you active
connections, where they are going to/from and how much of your precious bandwidth
they are using.
*OPTIONAL*
Go to http://www.ex-parrot.com/~pdw/iftop/ and download the package
- to install this directly on the command line type:
- cd /usr/local
- wget http://www.tcpdump.org/release/libpcap-0.9.4.tar.gz
- gunzip libpcap-0.9.4.tar.gz
- tar xvf libpcap-0.9.4.tar
- cd libpcap-0.9.4
- ./configure
- make
- make install
- cd /usr/local
- wget http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.17.tar.gz
- gunzip iftop-0.17.tar.gz
- tar xvf iftop-0.17.tar
- cd iftop-0.17
- ./configure
- make
- make install
- iftop
- you are done
ploticus is a free graph creation package that allows you to create line graphs
within PNG files simply by creating a config file and a data file. We use this
package along with the included PHP script to generate server performance graphs
that can be displayed real-time on a web page.
*OPTIONAL* (only needed for server performance graphing web reports)
Go to http://ploticus.sourceforge.net/ and download the package
- to install this directly on the command line type:
NOTE: you may have to edit the Makefile to remove X11 if you don't have it
- cd /usr/local
- wget http://ploticus.sourceforge.net/download/pl232src.tar.gz
- gunzip pl232src.tar.gz
- tar xvf pl232src.tar
- cd pl232src/src/
- make clean
- make
- make install
- you are done
NOTE: for the graphics to work on the AST_server_performance page you will
need the 'pl' script to be linked or copied into your htdocs/vicidial/ploticus directory
NOTE: you may need to edit the Makefile for ploticus if you do not have X11
openssl is the open-source SSL libraries package, and to install a fake SSL cert
locally and have it work with apache, you need it installed on your machine
*OPTIONAL* (only install openssl if you want to use SSL secured web pages on
your locally installed copy of Apache web server)
Go to http://www.openssl.org/ and download the linux source for openssl
- to install this directly on the command line type:
- cd /usr/local
- wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz
- gunzip openssl-0.9.8e.tar.gz
- tar xvf openssl-0.9.8e.tar
- cd openssl-0.9.8e
- ./config
- make
- make install
- you are done
At the WebServer configuration;
*REQUIRED* raise the memory limit for scripts in php.ini:
- vi /etc/php.ini
memory_limit = 48M
- vi /etc/httpd/conf/httpd.conf
add the following lines:
"AddType application/x-httpd-php .php .phtml"
"LoadModule php4_module libexec/libphp4.so"
or
"LoadModule php4_module modules/libphp4.so"
modify the index.html line and add index.php to the list
- /etc/inid.d/httpd start
- go to http://your-new-asterisk-server-ipaddress/ to see if it worked
- you are done
OPTIONAL- Load eaccelerator PHP-caching application:
- Go to http://eaccelerator.net and download the most recent package
- cd /usr/local
- wget http://bart.eaccelerator.net/source/0.9.5/eaccelerator-0.9.5.zip
- unzip eaccelerator-0.9.5.zip
- cd eaccelerator-0.9.5
- export PHP_PREFIX="/usr/local"
- $PHP_PREFIX/bin/phpize
- ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
- make
- make install
- vi /usr/local/lib/php.ini
Add the following lines to the dynamic extensions section of php.ini:
(you may need to change the extension location depending on your install of php)
extension="../../../usr/local/eaccelerator-0.9.5/modules/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
# to verify installation:
- php -v
balance is a load-balancing application for Linux that will allow you to spread
the load of your web traffic across many servers. If you are running more than
70 agents on a single server you may want to install this application and build
another cheap web server to handle the extra load.
*OPTIONAL*
Go to http://balance.sourceforge.net to download the most recent source version
- to install this directly on the command line type:
- cd /usr/local
- wget http://voxel.dl.sourceforge.net/sourceforge/balance/balance-3.34.tgz
- gunzip balance-3.34.tgz
- tar xvf balance-3.34.tar
- cd balance-3.34
- make
- make install
- /usr/sbin/balance -f 81 localhost:80 10.10.10.16:80
That command will take port 81 traffic and send it evenly to the local
server and the 10.10.10.16 server reducing the load and speeding up
the applications. More info on balance: http://www.inlab.de/balance.pdf
subversion is the new code control framework use by the Asterisk community. If
you want to use the latest development code of Asterisk you will need to have
this loaded on your system.
*OPTIONAL*
Go to http://subversion.tigris.org to download the most recent source version
- to install this directly on the command line type:
- cd /usr/local
- wget http://subversion.tigris.org/downloads/subversion-1.3.2.tar.gz
- gunzip subversion-1.3.2.tar.gz
- tar xvf subversion-1.3.2.tar
- cd subversion-1.3.2
- ./configure
- make
- make install
mtop is a great utility for real-time monitoring of mysql and the queries that
are running in it.
*OPTIONAL*
Go to http://mtop.sourceforge.net to download the most recent version
- to install this directly on the command line type:
- cd /usr/local
- wget http://superb-east.dl.sourceforge.net/sourceforge/mtop/mtop-0.6.6.tar.gz
- gunzip mtop-0.6.6.tar.gz
- tar xvf mtop-0.6.6.tar
- cd mtop-0.6.6
- cpan
- install Curses
- install Getopt::Long
- install Net::Domain
- quit
- perl Makefile.PL
- make
- make install
- /usr/local/bin/mtop --dbuser=root --seconds=3
sipsak is an optional utility that VICIDIAL can use to send messages to an
agent's SIP-based phone(like the Snom 320) to display text on their LCD screen.
If you want to use this, make sure it is installed on the same server that your
web server is installed on(Apache).
*OPTIONAL*
Go to http://sipsak.org to download the most recent version
- to install this directly on the command line, type:
- cd /usr/local
- wget http://download.berlios.de/sipsak/sipsak-0.9.6-1.tar.gz
- gunzip sipsak-0.9.6-1.tar.gz
- tar xvf sipsak-0.9.6-1.tar
- cd sipsak-0.9.6-1
- ./configure
- make
- make install
- /usr/local/bin/sipsak --version
INSTALLING ASTERISK
OK, all the prep work is done, now it's time to start having fun with Asterisk.
There are two basic ways to install Asterisk, an official release(at the time of
this writing the official release is 1.2.17) and the SVN_DEV version(development
branch). We recommend using Asterisk 1.2.17. These instructions are how we get
our Asterisk system with it's T1 line installed with our 2 SIP VOIP devices and
one IAX2 softphone.
NOTE: If you want to use release 1.0.8 or 9 we would recommend either using the
CVS_v1-0 branch where the issues are fixed, or patching your 1.0.8/1.0.9 code
with the following patch:
(http://astguiclient.sourceforge.net/experimental_code/localmasq.patch)
- If you do patch your system make sure you put the asterisk version
field for the server on the admin pages as '1.0.11.1'
1. follow these command line steps:
- mkdir /usr/src/asterisk
- cd /usr/src/asterisk
A. if you want 1.2 release (reliable with new features):
- wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.17.tar.gz
- wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.16.tar.gz
- wget http://ftp.digium.com/pub/libpri/releases/libpri-1.2.4.tar.gz
- gunzip asterisk-1.2.17.tar.gz
- tar xvf asterisk-1.2.17.tar
- gunzip zaptel-1.2.16.tar.gz
- tar xvf zaptel-1.2.16.tar
- gunzip libpri-1.2.4.tar.gz
- tar xvf libpri-1.2.4.tar
B. if you want latest SVN_1.2 version (release tree with new patches)
- svn checkout http://svn.digium.com/svn/asterisk/branches/1.2 asterisk-1.2
- svn checkout http://svn.digium.com/svn/zaptel/branches/1.2 zaptel-1.2
- svn checkout http://svn.digium.com/svn/libpri/branches/1.2 libpri-1.2
C. if you want latest SVN_DEV version (not recommended) [1.5 tree]
- svn checkout http://svn.digium.com/svn/asterisk/trunk asterisk
- svn checkout http://svn.digium.com/svn/zaptel/trunk zaptel
- svn checkout http://svn.digium.com/svn/libpri/trunk libpri
- ALL ->
- (1.0 tree)if you want to allow for more than 100 voicemail messages in a
mailbox(warning this will slightly increase memory usage when a call
is in voicemail) edit the voicemail source code file:
- vi /usr/src/asterisk/asterisk/apps/app_voicemail.c
edit this line and change 100 to 999:
#define MAXMSG 100
- (1.0 tree)if you have no X server installed on your Asterisk machine, then you
will need to comment out the gtk console lib(only affects 1.0 releases)
edit the voicemail source code file:
- vi /usr/src/asterisk/asterisk/pbx/Makefile
edit this line at the top and just add a hash # in front of it as shown:
#PBX_LIBS+=$(shell $(CROSS_COMPILE_BIN)gtk-config --cflags >/dev/null 2>/dev/null && echo "pbx_gtkconsole.so")
- mv asterisk-1.2.17.tar asterisk
- mv zaptel-1.2.16.tar zaptel
- mv libpri-1.2.4.tar libri
- cd ./zaptel
- make clean
- make
- make install
- cd ../libpri
- make clean
- make
- make install
- cd ../asterisk
- (1.2 tree) If you want to include Answering Machine Detection ability
you will need to download app_amd.c and amd.conf and alter the
apps/Makefile to compile it properly
- 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
*OPTIONAL*(1.2.12.1 thru 1.2.17) apply the meetme volume control patch
*Different patches available for 1.2.7.1 through 1.2.14
- 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 ../
-(1.2 tree) apply the cli delimiter patch
- wget http://www.eflo.net/files/cli_chan_concise_delimiter.patch
- patch -p1 < ./cli_chan_concise_delimiter.patch
- File to patch: cli.c
- make clean
- make install
- make samples # this makes sample conf files (only use for new installs)
- (1.2 tree) EXPERIMENTAL!!! If you want to use app_conference
instead of meetme for VICIDIAL then follow these instructions
- cd /usr/src/asterisk
- wget http://www.eflo.net/files/VD_app_conference_0.6.zip
- unzip VD_app_conference_0.6.zip
- cd app_conference
- make clean
- make
- make install
- modprobe zaptel # this loads the zaptel module
- install the module for the digium device that you are using, we are
using the T100P single span T1 card so we use:
- modprobe wct1xxp
Here's the list of all digium cards and the modules you use with
them:
Card Module
-----------------
TDM400P wctdm
X100P wcfxo
TDM* wcfxs
S100U wcusb
T100P wct1xxp
E100P wct1xxp
T400P tor2
E400P tor2
TE110P wcte11xp
TE410P wct4xxp
TE405P wct4xxp
TE411P wct4xxp
TE406P wct4xxp
TE210P wct2xxp
TE205P wct2xxp
TDM2400P wctdm24xxp
- If you have chosen a Sangoma T1/E1 or analog card, you will need to
follow their instructions for installation of their driver software
LATEST Sangoma Wanpipe drivers:
ftp://ftp.sangoma.com/linux/current_wanpipe/wanpipe-2.3.4-7.tgz
- now your asterisk installation is built and loaded and it's time to
configure it.
NOTES: If you want to install zttool diagnostics you may need the newt package installed:
- wget http://www.freedomphones.net/files/newt-0.51.6.tar.gz
- gunzip newt-0.51.6.tar.gz
- tar xvf newt-0.51.6.tar
- cd newt-0.51.6
- ./configure
- make
- make install
- cd ../
- ln -s /usr/lib/libnewt.so.0.51.6 /usr/lib/libnewt.so.0.51
then go to your zaptel folder and do 'make zttool'
Digium/Clone X100P EXAMPLE:
Here is an example of a configuration where an X100P single FXO card is used for
zaptel timing and not used for calling:
NOTE: you can get an X100P through ebay for $10-$30 that will work with Asterisk
/etc/zaptel.conf:
loadzone=us
defaultzone=us
fxsks=1
/etc/asterisk/zapata.conf:
[trunkgroups]
[channels]
context=unused
signalling=fxs_ks
channel => 1
Added this to the rc.local file:
# Load zaptel drivers for x100p
modprobe zaptel
modprobe wcfxo
CONFIGURING ASTERISK AND YOUR SIP PHONES
In this phase we will configure the telco lines, the SIP phones, the extensions,
meetme(conference calling) rooms, dialplan extensions and the voicemail boxes.
After this phase your Asterisk system should be able to place and receive calls
to and from the SIP phones you have installed over the telco lines you've hooked
up. There are several things that we will not be showing how to do because
Asterisk is extremely flexible and has so many different ways of being
configured, that if we were to try to explain them all in this document it would
be 99% asterisk configuration and be 20,000 lines long, and that would
just be a barrier for those who just want to get it set up. The "Wiki" and the
mailing list are two very good resources for finding answers if you run into
problems configuring your system, here are links to them:
The Wiki: http://www.voip-info.org/tiki-index.php
The Lists: http://www.asterisk.org/index.php?menu=support
I need to note that it is possible to install Asterisk and use astGUIclient
applications with no Zaptel(Digium) cards installed, but it is not recommended
even if you are not going to use Zap trunks for your inbound-outbound calls
with no real Zap devices, you would need to use a dummy timer(zt_dummy) based
on you USB ports to get meetme conference rooms working properly and you may
have other issues along the way. We would at least recommend getting a X100 or
X101 board from Digium or a clone manufacturer so there is a dedicated hardware
timer in place on your system.
Setting up your Asterisk configuration files
1. edit zaptel.conf
- vi /etc/zaptel.conf
There are many examples inside of the zaptel.conf file that is
generated with the "make samples" command that we issued at the end
of the last phase. There are many different parameters for the
different telco line possibilities, because we are installing a T1
that is NON-PRI-isdn B8ZS ExtendedSuperframe(ESF) E&M Wink start and 24
channels, we will use the following settings for zaptel.conf:
span=1,1,0,esf,b8zs
e&m=1-24
loadzone = us
defaultzone=us
FOR A PRI YOU WOULD USE SOMETHING LIKE THIS:
span=2,2,0,esf,b8zs
bchan=25-47
dchan=48
2. edit zapata.conf
- vi /etc/asterisk/zapata.conf
There are also many examples of how to configure zapata.conf online.
we decided to separate our T1 into two line groups to keep some
incoming calls from being busy if we filled up all of our lines.
Here's what we used(you can set echocancel=no if you are using PRIs):
[channels]
group=1
language=en
signalling=em_w
usecallerid=yes
callerid=asreceived
context=default
echocancel=64
echocancelwhenbridged=yes
rxgain=1.0
txgain=1.0
channel => 1-2
group=2
language=en
signalling=em_w
usecallerid=yes
callerid=asreceived
context=default
echocancel=64
echocancelwhenbridged=yes
rxgain=1.0
txgain=1.0
channel => 3-24
FOR A PRI YOU WOULD USE SOMETHING LIKE THIS:
group=3
language=en
signalling=pri_net
usecallerid=yes
callerid=asreceived
callprogress=no
busydetect=no
context=default
echocancel=64
echocancelwhenbridged=yes
rxgain=1.0
txgain=1.0
channel => 25-47
3. edit sip.conf
- vi /etc/asterisk/sip.conf
here is where we will edit the configuration of our SIP compatible
phone devices. As stated at the beginning, we will be setting up a
Grandstream Budgetone 102 phone and a Sipura SPA-2000 adapter with
two analog phones connected(each with it's own extension). Here are
the settings we used to set each of them up:
[general]
port = 5060
bindaddr = 0.0.0.0
context = default
; register SIP account on remote machine if using SIP trunks
; register => testSIPtrunk:test@10.10.10.16:5060
;
; setup account for SIP trunking:
; [SIPtrunk]
; disallow=all
; allow=ulaw
; allow=alaw
; type=friend
; username=testSIPtrunk
; secret=test
; host=10.10.10.16
; dtmfmode=inband
; qualify=1000
[gs102]
disallow=all
allow=ulaw
allow=alaw
type=friend
username=gs102
secret=test
host=dynamic
dtmfmode=inband
defaultip=10.10.10.16
qualify=1000
mailbox=102
[spa2000]
disallow=all
allow=ulaw
allow=alaw
type=friend
username=spa2000
secret=test
host=dynamic
dtmfmode=inband
defaultip=10.10.10.17
qualify=1000
mailbox=2000
[spa2001]
disallow=all
allow=ulaw
allow=alaw
type=friend
username=spa2001
secret=test
host=dynamic
dtmfmode=inband
defaultip=10.10.10.17
qualify=1000
mailbox=2001
4. edit meetme.conf
- vi /etc/asterisk/meetme.conf
This is known as the conference calling configuration file. We are
just going to add two conferences(one without a pin number and one
with a pin number required for entry):
[rooms]
conf => 8600
conf => 8601,1234
5. edit iax.conf (only to do IAX trunks, not required)
- vi /etc/asterisk/iax.conf
This is the IAX configuration file, below is a very simple config for
having two Asterisk servers connect natively to each other, if you
will be using this, make sure to add the optional lines included
after the extensions.conf section. Also, there is an account setup
here for a firefly IAX softphone to use.(details on that later)
* IMPORTANT NOTE * if you plan to use IAX2 trunks for VICIDIAL
outbound dialing you must register with the remote IAX2 server
through the iax.conf file, not just in the Dial or TRUNK line
of the extensions.conf dialplan.
[general]
bindport=4569
iaxcompat=yes
bandwidth=high
allow=all
allow=gsm ; Always allow GSM, it's cool :)
jitterbuffer=no
tos=lowdelay
register => ASTtest1:test@10.10.10.16:4569
[ASTtest2]
type=friend
accountcode=IAXtrunk2
context=default
auth=plaintext
host=dynamic
permit=0.0.0.0/0.0.0.0
secret=test
disallow=all
allow=ulaw
qualify=yes
[firefly01]
type=friend
accountcode=firefly01
context=default
auth=plaintext
host=dynamic
permit=0.0.0.0/0.0.0.0
secret=test
disallow=all
allow=gsm
qualify=yes
##### EXAMPLE - This is a config example for setting up Binfone service(http://www.binfone.com)
NOTE: The "1112223333" is your iax username. When you signup, Binfone creates
a default IAX username for you, (a 5 digit number, usually, starting with a 1).
This works for most customers. Folks that want inbound then also sign up for
DIDs, each of which has its own IAX username. (Which is the 10 digit DID).
Each username has its own password which is managed through their web interface.
NOTE: If you will be using the G729 codec through binfone there is now a
dedicated G729 gateway that only handles G729 calls. Please use this address to
register to if you plan on using G729 as your codec: iax-g729.binfone.com
iax.conf:
[general]
register => 1112223333:PASSWORD@iax.binfone.com
[1112223333]
auth=md5
type=friend
username=1112223333
secret=PASSWORD
host=iax.binfone.com
context=incoming-IAX-context-in-extensions.conf
extensions.conf:
[global]
TRUNKBINFONE=IAX2/1112223333:PASSWORD@iax.binfone.com ; IAX trunk interface
[default]
exten => _91NXXNXXXXXX,1,AGI(AGI(agi://127.0.0.1:4577/call_log)
exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN},55,o)
exten => _91NXXNXXXXXX,3,Hangup
[incoming]
exten => 1112223333,1,AGI(AGI(agi://127.0.0.1:4577/call_log)
exten => 1112223333,2,Dial(sip/gs102,55,o)
exten => 1112223333,3,Hangup
dnsmgr.conf: # It is very helpful to enable dnsmgr
[general]
enable=yes ; enable creation of managed DNS lookups
refreshinterval=300 ; refresh managed DNS lookups every seconds
##### END EXAMPLE
6. edit voicemail.conf
- vi /etc/asterisk/voicemail.conf
This is where we set up the voicemail boxes for the extensions that
we have set up:
[general]
format=wav49|gsm|wav
serveremail=asterisk
attach=yes
skipms=3000
maxsilence=10
silencethreshold=128
maxlogins=3
[zonemessages]
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H 'digits/hundred' M 'hours'
[default]
102 => 102,Grandstream Mailbox,root@localhost
2000 => 2000,Sipura Mailbox 1
2001 => 2001,Sipura Mailbox 2
3001 => 3001,Firefly Mailbox 1
7. edit manager.conf
- vi /etc/asterisk/manager.conf
This is where we set up remote logins to the asterisk manager
interface, to allow sending of Action commands from remote
connections to the Asterisk server, this will be important for the
astguiclient applications so let's set that up now:
[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
[cron]
secret = 1234
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user
[updatecron]
secret = 1234
read = command
write = command
[listencron]
secret = 1234
read = system,call,log,verbose,command,agent,user
write = command
[sendcron]
secret = 1234
read = command
write = system,call,log,verbose,command,agent,user
8. edit logger.conf
- vi /etc/asterisk/logger.conf
This file determines the messages that are logged to the console and
the /var/log/asterisk/messages file. We usually turn on full logging
to the messages file to more easily diagnose any problems that we may
run into, the problem with this is that is does produce very large
files, so be warned:
[logfiles]
console => notice,warning,error
messages => notice,warning,error,debug,verbose
9. edit extensions.conf
- vi /etc/asterisk/extensions.conf
This is known as the dialplan. Since we are installing a
Long-Distance T1 with one 800 number on it, we will need to put that
800 number in the plan, as well as how to dial out through the T1
lines and we will need to add an entry for each of the phones that we
have just set up in the sip.conf file. There are many examples both
in the sample file and online for what to put in your dialplan, here
is the simplified dialplan that we are using:
######------ START extensions.conf example ------######
[general]
static=yes
writeprotect=no
[globals]
CONSOLE=Console/dsp ; Console interface for demo
TRUNK=Zap/g1 ; Trunk interface
TRUNKX=Zap/g2 ; 2nd trunk interface
TRUNKIAX=IAX2/ASTtest1:test@10.10.10.16:4569 ; IAX trunk interface
[default]
; Extension 8600 + 8601 conference rooms
exten => 8600,1,Meetme,8600
exten => 8601,1,Meetme,8601
; Extension 102 - Grandstream hardphone
exten => 102,1,Playback,transfer|skip ; "Please hold while..."
exten => 102,2,Dial,sip/gs102|20|to ; Ring, 20 secs max
exten => 102,3,Voicemail,u102 ; Send to voicemail...
; Extension 2000 Sipura line 1
exten => 2000,1,Dial,sip/spa2000|30|to ; Ring, 30 secs max
exten => 2000,2,Voicemail,u2000 ; Send to voicemail...
; Extension 2001 Sipura line 2
exten => 2001,1,Dial,sip/spa2001|30|to ; Ring, 30 secs max
exten => 2001,2,Voicemail,u2001 ; Send to voicemail...
; Extension 2020 rings both sipura lines
exten => 2001,1,Dial,sip/spa2000&sip/spa2001|30|to ; Ring, 30 secs max
exten => 2001,2,Voicemail,u2000 ; Send to voicemail...
; Extension 301 rings the firefly softphone
exten => 301,1,Dial,(IAX2/firefly01@firefly01/s)
exten => 301,2,Hangup
; Extension 3429 - Inbound 800 number (1-800-555-3429)
exten => _**3429,1,Ringing
exten => _**3429,2,Answer
exten => _**3429,3,Dial,sip/spa2000&sip/spa2001|30|to ; Ring, 30 secs max
exten => _**3429,4,Voicemail,u2000 ; Send to voicemail...
; Extension 3429 - with ANI [callerID]
exten => _*NXXNXXXXXX*3429,1,Ringing
exten => _*NXXNXXXXXX*3429,2,Answer
exten => _*NXXNXXXXXX*3429,3,Dial,sip/spa2000&sip/spa2001|30|to ; Ring, 30
secs max
exten => _*NXXNXXXXXX*3429,4,Voicemail,u2000 ; Send to voicemail...
; dial a long distance outbound number to the UK
exten => _901144XXXXXXXXXX,1,Dial(${TRUNKX}/${EXTEN:1},55,tTo)
exten => _901144XXXXXXXXXX,2,Hangup
; dial a long distance outbound number to Australia
exten => _901161XXXXXXXXX,1,Dial(${TRUNKX}/${EXTEN:1},,tTo)
exten => _901161XXXXXXXXX,2,Hangup
; dial an 800 outbound number
exten => _91800NXXXXXX,1,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91800NXXXXXX,2,Hangup
exten => _91888NXXXXXX,1,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91888NXXXXXX,2,Hangup
exten => _91877NXXXXXX,1,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91877NXXXXXX,2,Hangup
exten => _91866NXXXXXX,1,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91866NXXXXXX,2,Hangup
; dial a local 727 outbound number with area code
exten => _9727NXXXXXX,1,Dial(${TRUNK}/1${EXTEN:1},,tTo)
exten => _9727NXXXXXX,2,Hangup
; dial a local 813 outbound number with area code
exten => _9813NXXXXXX,1,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _9813NXXXXXX,2,Hangup
; dial a long distance outbound number
exten => _91NXXNXXXXXX,1,Dial(${TRUNKX}/${EXTEN:1},,tTo)
exten => _91NXXNXXXXXX,2,Hangup
; dial a local outbound number (modified because of only LD T1)
exten => _9NXXXXXX,1,Dial(${TRUNK}/1727${EXTEN:1},,tTo)
exten => _9NXXXXXX,2,Hangup
; barge monitoring extension
exten => 8159,1,ZapBarge
exten => 8159,2,Hangup
; # timeout invalid rules
exten => #,1,Playback(invalid) ; "Thanks for trying the demo"
exten => #,2,Hangup ; Hang them up.
exten => t,1,Goto(#,1) ; If they take too long, give up
exten => i,1,Playback(invalid) ; "That's not valid, try again"
; Give voicemail at extension 8500
exten => 8500,1,VoicemailMain
exten => 8500,2,Goto(s,6)
; ASTERISK AGENTS LOGINS FOR QUEUES (NOT part of VICIDIAL)
; the following assumes phone agent login and exten are 3 digits and the same
; also assumes that 3-digit login is present in agents.conf and queueus.conf
;Agent Logout then stay onhook, DIAL 54 + 3-digit ID
exten => _54XXX,1,AgentCallbackLogin(||)
; the following are used to login and logout of Asterisk Queues from phone
;Agent Login then stay offhook on the phone, DIAL 55 + 3-digit ID
exten => _55XXX,1,AgentLogin(${EXTEN:1})
;Agent Login then stay onhook, phones will ring, DIAL 56 + 3-digit ID
exten => _56XXX,1,AgentCallbackLogin(||${EXTEN:1}@default)
######------ END extensions.conf example ------######
### OPTIONAL IAX trunk extensions entries for long distance dialing over IAX
exten => _91NXXNXXXXXX,1,AGI(AGI(agi://127.0.0.1:4577/call_log)
exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN},55,o)
exten => _91NXXNXXXXXX,3,Hangup
### OPTIONAL SIP trunk extensions entries for long distance dialing over SIP
exten => _91NXXNXXXXXX,1,AGI(AGI(agi://127.0.0.1:4577/call_log)
exten => _91NXXNXXXXXX,2,Dial(sip/${EXTEN}@SIPtrunk,55,o)
exten => _91NXXNXXXXXX,3,Hangup
### OPTIONAL IAX Load Balance extens to allow for Overflow and Balanced VDAD
### In this setup, the serverIP is the prefix followed by agent conf_exten
### FOR MORE INFORMATION, READ THE LOAD_BALANCING.txt DOCUMENT
### server 1 extens:
exten => _010*010*010*016*8600XXX,1,Dial(${TRUNKIAX2}/${EXTEN:16},55,o)
### server 2 extens:
exten => _010*010*010*015*8600XXX,1,Dial(${TRUNKIAX1}/${EXTEN:16},55,o)
10. edit dnsmgr.conf: # It is very helpful to enable dnsmgr
[general]
enable=yes ; enable creation of managed DNS lookups
refreshinterval=300 ; refresh managed DNS lookups every seconds
11. Now that you have configured Asterisk, it is time to try to start it for the
first time.
- First make sure that your T1 line(or other telco line) is connected to the
digium card.
- next type the following at the command prompt: "ztcfg -vvvvvv"
- you should see a confirmation that the Zaptel device has loaded
- now you can launch asteris with the following command:
"asterisk -vvvvvvvvvvvvgc"
- you should see a lot of messages scroll by and at the end you should
be given a CLI> prompt if everything loaded OK. To get out of Asterisk you can
type "stop now". Now that you are sure it is running you can either run it in a
separate terminal window or use the start_asterisk_boot.pl that you will
install with astguiclient to start Asterisk.
Setting up your SIP phones
You will need to follow the instructions for the phones that you are using with
your system, but here's the way to set up a Grandstream 102 and a Sipura
SPA-2000
1. Here are basic instructions for setting up a Grandstream BT 102:
- On the phone plug it in to power only at first and follow these
instructions:
- wait for the phone to boot up and press the MENU button
- go through the menu screens with the menu key and the up/down arrow
keys to move from setting to setting. We are setting the following
values:
- DHCP OFF
- IP Addr: 010.010.010.016
- Subnet: 255.255.000.000
- router: 010.010.010.001
- dnS: 010.010.010.001
- tftp: we leave this blank for now
- menu 7 we change the codec to G-711u
- now wait 10 seconds and unplug the power and plug it back in
- you can also plug the network cable into the LAN port on the phone
- at this time you can go to your workstation and open a new web browser
- go to http://10.10.10.16/ the password is "admin"
- here is where you will enter in the configuration details for the
phone to register with the Asterisk server
- SIP server: 10.10.10.15
- SIP user ID: gs102
- Authenticate ID: gs102
- Password: test
- Name: gs102
- Voice Mail UserID: 102
- Send DTMF: in-audio
- NTP Server: tick.mit.edu
- then click update, click review changes, and click reboot
- your phone should now be able to register with the Asterisk server. If you
still have your console screen up you should see a registration message
appear telling you that gs102 has registered.
2. Here are the basic instructions for setting up a Sipura SPA-2000 analog
adapter with 2 lines.
- Plug power and two analog phones into the adapter.
- pick up the phone plugged into line1 and press **** to enter admin menu
- press 101# then 0# to disable DHCP
- press 111# then 10*10*10*17# to change the IP address
- press 121# then 255*255*0*0# to change the subnet mask
- press 131# then 10*10*10*1# to change the default gateway
- hang up the phone, unplug the power, plug in the network cable and plug in
the power cable
- now you can go the the admin website: http://10.10.10.17/admin/advanced
- you will need to make these setting changes:
- click on the "Line 1" tab at the top and change the following values:
- Proxy: 10.10.10.15
- Display Name: spa2000
- userID: spa2000
- password: test
- authID: spa2000
- change the dialplan to the following:
(*xx|xxx|xxxx|xxxxx|xxxxxx|xxxxxxx|xxxxxxxx|xxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxx.)
- then click the "submit all changes" button at the bottom of the page
and your first phone line should work now
- to register the second line, simply click on the "Line 2" tab and go
through the above steps except use spa2001 instead of spa2000 for the use IDs
3. Now both of your phone devices are set up and you can try making phone calls
between the three phones
Setting up an IAX2 phone
This is optinal and we won't go into too much detail about this, but currently
there are several IAX hard and softphones on the market and more are coming
every month. Follow the instructions with the IAX phone you have chosen and
follow the steps below:
1. Add an entry into your iax.conf file like below if you have not already
[firefly01]
type=friend
accountcode=firefly01
context=default
auth=plaintext
host=dynamic
permit=0.0.0.0/0.0.0.0
secret=test
qualify=yes
2. Add an entry into your extensions.conf file like below if it is not in there
; Extension 3001 rings IAX phone
exten => 301,1,Dial(IAX2/firefly01@firefly01/s)
exten => 301,2,Voicemail,u301 ; Send to voicemail...
3. Download Firefly 3rd party, or IDEfisk for Windows or Linux:
- http://www.virbiage.com/firefly/download/firefly-thirdparty.exe
MIRRORS:
- http://mirror.isp.net.au/ftp/pub/firefly/firefly-thirdparty.exe
- http://www.freedomphones.net/files/firefly-thirdparty.exe
IDEFISK:
- http://www.asteriskguru.com/idefisk/
- Install the application
- Launch Firefly Softphone
- click the "I wish to connect to a 3rd party network" button
- Enter in network name: Asterisk
- Select IAX2 as the protocol
- enter in your server address: "10.10.10.15" in our case
- enter login and pass: "firefly01" and "test" for in our case
- click OK and you should be logged in and can place calls
Setting up a Zap phone
This is optinal and we won't go into too much detail about this either, there
are a few ways to use Zap devices as phones on your Asterisk system: Zaptel
phone cards, Channel Banks going through Zaptel T1 card, outside line call
coming in going through Zaptel line card. There isn't much to do but set your
Zaptel config files up and put entries into your extensions.conf file:
1. Add an entry into your extensions.conf file like below
; Extension 4001 rings Zap phone
exten => 4001,1,Dial,Zap/1|30| ; ring Zap device 1
exten => 4001,2,Voicemail,u4001 ; Send to voicemail...
INSTALLING ASTGUICLIENT AND VICIDIAL
Now that Asterisk is installed and running we can add the astGUIclient and
VICIDIAL components to the system.
Putting the files in place
There are two methods for downloading astGUIclient/VICIDIAL, a release and SVN
Go to http://astguiclient.sf.net/ and download the latest astguiclient
package(as of this writing it is 2.0.3)
- for 2.0.X release:
- mkdir /usr/src/astguiclient
- cd /usr/src/astguiclient
- wget http://internap.dl.sourceforge.net/sourceforge/astguiclient/astguiclient_2.0.3.zip
- unzip astguiclient_2.0.3.zip
- perl install.pl (make sure you are in the directory with the install.pl file)
- for SVN 2.0 trunk:
- mkdir /usr/src/astguiclient
- cd /usr/src/astguiclient
- svn checkout svn://205.201.151.21:43690/agc_2-X
- cd agc_2-X/trunk/
- perl install.pl
select to do interactive setup and customize to your server
- there is one more file you need that's not included with the download
package, it's the conf.gsm file(this is the half-hour music file that we use
to put people on hold). I have a free classical music file that is available
free for download at the following two sites:
http://www.freedomphones.net/conf.gsm
http://astguiclient.sf.net/conf.gsm
Once you have downloaded it, you will need to copy it to this folder:
/var/lib/asterisk/sounds/
Then you will need to execute this command to copy it as the park file
'cp /var/lib/asterisk/sounds/conf.gsm /var/lib/asterisk/sounds/park.gsm'
Here are the steps spelled out:
- cd /var/lib/asterisk/sounds
- wget http://www.freedomphones.net/conf.gsm
- cp conf.gsm park.gsm
- you are done
Creating the MySQL "asterisk" database
we will create the database and add a few initial records so that we can
use the administrative web interface. Since this is a new install it is easier
to use our new mysql script file to add the tables to the database:
1. at the command prompt type go to the mysql client:
/usr/local/mysql/bin/mysql
2. type the following into the mysql client prompt:
(make sure you put your IP address in place of "10.10.10.15" in the queries below)
######------ BEGIN Mysql data entry(you can copy and paste this into terminal) #
create database asterisk;
GRANT SELECT,INSERT,UPDATE,DELETE on asterisk.* TO cron@'%' IDENTIFIED BY '1234';
GRANT SELECT,INSERT,UPDATE,DELETE on asterisk.* TO cron@localhost IDENTIFIED BY '1234';
# NOTE: if using MySQL 4.1.12 or higher you may need to run this query too:
UPDATE mysql.user set password=OLD_PASSWORD('1234') where user='cron';
use asterisk;
\. /usr/src/astguiclient/extras/MySQL_AST_CREATE_tables.sql
or you may need to run this if you get an error:
\. /usr/src/astguiclient/MySQL_AST_CREATE_tables.sql
GRANT SELECT on asterisk.phones TO idcheck@'%' IDENTIFIED BY '1234';
GRANT SELECT on asterisk.phones TO idcheck@localhost IDENTIFIED BY '1234';
insert into servers (server_id,server_description,server_ip,active,asterisk_version)values('TESTasterisk','Test install of Asterisk server', '10.10.10.15','Y','1.2.17');
insert into server_updater values('10.10.10.15','');
insert into phones (extension, dialplan_number, voicemail_id, phone_ip, computer_ip, server_ip, login, pass, status, active, phone_type, fullname, company, picture, messages, old_messages, protocol) values('gs102','102','102','10.10.10.16','10.10.9.16','10.10.10.15','gs102','test', 'ADMIN','Y','Grandstream BT 102','Test Admin Phone','TEST','','0','0','SIP');
insert into vicidial_users (user,pass,full_name,user_level,user_group,load_leads,campaign_detail,ast_admin_access,modify_users) values('6666','1234','Admin','9','ADMIN','1','1','1','1');
insert into conferences values('8600001','10.10.10.15','');
insert into conferences values('8600002','10.10.10.15','');
insert into conferences values('8600003','10.10.10.15','');
insert into conferences values('8600004','10.10.10.15','');
insert into conferences values('8600005','10.10.10.15','');
insert into conferences values('8600006','10.10.10.15','');
insert into conferences values('8600007','10.10.10.15','');
insert into conferences values('8600008','10.10.10.15','');
insert into conferences values('8600009','10.10.10.15','');
insert into conferences values('8600010','10.10.10.15','');
insert into conferences values('8600011','10.10.10.15','');
insert into conferences values('8600012','10.10.10.15','');
insert into conferences values('8600013','10.10.10.15','');
insert into conferences values('8600014','10.10.10.15','');
insert into conferences values('8600015','10.10.10.15','');
insert into conferences values('8600016','10.10.10.15','');
insert into conferences values('8600017','10.10.10.15','');
insert into conferences values('8600018','10.10.10.15','');
insert into conferences values('8600019','10.10.10.15','');
insert into conferences values('8600020','10.10.10.15','');
insert into conferences values('8600021','10.10.10.15','');
insert into conferences values('8600022','10.10.10.15','');
insert into conferences values('8600023','10.10.10.15','');
insert into conferences values('8600024','10.10.10.15','');
insert into conferences values('8600025','10.10.10.15','');
insert into conferences values('8600026','10.10.10.15','');
insert into conferences values('8600027','10.10.10.15','');
insert into conferences values('8600028','10.10.10.15','');
insert into conferences values('8600029','10.10.10.15','');
quit
run this command from command line:
- /usr/share/astguiclient/ADMIN_area_code_populate.pl
######------ END Mysql data entry ------######
NOTE: if you are not installing using default user/pass or have MySQL on another
server, you will need to edit either the /etc/astguiclient.conf file or the
dbconnect.php files in the astguiclient, vicidial and agc directories of your
webroot.
3. Enter the vicidial administration page:
http://10.10.10.15/vicidial/admin.php
NOTE: if you click on the Logout button you must leave the user/pass empty and click OK
- Here you will enter the login and password that you inserted into the mysql
database in the vicidial_users table (subphase 6.1 [6666/1234])
- Now that you are logged into the astGUIclient administration system we can
add a new phone entry for each of the sipura lines we created.
- click on the "PHONES" link at the top, then the "ADD PHONE" link below
that and enter in the proper information for each of the new phone lines.
Here's what we entered for spa2000:
- Phone extension: spa2000
- Dialplan Number: 2000
- Voicemail Box: 2000
- Phone IP address: 10.10.10.17
- Computer IP address: 10.10.9.17
- Server IP: 10.10.10.15
- Login: spa2000
- Password: test
- Status: ACTIVE
- Active Account: Y
- Phone Type: Sipura SPA-2000 line 1
- Full Name: Sipura line 1 test
- Company: TEST
- Picture:
- for the next phone simply replace 2000 with 2001 in the above example
- now your phones are all all set up in the astguiclient system and you can
use this website to add new phones to be used with astguiclient and monitor
the number of calls people are making.
- now your database is set up for the astguiclient conferences which
will allow you to have over 6 remote parties that you called from your
GUI client application in one conference.
- click on the "LIST ALL SERVERS" link at the top then click on the
server to modify. Verify that the GMT time zone and all other fields
are what you want them to be. There is a setting(Max VICIDIAL Trunks)
that can be modified to limit the number of VICIDIAL outbound trunks
that will be allowed to use on this server.
4. **OPTIONAL** For IAX clients you will need to use full phone name as the
extension on the admin page entry: "firefly01@firefly01" for our IAX phone example
previously. And do not forget to set the protocol on this page to IAX2
5. **OPTIONAL** For Zap clients you will need to use full Zap Channel name as the
extension on the admin page entry: "1-1" for our Zap phone example
previously. And do not forget to set the protocol on this page to Zap
Making additions to your Asterisk conf files
Now that the database is set up and our phones have entries in the system we can
make the additions to the running Asterisk system that will allow astguiclient
to work with it.
1. Add the call_log entries to all incoming/outgoing extensions entries:
- here is how our sample dialplan changes for adding call_log entries(only
effected extension groups are show):
######------ START extensions.conf changes for call_log ------######
##### This 'h' exten is VERY important for VICIDIAL usage,
##### you will have problems if it is not in your dialplan!
exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log)
exten => h,2,DeadAGI(agi://127.0.0.1:4577/VD_hangup--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}))
; Extension 3429 - Inbound 800 number (1-800-555-3429)
exten => _**3429,1,Ringing
exten => _**3429,2,AGI(agi://127.0.0.1:4577/call_log)
exten => _**3429,3,Answer
exten => _**3429,4,Dial,sip/spa2000&sip/spa2001|30|to
exten => _**3429,5,Voicemail,u2000
; Extension 3429 - with ANI [callerID]
exten => _*NXXNXXXXXX*3429,1,Ringing
exten => _*NXXNXXXXXX*3429,2,AGI(agi://127.0.0.1:4577/call_log)
exten => _*NXXNXXXXXX*3429,3,Answer
exten => _*NXXNXXXXXX*3429,4,Dial,sip/spa2000&sip/spa2001|30|to
exten => _*NXXNXXXXXX*3429,5,Voicemail,u2000
; Extension 7275551212 - Inbound local number from PRI with 10 digit delivery
exten => 7275551212,1,Ringing
exten => 7275551212,2,Wait(1)
exten => 7275551212,3,AGI(agi://127.0.0.1:4577/call_log--fullCID--${EXTEN}-----${CALLERID}-----${CALLERIDNUM}-----${CALLERIDNAME})
exten => 7275551212,4,Answer
exten => 7275551212,5,Dial,sip/spa2000&sip/spa2001|30|to
exten => 7275551212,6,Voicemail,u2000
; dial a long distance outbound number to the UK
exten => _901144XXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _901144XXXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},55,tTo)
exten => _901144XXXXXXXXXX,3,Hangup
; dial a long distance outbound number to Australia
exten => _901161XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _901161XXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,tTo)
exten => _901161XXXXXXXXX,3,Hangup
; dial an 800 outbound number
exten => _91800NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91800NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91800NXXXXXX,3,Hangup
exten => _91888NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91888NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91888NXXXXXX,3,Hangup
exten => _91877NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91877NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91877NXXXXXX,3,Hangup
exten => _91866NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91866NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91866NXXXXXX,3,Hangup
; dial a local 727 outbound number with area code
exten => _9727NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _9727NXXXXXX,2,Dial(${TRUNK}/1${EXTEN:1},,tTo)
exten => _9727NXXXXXX,3,Hangup
; dial a local 813 outbound number with area code
exten => _9813NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _9813NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _9813NXXXXXX,3,Hangup
; dial a long distance outbound number
exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91NXXNXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,tTo)
exten => _91NXXNXXXXXX,3,Hangup
; dial a local outbound number (modified because of only LD T1)
exten => _9NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _9NXXXXXX,2,Dial(${TRUNK}/1727${EXTEN:1},,tTo)
exten => _9NXXXXXX,3,Hangup
######------ END extensions.conf changes ------######
2. Add the call_inbound entries to all incoming extensions entries that you want
CallerID popups on:
- here is how our sample dialplan changes for adding call_inbound
entries(only effected extension groups are show):
######------ START extensions.conf changes for call_inbound ------######
; parameters for call_inbound.agi (7 fields separated by five dashes "-----"):
; 1. the extension of the phone to ring as defined in the asterisk.phones table
; 2. the phone number that was called, for the live_inbound/_log entry
; 3. a text description of the number that was called in
; 4-7. optional fields, they are also passed as fields in the GUI to web browser
; Extension 3429 - Inbound 800 number (1-800-555-3429)
exten => _**3429,1,Ringing
exten => _**3429,2,AGI(agi://127.0.0.1:4577/call_log)
exten => _**3429,3,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w)
exten => _**3429,4,Answer
exten => _**3429,5,Dial,sip/spa2000&sip/spa2001|30|to
exten => _**3429,6,Voicemail,u2000
; Extension 3429 - with ANI [callerID]
exten => _*NXXNXXXXXX*3429,1,Ringing
exten => _*NXXNXXXXXX*3429,2,AGI(agi://127.0.0.1:4577/call_log)
exten => _*NXXNXXXXXX*3429,3,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w)
exten => _*NXXNXXXXXX*3429,3,Answer
exten => _*NXXNXXXXXX*3429,4,Dial,sip/spa2000&sip/spa2001|30|to
exten => _*NXXNXXXXXX*3429,5,Voicemail,u2000
exten => _010*010*010*015*8600XXX,1,Goto(default,${EXTEN:16},1)
exten => _010*010*010*015*8600XXX*.,1,Goto(default,${EXTEN:16},1)
exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
; parameters for agi-VDADcloser.agi (2 fields separated by five dashes "-----"):
; 1. the full extension formatted by VICIDIAL for internal transfers * separated
; 2. the word START to denote the beginning of the acceptance of the transfer
; inbound VICIDIAL transfer calls [can arrive through PRI T1 crossover or IAX channel]
exten => _90009.,1,Answer ; Answer the line
exten => _90009.,2,AGI(agi-VDADcloser.agi,${EXTEN}-----START)
exten => _90009.,3,Hangup
; parameters for agi-VDADcloser_inbound....agi (7 fields separated by five dashes "-----"):
; 1. the full name of the IN GROUP to be used in vicidial for the inbound call
; 2. the phone number that was called, for the log entry
; 3. the callerID or lead_id of the person that called(usually overridden)
; 4. the park extension audio file name if used
; 5. the status of the call initially(usually not used)
; 6. the list_id to insert the new lead under if it is new (and callerID available)
; 7. the phone dialing code to insert with the new lead if new (and callerID available)
; inbound VICIDIAL call with CID delivery through T1 PRI
exten => 1234,1,Ringing ; call ringing
exten => 1234,2,Wait(1) ; Wait 1 second for CID delivery from PRI
exten => 1234,3,Answer ; Answer the line
exten => 1234,4,AGI(agi-VDADcloser_inboundCID.agi,CL_GALLERIA-----7275555134-----Closer-----park----------999-----1)
exten => 1234,5,Hangup
; inbound VICIDIAL call with ANI delivery through robbed-bit T1 (*NXXNXXXXXX*DNIS)
exten => 1234,1,Answer ; Answer the line
exten => 1234,2,AGI(agi-VDADcloser_inboundANI.agi,CL_GALLERIA-----7275555134-----Closer-----park----------999-----1)
exten => 1234,3,Hangup
; inbound VICIDIAL call with prompt for 4-digit fronter code
exten => 1234,1,Answer ; Answer the line
exten => 1234,2,AGI(agi-VDADcloser_inbound.agi,CL_GALLERIA-----7275555134-----Closer-----park----------999-----1)
exten => 1234,3,Hangup
### follow these instructions if you plan to have VICIDIAL agents take inbound or closer calls:
1. create a new campaign in VICIDIAL called "CLOSER"
2. in VICIDIAL web admin "add a new in-group" (the above examples would be "CL_GALLERIA")
- group IDs cannot contain spaces ' ' or dashes '-' or plusses '+'
- if you are using a HEX color value make sure to include the hash '#' at the beginning
3. have agents log in to the CLOSER campaign and select the CL_GALLERIA button
4. they will now start receiving inbound calls
5. as calls come in, each call is inserted into the vicidial_list table under the
list specified int the AGI string, In the above example that would be list 999
6. if you want to take closer calls from the campaign "TEST" you will need to create
an in-group called "CL_TEST_" for internal closing(on the same system) or "CL_TEST_L"
for local closing(closer on different system from fronter) and then the fronter will
click on the "internal closer" button to send the call to a closer
* NOTE, you need to set the dial_level of the CLOSER campaign to 1 or higher for inbound/closers to work
######------ END extensions.conf changes for call_inbound ------######
3. Add the ZapBarge entries for all zap lines:
- here is how our sample dialplan changes for adding zapbarge line-specific
entries(this is a pure addition, nothing is being modified):
######------ START extensions.conf additions for direct zapbarges ------######
; ZapBarge direct channel extensions
exten => 8612001,1,ZapBarge(1)
exten => 8612002,1,ZapBarge(2)
exten => 8612003,1,ZapBarge(3)
exten => 8612004,1,ZapBarge(4)
exten => 8612005,1,ZapBarge(5)
exten => 8612006,1,ZapBarge(6)
exten => 8612007,1,ZapBarge(7)
exten => 8612008,1,ZapBarge(8)
exten => 8612009,1,ZapBarge(9)
exten => 8612010,1,ZapBarge(10)
exten => 8612011,1,ZapBarge(11)
exten => 8612012,1,ZapBarge(12)
exten => 8612013,1,ZapBarge(13)
exten => 8612014,1,ZapBarge(14)
exten => 8612015,1,ZapBarge(15)
exten => 8612016,1,ZapBarge(16)
exten => 8612017,1,ZapBarge(17)
exten => 8612018,1,ZapBarge(18)
exten => 8612019,1,ZapBarge(19)
exten => 8612020,1,ZapBarge(20)
exten => 8612021,1,ZapBarge(21)
exten => 8612022,1,ZapBarge(22)
exten => 8612023,1,ZapBarge(23)
exten => 8612024,1,ZapBarge(24)
######------ END extensions.conf additions for direct zapbarges ------######
4. Add the meetme entries for astguiclient and VICIDIAL conferences to
meetme.conf:
- here is how our sample meetme.conf file changes for adding conference
entries (this is a pure addition, nothing is being modified):
######------ START meetme.conf additions for conferences ------######
conf => 8600001
conf => 8600002
conf => 8600003
conf => 8600004
conf => 8600005
conf => 8600006
conf => 8600007
conf => 8600008
conf => 8600009
conf => 8600010
conf => 8600011
conf => 8600012
conf => 8600013
conf => 8600014
conf => 8600015
conf => 8600016
conf => 8600017
conf => 8600018
conf => 8600019
conf => 8600020
conf => 8600021
conf => 8600022
conf => 8600023
conf => 8600024
conf => 8600025
conf => 8600026
conf => 8600027
conf => 8600028
conf => 8600029
conf => 8600051
conf => 8600052
conf => 8600053
conf => 8600054
conf => 8600055
conf => 8600056
conf => 8600057
conf => 8600058
conf => 8600059
conf => 8600060
conf => 8600061
conf => 8600062
conf => 8600063
conf => 8600064
conf => 8600065
conf => 8600066
conf => 8600067
conf => 8600068
conf => 8600069
conf => 8600070
conf => 8600071
conf => 8600072
conf => 8600073
conf => 8600074
conf => 8600075
conf => 8600076
conf => 8600077
conf => 8600078
conf => 8600079
conf => 8600080
conf => 8600081
conf => 8600082
conf => 8600083
conf => 8600084
conf => 8600085
conf => 8600086
conf => 8600087
conf => 8600088
conf => 8600089
conf => 8600090
conf => 8600091
conf => 8600092
conf => 8600093
conf => 8600094
conf => 8600095
conf => 8600096
conf => 8600097
conf => 8600098
conf => 8600099
conf => 8600100
conf => 8600101
conf => 8600102
conf => 8600103
conf => 8600104
conf => 8600105
conf => 8600106
conf => 8600107
conf => 8600108
conf => 8600109
conf => 8600110
conf => 8600111
conf => 8600112
conf => 8600113
conf => 8600114
conf => 8600115
conf => 8600116
conf => 8600117
conf => 8600118
conf => 8600119
conf => 8600120
conf => 8600121
conf => 8600122
conf => 8600123
conf => 8600124
conf => 8600125
conf => 8600126
conf => 8600127
conf => 8600128
conf => 8600129
conf => 8600130
conf => 8600131
conf => 8600132
conf => 8600133
conf => 8600134
conf => 8600135
conf => 8600136
conf => 8600137
conf => 8600138
conf => 8600139
conf => 8600140
conf => 8600141
conf => 8600142
conf => 8600143
conf => 8600144
conf => 8600145
conf => 8600146
conf => 8600147
conf => 8600148
conf => 8600149
conf => 8600150
conf => 8600151
conf => 8600152
conf => 8600153
conf => 8600154
conf => 8600155
conf => 8600156
conf => 8600157
conf => 8600158
conf => 8600159
conf => 8600160
conf => 8600161
conf => 8600162
conf => 8600163
conf => 8600164
conf => 8600165
conf => 8600166
conf => 8600167
conf => 8600168
conf => 8600169
conf => 8600170
conf => 8600171
conf => 8600172
conf => 8600173
conf => 8600174
conf => 8600175
conf => 8600176
conf => 8600177
conf => 8600178
conf => 8600179
conf => 8600180
conf => 8600181
conf => 8600182
conf => 8600183
conf => 8600184
conf => 8600185
conf => 8600186
conf => 8600187
conf => 8600188
conf => 8600189
conf => 8600190
conf => 8600191
conf => 8600192
conf => 8600193
conf => 8600194
conf => 8600195
conf => 8600196
conf => 8600197
conf => 8600198
conf => 8600199
conf => 8600200
######------ END meetme.conf additions for conferences ------######
5. Add the conference entries for astguiclient conferences:
- here is how our sample dialplan changes for adding conference entries (this
is a pure addition, nothing is being modified):
######------ START extensions.conf additions for agc conferences ------######
exten => 8600001,1,Meetme,8600001|q
exten => 8600002,1,Meetme,8600002|q
exten => 8600003,1,Meetme,8600003|q
exten => 8600004,1,Meetme,8600004|q
exten => 8600005,1,Meetme,8600005|q
exten => 8600006,1,Meetme,8600006|q
exten => 8600007,1,Meetme,8600007|q
exten => 8600008,1,Meetme,8600008|q
exten => 8600009,1,Meetme,8600009|q
exten => 8600010,1,Meetme,8600010|q
exten => 8600011,1,Meetme,8600011|q
exten => 8600012,1,Meetme,8600012|q
exten => 8600013,1,Meetme,8600013|q
exten => 8600014,1,Meetme,8600014|q
exten => 8600015,1,Meetme,8600015|q
exten => 8600016,1,Meetme,8600016|q
exten => 8600017,1,Meetme,8600017|q
exten => 8600018,1,Meetme,8600018|q
exten => 8600019,1,Meetme,8600019|q
exten => 8600020,1,Meetme,8600020|q
exten => 8600021,1,Meetme,8600021|q
exten => 8600022,1,Meetme,8600022|q
exten => 8600023,1,Meetme,8600023|q
exten => 8600024,1,Meetme,8600024|q
exten => 8600025,1,Meetme,8600025|q
exten => 8600026,1,Meetme,8600026|q
exten => 8600027,1,Meetme,8600027|q
exten => 8600028,1,Meetme,8600028|q
exten => 8600029,1,Meetme,8600029|q
######------ END extensions.conf additions for agc conferences ------######
6. Add the conference entries for VICIDIAL conferences:
- here is how our sample dialplan changes for adding VICIDIAL conference
entries(this is a pure addition, nothing is being modified):
NOTE: see below these entries for app_conference instructions is used
######------ START extensions.conf changes for VD conf ------######
exten => _X48600XXX,1,MeetMeAdmin(${EXTEN:2},T,${EXTEN:0:1})
exten => _X48600XXX,2,Hangup
exten => _X38600XXX,1,MeetMeAdmin(${EXTEN:2},t,${EXTEN:0:1})
exten => _X38600XXX,2,Hangup
exten => _X28600XXX,1,MeetMeAdmin(${EXTEN:2},m,${EXTEN:0:1})
exten => _X28600XXX,2,Hangup
exten => _X18600XXX,1,MeetMeAdmin(${EXTEN:2},M,${EXTEN:0:1})
exten => _X18600XXX,2,Hangup
exten => _55558600XXX,1,MeetMeAdmin(${EXTEN:4},K)
exten => _55558600XXX,2,Hangup
exten => 8300,1,Hangup
exten => 8600051,1,Meetme,8600051
exten => 8600052,1,Meetme,8600052
exten => 8600053,1,Meetme,8600053
exten => 8600054,1,Meetme,8600054
exten => 8600055,1,Meetme,8600055
exten => 8600056,1,Meetme,8600056
exten => 8600057,1,Meetme,8600057
exten => 8600058,1,Meetme,8600058
exten => 8600059,1,Meetme,8600059
exten => 8600060,1,Meetme,8600060
exten => 8600061,1,Meetme,8600061
exten => 8600062,1,Meetme,8600062
exten => 8600063,1,Meetme,8600063
exten => 8600064,1,Meetme,8600064
exten => 8600065,1,Meetme,8600065
exten => 8600066,1,Meetme,8600066
exten => 8600067,1,Meetme,8600067
exten => 8600068,1,Meetme,8600068
exten => 8600069,1,Meetme,8600069
exten => 8600070,1,Meetme,8600070
exten => 8600071,1,Meetme,8600071
exten => 8600072,1,Meetme,8600072
exten => 8600073,1,Meetme,8600073
exten => 8600074,1,Meetme,8600074
exten => 8600075,1,Meetme,8600075
exten => 8600076,1,Meetme,8600076
exten => 8600077,1,Meetme,8600077
exten => 8600078,1,Meetme,8600078
exten => 8600079,1,Meetme,8600079
exten => 8600080,1,Meetme,8600080
exten => 8600081,1,Meetme,8600081
exten => 8600082,1,Meetme,8600082
exten => 8600083,1,Meetme,8600083
exten => 8600084,1,Meetme,8600084
exten => 8600085,1,Meetme,8600085
exten => 8600086,1,Meetme,8600086
exten => 8600087,1,Meetme,8600087
exten => 8600088,1,Meetme,8600088
exten => 8600089,1,Meetme,8600089
exten => 8600090,1,Meetme,8600090
exten => 8600091,1,Meetme,8600091
exten => 8600092,1,Meetme,8600092
exten => 8600093,1,Meetme,8600093
exten => 8600094,1,Meetme,8600094
exten => 8600095,1,Meetme,8600095
exten => 8600096,1,Meetme,8600096
exten => 8600097,1,Meetme,8600097
exten => 8600098,1,Meetme,8600098
exten => 8600099,1,Meetme,8600099
exten => 8600100,1,Meetme,8600100
exten => 8600101,1,Meetme,8600101
exten => 8600102,1,Meetme,8600102
exten => 8600103,1,Meetme,8600103
exten => 8600104,1,Meetme,8600104
exten => 8600105,1,Meetme,8600105
exten => 8600106,1,Meetme,8600106
exten => 8600107,1,Meetme,8600107
exten => 8600108,1,Meetme,8600108
exten => 8600109,1,Meetme,8600109
exten => 8600110,1,Meetme,8600110
exten => 8600111,1,Meetme,8600111
exten => 8600112,1,Meetme,8600112
exten => 8600113,1,Meetme,8600113
exten => 8600114,1,Meetme,8600114
exten => 8600115,1,Meetme,8600115
exten => 8600116,1,Meetme,8600116
exten => 8600117,1,Meetme,8600117
exten => 8600118,1,Meetme,8600118
exten => 8600119,1,Meetme,8600119
exten => 8600120,1,Meetme,8600120
exten => 8600121,1,Meetme,8600121
exten => 8600122,1,Meetme,8600122
exten => 8600123,1,Meetme,8600123
exten => 8600124,1,Meetme,8600124
exten => 8600125,1,Meetme,8600125
exten => 8600126,1,Meetme,8600126
exten => 8600127,1,Meetme,8600127
exten => 8600128,1,Meetme,8600128
exten => 8600129,1,Meetme,8600129
exten => 8600130,1,Meetme,8600130
exten => 8600131,1,Meetme,8600131
exten => 8600132,1,Meetme,8600132
exten => 8600133,1,Meetme,8600133
exten => 8600134,1,Meetme,8600134
exten => 8600135,1,Meetme,8600135
exten => 8600136,1,Meetme,8600136
exten => 8600137,1,Meetme,8600137
exten => 8600138,1,Meetme,8600138
exten => 8600139,1,Meetme,8600139
exten => 8600140,1,Meetme,8600140
exten => 8600141,1,Meetme,8600141
exten => 8600142,1,Meetme,8600142
exten => 8600143,1,Meetme,8600143
exten => 8600144,1,Meetme,8600144
exten => 8600145,1,Meetme,8600145
exten => 8600146,1,Meetme,8600146
exten => 8600147,1,Meetme,8600147
exten => 8600148,1,Meetme,8600148
exten => 8600149,1,Meetme,8600149
exten => 8600150,1,Meetme,8600150
exten => 8600151,1,Meetme,8600151
exten => 8600152,1,Meetme,8600152
exten => 8600153,1,Meetme,8600153
exten => 8600154,1,Meetme,8600154
exten => 8600155,1,Meetme,8600155
exten => 8600156,1,Meetme,8600156
exten => 8600157,1,Meetme,8600157
exten => 8600158,1,Meetme,8600158
exten => 8600159,1,Meetme,8600159
exten => 8600160,1,Meetme,8600160
exten => 8600161,1,Meetme,8600161
exten => 8600162,1,Meetme,8600162
exten => 8600163,1,Meetme,8600163
exten => 8600164,1,Meetme,8600164
exten => 8600165,1,Meetme,8600165
exten => 8600166,1,Meetme,8600166
exten => 8600167,1,Meetme,8600167
exten => 8600168,1,Meetme,8600168
exten => 8600169,1,Meetme,8600169
exten => 8600170,1,Meetme,8600170
exten => 8600171,1,Meetme,8600171
exten => 8600172,1,Meetme,8600172
exten => 8600173,1,Meetme,8600173
exten => 8600174,1,Meetme,8600174
exten => 8600175,1,Meetme,8600175
exten => 8600176,1,Meetme,8600176
exten => 8600177,1,Meetme,8600177
exten => 8600178,1,Meetme,8600178
exten => 8600179,1,Meetme,8600179
exten => 8600180,1,Meetme,8600180
exten => 8600181,1,Meetme,8600181
exten => 8600182,1,Meetme,8600182
exten => 8600183,1,Meetme,8600183
exten => 8600184,1,Meetme,8600184
exten => 8600185,1,Meetme,8600185
exten => 8600186,1,Meetme,8600186
exten => 8600187,1,Meetme,8600187
exten => 8600188,1,Meetme,8600188
exten => 8600189,1,Meetme,8600189
exten => 8600190,1,Meetme,8600190
exten => 8600191,1,Meetme,8600191
exten => 8600192,1,Meetme,8600192
exten => 8600193,1,Meetme,8600193
exten => 8600194,1,Meetme,8600194
exten => 8600195,1,Meetme,8600195
exten => 8600196,1,Meetme,8600196
exten => 8600197,1,Meetme,8600197
exten => 8600198,1,Meetme,8600198
exten => 8600199,1,Meetme,8600199
exten => 8600200,1,Meetme,8600200
; quiet entry and leaving conferences for VICIDIAL
exten => _78600XXX,1,Meetme,${EXTEN:1}|q
; quiet monitor extensions for meetme rooms (for room managers)
exten => _68600XXX,1,Meetme,${EXTEN:1}|mq
######------ END extensions.conf changes for VD conf ------######
NOTE: If you want to use app_conference instead of meetme and you already have
it installed, you will need to do the following:
In your extensions.conf file you would replace these lines:
exten => 8600051,1,Meetme,8600051
exten => 8600052,1,Meetme,8600052
...continue through 8600100...
exten => 78600051,1,Meetme,8600051|q
exten => 78600052,1,Meetme,8600052|q
...continue through 78600100...
exten => 68600051,1,Meetme,8600051|mq
exten => 68600052,1,Meetme,8600052|mq
...continue through 68600100...
with these lines:
exten => 8600051,1,Conference(8600051)
exten => 8600052,1,Conference(8600052)
...continue through 8600100...
exten => 78600051,1,Conference(8600051|q)
exten => 78600052,1,Conference(8600052|q)
...continue through 78600100...
exten => 68600051,1,Conference(8600051|Lq)
exten => 68600052,1,Conference(8600052|Lq)
...continue through 68600100...
NOTE: If you want to do DTMF passthru with app_conference bee sure to add the
"i" and "t" flags to the 8600XX lines: Conference(8600051|it)
7. Add the more entries for astGUIclient specific uses:
- here are some more dialplan additions needed to use astGUIclient(this is a
pure addition, nothing is being modified):
######------ START extensions.conf other additions ------######
; park channel for client GUI parking, hangup after 30 minutes
; create a GSM formatted audio file named "park.gsm" that is 30 minutes long
; and put it in /var/lib/asterisk/sounds
exten => 8301,1,Answer
exten => 8301,2,AGI(park_CID.agi)
exten => 8301,3,Playback(park)
exten => 8301,4,Hangup
exten => 8303,1,Answer
exten => 8303,2,AGI(park_CID.agi)
exten => 8303,3,Playback(conf)
exten => 8303,4,Hangup
; park channel for client GUI conferencing, hangup after 30 minutes
; create a GSM formatted audio file named "conf.gsm" that is 30 minutes long
; and put it in /var/lib/asterisk/sounds
exten => 8302,1,Answer
exten => 8302,2,Playback(conf)
exten => 8302,3,Hangup
; default audio for safe harbor 2-second-after-hello message then hangup
; create a GSM formatted audio file complies with safe harbor rules
; and put it in /var/lib/asterisk/sounds then change filename below
exten => 8307,1,Answer
exten => 8307,2,Playback(vm-goodbye)
exten => 8307,3,Hangup
; this is used for recording conference calls, the client app sends the filename
; value as a callerID recordings go to /var/spool/asterisk/monitor (WAV)
exten => 8309,1,Answer
exten => 8309,2,Monitor(wav,${CALLERIDNAME})
exten => 8309,3,Wait,3600
exten => 8309,4,Hangup
; this is used for recording conference calls, the client app sends the filename
; value as a callerID recordings go to /var/spool/asterisk/monitor (GSM)
exten => 8310,1,Answer
exten => 8310,2,Monitor(gsm,${CALLERIDNAME})
exten => 8310,3,Wait,3600
exten => 8310,4,Hangup
; this is used for playing a message to an answering machine forwarded from AMD in VICIDIAL
; replace conf with the message file you want to leave
exten => 8320,1,WaitForSilence(2000,2) ; AMD got machine. leave message after recording
exten => 8320,2,Playback(conf)
exten => 8320,3,AGI(VD_amd_post.agi,${EXTEN})
exten => 8320,4,Hangup
; this is used to allow the GUI to send you directly into voicemail
; don't forget to set GUI variable $voicemail_exten to this extension
exten => 8501,1,VoicemailMain(s${CALLERIDNUM})
exten => 8501,2,Hangup
; this is used to allow the GUI to send live calls directly into voicemail
; don't forget to set GUI variable $voicemail_dump_exten to this extension
exten => _85026666666666.,1,Wait(2)
exten => _85026666666666.,2,Voicemail(${EXTEN:14})
exten => _85026666666666.,3,Hangup
; this is used for sending DTMF signals within conference calls, the client app
; sends the digits to be played in the callerID field
; sound files must be placed in /var/lib/asterisk/sounds
exten => 8500998,1,Answer
exten => 8500998,2,Playback(silence)
exten => 8500998,3,AGI(agi-dtmf.agi)
exten => 8500998,4,Hangup
; prompt recording AGI script, ID is 4321
exten => 8168,1,Answer
exten => 8168,2,AGI(agi-record_prompts.agi)
exten => 8168,3,Hangup
; playback of recorded prompts
exten => _851XXXXX,1,Answer
exten => _851XXXXX,2,Playback(${EXTEN})
exten => _851XXXXX,3,Hangup
#### VDAD STANDARD TRANSFER ENTRIES ####
; VICIDIAL_auto_dialer transfer script for no-agent campaigns:
exten => 8364,1,Playback(sip-silence)
exten => 8364,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8364,3,AGI(agi-VDADtransferBROADCAST.agi,${EXTEN})
exten => 8364,4,AGI(agi-VDADtransferBROADCAST.agi,${EXTEN})
exten => 8364,5,Hangup
; VICIDIAL_auto_dialer transfer script:
exten => 8365,1,AGI(agi://127.0.0.1:4577/call_log)
exten => 8365,2,AGI(agi-VDADtransfer.agi,${EXTEN})
exten => 8365,3,AGI(agi-VDADtransfer.agi,${EXTEN})
exten => 8365,4,AGI(agi-VDADtransfer.agi,${EXTEN})
exten => 8365,5,Hangup
; VICIDIAL_auto_dialer transfer script SURVEY at beginning:
exten => 8366,1,AGI(agi://127.0.0.1:4577/call_log)
exten => 8366,2,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
exten => 8366,3,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
exten => 8366,4,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
exten => 8366,5,Hangup
; VICIDIAL_auto_dialer transfer script Load Balance Overflow:
exten => 8367,1,AGI(agi://127.0.0.1:4577/call_log)
exten => 8367,2,AGI(agi-VDAD_LO_transfer.agi,${EXTEN})
exten => 8367,3,AGI(agi-VDAD_LO_transfer.agi,${EXTEN})
exten => 8367,4,AGI(agi-VDAD_LO_transfer.agi,${EXTEN})
exten => 8367,5,Hangup
; VICIDIAL_auto_dialer transfer script Load Balanced:
exten => 8368,1,AGI(agi://127.0.0.1:4577/call_log)
exten => 8368,2,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8368,3,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8368,4,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8368,5,Hangup
; VICIDIAL_auto_dialer transfer script AMD with Load Balanced:
exten => 8369,1,AGI(agi://127.0.0.1:4577/call_log)
exten => 8369,2,AMD(3500|1500|300|5000|120|50|5|256)
exten => 8369,3,AGI(VD_amd.agi,${EXTEN})
exten => 8369,4,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8369,5,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8369,6,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8369,7,Hangup
; VICIDIAL auto-dial reminder script
exten => 8372,1,AGI(agi://127.0.0.1:4577/call_log)
exten => 8372,2,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,3,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,4,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,5,Hangup
#### VDAD SIP UNREGISTERED TRANSFER ENTRIES ####
#### Use these entries IN PLACE OF the entries above if you are using SIP trunks
#### and are not registering your provider in sip.conf
; VICIDIAL_auto_dialer transfer script:
exten => 8365,1,Playback(sip-silence)
exten => 8365,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8365,3,AGI(agi-VDADtransfer.agi,${EXTEN})
exten => 8365,4,AGI(agi-VDADtransfer.agi,${EXTEN})
exten => 8365,5,Hangup
; VICIDIAL_auto_dialer transfer script SURVEY at beginning:
exten => 8366,1,Playback(sip-silence)
exten => 8366,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8366,3,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
exten => 8366,4,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
exten => 8366,5,Hangup
; VICIDIAL_auto_dialer transfer script Load Balance Overflow:
exten => 8367,1,Playback(sip-silence)
exten => 8367,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8367,3,AGI(agi-VDAD_LO_transfer.agi,${EXTEN})
exten => 8367,4,AGI(agi-VDAD_LO_transfer.agi,${EXTEN})
exten => 8367,5,Hangup
; VICIDIAL_auto_dialer transfer script Load Balanced:
exten => 8368,1,Playback(sip-silence)
exten => 8368,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8368,3,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8368,4,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8368,5,Hangup
; VICIDIAL_auto_dialer transfer script AMD with Load Balanced:
exten => 8369,1,Playback(sip-silence)
exten => 8369,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8369,3,AMD(3500|1500|300|5000|120|50|5|256)
exten => 8369,4,AGI(VD_amd.agi,${EXTEN})
exten => 8369,5,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8369,6,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8369,7,Hangup
; VICIDIAL auto-dial reminder script
exten => 8372,1,Playback(sip-silence)
exten => 8372,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8372,3,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,4,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,5,Hangup
### OPTIONAL IAX Load Balance extens to allow for Overflow and Balanced VDAD
### In this setup, the serverIP is the prefix followed by agent conf_exten
### If you have more than 1 server doing VICIDIAL outbound, these lines are
### REQUIRED for Load Balancing to work properly
### server 1 extens:
exten => _010*010*010*016*8600XXX,1,Dial(${TRUNKIAX2}/${EXTEN:16},55,o)
exten => _010*010*010*016*8600XXX,2,Hangup
### server 2 extens:
exten => _010*010*010*015*8600XXX,1,Dial(${TRUNKIAX1}/${EXTEN:16},55,o)
exten => _010*010*010*015*8600XXX,2,Hangup
Adding entries to your MySQL "asterisk" database for vicidial
applications
We need to add a few initial values to the vicidial tables in the "asterisk"
database in order to start setting up the vicidial dialer system for use.
1. at the command prompt type this to go to the mysql client:
/usr/local/mysql/bin/mysql
2. type the following into the mysql client prompt:
(make sure you put your IP address in place of "10.10.10.15" in the queries below)
######------ BEGIN Mysql data entry(you can copy and paste this into terminal) #
insert into vicidial_conferences values('8600051','10.10.10.15','');
insert into vicidial_conferences values('8600052','10.10.10.15','');
insert into vicidial_conferences values('8600053','10.10.10.15','');
insert into vicidial_conferences values('8600054','10.10.10.15','');
insert into vicidial_conferences values('8600055','10.10.10.15','');
insert into vicidial_conferences values('8600056','10.10.10.15','');
insert into vicidial_conferences values('8600057','10.10.10.15','');
insert into vicidial_conferences values('8600058','10.10.10.15','');
insert into vicidial_conferences values('8600059','10.10.10.15','');
insert into vicidial_conferences values('8600060','10.10.10.15','');
insert into vicidial_conferences values('8600061','10.10.10.15','');
insert into vicidial_conferences values('8600062','10.10.10.15','');
insert into vicidial_conferences values('8600063','10.10.10.15','');
insert into vicidial_conferences values('8600064','10.10.10.15','');
insert into vicidial_conferences values('8600065','10.10.10.15','');
insert into vicidial_conferences values('8600066','10.10.10.15','');
insert into vicidial_conferences values('8600067','10.10.10.15','');
insert into vicidial_conferences values('8600068','10.10.10.15','');
insert into vicidial_conferences values('8600069','10.10.10.15','');
insert into vicidial_conferences values('8600070','10.10.10.15','');
insert into vicidial_conferences values('8600071','10.10.10.15','');
insert into vicidial_conferences values('8600072','10.10.10.15','');
insert into vicidial_conferences values('8600073','10.10.10.15','');
insert into vicidial_conferences values('8600074','10.10.10.15','');
insert into vicidial_conferences values('8600075','10.10.10.15','');
insert into vicidial_conferences values('8600076','10.10.10.15','');
insert into vicidial_conferences values('8600077','10.10.10.15','');
insert into vicidial_conferences values('8600078','10.10.10.15','');
insert into vicidial_conferences values('8600079','10.10.10.15','');
insert into vicidial_conferences values('8600080','10.10.10.15','');
insert into vicidial_conferences values('8600081','10.10.10.15','');
insert into vicidial_conferences values('8600082','10.10.10.15','');
insert into vicidial_conferences values('8600083','10.10.10.15','');
insert into vicidial_conferences values('8600084','10.10.10.15','');
insert into vicidial_conferences values('8600085','10.10.10.15','');
insert into vicidial_conferences values('8600086','10.10.10.15','');
insert into vicidial_conferences values('8600087','10.10.10.15','');
insert into vicidial_conferences values('8600088','10.10.10.15','');
insert into vicidial_conferences values('8600089','10.10.10.15','');
insert into vicidial_conferences values('8600090','10.10.10.15','');
insert into vicidial_conferences values('8600091','10.10.10.15','');
insert into vicidial_conferences values('8600092','10.10.10.15','');
insert into vicidial_conferences values('8600093','10.10.10.15','');
insert into vicidial_conferences values('8600094','10.10.10.15','');
insert into vicidial_conferences values('8600095','10.10.10.15','');
insert into vicidial_conferences values('8600096','10.10.10.15','');
insert into vicidial_conferences values('8600097','10.10.10.15','');
insert into vicidial_conferences values('8600098','10.10.10.15','');
insert into vicidial_conferences values('8600099','10.10.10.15','');
insert into vicidial_conferences values('8600100','10.10.10.15','');
insert into vicidial_conferences values('8600101','10.10.10.15','');
insert into vicidial_conferences values('8600102','10.10.10.15','');
insert into vicidial_conferences values('8600103','10.10.10.15','');
insert into vicidial_conferences values('8600104','10.10.10.15','');
insert into vicidial_conferences values('8600105','10.10.10.15','');
insert into vicidial_conferences values('8600106','10.10.10.15','');
insert into vicidial_conferences values('8600107','10.10.10.15','');
insert into vicidial_conferences values('8600108','10.10.10.15','');
insert into vicidial_conferences values('8600109','10.10.10.15','');
insert into vicidial_conferences values('8600110','10.10.10.15','');
insert into vicidial_conferences values('8600111','10.10.10.15','');
insert into vicidial_conferences values('8600112','10.10.10.15','');
insert into vicidial_conferences values('8600113','10.10.10.15','');
insert into vicidial_conferences values('8600114','10.10.10.15','');
insert into vicidial_conferences values('8600115','10.10.10.15','');
insert into vicidial_conferences values('8600116','10.10.10.15','');
insert into vicidial_conferences values('8600117','10.10.10.15','');
insert into vicidial_conferences values('8600118','10.10.10.15','');
insert into vicidial_conferences values('8600119','10.10.10.15','');
insert into vicidial_conferences values('8600120','10.10.10.15','');
insert into vicidial_conferences values('8600121','10.10.10.15','');
insert into vicidial_conferences values('8600122','10.10.10.15','');
insert into vicidial_conferences values('8600123','10.10.10.15','');
insert into vicidial_conferences values('8600124','10.10.10.15','');
insert into vicidial_conferences values('8600125','10.10.10.15','');
insert into vicidial_conferences values('8600126','10.10.10.15','');
insert into vicidial_conferences values('8600127','10.10.10.15','');
insert into vicidial_conferences values('8600128','10.10.10.15','');
insert into vicidial_conferences values('8600129','10.10.10.15','');
insert into vicidial_conferences values('8600130','10.10.10.15','');
insert into vicidial_conferences values('8600131','10.10.10.15','');
insert into vicidial_conferences values('8600132','10.10.10.15','');
insert into vicidial_conferences values('8600133','10.10.10.15','');
insert into vicidial_conferences values('8600134','10.10.10.15','');
insert into vicidial_conferences values('8600135','10.10.10.15','');
insert into vicidial_conferences values('8600136','10.10.10.15','');
insert into vicidial_conferences values('8600137','10.10.10.15','');
insert into vicidial_conferences values('8600138','10.10.10.15','');
insert into vicidial_conferences values('8600139','10.10.10.15','');
insert into vicidial_conferences values('8600140','10.10.10.15','');
insert into vicidial_conferences values('8600141','10.10.10.15','');
insert into vicidial_conferences values('8600142','10.10.10.15','');
insert into vicidial_conferences values('8600143','10.10.10.15','');
insert into vicidial_conferences values('8600144','10.10.10.15','');
insert into vicidial_conferences values('8600145','10.10.10.15','');
insert into vicidial_conferences values('8600146','10.10.10.15','');
insert into vicidial_conferences values('8600147','10.10.10.15','');
insert into vicidial_conferences values('8600148','10.10.10.15','');
insert into vicidial_conferences values('8600149','10.10.10.15','');
insert into vicidial_conferences values('8600150','10.10.10.15','');
insert into vicidial_conferences values('8600151','10.10.10.15','');
insert into vicidial_conferences values('8600152','10.10.10.15','');
insert into vicidial_conferences values('8600153','10.10.10.15','');
insert into vicidial_conferences values('8600154','10.10.10.15','');
insert into vicidial_conferences values('8600155','10.10.10.15','');
insert into vicidial_conferences values('8600156','10.10.10.15','');
insert into vicidial_conferences values('8600157','10.10.10.15','');
insert into vicidial_conferences values('8600158','10.10.10.15','');
insert into vicidial_conferences values('8600159','10.10.10.15','');
insert into vicidial_conferences values('8600160','10.10.10.15','');
insert into vicidial_conferences values('8600161','10.10.10.15','');
insert into vicidial_conferences values('8600162','10.10.10.15','');
insert into vicidial_conferences values('8600163','10.10.10.15','');
insert into vicidial_conferences values('8600164','10.10.10.15','');
insert into vicidial_conferences values('8600165','10.10.10.15','');
insert into vicidial_conferences values('8600166','10.10.10.15','');
insert into vicidial_conferences values('8600167','10.10.10.15','');
insert into vicidial_conferences values('8600168','10.10.10.15','');
insert into vicidial_conferences values('8600169','10.10.10.15','');
insert into vicidial_conferences values('8600170','10.10.10.15','');
insert into vicidial_conferences values('8600171','10.10.10.15','');
insert into vicidial_conferences values('8600172','10.10.10.15','');
insert into vicidial_conferences values('8600173','10.10.10.15','');
insert into vicidial_conferences values('8600174','10.10.10.15','');
insert into vicidial_conferences values('8600175','10.10.10.15','');
insert into vicidial_conferences values('8600176','10.10.10.15','');
insert into vicidial_conferences values('8600177','10.10.10.15','');
insert into vicidial_conferences values('8600178','10.10.10.15','');
insert into vicidial_conferences values('8600179','10.10.10.15','');
insert into vicidial_conferences values('8600180','10.10.10.15','');
insert into vicidial_conferences values('8600181','10.10.10.15','');
insert into vicidial_conferences values('8600182','10.10.10.15','');
insert into vicidial_conferences values('8600183','10.10.10.15','');
insert into vicidial_conferences values('8600184','10.10.10.15','');
insert into vicidial_conferences values('8600185','10.10.10.15','');
insert into vicidial_conferences values('8600186','10.10.10.15','');
insert into vicidial_conferences values('8600187','10.10.10.15','');
insert into vicidial_conferences values('8600188','10.10.10.15','');
insert into vicidial_conferences values('8600189','10.10.10.15','');
insert into vicidial_conferences values('8600190','10.10.10.15','');
insert into vicidial_conferences values('8600191','10.10.10.15','');
insert into vicidial_conferences values('8600192','10.10.10.15','');
insert into vicidial_conferences values('8600193','10.10.10.15','');
insert into vicidial_conferences values('8600194','10.10.10.15','');
insert into vicidial_conferences values('8600195','10.10.10.15','');
insert into vicidial_conferences values('8600196','10.10.10.15','');
insert into vicidial_conferences values('8600197','10.10.10.15','');
insert into vicidial_conferences values('8600198','10.10.10.15','');
insert into vicidial_conferences values('8600199','10.10.10.15','');
insert into vicidial_conferences values('8600200','10.10.10.15','');
######------ END Mysql data entry ------######
Setting up asterisk and helper applications for startup
1. Make several entries in the rc.local of your system:
- on the command line type:
- vi /etc/rc.d/rc.local
- add the following entries(here's what we used):
### Path to local asterisk-perl_0.08 module if needed
PERL5LIB="/usr/share/astguiclient/libs"; export PERL5LIB
### start time server
/usr/local/bin/ntpdate -u 18.145.0.30
/usr/sbin/ntpd
### start up the MySQL server
/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-name-resolve --skip-host-cache &
### start up the MySQL 4.1.X server (with old passwords)
/usr/local/mysql/bin/safe_mysqld --old-passwords --skip-name-resolve --skip-host-cache &
### start up the apache web server
/usr/local/apache2/bin/apachectl start
### load digium tormenta 4xT1 drivers into system
modprobe zaptel
modprobe wct1xxp
/sbin/ztcfg -vvvvvvvvvvvv
### sybsys local login
touch /var/lock/subsys/local
### sleep for 20 seconds before launching Asterisk
sleep 20
### start up asterisk
/usr/share/astguiclient/start_asterisk_boot.pl
- you are done
Setting up astguiclient scripts for continuous running
1. Make several entries in the crontab of your system:
- on the command line type:
- cd /usr/share/astguiclient
- crontab -e
- add the following entries(here's what we used):
(Note if you have not edited the AST_CRON_mix_recordings.pl script
to FTP to a different server, then you should use the
AST_CRON_mix_recordings_BASIC.pl file in it's place)
### recording mixing for Asterisk run every 5 minutes
1,6,11,16,21,26,31,36,41,46,51,56 * * * 1,2,3,4,5,6 /usr/share/astguiclient/AST_CRON_mix_recordings_BASIC.pl
### 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 * * * /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 18.145.0.30 2>/dev/null 1>&2
### VICIDIAL agent time log weekly summary report generation
2 0 * * 0 /usr/share/astguiclient/AST_agent_week.pl
- once your system starts up you can attach to the screen running asterisk by
typing "screen -r " find which screen by typing "screen -r" and
looking for the lowest screen number. Then to detach again from the screen
while you are in it type 'Ctrl+a' then 'd'
- you are done
Adding test leads to the VICIDIAL database and configuring a
VICIDIAL campaign and users
First we will add a few test leads to the vicidial_list table so that we can
test our system. There is also an application included with the distribution
that will accept a delimited file of leads placed in the /usr/share/astguiclient/VICIDIAL/LEADS_IN/
directory and load it into the database automatically(VICIDIAL_IN_new_leads_file.pl
[a sample lead file in the proper format is included with this release:
- test_VICIDIAL_lead_file.txt])
If you want to use the lead import script I suggest looking at the code to make
sure it is entering what you want it to. We are not going to go over that
particular script in this document.
Also, there is a web-based lead loader that was made available as of the 1.1.1
release and is accessible from the VICIDIAL admin.php web page(click on the
"LOAD NEW LEADS" link at the top of the admin page). To get to this page you
must have permissions in the vicidial_user table(Load Leads set to 1) .
Instructions on it's use are included on the page through the help question
mark link.
NOTE: in PHP you must have "fileuploads" enabled for this page to work.
NOTE: it is important to have your proper country code in the phone_code field of your leads so that the GMT offset encodding will properly code the time zones for your leads. For the USA/Canada/Caribbean this would be 1. For the UK this is 44 and Mexico is 52 and so on.
Second we need to add the disposition statuses into the system, all of these
queries are below:
(Note: you may want to replace 7275551212 with a real number to test in these
records)
1. at the command prompt type go to the mysql client:
/usr/local/mysql/bin/mysql
2. type the following into the mysql client prompt:
(make sure you put your IP address in place of "10.10.10.15" in the queries
below)
######------ BEGIN Mysql data entry(you can copy and paste this into terminal) #
insert into vicidial_list values('','2004-01-06','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead01','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
insert into vicidial_list values('','2004-01-06','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead02','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
insert into vicidial_list values('','2004-01-07','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead03','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
insert into vicidial_list values('','2004-01-07','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead04','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
insert into vicidial_list values('','2004-01-07','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead05','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
insert into vicidial_list values('','2004-01-07','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead06','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
insert into vicidial_list values('','2004-01-07','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead07','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
### these first 5 must be in all VICIDIAL systems for it to work properly #
insert into vicidial_statuses values('NEW','New Lead','N');
insert into vicidial_statuses values('QUEUE','Lead To Be Called','N');
insert into vicidial_statuses values('INCALL','Lead Being Called','N');
insert into vicidial_statuses values('DROP','Agent Not Available','N');
insert into vicidial_statuses values('NA','No Answer AutoDial','N');
insert into vicidial_statuses values('CALLBK','Call Back','Y');
insert into vicidial_statuses values('A','Answering Machine','Y');
insert into vicidial_statuses values('B','Busy','Y');
insert into vicidial_statuses values('DC','Disconnected Number','Y');
insert into vicidial_statuses values('DEC','Declined Sale','Y');
insert into vicidial_statuses values('DNC','DO NOT CALL','Y');
insert into vicidial_statuses values('SALE','Sale Made','Y');
insert into vicidial_statuses values('N','No Answer','Y');
insert into vicidial_statuses values('NI','Not Interested','Y');
insert into vicidial_statuses values('NP','No Pitch No Price','Y');
insert into vicidial_statuses values('XFER','Call Transferred','Y');
quit
######------ END Mysql data entry ------######
Now that the sample leads and disposition codes have been entered, we can go
into the VICIDIAL administration website and set up our campaigns, lists and users.
But first let's make sure that they have the right GMT offset:
run this on the command line:
- /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --postal-code-gmt
3. Enter the astguiclient administration page:
http://10.10.10.15/vicidial/admin.php
(use the username and password created when we entered a record into the
vicidial_users table in SUBPHASE 6.1, In our case this is 6666 and 1234)
NOTE: if you click on the Logout button you must leave the user/pass empty and click OK
- Now that you are logged into the vicidial administration system we can add
new user entries for each of the new users and enter new campaigns and new
lists.
- The first step is to enter your new users, Click on the ADD A NEW USER
and fill in the appropriate information for each now user you want to
add.
- Next, you need to create a new campaign, click on the ADD A NEW
CAMPAIGN link and fill in what you want the campaign to be called as
well as a description
- Next, you need to define a new list, click on the ADD A NEW LIST link
and fill in what you want the list to be called as well as a using the
list ID of the leads that we loaded in the previous step "101" and
select the new campaign from the pull-down menu that we just created.
- Now that you have created your list, make it active by changing active to Y
- now modify your campaign ang change the first status to be called to
NEW and submit. Now your system is ready to dial.
- you are done
VICIDIAL remote agents:
With v1.0 of VICIDIAL we have the ability to use a simple web form to give
remote agents a way to receive calls to whatever number they happen to be at,
and they can view/edit call details and see a call log all through a web page
(vdremote.php) or http://10.10.10.15/vicidial/vdremote.php on this installation.
Remote Agents is only recommended for inbound calls because of the extra time
needed to dial a number out to transfer the call to. To set up remote agents,
just go to the vicidial admin.php page and ADD NEW REMOTE AGENTS(Make sure the
userID start also has a user login so they can get to the vdremote page). You
will see that you can set up a remote agent entry to take multiple lines if you
wish meaning that, for example, if you need to send all of your calls to another
location because of a massive snowstorm(and none of your agents showed up at work)
you just log in that remote agent record with say 10 lines and then all of those
calls will be directed to the same number you set up for the remote agent. Then
again you could just get your agents to log in from home if they have a phone
and computer
AstGUIclient web-only client:
With 1.1.1 release of astguiclient we have completely rewritten the astGUIclient
client app in AJAX(PHP/Javascript/XMLHTTPRequest) to enable a full, real-time
GUI interface using only a web browser. The browser requirements for this are:
- Firefox 0.9 or greater (Firefox 1.0.7 is tthe recommended browser)
- Mozilla 1.7 or greater
- Netscape 8 or greater
- Opera 8.5 or greater
- Microsoft Internet Explorer 5.0 or greaterr (we have noticed some serious
memory leaks in IE5 and IE6 when using this program, they do not occur in
Firefox which is why we recommend it overall.)
This new version also has more flexibility and functionality than the perl/Tk
version as well as being prettier. We have successfully tested this on many
platforms and in remote locations. It functioned wonderfully off-site with one
of our IAX hardphones and offers a lot of promise for road warriors who need
a lot of options on their phone usage like conferencing and a detailed call log.
To log into this app you will need a login setup in the vicidial_users table
with a user_level of 1 or greater as well as an entry for the phone you are
using in the phones table. You will first get a login prompt for the vicidial
login then you will have the phone login where you enter the Login and Password
for that phone entry. From there the app should display and you will see the
MAIN screen with your phone information, voicemail display and your inbound/
outbound phone call log.
The example web page you would go to on this installation would be:
http://10.10.10.15/agc/astguiclient.php
The inbound log and callerID popup is dependant on having a call_inbound.agi
entry in your dialplan before you phone is dialed(see subphase 6.2 step 2)
Another thing to note is that you can have the agc folder(with the .php files
in it) copied to multiple web servers, you just need to make sure that the
MySQL database connection works (check the settings in the dbconnect.php file
that is in the agc directory). We have had astguiclient.php running on 3
separate web servers for the same DB server and Asterisk server. This is an
easy way to allow for auto failover and/or redundancy. Also, this client will
work over SSL connections(https) for encrypted communications with the server.
New in astGUIclient release 1.1.7 is multi-language support. multi-language
versions of web-clients and admin pages are available in the LANG_www directory
and can be unzipped into your webroot directory.
VICIDIAL web-only client:
NOTE: There is a VICIDIAL Agent manual available from http://www.eflo.net
With 1.1.6 release of astguiclient we have finished the rewrite of the VICIDIAL
client app in AJAX(PHP/Javascript/XMLHTTPRequest) to enable a full, real-time
GUI interface using only a web browser like we have done with astGUIclient.
The browser requirements for this are:
- Firefox 0.9 or greater (Firefox 1.0.7 is tthe recommended browser)
- Mozilla 1.7 or greater
- Netscape 8 or greater
- Opera 8.5 or greater
- Microsoft Internet Explorer 5.0 or greaterr (we have noticed some serious
memory leaks in IE5 and IE6 when using this program, they do not occur in
Firefox which is why we recommend it overall.)
This version is fully functional and has been tested in our production
call center with no problems. On RedHat 9.0 Linux workstations we have noticed
a decrease in system load running the web-client as compared to the Perl/Tk
client. Also, the memory usage stayed at about 22MB for a full shift of
activity, so no memory leaks with Firefox.
To log into this app you will need a login setup in the vicidial_users table
with a user_level of 1 or greater as well as an entry for the phone you are
using in the phones table. You will first get a login prompt for the vicidial
login then you will have the phone login where you enter the Login and Password
for that phone entry. From there the app should display and you will see the
VICIDIAL screen with your phone information.
The example web page you would go to on this installation would be:
http://10.10.10.15/agc/vicidial.php
One more feature that the VICIDIAL web-client offers is the ability to set up
an EXTERNAL phone extension in the astguiclient admin section so that you can
have agents log in to vicidial.php wherever they have access to a phone with
an external phone number and a web browser. To do this follow these steps:
- "ADD PHONE" in the admin.php web page and enter whatever name you want
- For the dialplan number field put in the ffull digits that you would dial from
the Asterisk server to get to that agent's external phone(with 91 if used)
- For the Protocol select EXTERNAL
- make sure the agent knows the login and paassword set for this phone entry.
Then the agent will go to the vicidial.php page and enter in their phone
login/pass, their vicidial user/pass/campaign and their phone should ring in a
few seconds, and they are logged in and ready to take calls.
Another thing to note is that you can have the agc folder(with the .php files
in it) copied to multiple web servers, you just need to make sure that the
MySQL database connection works (check the settings in the dbconnect.php file
that is in the agc directory). We have had astguiclient.php running on 3
separate web servers for the same DB server and Asterisk server. This is an
easy way to allow for auto failover and/or redundancy. Also, this client will
work over SSL connections(https) for encrypted communications with the server.
New in astGUIclient release 1.1.7 is multi-language support. multi-language
versions of web-clients and admin pages are available in the LANG_www directory
and can be unzipped into your webroot directory.
Admin Note: If you want to enable your agents to login with only their user/pass
you can hardcode the phone_login and phone_pass into the query string(URL) and
use a bookmark on their desktop, taking one more step out of their login process
example: http://10.10.10.15/agc/vicidial.php?pl=gs102&pp=test
It is recommended if you are in a call center environment that you would disable
the "Saved Form Information" option in Firefox settings. This is a checkbox in
the Privacy settings under the Options menu.
You are done with installation
If you have problems and it is not working right(and are NOT celebrating right
now), feel free to take a look at the FAQ for solutions to common installation
errors, read the SCRATCH_INSTALL document, visit the VICIDIAL forum or send an
email to the mailing list:
http://www.eflo.net/VICIDIALforum/index.php
https://lists.sourceforge.net/lists/listinfo/astguiclient-users
Also, check out our weblog: http://astguiclient.blogspot.com/
**** IMPORTANT - In order for vicidial/astguiclient to function correctly please
read the REQUIREMENTS.txt for a minimum requirements list. ***
End-user Manuals for Agents and Managers are available from http://www.eflo.net
MODIFIED by : Marlon Budol Santos
Courtesy by : eflo.net
If you want to read the original installation of Asterisk and VICIDIAL
see this link : http://astguiclient.sourceforge.net/scratch_install.html
**** IMPORTANT - In order for vicidial/astguiclient to function correctly please
read the REQUIREMENTS.txt for a minimum requirements list. ***
INSTALLING AN OPERATING SYSTEM
This installation will be using CentOS 4.4 for the linux distribution,
CentOS 4.4 will also work with these instructions. There are several easier
linux distributions and there are others that are more popular, but CentOS is
a nice non-commercial distro that has been around for a long time.
During the installation you must add the all MySQL, WebServer, Development Tools,
Sox components.
Sox is an audio utility that allows you to mix audio files together at their
start point into one file. it is necessary for Asterisk recordings that record
in and out as separate files. *REQUIRED* (needed for recording mixing)
To update your system just type this directly on the command line;
- yum -y groupinstall "Development Tools"
- yum -y update
If you want to make autoload on startup the MySQL server and the WebServer
just type this directly on the command line;
- chkconfig --level 2345 mysqld on
- chkconfig --level 2345 httpd on
INSTALLING SOFTWARE BEFORE ASTERISK
In this step we will be installing software that Asterisk and/or astGUIclient
needs to be able to function to its fullest ability. Not all of these software
packages are manditory to successfully install Asterisk and some of them can be
installed on other machines on your network like MySQL or Apache. But, in this
installation we are assuming that there are no other machines on our network to
help the Asterisk server, so it must have everything it needs installed locally.
***** NOTE: if you will be using any of the DBI perl scripts: *****
Every machine that you will be using the newer BDI perl scripts on will need
to have the perl modules DBI and DBD::mysql installed on them. To do this
you will also need to at least have the MySQL client installed on the server
(see above) then you will need to go to 'cpan' and "install DBI" and
"install DBD::mysql". You may need to "force install DBD::mysql" if the DBD
tests fail on your first try, but that is OK since the tests are not needed
Installing Perl Modules
NOTE - you can install ActiveState http://www.activestate.com perl which may
improve performance, but it is not required. Here's the source for ActiveState
Perl 5.8: (it's free)
http://downloads.activestate.com/ActivePerl/src/5.8/AP817_source.tgz
I hope to add the lengthy steps for installing it as your default perl on your
server but I need some time and a free machine to do that.
cpan is the "Comprehensive Perl Archive Network". It's a mirrored archive of
most of the perl modules out there complete with a installation and management
command-line interface. Here's what you do to start it:
*REQUIRED* (needed for perl AGIs)
1. perl -MCPAN -e shell # type in the command line
2. You will then go through CPAN setup, just hit ENTER for most prompts except
for the mirrors list, you will want to select at least 4 mirrors
- yes for manual configuration
- enter for the next 18 prompts
- for the "make install options" it's a good idea to add UNINST=1
- enter for the next 4 prompts
- select your continent and country
- select a few cpan mirrors (choose North America then United States, then select all mirror links)
- enter for the next 2 prompts
3. Once you see the cpan> prompt you can begin installing modules
4. If you've never installed cpan before you should probably install the
following modules first: (say YES if asked to install prerequisites)
- install MD5
- install Digest::MD5
- install Digest::SHA1
- install readline (just hit Enter when it asks for operator)
- install Bundle::CPAN
- reload cpan
- then you can install other modules:
- install DBI
- force install DBD::mysql (must at least have mysqlclientlibs installed)
- install Net::Telnet
- install Time::HiRes
- install Net::Server
- install Unicode::Map (needed for super list loader Excel)
- install Jcode (needed for super list loader Excel)
- install Spreadsheet::WriteExcel (needed for super list loader Excel)
- install OLE::Storage_Lite (needed for super list loader Excel)
- install Proc::ProcessTable (needed for super list loader Excel)
- install IO::Scalar (needed for super list loader Excel)
- install Spreadsheet::ParseExcel (needed for super list loader Excel)
- then quit cpan, you are done
5. Go to http://asterisk.gnuinter.net/ and download the asterisk-perl module
(backup link: http://www.freedomphones.net/files/asterisk-perl-0.08.tar.gz)
NOTE: Do NOT use the 0.09 version, it does not work with VICIDIAL
- to install this directly on the command line type:
- cd /usr/local
- wget http://asterisk.gnuinter.net/files/asterisk-perl-0.08.tar.gz
- gunzip asterisk-perl-0.08.tar.gz
- tar xvf asterisk-perl-0.08.tar
- cd asterisk-perl-0.08
- perl Makefile.PL
- make all
- make install
- you are done
Installing other utilities
LAME is a MP3 encoder used to convert audio files from WAV to MP3. We prefer GSM
usually, but some users have standardized on MP3 so they would need this utility
to be loaded to use that option.
*OPTIONAL* (only needed if you will be converting recordings to MP3)
Go to http://lame.sourceforge.net/ and download the lame package
- to install this directly on the command line type:
- cd /usr/local
-wget http://downloads.sourceforge.net/lame/lame-3.96.1.tar.gz
-gunzip lame-3.96.1.tar.gz
-tar xvf lame-3.96.1.tar
-cd lame-3.96.1
-./configure
-make
-make install
- you are done
Screen is a terminal emulator that allows you to run a process as command line
and be able to detach from them ('Ctrl+a' then 'd') and log all output of the
terminal to a screenlog file if desired(add a '-L' to the launching command).
In our installations this is how we launch Asterisk upon startup and still have
the ability to log output and still attach to the screen that executed asterisk
originally.
*REQUIRED* *MANDITORY FOR VICIDIAL SERVERS*
- to install this directly on the command line type:
- yum -y install screen
ttyload is a simple terminal application that shows the processor load in a
graphical time-based scrolling graph. We use it to view how loaded the system is
and it visualizes load spikes very well
*OPTIONAL* (only for obsessive admins like me)
Go to http://www.daveltd.com/src/util/ttyload/ and download the ttyload
package
- to install this directly on the command line type:
- cd /usr/local
- wget http://www.daveltd.com/src/util/ttyload/ttyload-0.4.4.tar.gz
- gunzip ttyload-0.4.4.tar.gz
- tar xvf ttyload-0.4.4.tar
- cd ttyload-0.4.4
- make
- ln -s /usr/local/ttyload-0.4.4/ttyload /usr/bin/ttyload
- you are done
ntpd is the network time protocol daemon that matches the time on your machine
with the time of a master server somewhere in the world. We use it to make sure
the time is the same on our client computers and our servers.
*MANDITORY FOR VICIDIAL SERVERS* (install on server and all clients)
Go to http://www.ntp.org/ and download the ntpd package
- to install this directly on the command line type:
- cd /usr/local
- wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.2p3.tar.gz
If you get compilation errors here try 4.1.2:
- wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.1.2.tar.gz
- gunzip ntp-4.2.2p3.tar.gz
- tar xvf ntp-4.2.2p3.tar
- cd ntp-4.2.2p3
- ./configure
- make
- make install
- vi /etc/ntp.conf (change to just 1 line: "server 18.145.0.30")
- cp /etc/ntp.conf /etc/ntpd.conf # just to be sure
- /usr/local/bin/ntpdate -u 18.145.0.30 # initial sync
- /usr/sbin/ntpd # run it
- you are done
iftop is a good console bandwidth visualization tool that shows you active
connections, where they are going to/from and how much of your precious bandwidth
they are using.
*OPTIONAL*
Go to http://www.ex-parrot.com/~pdw/iftop/ and download the package
- to install this directly on the command line type:
- cd /usr/local
- wget http://www.tcpdump.org/release/libpcap-0.9.4.tar.gz
- gunzip libpcap-0.9.4.tar.gz
- tar xvf libpcap-0.9.4.tar
- cd libpcap-0.9.4
- ./configure
- make
- make install
- cd /usr/local
- wget http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.17.tar.gz
- gunzip iftop-0.17.tar.gz
- tar xvf iftop-0.17.tar
- cd iftop-0.17
- ./configure
- make
- make install
- iftop
- you are done
ploticus is a free graph creation package that allows you to create line graphs
within PNG files simply by creating a config file and a data file. We use this
package along with the included PHP script to generate server performance graphs
that can be displayed real-time on a web page.
*OPTIONAL* (only needed for server performance graphing web reports)
Go to http://ploticus.sourceforge.net/ and download the package
- to install this directly on the command line type:
NOTE: you may have to edit the Makefile to remove X11 if you don't have it
- cd /usr/local
- wget http://ploticus.sourceforge.net/download/pl232src.tar.gz
- gunzip pl232src.tar.gz
- tar xvf pl232src.tar
- cd pl232src/src/
- make clean
- make
- make install
- you are done
NOTE: for the graphics to work on the AST_server_performance page you will
need the 'pl' script to be linked or copied into your htdocs/vicidial/ploticus directory
NOTE: you may need to edit the Makefile for ploticus if you do not have X11
openssl is the open-source SSL libraries package, and to install a fake SSL cert
locally and have it work with apache, you need it installed on your machine
*OPTIONAL* (only install openssl if you want to use SSL secured web pages on
your locally installed copy of Apache web server)
Go to http://www.openssl.org/ and download the linux source for openssl
- to install this directly on the command line type:
- cd /usr/local
- wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz
- gunzip openssl-0.9.8e.tar.gz
- tar xvf openssl-0.9.8e.tar
- cd openssl-0.9.8e
- ./config
- make
- make install
- you are done
At the WebServer configuration;
*REQUIRED* raise the memory limit for scripts in php.ini:
- vi /etc/php.ini
memory_limit = 48M
- vi /etc/httpd/conf/httpd.conf
add the following lines:
"AddType application/x-httpd-php .php .phtml"
"LoadModule php4_module libexec/libphp4.so"
or
"LoadModule php4_module modules/libphp4.so"
modify the index.html line and add index.php to the list
- /etc/inid.d/httpd start
- go to http://your-new-asterisk-server-ipaddress/ to see if it worked
- you are done
OPTIONAL- Load eaccelerator PHP-caching application:
- Go to http://eaccelerator.net and download the most recent package
- cd /usr/local
- wget http://bart.eaccelerator.net/source/0.9.5/eaccelerator-0.9.5.zip
- unzip eaccelerator-0.9.5.zip
- cd eaccelerator-0.9.5
- export PHP_PREFIX="/usr/local"
- $PHP_PREFIX/bin/phpize
- ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
- make
- make install
- vi /usr/local/lib/php.ini
Add the following lines to the dynamic extensions section of php.ini:
(you may need to change the extension location depending on your install of php)
extension="../../../usr/local/eaccelerator-0.9.5/modules/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
# to verify installation:
- php -v
balance is a load-balancing application for Linux that will allow you to spread
the load of your web traffic across many servers. If you are running more than
70 agents on a single server you may want to install this application and build
another cheap web server to handle the extra load.
*OPTIONAL*
Go to http://balance.sourceforge.net to download the most recent source version
- to install this directly on the command line type:
- cd /usr/local
- wget http://voxel.dl.sourceforge.net/sourceforge/balance/balance-3.34.tgz
- gunzip balance-3.34.tgz
- tar xvf balance-3.34.tar
- cd balance-3.34
- make
- make install
- /usr/sbin/balance -f 81 localhost:80 10.10.10.16:80
That command will take port 81 traffic and send it evenly to the local
server and the 10.10.10.16 server reducing the load and speeding up
the applications. More info on balance: http://www.inlab.de/balance.pdf
subversion is the new code control framework use by the Asterisk community. If
you want to use the latest development code of Asterisk you will need to have
this loaded on your system.
*OPTIONAL*
Go to http://subversion.tigris.org to download the most recent source version
- to install this directly on the command line type:
- cd /usr/local
- wget http://subversion.tigris.org/downloads/subversion-1.3.2.tar.gz
- gunzip subversion-1.3.2.tar.gz
- tar xvf subversion-1.3.2.tar
- cd subversion-1.3.2
- ./configure
- make
- make install
mtop is a great utility for real-time monitoring of mysql and the queries that
are running in it.
*OPTIONAL*
Go to http://mtop.sourceforge.net to download the most recent version
- to install this directly on the command line type:
- cd /usr/local
- wget http://superb-east.dl.sourceforge.net/sourceforge/mtop/mtop-0.6.6.tar.gz
- gunzip mtop-0.6.6.tar.gz
- tar xvf mtop-0.6.6.tar
- cd mtop-0.6.6
- cpan
- install Curses
- install Getopt::Long
- install Net::Domain
- quit
- perl Makefile.PL
- make
- make install
- /usr/local/bin/mtop --dbuser=root --seconds=3
sipsak is an optional utility that VICIDIAL can use to send messages to an
agent's SIP-based phone(like the Snom 320) to display text on their LCD screen.
If you want to use this, make sure it is installed on the same server that your
web server is installed on(Apache).
*OPTIONAL*
Go to http://sipsak.org to download the most recent version
- to install this directly on the command line, type:
- cd /usr/local
- wget http://download.berlios.de/sipsak/sipsak-0.9.6-1.tar.gz
- gunzip sipsak-0.9.6-1.tar.gz
- tar xvf sipsak-0.9.6-1.tar
- cd sipsak-0.9.6-1
- ./configure
- make
- make install
- /usr/local/bin/sipsak --version
INSTALLING ASTERISK
OK, all the prep work is done, now it's time to start having fun with Asterisk.
There are two basic ways to install Asterisk, an official release(at the time of
this writing the official release is 1.2.17) and the SVN_DEV version(development
branch). We recommend using Asterisk 1.2.17. These instructions are how we get
our Asterisk system with it's T1 line installed with our 2 SIP VOIP devices and
one IAX2 softphone.
NOTE: If you want to use release 1.0.8 or 9 we would recommend either using the
CVS_v1-0 branch where the issues are fixed, or patching your 1.0.8/1.0.9 code
with the following patch:
(http://astguiclient.sourceforge.net/experimental_code/localmasq.patch)
- If you do patch your system make sure you put the asterisk version
field for the server on the admin pages as '1.0.11.1'
1. follow these command line steps:
- mkdir /usr/src/asterisk
- cd /usr/src/asterisk
A. if you want 1.2 release (reliable with new features):
- wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.17.tar.gz
- wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.16.tar.gz
- wget http://ftp.digium.com/pub/libpri/releases/libpri-1.2.4.tar.gz
- gunzip asterisk-1.2.17.tar.gz
- tar xvf asterisk-1.2.17.tar
- gunzip zaptel-1.2.16.tar.gz
- tar xvf zaptel-1.2.16.tar
- gunzip libpri-1.2.4.tar.gz
- tar xvf libpri-1.2.4.tar
B. if you want latest SVN_1.2 version (release tree with new patches)
- svn checkout http://svn.digium.com/svn/asterisk/branches/1.2 asterisk-1.2
- svn checkout http://svn.digium.com/svn/zaptel/branches/1.2 zaptel-1.2
- svn checkout http://svn.digium.com/svn/libpri/branches/1.2 libpri-1.2
C. if you want latest SVN_DEV version (not recommended) [1.5 tree]
- svn checkout http://svn.digium.com/svn/asterisk/trunk asterisk
- svn checkout http://svn.digium.com/svn/zaptel/trunk zaptel
- svn checkout http://svn.digium.com/svn/libpri/trunk libpri
- ALL ->
- (1.0 tree)if you want to allow for more than 100 voicemail messages in a
mailbox(warning this will slightly increase memory usage when a call
is in voicemail) edit the voicemail source code file:
- vi /usr/src/asterisk/asterisk/apps/app_voicemail.c
edit this line and change 100 to 999:
#define MAXMSG 100
- (1.0 tree)if you have no X server installed on your Asterisk machine, then you
will need to comment out the gtk console lib(only affects 1.0 releases)
edit the voicemail source code file:
- vi /usr/src/asterisk/asterisk/pbx/Makefile
edit this line at the top and just add a hash # in front of it as shown:
#PBX_LIBS+=$(shell $(CROSS_COMPILE_BIN)gtk-config --cflags >/dev/null 2>/dev/null && echo "pbx_gtkconsole.so")
- mv asterisk-1.2.17.tar asterisk
- mv zaptel-1.2.16.tar zaptel
- mv libpri-1.2.4.tar libri
- cd ./zaptel
- make clean
- make
- make install
- cd ../libpri
- make clean
- make
- make install
- cd ../asterisk
- (1.2 tree) If you want to include Answering Machine Detection ability
you will need to download app_amd.c and amd.conf and alter the
apps/Makefile to compile it properly
- 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
*OPTIONAL*(1.2.12.1 thru 1.2.17) apply the meetme volume control patch
*Different patches available for 1.2.7.1 through 1.2.14
- 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 ../
-(1.2 tree) apply the cli delimiter patch
- wget http://www.eflo.net/files/cli_chan_concise_delimiter.patch
- patch -p1 < ./cli_chan_concise_delimiter.patch
- File to patch: cli.c
- make clean
- make install
- make samples # this makes sample conf files (only use for new installs)
- (1.2 tree) EXPERIMENTAL!!! If you want to use app_conference
instead of meetme for VICIDIAL then follow these instructions
- cd /usr/src/asterisk
- wget http://www.eflo.net/files/VD_app_conference_0.6.zip
- unzip VD_app_conference_0.6.zip
- cd app_conference
- make clean
- make
- make install
- modprobe zaptel # this loads the zaptel module
- install the module for the digium device that you are using, we are
using the T100P single span T1 card so we use:
- modprobe wct1xxp
Here's the list of all digium cards and the modules you use with
them:
Card Module
-----------------
TDM400P wctdm
X100P wcfxo
TDM* wcfxs
S100U wcusb
T100P wct1xxp
E100P wct1xxp
T400P tor2
E400P tor2
TE110P wcte11xp
TE410P wct4xxp
TE405P wct4xxp
TE411P wct4xxp
TE406P wct4xxp
TE210P wct2xxp
TE205P wct2xxp
TDM2400P wctdm24xxp
- If you have chosen a Sangoma T1/E1 or analog card, you will need to
follow their instructions for installation of their driver software
LATEST Sangoma Wanpipe drivers:
ftp://ftp.sangoma.com/linux/current_wanpipe/wanpipe-2.3.4-7.tgz
- now your asterisk installation is built and loaded and it's time to
configure it.
NOTES: If you want to install zttool diagnostics you may need the newt package installed:
- wget http://www.freedomphones.net/files/newt-0.51.6.tar.gz
- gunzip newt-0.51.6.tar.gz
- tar xvf newt-0.51.6.tar
- cd newt-0.51.6
- ./configure
- make
- make install
- cd ../
- ln -s /usr/lib/libnewt.so.0.51.6 /usr/lib/libnewt.so.0.51
then go to your zaptel folder and do 'make zttool'
Digium/Clone X100P EXAMPLE:
Here is an example of a configuration where an X100P single FXO card is used for
zaptel timing and not used for calling:
NOTE: you can get an X100P through ebay for $10-$30 that will work with Asterisk
/etc/zaptel.conf:
loadzone=us
defaultzone=us
fxsks=1
/etc/asterisk/zapata.conf:
[trunkgroups]
[channels]
context=unused
signalling=fxs_ks
channel => 1
Added this to the rc.local file:
# Load zaptel drivers for x100p
modprobe zaptel
modprobe wcfxo
CONFIGURING ASTERISK AND YOUR SIP PHONES
In this phase we will configure the telco lines, the SIP phones, the extensions,
meetme(conference calling) rooms, dialplan extensions and the voicemail boxes.
After this phase your Asterisk system should be able to place and receive calls
to and from the SIP phones you have installed over the telco lines you've hooked
up. There are several things that we will not be showing how to do because
Asterisk is extremely flexible and has so many different ways of being
configured, that if we were to try to explain them all in this document it would
be 99% asterisk configuration and be 20,000 lines long, and that would
just be a barrier for those who just want to get it set up. The "Wiki" and the
mailing list are two very good resources for finding answers if you run into
problems configuring your system, here are links to them:
The Wiki: http://www.voip-info.org/tiki-index.php
The Lists: http://www.asterisk.org/index.php?menu=support
I need to note that it is possible to install Asterisk and use astGUIclient
applications with no Zaptel(Digium) cards installed, but it is not recommended
even if you are not going to use Zap trunks for your inbound-outbound calls
with no real Zap devices, you would need to use a dummy timer(zt_dummy) based
on you USB ports to get meetme conference rooms working properly and you may
have other issues along the way. We would at least recommend getting a X100 or
X101 board from Digium or a clone manufacturer so there is a dedicated hardware
timer in place on your system.
Setting up your Asterisk configuration files
1. edit zaptel.conf
- vi /etc/zaptel.conf
There are many examples inside of the zaptel.conf file that is
generated with the "make samples" command that we issued at the end
of the last phase. There are many different parameters for the
different telco line possibilities, because we are installing a T1
that is NON-PRI-isdn B8ZS ExtendedSuperframe(ESF) E&M Wink start and 24
channels, we will use the following settings for zaptel.conf:
span=1,1,0,esf,b8zs
e&m=1-24
loadzone = us
defaultzone=us
FOR A PRI YOU WOULD USE SOMETHING LIKE THIS:
span=2,2,0,esf,b8zs
bchan=25-47
dchan=48
2. edit zapata.conf
- vi /etc/asterisk/zapata.conf
There are also many examples of how to configure zapata.conf online.
we decided to separate our T1 into two line groups to keep some
incoming calls from being busy if we filled up all of our lines.
Here's what we used(you can set echocancel=no if you are using PRIs):
[channels]
group=1
language=en
signalling=em_w
usecallerid=yes
callerid=asreceived
context=default
echocancel=64
echocancelwhenbridged=yes
rxgain=1.0
txgain=1.0
channel => 1-2
group=2
language=en
signalling=em_w
usecallerid=yes
callerid=asreceived
context=default
echocancel=64
echocancelwhenbridged=yes
rxgain=1.0
txgain=1.0
channel => 3-24
FOR A PRI YOU WOULD USE SOMETHING LIKE THIS:
group=3
language=en
signalling=pri_net
usecallerid=yes
callerid=asreceived
callprogress=no
busydetect=no
context=default
echocancel=64
echocancelwhenbridged=yes
rxgain=1.0
txgain=1.0
channel => 25-47
3. edit sip.conf
- vi /etc/asterisk/sip.conf
here is where we will edit the configuration of our SIP compatible
phone devices. As stated at the beginning, we will be setting up a
Grandstream Budgetone 102 phone and a Sipura SPA-2000 adapter with
two analog phones connected(each with it's own extension). Here are
the settings we used to set each of them up:
[general]
port = 5060
bindaddr = 0.0.0.0
context = default
; register SIP account on remote machine if using SIP trunks
; register => testSIPtrunk:test@10.10.10.16:5060
;
; setup account for SIP trunking:
; [SIPtrunk]
; disallow=all
; allow=ulaw
; allow=alaw
; type=friend
; username=testSIPtrunk
; secret=test
; host=10.10.10.16
; dtmfmode=inband
; qualify=1000
[gs102]
disallow=all
allow=ulaw
allow=alaw
type=friend
username=gs102
secret=test
host=dynamic
dtmfmode=inband
defaultip=10.10.10.16
qualify=1000
mailbox=102
[spa2000]
disallow=all
allow=ulaw
allow=alaw
type=friend
username=spa2000
secret=test
host=dynamic
dtmfmode=inband
defaultip=10.10.10.17
qualify=1000
mailbox=2000
[spa2001]
disallow=all
allow=ulaw
allow=alaw
type=friend
username=spa2001
secret=test
host=dynamic
dtmfmode=inband
defaultip=10.10.10.17
qualify=1000
mailbox=2001
4. edit meetme.conf
- vi /etc/asterisk/meetme.conf
This is known as the conference calling configuration file. We are
just going to add two conferences(one without a pin number and one
with a pin number required for entry):
[rooms]
conf => 8600
conf => 8601,1234
5. edit iax.conf (only to do IAX trunks, not required)
- vi /etc/asterisk/iax.conf
This is the IAX configuration file, below is a very simple config for
having two Asterisk servers connect natively to each other, if you
will be using this, make sure to add the optional lines included
after the extensions.conf section. Also, there is an account setup
here for a firefly IAX softphone to use.(details on that later)
* IMPORTANT NOTE * if you plan to use IAX2 trunks for VICIDIAL
outbound dialing you must register with the remote IAX2 server
through the iax.conf file, not just in the Dial or TRUNK line
of the extensions.conf dialplan.
[general]
bindport=4569
iaxcompat=yes
bandwidth=high
allow=all
allow=gsm ; Always allow GSM, it's cool :)
jitterbuffer=no
tos=lowdelay
register => ASTtest1:test@10.10.10.16:4569
[ASTtest2]
type=friend
accountcode=IAXtrunk2
context=default
auth=plaintext
host=dynamic
permit=0.0.0.0/0.0.0.0
secret=test
disallow=all
allow=ulaw
qualify=yes
[firefly01]
type=friend
accountcode=firefly01
context=default
auth=plaintext
host=dynamic
permit=0.0.0.0/0.0.0.0
secret=test
disallow=all
allow=gsm
qualify=yes
##### EXAMPLE - This is a config example for setting up Binfone service(http://www.binfone.com)
NOTE: The "1112223333" is your iax username. When you signup, Binfone creates
a default IAX username for you, (a 5 digit number, usually, starting with a 1).
This works for most customers. Folks that want inbound then also sign up for
DIDs, each of which has its own IAX username. (Which is the 10 digit DID).
Each username has its own password which is managed through their web interface.
NOTE: If you will be using the G729 codec through binfone there is now a
dedicated G729 gateway that only handles G729 calls. Please use this address to
register to if you plan on using G729 as your codec: iax-g729.binfone.com
iax.conf:
[general]
register => 1112223333:PASSWORD@iax.binfone.com
[1112223333]
auth=md5
type=friend
username=1112223333
secret=PASSWORD
host=iax.binfone.com
context=incoming-IAX-context-in-extensions.conf
extensions.conf:
[global]
TRUNKBINFONE=IAX2/1112223333:PASSWORD@iax.binfone.com ; IAX trunk interface
[default]
exten => _91NXXNXXXXXX,1,AGI(AGI(agi://127.0.0.1:4577/call_log)
exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN},55,o)
exten => _91NXXNXXXXXX,3,Hangup
[incoming]
exten => 1112223333,1,AGI(AGI(agi://127.0.0.1:4577/call_log)
exten => 1112223333,2,Dial(sip/gs102,55,o)
exten => 1112223333,3,Hangup
dnsmgr.conf: # It is very helpful to enable dnsmgr
[general]
enable=yes ; enable creation of managed DNS lookups
refreshinterval=300 ; refresh managed DNS lookups every seconds
##### END EXAMPLE
6. edit voicemail.conf
- vi /etc/asterisk/voicemail.conf
This is where we set up the voicemail boxes for the extensions that
we have set up:
[general]
format=wav49|gsm|wav
serveremail=asterisk
attach=yes
skipms=3000
maxsilence=10
silencethreshold=128
maxlogins=3
[zonemessages]
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H 'digits/hundred' M 'hours'
[default]
102 => 102,Grandstream Mailbox,root@localhost
2000 => 2000,Sipura Mailbox 1
2001 => 2001,Sipura Mailbox 2
3001 => 3001,Firefly Mailbox 1
7. edit manager.conf
- vi /etc/asterisk/manager.conf
This is where we set up remote logins to the asterisk manager
interface, to allow sending of Action commands from remote
connections to the Asterisk server, this will be important for the
astguiclient applications so let's set that up now:
[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
[cron]
secret = 1234
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user
[updatecron]
secret = 1234
read = command
write = command
[listencron]
secret = 1234
read = system,call,log,verbose,command,agent,user
write = command
[sendcron]
secret = 1234
read = command
write = system,call,log,verbose,command,agent,user
8. edit logger.conf
- vi /etc/asterisk/logger.conf
This file determines the messages that are logged to the console and
the /var/log/asterisk/messages file. We usually turn on full logging
to the messages file to more easily diagnose any problems that we may
run into, the problem with this is that is does produce very large
files, so be warned:
[logfiles]
console => notice,warning,error
messages => notice,warning,error,debug,verbose
9. edit extensions.conf
- vi /etc/asterisk/extensions.conf
This is known as the dialplan. Since we are installing a
Long-Distance T1 with one 800 number on it, we will need to put that
800 number in the plan, as well as how to dial out through the T1
lines and we will need to add an entry for each of the phones that we
have just set up in the sip.conf file. There are many examples both
in the sample file and online for what to put in your dialplan, here
is the simplified dialplan that we are using:
######------ START extensions.conf example ------######
[general]
static=yes
writeprotect=no
[globals]
CONSOLE=Console/dsp ; Console interface for demo
TRUNK=Zap/g1 ; Trunk interface
TRUNKX=Zap/g2 ; 2nd trunk interface
TRUNKIAX=IAX2/ASTtest1:test@10.10.10.16:4569 ; IAX trunk interface
[default]
; Extension 8600 + 8601 conference rooms
exten => 8600,1,Meetme,8600
exten => 8601,1,Meetme,8601
; Extension 102 - Grandstream hardphone
exten => 102,1,Playback,transfer|skip ; "Please hold while..."
exten => 102,2,Dial,sip/gs102|20|to ; Ring, 20 secs max
exten => 102,3,Voicemail,u102 ; Send to voicemail...
; Extension 2000 Sipura line 1
exten => 2000,1,Dial,sip/spa2000|30|to ; Ring, 30 secs max
exten => 2000,2,Voicemail,u2000 ; Send to voicemail...
; Extension 2001 Sipura line 2
exten => 2001,1,Dial,sip/spa2001|30|to ; Ring, 30 secs max
exten => 2001,2,Voicemail,u2001 ; Send to voicemail...
; Extension 2020 rings both sipura lines
exten => 2001,1,Dial,sip/spa2000&sip/spa2001|30|to ; Ring, 30 secs max
exten => 2001,2,Voicemail,u2000 ; Send to voicemail...
; Extension 301 rings the firefly softphone
exten => 301,1,Dial,(IAX2/firefly01@firefly01/s)
exten => 301,2,Hangup
; Extension 3429 - Inbound 800 number (1-800-555-3429)
exten => _**3429,1,Ringing
exten => _**3429,2,Answer
exten => _**3429,3,Dial,sip/spa2000&sip/spa2001|30|to ; Ring, 30 secs max
exten => _**3429,4,Voicemail,u2000 ; Send to voicemail...
; Extension 3429 - with ANI [callerID]
exten => _*NXXNXXXXXX*3429,1,Ringing
exten => _*NXXNXXXXXX*3429,2,Answer
exten => _*NXXNXXXXXX*3429,3,Dial,sip/spa2000&sip/spa2001|30|to ; Ring, 30
secs max
exten => _*NXXNXXXXXX*3429,4,Voicemail,u2000 ; Send to voicemail...
; dial a long distance outbound number to the UK
exten => _901144XXXXXXXXXX,1,Dial(${TRUNKX}/${EXTEN:1},55,tTo)
exten => _901144XXXXXXXXXX,2,Hangup
; dial a long distance outbound number to Australia
exten => _901161XXXXXXXXX,1,Dial(${TRUNKX}/${EXTEN:1},,tTo)
exten => _901161XXXXXXXXX,2,Hangup
; dial an 800 outbound number
exten => _91800NXXXXXX,1,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91800NXXXXXX,2,Hangup
exten => _91888NXXXXXX,1,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91888NXXXXXX,2,Hangup
exten => _91877NXXXXXX,1,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91877NXXXXXX,2,Hangup
exten => _91866NXXXXXX,1,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91866NXXXXXX,2,Hangup
; dial a local 727 outbound number with area code
exten => _9727NXXXXXX,1,Dial(${TRUNK}/1${EXTEN:1},,tTo)
exten => _9727NXXXXXX,2,Hangup
; dial a local 813 outbound number with area code
exten => _9813NXXXXXX,1,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _9813NXXXXXX,2,Hangup
; dial a long distance outbound number
exten => _91NXXNXXXXXX,1,Dial(${TRUNKX}/${EXTEN:1},,tTo)
exten => _91NXXNXXXXXX,2,Hangup
; dial a local outbound number (modified because of only LD T1)
exten => _9NXXXXXX,1,Dial(${TRUNK}/1727${EXTEN:1},,tTo)
exten => _9NXXXXXX,2,Hangup
; barge monitoring extension
exten => 8159,1,ZapBarge
exten => 8159,2,Hangup
; # timeout invalid rules
exten => #,1,Playback(invalid) ; "Thanks for trying the demo"
exten => #,2,Hangup ; Hang them up.
exten => t,1,Goto(#,1) ; If they take too long, give up
exten => i,1,Playback(invalid) ; "That's not valid, try again"
; Give voicemail at extension 8500
exten => 8500,1,VoicemailMain
exten => 8500,2,Goto(s,6)
; ASTERISK AGENTS LOGINS FOR QUEUES (NOT part of VICIDIAL)
; the following assumes phone agent login and exten are 3 digits and the same
; also assumes that 3-digit login is present in agents.conf and queueus.conf
;Agent Logout then stay onhook, DIAL 54 + 3-digit ID
exten => _54XXX,1,AgentCallbackLogin(||)
; the following are used to login and logout of Asterisk Queues from phone
;Agent Login then stay offhook on the phone, DIAL 55 + 3-digit ID
exten => _55XXX,1,AgentLogin(${EXTEN:1})
;Agent Login then stay onhook, phones will ring, DIAL 56 + 3-digit ID
exten => _56XXX,1,AgentCallbackLogin(||${EXTEN:1}@default)
######------ END extensions.conf example ------######
### OPTIONAL IAX trunk extensions entries for long distance dialing over IAX
exten => _91NXXNXXXXXX,1,AGI(AGI(agi://127.0.0.1:4577/call_log)
exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN},55,o)
exten => _91NXXNXXXXXX,3,Hangup
### OPTIONAL SIP trunk extensions entries for long distance dialing over SIP
exten => _91NXXNXXXXXX,1,AGI(AGI(agi://127.0.0.1:4577/call_log)
exten => _91NXXNXXXXXX,2,Dial(sip/${EXTEN}@SIPtrunk,55,o)
exten => _91NXXNXXXXXX,3,Hangup
### OPTIONAL IAX Load Balance extens to allow for Overflow and Balanced VDAD
### In this setup, the serverIP is the prefix followed by agent conf_exten
### FOR MORE INFORMATION, READ THE LOAD_BALANCING.txt DOCUMENT
### server 1 extens:
exten => _010*010*010*016*8600XXX,1,Dial(${TRUNKIAX2}/${EXTEN:16},55,o)
### server 2 extens:
exten => _010*010*010*015*8600XXX,1,Dial(${TRUNKIAX1}/${EXTEN:16},55,o)
10. edit dnsmgr.conf: # It is very helpful to enable dnsmgr
[general]
enable=yes ; enable creation of managed DNS lookups
refreshinterval=300 ; refresh managed DNS lookups every seconds
11. Now that you have configured Asterisk, it is time to try to start it for the
first time.
- First make sure that your T1 line(or other telco line) is connected to the
digium card.
- next type the following at the command prompt: "ztcfg -vvvvvv"
- you should see a confirmation that the Zaptel device has loaded
- now you can launch asteris with the following command:
"asterisk -vvvvvvvvvvvvgc"
- you should see a lot of messages scroll by and at the end you should
be given a CLI> prompt if everything loaded OK. To get out of Asterisk you can
type "stop now". Now that you are sure it is running you can either run it in a
separate terminal window or use the start_asterisk_boot.pl that you will
install with astguiclient to start Asterisk.
Setting up your SIP phones
You will need to follow the instructions for the phones that you are using with
your system, but here's the way to set up a Grandstream 102 and a Sipura
SPA-2000
1. Here are basic instructions for setting up a Grandstream BT 102:
- On the phone plug it in to power only at first and follow these
instructions:
- wait for the phone to boot up and press the MENU button
- go through the menu screens with the menu key and the up/down arrow
keys to move from setting to setting. We are setting the following
values:
- DHCP OFF
- IP Addr: 010.010.010.016
- Subnet: 255.255.000.000
- router: 010.010.010.001
- dnS: 010.010.010.001
- tftp: we leave this blank for now
- menu 7 we change the codec to G-711u
- now wait 10 seconds and unplug the power and plug it back in
- you can also plug the network cable into the LAN port on the phone
- at this time you can go to your workstation and open a new web browser
- go to http://10.10.10.16/ the password is "admin"
- here is where you will enter in the configuration details for the
phone to register with the Asterisk server
- SIP server: 10.10.10.15
- SIP user ID: gs102
- Authenticate ID: gs102
- Password: test
- Name: gs102
- Voice Mail UserID: 102
- Send DTMF: in-audio
- NTP Server: tick.mit.edu
- then click update, click review changes, and click reboot
- your phone should now be able to register with the Asterisk server. If you
still have your console screen up you should see a registration message
appear telling you that gs102 has registered.
2. Here are the basic instructions for setting up a Sipura SPA-2000 analog
adapter with 2 lines.
- Plug power and two analog phones into the adapter.
- pick up the phone plugged into line1 and press **** to enter admin menu
- press 101# then 0# to disable DHCP
- press 111# then 10*10*10*17# to change the IP address
- press 121# then 255*255*0*0# to change the subnet mask
- press 131# then 10*10*10*1# to change the default gateway
- hang up the phone, unplug the power, plug in the network cable and plug in
the power cable
- now you can go the the admin website: http://10.10.10.17/admin/advanced
- you will need to make these setting changes:
- click on the "Line 1" tab at the top and change the following values:
- Proxy: 10.10.10.15
- Display Name: spa2000
- userID: spa2000
- password: test
- authID: spa2000
- change the dialplan to the following:
(*xx|xxx|xxxx|xxxxx|xxxxxx|xxxxxxx|xxxxxxxx|xxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxx.)
- then click the "submit all changes" button at the bottom of the page
and your first phone line should work now
- to register the second line, simply click on the "Line 2" tab and go
through the above steps except use spa2001 instead of spa2000 for the use IDs
3. Now both of your phone devices are set up and you can try making phone calls
between the three phones
Setting up an IAX2 phone
This is optinal and we won't go into too much detail about this, but currently
there are several IAX hard and softphones on the market and more are coming
every month. Follow the instructions with the IAX phone you have chosen and
follow the steps below:
1. Add an entry into your iax.conf file like below if you have not already
[firefly01]
type=friend
accountcode=firefly01
context=default
auth=plaintext
host=dynamic
permit=0.0.0.0/0.0.0.0
secret=test
qualify=yes
2. Add an entry into your extensions.conf file like below if it is not in there
; Extension 3001 rings IAX phone
exten => 301,1,Dial(IAX2/firefly01@firefly01/s)
exten => 301,2,Voicemail,u301 ; Send to voicemail...
3. Download Firefly 3rd party, or IDEfisk for Windows or Linux:
- http://www.virbiage.com/firefly/download/firefly-thirdparty.exe
MIRRORS:
- http://mirror.isp.net.au/ftp/pub/firefly/firefly-thirdparty.exe
- http://www.freedomphones.net/files/firefly-thirdparty.exe
IDEFISK:
- http://www.asteriskguru.com/idefisk/
- Install the application
- Launch Firefly Softphone
- click the "I wish to connect to a 3rd party network" button
- Enter in network name: Asterisk
- Select IAX2 as the protocol
- enter in your server address: "10.10.10.15" in our case
- enter login and pass: "firefly01" and "test" for in our case
- click OK and you should be logged in and can place calls
Setting up a Zap phone
This is optinal and we won't go into too much detail about this either, there
are a few ways to use Zap devices as phones on your Asterisk system: Zaptel
phone cards, Channel Banks going through Zaptel T1 card, outside line call
coming in going through Zaptel line card. There isn't much to do but set your
Zaptel config files up and put entries into your extensions.conf file:
1. Add an entry into your extensions.conf file like below
; Extension 4001 rings Zap phone
exten => 4001,1,Dial,Zap/1|30| ; ring Zap device 1
exten => 4001,2,Voicemail,u4001 ; Send to voicemail...
INSTALLING ASTGUICLIENT AND VICIDIAL
Now that Asterisk is installed and running we can add the astGUIclient and
VICIDIAL components to the system.
Putting the files in place
There are two methods for downloading astGUIclient/VICIDIAL, a release and SVN
Go to http://astguiclient.sf.net/ and download the latest astguiclient
package(as of this writing it is 2.0.3)
- for 2.0.X release:
- mkdir /usr/src/astguiclient
- cd /usr/src/astguiclient
- wget http://internap.dl.sourceforge.net/sourceforge/astguiclient/astguiclient_2.0.3.zip
- unzip astguiclient_2.0.3.zip
- perl install.pl (make sure you are in the directory with the install.pl file)
- for SVN 2.0 trunk:
- mkdir /usr/src/astguiclient
- cd /usr/src/astguiclient
- svn checkout svn://205.201.151.21:43690/agc_2-X
- cd agc_2-X/trunk/
- perl install.pl
select to do interactive setup and customize to your server
- there is one more file you need that's not included with the download
package, it's the conf.gsm file(this is the half-hour music file that we use
to put people on hold). I have a free classical music file that is available
free for download at the following two sites:
http://www.freedomphones.net/conf.gsm
http://astguiclient.sf.net/conf.gsm
Once you have downloaded it, you will need to copy it to this folder:
/var/lib/asterisk/sounds/
Then you will need to execute this command to copy it as the park file
'cp /var/lib/asterisk/sounds/conf.gsm /var/lib/asterisk/sounds/park.gsm'
Here are the steps spelled out:
- cd /var/lib/asterisk/sounds
- wget http://www.freedomphones.net/conf.gsm
- cp conf.gsm park.gsm
- you are done
Creating the MySQL "asterisk" database
we will create the database and add a few initial records so that we can
use the administrative web interface. Since this is a new install it is easier
to use our new mysql script file to add the tables to the database:
1. at the command prompt type go to the mysql client:
/usr/local/mysql/bin/mysql
2. type the following into the mysql client prompt:
(make sure you put your IP address in place of "10.10.10.15" in the queries below)
######------ BEGIN Mysql data entry(you can copy and paste this into terminal) #
create database asterisk;
GRANT SELECT,INSERT,UPDATE,DELETE on asterisk.* TO cron@'%' IDENTIFIED BY '1234';
GRANT SELECT,INSERT,UPDATE,DELETE on asterisk.* TO cron@localhost IDENTIFIED BY '1234';
# NOTE: if using MySQL 4.1.12 or higher you may need to run this query too:
UPDATE mysql.user set password=OLD_PASSWORD('1234') where user='cron';
use asterisk;
\. /usr/src/astguiclient/extras/MySQL_AST_CREATE_tables.sql
or you may need to run this if you get an error:
\. /usr/src/astguiclient/MySQL_AST_CREATE_tables.sql
GRANT SELECT on asterisk.phones TO idcheck@'%' IDENTIFIED BY '1234';
GRANT SELECT on asterisk.phones TO idcheck@localhost IDENTIFIED BY '1234';
insert into servers (server_id,server_description,server_ip,active,asterisk_version)values('TESTasterisk','Test install of Asterisk server', '10.10.10.15','Y','1.2.17');
insert into server_updater values('10.10.10.15','');
insert into phones (extension, dialplan_number, voicemail_id, phone_ip, computer_ip, server_ip, login, pass, status, active, phone_type, fullname, company, picture, messages, old_messages, protocol) values('gs102','102','102','10.10.10.16','10.10.9.16','10.10.10.15','gs102','test', 'ADMIN','Y','Grandstream BT 102','Test Admin Phone','TEST','','0','0','SIP');
insert into vicidial_users (user,pass,full_name,user_level,user_group,load_leads,campaign_detail,ast_admin_access,modify_users) values('6666','1234','Admin','9','ADMIN','1','1','1','1');
insert into conferences values('8600001','10.10.10.15','');
insert into conferences values('8600002','10.10.10.15','');
insert into conferences values('8600003','10.10.10.15','');
insert into conferences values('8600004','10.10.10.15','');
insert into conferences values('8600005','10.10.10.15','');
insert into conferences values('8600006','10.10.10.15','');
insert into conferences values('8600007','10.10.10.15','');
insert into conferences values('8600008','10.10.10.15','');
insert into conferences values('8600009','10.10.10.15','');
insert into conferences values('8600010','10.10.10.15','');
insert into conferences values('8600011','10.10.10.15','');
insert into conferences values('8600012','10.10.10.15','');
insert into conferences values('8600013','10.10.10.15','');
insert into conferences values('8600014','10.10.10.15','');
insert into conferences values('8600015','10.10.10.15','');
insert into conferences values('8600016','10.10.10.15','');
insert into conferences values('8600017','10.10.10.15','');
insert into conferences values('8600018','10.10.10.15','');
insert into conferences values('8600019','10.10.10.15','');
insert into conferences values('8600020','10.10.10.15','');
insert into conferences values('8600021','10.10.10.15','');
insert into conferences values('8600022','10.10.10.15','');
insert into conferences values('8600023','10.10.10.15','');
insert into conferences values('8600024','10.10.10.15','');
insert into conferences values('8600025','10.10.10.15','');
insert into conferences values('8600026','10.10.10.15','');
insert into conferences values('8600027','10.10.10.15','');
insert into conferences values('8600028','10.10.10.15','');
insert into conferences values('8600029','10.10.10.15','');
quit
run this command from command line:
- /usr/share/astguiclient/ADMIN_area_code_populate.pl
######------ END Mysql data entry ------######
NOTE: if you are not installing using default user/pass or have MySQL on another
server, you will need to edit either the /etc/astguiclient.conf file or the
dbconnect.php files in the astguiclient, vicidial and agc directories of your
webroot.
3. Enter the vicidial administration page:
http://10.10.10.15/vicidial/admin.php
NOTE: if you click on the Logout button you must leave the user/pass empty and click OK
- Here you will enter the login and password that you inserted into the mysql
database in the vicidial_users table (subphase 6.1 [6666/1234])
- Now that you are logged into the astGUIclient administration system we can
add a new phone entry for each of the sipura lines we created.
- click on the "PHONES" link at the top, then the "ADD PHONE" link below
that and enter in the proper information for each of the new phone lines.
Here's what we entered for spa2000:
- Phone extension: spa2000
- Dialplan Number: 2000
- Voicemail Box: 2000
- Phone IP address: 10.10.10.17
- Computer IP address: 10.10.9.17
- Server IP: 10.10.10.15
- Login: spa2000
- Password: test
- Status: ACTIVE
- Active Account: Y
- Phone Type: Sipura SPA-2000 line 1
- Full Name: Sipura line 1 test
- Company: TEST
- Picture:
- for the next phone simply replace 2000 with 2001 in the above example
- now your phones are all all set up in the astguiclient system and you can
use this website to add new phones to be used with astguiclient and monitor
the number of calls people are making.
- now your database is set up for the astguiclient conferences which
will allow you to have over 6 remote parties that you called from your
GUI client application in one conference.
- click on the "LIST ALL SERVERS" link at the top then click on the
server to modify. Verify that the GMT time zone and all other fields
are what you want them to be. There is a setting(Max VICIDIAL Trunks)
that can be modified to limit the number of VICIDIAL outbound trunks
that will be allowed to use on this server.
4. **OPTIONAL** For IAX clients you will need to use full phone name as the
extension on the admin page entry: "firefly01@firefly01" for our IAX phone example
previously. And do not forget to set the protocol on this page to IAX2
5. **OPTIONAL** For Zap clients you will need to use full Zap Channel name as the
extension on the admin page entry: "1-1" for our Zap phone example
previously. And do not forget to set the protocol on this page to Zap
Making additions to your Asterisk conf files
Now that the database is set up and our phones have entries in the system we can
make the additions to the running Asterisk system that will allow astguiclient
to work with it.
1. Add the call_log entries to all incoming/outgoing extensions entries:
- here is how our sample dialplan changes for adding call_log entries(only
effected extension groups are show):
######------ START extensions.conf changes for call_log ------######
##### This 'h' exten is VERY important for VICIDIAL usage,
##### you will have problems if it is not in your dialplan!
exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log)
exten => h,2,DeadAGI(agi://127.0.0.1:4577/VD_hangup--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}))
; Extension 3429 - Inbound 800 number (1-800-555-3429)
exten => _**3429,1,Ringing
exten => _**3429,2,AGI(agi://127.0.0.1:4577/call_log)
exten => _**3429,3,Answer
exten => _**3429,4,Dial,sip/spa2000&sip/spa2001|30|to
exten => _**3429,5,Voicemail,u2000
; Extension 3429 - with ANI [callerID]
exten => _*NXXNXXXXXX*3429,1,Ringing
exten => _*NXXNXXXXXX*3429,2,AGI(agi://127.0.0.1:4577/call_log)
exten => _*NXXNXXXXXX*3429,3,Answer
exten => _*NXXNXXXXXX*3429,4,Dial,sip/spa2000&sip/spa2001|30|to
exten => _*NXXNXXXXXX*3429,5,Voicemail,u2000
; Extension 7275551212 - Inbound local number from PRI with 10 digit delivery
exten => 7275551212,1,Ringing
exten => 7275551212,2,Wait(1)
exten => 7275551212,3,AGI(agi://127.0.0.1:4577/call_log--fullCID--${EXTEN}-----${CALLERID}-----${CALLERIDNUM}-----${CALLERIDNAME})
exten => 7275551212,4,Answer
exten => 7275551212,5,Dial,sip/spa2000&sip/spa2001|30|to
exten => 7275551212,6,Voicemail,u2000
; dial a long distance outbound number to the UK
exten => _901144XXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _901144XXXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},55,tTo)
exten => _901144XXXXXXXXXX,3,Hangup
; dial a long distance outbound number to Australia
exten => _901161XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _901161XXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,tTo)
exten => _901161XXXXXXXXX,3,Hangup
; dial an 800 outbound number
exten => _91800NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91800NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91800NXXXXXX,3,Hangup
exten => _91888NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91888NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91888NXXXXXX,3,Hangup
exten => _91877NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91877NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91877NXXXXXX,3,Hangup
exten => _91866NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91866NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91866NXXXXXX,3,Hangup
; dial a local 727 outbound number with area code
exten => _9727NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _9727NXXXXXX,2,Dial(${TRUNK}/1${EXTEN:1},,tTo)
exten => _9727NXXXXXX,3,Hangup
; dial a local 813 outbound number with area code
exten => _9813NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _9813NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _9813NXXXXXX,3,Hangup
; dial a long distance outbound number
exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91NXXNXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,tTo)
exten => _91NXXNXXXXXX,3,Hangup
; dial a local outbound number (modified because of only LD T1)
exten => _9NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _9NXXXXXX,2,Dial(${TRUNK}/1727${EXTEN:1},,tTo)
exten => _9NXXXXXX,3,Hangup
######------ END extensions.conf changes ------######
2. Add the call_inbound entries to all incoming extensions entries that you want
CallerID popups on:
- here is how our sample dialplan changes for adding call_inbound
entries(only effected extension groups are show):
######------ START extensions.conf changes for call_inbound ------######
; parameters for call_inbound.agi (7 fields separated by five dashes "-----"):
; 1. the extension of the phone to ring as defined in the asterisk.phones table
; 2. the phone number that was called, for the live_inbound/_log entry
; 3. a text description of the number that was called in
; 4-7. optional fields, they are also passed as fields in the GUI to web browser
; Extension 3429 - Inbound 800 number (1-800-555-3429)
exten => _**3429,1,Ringing
exten => _**3429,2,AGI(agi://127.0.0.1:4577/call_log)
exten => _**3429,3,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w)
exten => _**3429,4,Answer
exten => _**3429,5,Dial,sip/spa2000&sip/spa2001|30|to
exten => _**3429,6,Voicemail,u2000
; Extension 3429 - with ANI [callerID]
exten => _*NXXNXXXXXX*3429,1,Ringing
exten => _*NXXNXXXXXX*3429,2,AGI(agi://127.0.0.1:4577/call_log)
exten => _*NXXNXXXXXX*3429,3,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w)
exten => _*NXXNXXXXXX*3429,3,Answer
exten => _*NXXNXXXXXX*3429,4,Dial,sip/spa2000&sip/spa2001|30|to
exten => _*NXXNXXXXXX*3429,5,Voicemail,u2000
exten => _010*010*010*015*8600XXX,1,Goto(default,${EXTEN:16},1)
exten => _010*010*010*015*8600XXX*.,1,Goto(default,${EXTEN:16},1)
exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
; parameters for agi-VDADcloser.agi (2 fields separated by five dashes "-----"):
; 1. the full extension formatted by VICIDIAL for internal transfers * separated
; 2. the word START to denote the beginning of the acceptance of the transfer
; inbound VICIDIAL transfer calls [can arrive through PRI T1 crossover or IAX channel]
exten => _90009.,1,Answer ; Answer the line
exten => _90009.,2,AGI(agi-VDADcloser.agi,${EXTEN}-----START)
exten => _90009.,3,Hangup
; parameters for agi-VDADcloser_inbound....agi (7 fields separated by five dashes "-----"):
; 1. the full name of the IN GROUP to be used in vicidial for the inbound call
; 2. the phone number that was called, for the log entry
; 3. the callerID or lead_id of the person that called(usually overridden)
; 4. the park extension audio file name if used
; 5. the status of the call initially(usually not used)
; 6. the list_id to insert the new lead under if it is new (and callerID available)
; 7. the phone dialing code to insert with the new lead if new (and callerID available)
; inbound VICIDIAL call with CID delivery through T1 PRI
exten => 1234,1,Ringing ; call ringing
exten => 1234,2,Wait(1) ; Wait 1 second for CID delivery from PRI
exten => 1234,3,Answer ; Answer the line
exten => 1234,4,AGI(agi-VDADcloser_inboundCID.agi,CL_GALLERIA-----7275555134-----Closer-----park----------999-----1)
exten => 1234,5,Hangup
; inbound VICIDIAL call with ANI delivery through robbed-bit T1 (*NXXNXXXXXX*DNIS)
exten => 1234,1,Answer ; Answer the line
exten => 1234,2,AGI(agi-VDADcloser_inboundANI.agi,CL_GALLERIA-----7275555134-----Closer-----park----------999-----1)
exten => 1234,3,Hangup
; inbound VICIDIAL call with prompt for 4-digit fronter code
exten => 1234,1,Answer ; Answer the line
exten => 1234,2,AGI(agi-VDADcloser_inbound.agi,CL_GALLERIA-----7275555134-----Closer-----park----------999-----1)
exten => 1234,3,Hangup
### follow these instructions if you plan to have VICIDIAL agents take inbound or closer calls:
1. create a new campaign in VICIDIAL called "CLOSER"
2. in VICIDIAL web admin "add a new in-group" (the above examples would be "CL_GALLERIA")
- group IDs cannot contain spaces ' ' or dashes '-' or plusses '+'
- if you are using a HEX color value make sure to include the hash '#' at the beginning
3. have agents log in to the CLOSER campaign and select the CL_GALLERIA button
4. they will now start receiving inbound calls
5. as calls come in, each call is inserted into the vicidial_list table under the
list specified int the AGI string, In the above example that would be list 999
6. if you want to take closer calls from the campaign "TEST" you will need to create
an in-group called "CL_TEST_" for internal closing(on the same system) or "CL_TEST_L"
for local closing(closer on different system from fronter) and then the fronter will
click on the "internal closer" button to send the call to a closer
* NOTE, you need to set the dial_level of the CLOSER campaign to 1 or higher for inbound/closers to work
######------ END extensions.conf changes for call_inbound ------######
3. Add the ZapBarge entries for all zap lines:
- here is how our sample dialplan changes for adding zapbarge line-specific
entries(this is a pure addition, nothing is being modified):
######------ START extensions.conf additions for direct zapbarges ------######
; ZapBarge direct channel extensions
exten => 8612001,1,ZapBarge(1)
exten => 8612002,1,ZapBarge(2)
exten => 8612003,1,ZapBarge(3)
exten => 8612004,1,ZapBarge(4)
exten => 8612005,1,ZapBarge(5)
exten => 8612006,1,ZapBarge(6)
exten => 8612007,1,ZapBarge(7)
exten => 8612008,1,ZapBarge(8)
exten => 8612009,1,ZapBarge(9)
exten => 8612010,1,ZapBarge(10)
exten => 8612011,1,ZapBarge(11)
exten => 8612012,1,ZapBarge(12)
exten => 8612013,1,ZapBarge(13)
exten => 8612014,1,ZapBarge(14)
exten => 8612015,1,ZapBarge(15)
exten => 8612016,1,ZapBarge(16)
exten => 8612017,1,ZapBarge(17)
exten => 8612018,1,ZapBarge(18)
exten => 8612019,1,ZapBarge(19)
exten => 8612020,1,ZapBarge(20)
exten => 8612021,1,ZapBarge(21)
exten => 8612022,1,ZapBarge(22)
exten => 8612023,1,ZapBarge(23)
exten => 8612024,1,ZapBarge(24)
######------ END extensions.conf additions for direct zapbarges ------######
4. Add the meetme entries for astguiclient and VICIDIAL conferences to
meetme.conf:
- here is how our sample meetme.conf file changes for adding conference
entries (this is a pure addition, nothing is being modified):
######------ START meetme.conf additions for conferences ------######
conf => 8600001
conf => 8600002
conf => 8600003
conf => 8600004
conf => 8600005
conf => 8600006
conf => 8600007
conf => 8600008
conf => 8600009
conf => 8600010
conf => 8600011
conf => 8600012
conf => 8600013
conf => 8600014
conf => 8600015
conf => 8600016
conf => 8600017
conf => 8600018
conf => 8600019
conf => 8600020
conf => 8600021
conf => 8600022
conf => 8600023
conf => 8600024
conf => 8600025
conf => 8600026
conf => 8600027
conf => 8600028
conf => 8600029
conf => 8600051
conf => 8600052
conf => 8600053
conf => 8600054
conf => 8600055
conf => 8600056
conf => 8600057
conf => 8600058
conf => 8600059
conf => 8600060
conf => 8600061
conf => 8600062
conf => 8600063
conf => 8600064
conf => 8600065
conf => 8600066
conf => 8600067
conf => 8600068
conf => 8600069
conf => 8600070
conf => 8600071
conf => 8600072
conf => 8600073
conf => 8600074
conf => 8600075
conf => 8600076
conf => 8600077
conf => 8600078
conf => 8600079
conf => 8600080
conf => 8600081
conf => 8600082
conf => 8600083
conf => 8600084
conf => 8600085
conf => 8600086
conf => 8600087
conf => 8600088
conf => 8600089
conf => 8600090
conf => 8600091
conf => 8600092
conf => 8600093
conf => 8600094
conf => 8600095
conf => 8600096
conf => 8600097
conf => 8600098
conf => 8600099
conf => 8600100
conf => 8600101
conf => 8600102
conf => 8600103
conf => 8600104
conf => 8600105
conf => 8600106
conf => 8600107
conf => 8600108
conf => 8600109
conf => 8600110
conf => 8600111
conf => 8600112
conf => 8600113
conf => 8600114
conf => 8600115
conf => 8600116
conf => 8600117
conf => 8600118
conf => 8600119
conf => 8600120
conf => 8600121
conf => 8600122
conf => 8600123
conf => 8600124
conf => 8600125
conf => 8600126
conf => 8600127
conf => 8600128
conf => 8600129
conf => 8600130
conf => 8600131
conf => 8600132
conf => 8600133
conf => 8600134
conf => 8600135
conf => 8600136
conf => 8600137
conf => 8600138
conf => 8600139
conf => 8600140
conf => 8600141
conf => 8600142
conf => 8600143
conf => 8600144
conf => 8600145
conf => 8600146
conf => 8600147
conf => 8600148
conf => 8600149
conf => 8600150
conf => 8600151
conf => 8600152
conf => 8600153
conf => 8600154
conf => 8600155
conf => 8600156
conf => 8600157
conf => 8600158
conf => 8600159
conf => 8600160
conf => 8600161
conf => 8600162
conf => 8600163
conf => 8600164
conf => 8600165
conf => 8600166
conf => 8600167
conf => 8600168
conf => 8600169
conf => 8600170
conf => 8600171
conf => 8600172
conf => 8600173
conf => 8600174
conf => 8600175
conf => 8600176
conf => 8600177
conf => 8600178
conf => 8600179
conf => 8600180
conf => 8600181
conf => 8600182
conf => 8600183
conf => 8600184
conf => 8600185
conf => 8600186
conf => 8600187
conf => 8600188
conf => 8600189
conf => 8600190
conf => 8600191
conf => 8600192
conf => 8600193
conf => 8600194
conf => 8600195
conf => 8600196
conf => 8600197
conf => 8600198
conf => 8600199
conf => 8600200
######------ END meetme.conf additions for conferences ------######
5. Add the conference entries for astguiclient conferences:
- here is how our sample dialplan changes for adding conference entries (this
is a pure addition, nothing is being modified):
######------ START extensions.conf additions for agc conferences ------######
exten => 8600001,1,Meetme,8600001|q
exten => 8600002,1,Meetme,8600002|q
exten => 8600003,1,Meetme,8600003|q
exten => 8600004,1,Meetme,8600004|q
exten => 8600005,1,Meetme,8600005|q
exten => 8600006,1,Meetme,8600006|q
exten => 8600007,1,Meetme,8600007|q
exten => 8600008,1,Meetme,8600008|q
exten => 8600009,1,Meetme,8600009|q
exten => 8600010,1,Meetme,8600010|q
exten => 8600011,1,Meetme,8600011|q
exten => 8600012,1,Meetme,8600012|q
exten => 8600013,1,Meetme,8600013|q
exten => 8600014,1,Meetme,8600014|q
exten => 8600015,1,Meetme,8600015|q
exten => 8600016,1,Meetme,8600016|q
exten => 8600017,1,Meetme,8600017|q
exten => 8600018,1,Meetme,8600018|q
exten => 8600019,1,Meetme,8600019|q
exten => 8600020,1,Meetme,8600020|q
exten => 8600021,1,Meetme,8600021|q
exten => 8600022,1,Meetme,8600022|q
exten => 8600023,1,Meetme,8600023|q
exten => 8600024,1,Meetme,8600024|q
exten => 8600025,1,Meetme,8600025|q
exten => 8600026,1,Meetme,8600026|q
exten => 8600027,1,Meetme,8600027|q
exten => 8600028,1,Meetme,8600028|q
exten => 8600029,1,Meetme,8600029|q
######------ END extensions.conf additions for agc conferences ------######
6. Add the conference entries for VICIDIAL conferences:
- here is how our sample dialplan changes for adding VICIDIAL conference
entries(this is a pure addition, nothing is being modified):
NOTE: see below these entries for app_conference instructions is used
######------ START extensions.conf changes for VD conf ------######
exten => _X48600XXX,1,MeetMeAdmin(${EXTEN:2},T,${EXTEN:0:1})
exten => _X48600XXX,2,Hangup
exten => _X38600XXX,1,MeetMeAdmin(${EXTEN:2},t,${EXTEN:0:1})
exten => _X38600XXX,2,Hangup
exten => _X28600XXX,1,MeetMeAdmin(${EXTEN:2},m,${EXTEN:0:1})
exten => _X28600XXX,2,Hangup
exten => _X18600XXX,1,MeetMeAdmin(${EXTEN:2},M,${EXTEN:0:1})
exten => _X18600XXX,2,Hangup
exten => _55558600XXX,1,MeetMeAdmin(${EXTEN:4},K)
exten => _55558600XXX,2,Hangup
exten => 8300,1,Hangup
exten => 8600051,1,Meetme,8600051
exten => 8600052,1,Meetme,8600052
exten => 8600053,1,Meetme,8600053
exten => 8600054,1,Meetme,8600054
exten => 8600055,1,Meetme,8600055
exten => 8600056,1,Meetme,8600056
exten => 8600057,1,Meetme,8600057
exten => 8600058,1,Meetme,8600058
exten => 8600059,1,Meetme,8600059
exten => 8600060,1,Meetme,8600060
exten => 8600061,1,Meetme,8600061
exten => 8600062,1,Meetme,8600062
exten => 8600063,1,Meetme,8600063
exten => 8600064,1,Meetme,8600064
exten => 8600065,1,Meetme,8600065
exten => 8600066,1,Meetme,8600066
exten => 8600067,1,Meetme,8600067
exten => 8600068,1,Meetme,8600068
exten => 8600069,1,Meetme,8600069
exten => 8600070,1,Meetme,8600070
exten => 8600071,1,Meetme,8600071
exten => 8600072,1,Meetme,8600072
exten => 8600073,1,Meetme,8600073
exten => 8600074,1,Meetme,8600074
exten => 8600075,1,Meetme,8600075
exten => 8600076,1,Meetme,8600076
exten => 8600077,1,Meetme,8600077
exten => 8600078,1,Meetme,8600078
exten => 8600079,1,Meetme,8600079
exten => 8600080,1,Meetme,8600080
exten => 8600081,1,Meetme,8600081
exten => 8600082,1,Meetme,8600082
exten => 8600083,1,Meetme,8600083
exten => 8600084,1,Meetme,8600084
exten => 8600085,1,Meetme,8600085
exten => 8600086,1,Meetme,8600086
exten => 8600087,1,Meetme,8600087
exten => 8600088,1,Meetme,8600088
exten => 8600089,1,Meetme,8600089
exten => 8600090,1,Meetme,8600090
exten => 8600091,1,Meetme,8600091
exten => 8600092,1,Meetme,8600092
exten => 8600093,1,Meetme,8600093
exten => 8600094,1,Meetme,8600094
exten => 8600095,1,Meetme,8600095
exten => 8600096,1,Meetme,8600096
exten => 8600097,1,Meetme,8600097
exten => 8600098,1,Meetme,8600098
exten => 8600099,1,Meetme,8600099
exten => 8600100,1,Meetme,8600100
exten => 8600101,1,Meetme,8600101
exten => 8600102,1,Meetme,8600102
exten => 8600103,1,Meetme,8600103
exten => 8600104,1,Meetme,8600104
exten => 8600105,1,Meetme,8600105
exten => 8600106,1,Meetme,8600106
exten => 8600107,1,Meetme,8600107
exten => 8600108,1,Meetme,8600108
exten => 8600109,1,Meetme,8600109
exten => 8600110,1,Meetme,8600110
exten => 8600111,1,Meetme,8600111
exten => 8600112,1,Meetme,8600112
exten => 8600113,1,Meetme,8600113
exten => 8600114,1,Meetme,8600114
exten => 8600115,1,Meetme,8600115
exten => 8600116,1,Meetme,8600116
exten => 8600117,1,Meetme,8600117
exten => 8600118,1,Meetme,8600118
exten => 8600119,1,Meetme,8600119
exten => 8600120,1,Meetme,8600120
exten => 8600121,1,Meetme,8600121
exten => 8600122,1,Meetme,8600122
exten => 8600123,1,Meetme,8600123
exten => 8600124,1,Meetme,8600124
exten => 8600125,1,Meetme,8600125
exten => 8600126,1,Meetme,8600126
exten => 8600127,1,Meetme,8600127
exten => 8600128,1,Meetme,8600128
exten => 8600129,1,Meetme,8600129
exten => 8600130,1,Meetme,8600130
exten => 8600131,1,Meetme,8600131
exten => 8600132,1,Meetme,8600132
exten => 8600133,1,Meetme,8600133
exten => 8600134,1,Meetme,8600134
exten => 8600135,1,Meetme,8600135
exten => 8600136,1,Meetme,8600136
exten => 8600137,1,Meetme,8600137
exten => 8600138,1,Meetme,8600138
exten => 8600139,1,Meetme,8600139
exten => 8600140,1,Meetme,8600140
exten => 8600141,1,Meetme,8600141
exten => 8600142,1,Meetme,8600142
exten => 8600143,1,Meetme,8600143
exten => 8600144,1,Meetme,8600144
exten => 8600145,1,Meetme,8600145
exten => 8600146,1,Meetme,8600146
exten => 8600147,1,Meetme,8600147
exten => 8600148,1,Meetme,8600148
exten => 8600149,1,Meetme,8600149
exten => 8600150,1,Meetme,8600150
exten => 8600151,1,Meetme,8600151
exten => 8600152,1,Meetme,8600152
exten => 8600153,1,Meetme,8600153
exten => 8600154,1,Meetme,8600154
exten => 8600155,1,Meetme,8600155
exten => 8600156,1,Meetme,8600156
exten => 8600157,1,Meetme,8600157
exten => 8600158,1,Meetme,8600158
exten => 8600159,1,Meetme,8600159
exten => 8600160,1,Meetme,8600160
exten => 8600161,1,Meetme,8600161
exten => 8600162,1,Meetme,8600162
exten => 8600163,1,Meetme,8600163
exten => 8600164,1,Meetme,8600164
exten => 8600165,1,Meetme,8600165
exten => 8600166,1,Meetme,8600166
exten => 8600167,1,Meetme,8600167
exten => 8600168,1,Meetme,8600168
exten => 8600169,1,Meetme,8600169
exten => 8600170,1,Meetme,8600170
exten => 8600171,1,Meetme,8600171
exten => 8600172,1,Meetme,8600172
exten => 8600173,1,Meetme,8600173
exten => 8600174,1,Meetme,8600174
exten => 8600175,1,Meetme,8600175
exten => 8600176,1,Meetme,8600176
exten => 8600177,1,Meetme,8600177
exten => 8600178,1,Meetme,8600178
exten => 8600179,1,Meetme,8600179
exten => 8600180,1,Meetme,8600180
exten => 8600181,1,Meetme,8600181
exten => 8600182,1,Meetme,8600182
exten => 8600183,1,Meetme,8600183
exten => 8600184,1,Meetme,8600184
exten => 8600185,1,Meetme,8600185
exten => 8600186,1,Meetme,8600186
exten => 8600187,1,Meetme,8600187
exten => 8600188,1,Meetme,8600188
exten => 8600189,1,Meetme,8600189
exten => 8600190,1,Meetme,8600190
exten => 8600191,1,Meetme,8600191
exten => 8600192,1,Meetme,8600192
exten => 8600193,1,Meetme,8600193
exten => 8600194,1,Meetme,8600194
exten => 8600195,1,Meetme,8600195
exten => 8600196,1,Meetme,8600196
exten => 8600197,1,Meetme,8600197
exten => 8600198,1,Meetme,8600198
exten => 8600199,1,Meetme,8600199
exten => 8600200,1,Meetme,8600200
; quiet entry and leaving conferences for VICIDIAL
exten => _78600XXX,1,Meetme,${EXTEN:1}|q
; quiet monitor extensions for meetme rooms (for room managers)
exten => _68600XXX,1,Meetme,${EXTEN:1}|mq
######------ END extensions.conf changes for VD conf ------######
NOTE: If you want to use app_conference instead of meetme and you already have
it installed, you will need to do the following:
In your extensions.conf file you would replace these lines:
exten => 8600051,1,Meetme,8600051
exten => 8600052,1,Meetme,8600052
...continue through 8600100...
exten => 78600051,1,Meetme,8600051|q
exten => 78600052,1,Meetme,8600052|q
...continue through 78600100...
exten => 68600051,1,Meetme,8600051|mq
exten => 68600052,1,Meetme,8600052|mq
...continue through 68600100...
with these lines:
exten => 8600051,1,Conference(8600051)
exten => 8600052,1,Conference(8600052)
...continue through 8600100...
exten => 78600051,1,Conference(8600051|q)
exten => 78600052,1,Conference(8600052|q)
...continue through 78600100...
exten => 68600051,1,Conference(8600051|Lq)
exten => 68600052,1,Conference(8600052|Lq)
...continue through 68600100...
NOTE: If you want to do DTMF passthru with app_conference bee sure to add the
"i" and "t" flags to the 8600XX lines: Conference(8600051|it)
7. Add the more entries for astGUIclient specific uses:
- here are some more dialplan additions needed to use astGUIclient(this is a
pure addition, nothing is being modified):
######------ START extensions.conf other additions ------######
; park channel for client GUI parking, hangup after 30 minutes
; create a GSM formatted audio file named "park.gsm" that is 30 minutes long
; and put it in /var/lib/asterisk/sounds
exten => 8301,1,Answer
exten => 8301,2,AGI(park_CID.agi)
exten => 8301,3,Playback(park)
exten => 8301,4,Hangup
exten => 8303,1,Answer
exten => 8303,2,AGI(park_CID.agi)
exten => 8303,3,Playback(conf)
exten => 8303,4,Hangup
; park channel for client GUI conferencing, hangup after 30 minutes
; create a GSM formatted audio file named "conf.gsm" that is 30 minutes long
; and put it in /var/lib/asterisk/sounds
exten => 8302,1,Answer
exten => 8302,2,Playback(conf)
exten => 8302,3,Hangup
; default audio for safe harbor 2-second-after-hello message then hangup
; create a GSM formatted audio file complies with safe harbor rules
; and put it in /var/lib/asterisk/sounds then change filename below
exten => 8307,1,Answer
exten => 8307,2,Playback(vm-goodbye)
exten => 8307,3,Hangup
; this is used for recording conference calls, the client app sends the filename
; value as a callerID recordings go to /var/spool/asterisk/monitor (WAV)
exten => 8309,1,Answer
exten => 8309,2,Monitor(wav,${CALLERIDNAME})
exten => 8309,3,Wait,3600
exten => 8309,4,Hangup
; this is used for recording conference calls, the client app sends the filename
; value as a callerID recordings go to /var/spool/asterisk/monitor (GSM)
exten => 8310,1,Answer
exten => 8310,2,Monitor(gsm,${CALLERIDNAME})
exten => 8310,3,Wait,3600
exten => 8310,4,Hangup
; this is used for playing a message to an answering machine forwarded from AMD in VICIDIAL
; replace conf with the message file you want to leave
exten => 8320,1,WaitForSilence(2000,2) ; AMD got machine. leave message after recording
exten => 8320,2,Playback(conf)
exten => 8320,3,AGI(VD_amd_post.agi,${EXTEN})
exten => 8320,4,Hangup
; this is used to allow the GUI to send you directly into voicemail
; don't forget to set GUI variable $voicemail_exten to this extension
exten => 8501,1,VoicemailMain(s${CALLERIDNUM})
exten => 8501,2,Hangup
; this is used to allow the GUI to send live calls directly into voicemail
; don't forget to set GUI variable $voicemail_dump_exten to this extension
exten => _85026666666666.,1,Wait(2)
exten => _85026666666666.,2,Voicemail(${EXTEN:14})
exten => _85026666666666.,3,Hangup
; this is used for sending DTMF signals within conference calls, the client app
; sends the digits to be played in the callerID field
; sound files must be placed in /var/lib/asterisk/sounds
exten => 8500998,1,Answer
exten => 8500998,2,Playback(silence)
exten => 8500998,3,AGI(agi-dtmf.agi)
exten => 8500998,4,Hangup
; prompt recording AGI script, ID is 4321
exten => 8168,1,Answer
exten => 8168,2,AGI(agi-record_prompts.agi)
exten => 8168,3,Hangup
; playback of recorded prompts
exten => _851XXXXX,1,Answer
exten => _851XXXXX,2,Playback(${EXTEN})
exten => _851XXXXX,3,Hangup
#### VDAD STANDARD TRANSFER ENTRIES ####
; VICIDIAL_auto_dialer transfer script for no-agent campaigns:
exten => 8364,1,Playback(sip-silence)
exten => 8364,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8364,3,AGI(agi-VDADtransferBROADCAST.agi,${EXTEN})
exten => 8364,4,AGI(agi-VDADtransferBROADCAST.agi,${EXTEN})
exten => 8364,5,Hangup
; VICIDIAL_auto_dialer transfer script:
exten => 8365,1,AGI(agi://127.0.0.1:4577/call_log)
exten => 8365,2,AGI(agi-VDADtransfer.agi,${EXTEN})
exten => 8365,3,AGI(agi-VDADtransfer.agi,${EXTEN})
exten => 8365,4,AGI(agi-VDADtransfer.agi,${EXTEN})
exten => 8365,5,Hangup
; VICIDIAL_auto_dialer transfer script SURVEY at beginning:
exten => 8366,1,AGI(agi://127.0.0.1:4577/call_log)
exten => 8366,2,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
exten => 8366,3,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
exten => 8366,4,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
exten => 8366,5,Hangup
; VICIDIAL_auto_dialer transfer script Load Balance Overflow:
exten => 8367,1,AGI(agi://127.0.0.1:4577/call_log)
exten => 8367,2,AGI(agi-VDAD_LO_transfer.agi,${EXTEN})
exten => 8367,3,AGI(agi-VDAD_LO_transfer.agi,${EXTEN})
exten => 8367,4,AGI(agi-VDAD_LO_transfer.agi,${EXTEN})
exten => 8367,5,Hangup
; VICIDIAL_auto_dialer transfer script Load Balanced:
exten => 8368,1,AGI(agi://127.0.0.1:4577/call_log)
exten => 8368,2,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8368,3,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8368,4,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8368,5,Hangup
; VICIDIAL_auto_dialer transfer script AMD with Load Balanced:
exten => 8369,1,AGI(agi://127.0.0.1:4577/call_log)
exten => 8369,2,AMD(3500|1500|300|5000|120|50|5|256)
exten => 8369,3,AGI(VD_amd.agi,${EXTEN})
exten => 8369,4,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8369,5,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8369,6,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8369,7,Hangup
; VICIDIAL auto-dial reminder script
exten => 8372,1,AGI(agi://127.0.0.1:4577/call_log)
exten => 8372,2,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,3,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,4,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,5,Hangup
#### VDAD SIP UNREGISTERED TRANSFER ENTRIES ####
#### Use these entries IN PLACE OF the entries above if you are using SIP trunks
#### and are not registering your provider in sip.conf
; VICIDIAL_auto_dialer transfer script:
exten => 8365,1,Playback(sip-silence)
exten => 8365,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8365,3,AGI(agi-VDADtransfer.agi,${EXTEN})
exten => 8365,4,AGI(agi-VDADtransfer.agi,${EXTEN})
exten => 8365,5,Hangup
; VICIDIAL_auto_dialer transfer script SURVEY at beginning:
exten => 8366,1,Playback(sip-silence)
exten => 8366,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8366,3,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
exten => 8366,4,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
exten => 8366,5,Hangup
; VICIDIAL_auto_dialer transfer script Load Balance Overflow:
exten => 8367,1,Playback(sip-silence)
exten => 8367,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8367,3,AGI(agi-VDAD_LO_transfer.agi,${EXTEN})
exten => 8367,4,AGI(agi-VDAD_LO_transfer.agi,${EXTEN})
exten => 8367,5,Hangup
; VICIDIAL_auto_dialer transfer script Load Balanced:
exten => 8368,1,Playback(sip-silence)
exten => 8368,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8368,3,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8368,4,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8368,5,Hangup
; VICIDIAL_auto_dialer transfer script AMD with Load Balanced:
exten => 8369,1,Playback(sip-silence)
exten => 8369,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8369,3,AMD(3500|1500|300|5000|120|50|5|256)
exten => 8369,4,AGI(VD_amd.agi,${EXTEN})
exten => 8369,5,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8369,6,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8369,7,Hangup
; VICIDIAL auto-dial reminder script
exten => 8372,1,Playback(sip-silence)
exten => 8372,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8372,3,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,4,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,5,Hangup
### OPTIONAL IAX Load Balance extens to allow for Overflow and Balanced VDAD
### In this setup, the serverIP is the prefix followed by agent conf_exten
### If you have more than 1 server doing VICIDIAL outbound, these lines are
### REQUIRED for Load Balancing to work properly
### server 1 extens:
exten => _010*010*010*016*8600XXX,1,Dial(${TRUNKIAX2}/${EXTEN:16},55,o)
exten => _010*010*010*016*8600XXX,2,Hangup
### server 2 extens:
exten => _010*010*010*015*8600XXX,1,Dial(${TRUNKIAX1}/${EXTEN:16},55,o)
exten => _010*010*010*015*8600XXX,2,Hangup
Adding entries to your MySQL "asterisk" database for vicidial
applications
We need to add a few initial values to the vicidial tables in the "asterisk"
database in order to start setting up the vicidial dialer system for use.
1. at the command prompt type this to go to the mysql client:
/usr/local/mysql/bin/mysql
2. type the following into the mysql client prompt:
(make sure you put your IP address in place of "10.10.10.15" in the queries below)
######------ BEGIN Mysql data entry(you can copy and paste this into terminal) #
insert into vicidial_conferences values('8600051','10.10.10.15','');
insert into vicidial_conferences values('8600052','10.10.10.15','');
insert into vicidial_conferences values('8600053','10.10.10.15','');
insert into vicidial_conferences values('8600054','10.10.10.15','');
insert into vicidial_conferences values('8600055','10.10.10.15','');
insert into vicidial_conferences values('8600056','10.10.10.15','');
insert into vicidial_conferences values('8600057','10.10.10.15','');
insert into vicidial_conferences values('8600058','10.10.10.15','');
insert into vicidial_conferences values('8600059','10.10.10.15','');
insert into vicidial_conferences values('8600060','10.10.10.15','');
insert into vicidial_conferences values('8600061','10.10.10.15','');
insert into vicidial_conferences values('8600062','10.10.10.15','');
insert into vicidial_conferences values('8600063','10.10.10.15','');
insert into vicidial_conferences values('8600064','10.10.10.15','');
insert into vicidial_conferences values('8600065','10.10.10.15','');
insert into vicidial_conferences values('8600066','10.10.10.15','');
insert into vicidial_conferences values('8600067','10.10.10.15','');
insert into vicidial_conferences values('8600068','10.10.10.15','');
insert into vicidial_conferences values('8600069','10.10.10.15','');
insert into vicidial_conferences values('8600070','10.10.10.15','');
insert into vicidial_conferences values('8600071','10.10.10.15','');
insert into vicidial_conferences values('8600072','10.10.10.15','');
insert into vicidial_conferences values('8600073','10.10.10.15','');
insert into vicidial_conferences values('8600074','10.10.10.15','');
insert into vicidial_conferences values('8600075','10.10.10.15','');
insert into vicidial_conferences values('8600076','10.10.10.15','');
insert into vicidial_conferences values('8600077','10.10.10.15','');
insert into vicidial_conferences values('8600078','10.10.10.15','');
insert into vicidial_conferences values('8600079','10.10.10.15','');
insert into vicidial_conferences values('8600080','10.10.10.15','');
insert into vicidial_conferences values('8600081','10.10.10.15','');
insert into vicidial_conferences values('8600082','10.10.10.15','');
insert into vicidial_conferences values('8600083','10.10.10.15','');
insert into vicidial_conferences values('8600084','10.10.10.15','');
insert into vicidial_conferences values('8600085','10.10.10.15','');
insert into vicidial_conferences values('8600086','10.10.10.15','');
insert into vicidial_conferences values('8600087','10.10.10.15','');
insert into vicidial_conferences values('8600088','10.10.10.15','');
insert into vicidial_conferences values('8600089','10.10.10.15','');
insert into vicidial_conferences values('8600090','10.10.10.15','');
insert into vicidial_conferences values('8600091','10.10.10.15','');
insert into vicidial_conferences values('8600092','10.10.10.15','');
insert into vicidial_conferences values('8600093','10.10.10.15','');
insert into vicidial_conferences values('8600094','10.10.10.15','');
insert into vicidial_conferences values('8600095','10.10.10.15','');
insert into vicidial_conferences values('8600096','10.10.10.15','');
insert into vicidial_conferences values('8600097','10.10.10.15','');
insert into vicidial_conferences values('8600098','10.10.10.15','');
insert into vicidial_conferences values('8600099','10.10.10.15','');
insert into vicidial_conferences values('8600100','10.10.10.15','');
insert into vicidial_conferences values('8600101','10.10.10.15','');
insert into vicidial_conferences values('8600102','10.10.10.15','');
insert into vicidial_conferences values('8600103','10.10.10.15','');
insert into vicidial_conferences values('8600104','10.10.10.15','');
insert into vicidial_conferences values('8600105','10.10.10.15','');
insert into vicidial_conferences values('8600106','10.10.10.15','');
insert into vicidial_conferences values('8600107','10.10.10.15','');
insert into vicidial_conferences values('8600108','10.10.10.15','');
insert into vicidial_conferences values('8600109','10.10.10.15','');
insert into vicidial_conferences values('8600110','10.10.10.15','');
insert into vicidial_conferences values('8600111','10.10.10.15','');
insert into vicidial_conferences values('8600112','10.10.10.15','');
insert into vicidial_conferences values('8600113','10.10.10.15','');
insert into vicidial_conferences values('8600114','10.10.10.15','');
insert into vicidial_conferences values('8600115','10.10.10.15','');
insert into vicidial_conferences values('8600116','10.10.10.15','');
insert into vicidial_conferences values('8600117','10.10.10.15','');
insert into vicidial_conferences values('8600118','10.10.10.15','');
insert into vicidial_conferences values('8600119','10.10.10.15','');
insert into vicidial_conferences values('8600120','10.10.10.15','');
insert into vicidial_conferences values('8600121','10.10.10.15','');
insert into vicidial_conferences values('8600122','10.10.10.15','');
insert into vicidial_conferences values('8600123','10.10.10.15','');
insert into vicidial_conferences values('8600124','10.10.10.15','');
insert into vicidial_conferences values('8600125','10.10.10.15','');
insert into vicidial_conferences values('8600126','10.10.10.15','');
insert into vicidial_conferences values('8600127','10.10.10.15','');
insert into vicidial_conferences values('8600128','10.10.10.15','');
insert into vicidial_conferences values('8600129','10.10.10.15','');
insert into vicidial_conferences values('8600130','10.10.10.15','');
insert into vicidial_conferences values('8600131','10.10.10.15','');
insert into vicidial_conferences values('8600132','10.10.10.15','');
insert into vicidial_conferences values('8600133','10.10.10.15','');
insert into vicidial_conferences values('8600134','10.10.10.15','');
insert into vicidial_conferences values('8600135','10.10.10.15','');
insert into vicidial_conferences values('8600136','10.10.10.15','');
insert into vicidial_conferences values('8600137','10.10.10.15','');
insert into vicidial_conferences values('8600138','10.10.10.15','');
insert into vicidial_conferences values('8600139','10.10.10.15','');
insert into vicidial_conferences values('8600140','10.10.10.15','');
insert into vicidial_conferences values('8600141','10.10.10.15','');
insert into vicidial_conferences values('8600142','10.10.10.15','');
insert into vicidial_conferences values('8600143','10.10.10.15','');
insert into vicidial_conferences values('8600144','10.10.10.15','');
insert into vicidial_conferences values('8600145','10.10.10.15','');
insert into vicidial_conferences values('8600146','10.10.10.15','');
insert into vicidial_conferences values('8600147','10.10.10.15','');
insert into vicidial_conferences values('8600148','10.10.10.15','');
insert into vicidial_conferences values('8600149','10.10.10.15','');
insert into vicidial_conferences values('8600150','10.10.10.15','');
insert into vicidial_conferences values('8600151','10.10.10.15','');
insert into vicidial_conferences values('8600152','10.10.10.15','');
insert into vicidial_conferences values('8600153','10.10.10.15','');
insert into vicidial_conferences values('8600154','10.10.10.15','');
insert into vicidial_conferences values('8600155','10.10.10.15','');
insert into vicidial_conferences values('8600156','10.10.10.15','');
insert into vicidial_conferences values('8600157','10.10.10.15','');
insert into vicidial_conferences values('8600158','10.10.10.15','');
insert into vicidial_conferences values('8600159','10.10.10.15','');
insert into vicidial_conferences values('8600160','10.10.10.15','');
insert into vicidial_conferences values('8600161','10.10.10.15','');
insert into vicidial_conferences values('8600162','10.10.10.15','');
insert into vicidial_conferences values('8600163','10.10.10.15','');
insert into vicidial_conferences values('8600164','10.10.10.15','');
insert into vicidial_conferences values('8600165','10.10.10.15','');
insert into vicidial_conferences values('8600166','10.10.10.15','');
insert into vicidial_conferences values('8600167','10.10.10.15','');
insert into vicidial_conferences values('8600168','10.10.10.15','');
insert into vicidial_conferences values('8600169','10.10.10.15','');
insert into vicidial_conferences values('8600170','10.10.10.15','');
insert into vicidial_conferences values('8600171','10.10.10.15','');
insert into vicidial_conferences values('8600172','10.10.10.15','');
insert into vicidial_conferences values('8600173','10.10.10.15','');
insert into vicidial_conferences values('8600174','10.10.10.15','');
insert into vicidial_conferences values('8600175','10.10.10.15','');
insert into vicidial_conferences values('8600176','10.10.10.15','');
insert into vicidial_conferences values('8600177','10.10.10.15','');
insert into vicidial_conferences values('8600178','10.10.10.15','');
insert into vicidial_conferences values('8600179','10.10.10.15','');
insert into vicidial_conferences values('8600180','10.10.10.15','');
insert into vicidial_conferences values('8600181','10.10.10.15','');
insert into vicidial_conferences values('8600182','10.10.10.15','');
insert into vicidial_conferences values('8600183','10.10.10.15','');
insert into vicidial_conferences values('8600184','10.10.10.15','');
insert into vicidial_conferences values('8600185','10.10.10.15','');
insert into vicidial_conferences values('8600186','10.10.10.15','');
insert into vicidial_conferences values('8600187','10.10.10.15','');
insert into vicidial_conferences values('8600188','10.10.10.15','');
insert into vicidial_conferences values('8600189','10.10.10.15','');
insert into vicidial_conferences values('8600190','10.10.10.15','');
insert into vicidial_conferences values('8600191','10.10.10.15','');
insert into vicidial_conferences values('8600192','10.10.10.15','');
insert into vicidial_conferences values('8600193','10.10.10.15','');
insert into vicidial_conferences values('8600194','10.10.10.15','');
insert into vicidial_conferences values('8600195','10.10.10.15','');
insert into vicidial_conferences values('8600196','10.10.10.15','');
insert into vicidial_conferences values('8600197','10.10.10.15','');
insert into vicidial_conferences values('8600198','10.10.10.15','');
insert into vicidial_conferences values('8600199','10.10.10.15','');
insert into vicidial_conferences values('8600200','10.10.10.15','');
######------ END Mysql data entry ------######
Setting up asterisk and helper applications for startup
1. Make several entries in the rc.local of your system:
- on the command line type:
- vi /etc/rc.d/rc.local
- add the following entries(here's what we used):
### Path to local asterisk-perl_0.08 module if needed
PERL5LIB="/usr/share/astguiclient/libs"; export PERL5LIB
### start time server
/usr/local/bin/ntpdate -u 18.145.0.30
/usr/sbin/ntpd
### start up the MySQL server
/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-name-resolve --skip-host-cache &
### start up the MySQL 4.1.X server (with old passwords)
/usr/local/mysql/bin/safe_mysqld --old-passwords --skip-name-resolve --skip-host-cache &
### start up the apache web server
/usr/local/apache2/bin/apachectl start
### load digium tormenta 4xT1 drivers into system
modprobe zaptel
modprobe wct1xxp
/sbin/ztcfg -vvvvvvvvvvvv
### sybsys local login
touch /var/lock/subsys/local
### sleep for 20 seconds before launching Asterisk
sleep 20
### start up asterisk
/usr/share/astguiclient/start_asterisk_boot.pl
- you are done
Setting up astguiclient scripts for continuous running
1. Make several entries in the crontab of your system:
- on the command line type:
- cd /usr/share/astguiclient
- crontab -e
- add the following entries(here's what we used):
(Note if you have not edited the AST_CRON_mix_recordings.pl script
to FTP to a different server, then you should use the
AST_CRON_mix_recordings_BASIC.pl file in it's place)
### recording mixing for Asterisk run every 5 minutes
1,6,11,16,21,26,31,36,41,46,51,56 * * * 1,2,3,4,5,6 /usr/share/astguiclient/AST_CRON_mix_recordings_BASIC.pl
### 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 * * * /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 18.145.0.30 2>/dev/null 1>&2
### VICIDIAL agent time log weekly summary report generation
2 0 * * 0 /usr/share/astguiclient/AST_agent_week.pl
- once your system starts up you can attach to the screen running asterisk by
typing "screen -r " find which screen by typing "screen -r" and
looking for the lowest screen number. Then to detach again from the screen
while you are in it type 'Ctrl+a' then 'd'
- you are done
Adding test leads to the VICIDIAL database and configuring a
VICIDIAL campaign and users
First we will add a few test leads to the vicidial_list table so that we can
test our system. There is also an application included with the distribution
that will accept a delimited file of leads placed in the /usr/share/astguiclient/VICIDIAL/LEADS_IN/
directory and load it into the database automatically(VICIDIAL_IN_new_leads_file.pl
[a sample lead file in the proper format is included with this release:
- test_VICIDIAL_lead_file.txt])
If you want to use the lead import script I suggest looking at the code to make
sure it is entering what you want it to. We are not going to go over that
particular script in this document.
Also, there is a web-based lead loader that was made available as of the 1.1.1
release and is accessible from the VICIDIAL admin.php web page(click on the
"LOAD NEW LEADS" link at the top of the admin page). To get to this page you
must have permissions in the vicidial_user table(Load Leads set to 1) .
Instructions on it's use are included on the page through the help question
mark link.
NOTE: in PHP you must have "fileuploads" enabled for this page to work.
NOTE: it is important to have your proper country code in the phone_code field of your leads so that the GMT offset encodding will properly code the time zones for your leads. For the USA/Canada/Caribbean this would be 1. For the UK this is 44 and Mexico is 52 and so on.
Second we need to add the disposition statuses into the system, all of these
queries are below:
(Note: you may want to replace 7275551212 with a real number to test in these
records)
1. at the command prompt type go to the mysql client:
/usr/local/mysql/bin/mysql
2. type the following into the mysql client prompt:
(make sure you put your IP address in place of "10.10.10.15" in the queries
below)
######------ BEGIN Mysql data entry(you can copy and paste this into terminal) #
insert into vicidial_list values('','2004-01-06','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead01','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
insert into vicidial_list values('','2004-01-06','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead02','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
insert into vicidial_list values('','2004-01-07','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead03','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
insert into vicidial_list values('','2004-01-07','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead04','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
insert into vicidial_list values('','2004-01-07','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead05','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
insert into vicidial_list values('','2004-01-07','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead06','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
insert into vicidial_list values('','2004-01-07','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead07','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
### these first 5 must be in all VICIDIAL systems for it to work properly #
insert into vicidial_statuses values('NEW','New Lead','N');
insert into vicidial_statuses values('QUEUE','Lead To Be Called','N');
insert into vicidial_statuses values('INCALL','Lead Being Called','N');
insert into vicidial_statuses values('DROP','Agent Not Available','N');
insert into vicidial_statuses values('NA','No Answer AutoDial','N');
insert into vicidial_statuses values('CALLBK','Call Back','Y');
insert into vicidial_statuses values('A','Answering Machine','Y');
insert into vicidial_statuses values('B','Busy','Y');
insert into vicidial_statuses values('DC','Disconnected Number','Y');
insert into vicidial_statuses values('DEC','Declined Sale','Y');
insert into vicidial_statuses values('DNC','DO NOT CALL','Y');
insert into vicidial_statuses values('SALE','Sale Made','Y');
insert into vicidial_statuses values('N','No Answer','Y');
insert into vicidial_statuses values('NI','Not Interested','Y');
insert into vicidial_statuses values('NP','No Pitch No Price','Y');
insert into vicidial_statuses values('XFER','Call Transferred','Y');
quit
######------ END Mysql data entry ------######
Now that the sample leads and disposition codes have been entered, we can go
into the VICIDIAL administration website and set up our campaigns, lists and users.
But first let's make sure that they have the right GMT offset:
run this on the command line:
- /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --postal-code-gmt
3. Enter the astguiclient administration page:
http://10.10.10.15/vicidial/admin.php
(use the username and password created when we entered a record into the
vicidial_users table in SUBPHASE 6.1, In our case this is 6666 and 1234)
NOTE: if you click on the Logout button you must leave the user/pass empty and click OK
- Now that you are logged into the vicidial administration system we can add
new user entries for each of the new users and enter new campaigns and new
lists.
- The first step is to enter your new users, Click on the ADD A NEW USER
and fill in the appropriate information for each now user you want to
add.
- Next, you need to create a new campaign, click on the ADD A NEW
CAMPAIGN link and fill in what you want the campaign to be called as
well as a description
- Next, you need to define a new list, click on the ADD A NEW LIST link
and fill in what you want the list to be called as well as a using the
list ID of the leads that we loaded in the previous step "101" and
select the new campaign from the pull-down menu that we just created.
- Now that you have created your list, make it active by changing active to Y
- now modify your campaign ang change the first status to be called to
NEW and submit. Now your system is ready to dial.
- you are done
VICIDIAL remote agents:
With v1.0 of VICIDIAL we have the ability to use a simple web form to give
remote agents a way to receive calls to whatever number they happen to be at,
and they can view/edit call details and see a call log all through a web page
(vdremote.php) or http://10.10.10.15/vicidial/vdremote.php on this installation.
Remote Agents is only recommended for inbound calls because of the extra time
needed to dial a number out to transfer the call to. To set up remote agents,
just go to the vicidial admin.php page and ADD NEW REMOTE AGENTS(Make sure the
userID start also has a user login so they can get to the vdremote page). You
will see that you can set up a remote agent entry to take multiple lines if you
wish meaning that, for example, if you need to send all of your calls to another
location because of a massive snowstorm(and none of your agents showed up at work)
you just log in that remote agent record with say 10 lines and then all of those
calls will be directed to the same number you set up for the remote agent. Then
again you could just get your agents to log in from home if they have a phone
and computer
AstGUIclient web-only client:
With 1.1.1 release of astguiclient we have completely rewritten the astGUIclient
client app in AJAX(PHP/Javascript/XMLHTTPRequest) to enable a full, real-time
GUI interface using only a web browser. The browser requirements for this are:
- Firefox 0.9 or greater (Firefox 1.0.7 is tthe recommended browser)
- Mozilla 1.7 or greater
- Netscape 8 or greater
- Opera 8.5 or greater
- Microsoft Internet Explorer 5.0 or greaterr (we have noticed some serious
memory leaks in IE5 and IE6 when using this program, they do not occur in
Firefox which is why we recommend it overall.)
This new version also has more flexibility and functionality than the perl/Tk
version as well as being prettier. We have successfully tested this on many
platforms and in remote locations. It functioned wonderfully off-site with one
of our IAX hardphones and offers a lot of promise for road warriors who need
a lot of options on their phone usage like conferencing and a detailed call log.
To log into this app you will need a login setup in the vicidial_users table
with a user_level of 1 or greater as well as an entry for the phone you are
using in the phones table. You will first get a login prompt for the vicidial
login then you will have the phone login where you enter the Login and Password
for that phone entry. From there the app should display and you will see the
MAIN screen with your phone information, voicemail display and your inbound/
outbound phone call log.
The example web page you would go to on this installation would be:
http://10.10.10.15/agc/astguiclient.php
The inbound log and callerID popup is dependant on having a call_inbound.agi
entry in your dialplan before you phone is dialed(see subphase 6.2 step 2)
Another thing to note is that you can have the agc folder(with the .php files
in it) copied to multiple web servers, you just need to make sure that the
MySQL database connection works (check the settings in the dbconnect.php file
that is in the agc directory). We have had astguiclient.php running on 3
separate web servers for the same DB server and Asterisk server. This is an
easy way to allow for auto failover and/or redundancy. Also, this client will
work over SSL connections(https) for encrypted communications with the server.
New in astGUIclient release 1.1.7 is multi-language support. multi-language
versions of web-clients and admin pages are available in the LANG_www directory
and can be unzipped into your webroot directory.
VICIDIAL web-only client:
NOTE: There is a VICIDIAL Agent manual available from http://www.eflo.net
With 1.1.6 release of astguiclient we have finished the rewrite of the VICIDIAL
client app in AJAX(PHP/Javascript/XMLHTTPRequest) to enable a full, real-time
GUI interface using only a web browser like we have done with astGUIclient.
The browser requirements for this are:
- Firefox 0.9 or greater (Firefox 1.0.7 is tthe recommended browser)
- Mozilla 1.7 or greater
- Netscape 8 or greater
- Opera 8.5 or greater
- Microsoft Internet Explorer 5.0 or greaterr (we have noticed some serious
memory leaks in IE5 and IE6 when using this program, they do not occur in
Firefox which is why we recommend it overall.)
This version is fully functional and has been tested in our production
call center with no problems. On RedHat 9.0 Linux workstations we have noticed
a decrease in system load running the web-client as compared to the Perl/Tk
client. Also, the memory usage stayed at about 22MB for a full shift of
activity, so no memory leaks with Firefox.
To log into this app you will need a login setup in the vicidial_users table
with a user_level of 1 or greater as well as an entry for the phone you are
using in the phones table. You will first get a login prompt for the vicidial
login then you will have the phone login where you enter the Login and Password
for that phone entry. From there the app should display and you will see the
VICIDIAL screen with your phone information.
The example web page you would go to on this installation would be:
http://10.10.10.15/agc/vicidial.php
One more feature that the VICIDIAL web-client offers is the ability to set up
an EXTERNAL phone extension in the astguiclient admin section so that you can
have agents log in to vicidial.php wherever they have access to a phone with
an external phone number and a web browser. To do this follow these steps:
- "ADD PHONE" in the admin.php web page and enter whatever name you want
- For the dialplan number field put in the ffull digits that you would dial from
the Asterisk server to get to that agent's external phone(with 91 if used)
- For the Protocol select EXTERNAL
- make sure the agent knows the login and paassword set for this phone entry.
Then the agent will go to the vicidial.php page and enter in their phone
login/pass, their vicidial user/pass/campaign and their phone should ring in a
few seconds, and they are logged in and ready to take calls.
Another thing to note is that you can have the agc folder(with the .php files
in it) copied to multiple web servers, you just need to make sure that the
MySQL database connection works (check the settings in the dbconnect.php file
that is in the agc directory). We have had astguiclient.php running on 3
separate web servers for the same DB server and Asterisk server. This is an
easy way to allow for auto failover and/or redundancy. Also, this client will
work over SSL connections(https) for encrypted communications with the server.
New in astGUIclient release 1.1.7 is multi-language support. multi-language
versions of web-clients and admin pages are available in the LANG_www directory
and can be unzipped into your webroot directory.
Admin Note: If you want to enable your agents to login with only their user/pass
you can hardcode the phone_login and phone_pass into the query string(URL) and
use a bookmark on their desktop, taking one more step out of their login process
example: http://10.10.10.15/agc/vicidial.php?pl=gs102&pp=test
It is recommended if you are in a call center environment that you would disable
the "Saved Form Information" option in Firefox settings. This is a checkbox in
the Privacy settings under the Options menu.
You are done with installation
If you have problems and it is not working right(and are NOT celebrating right
now), feel free to take a look at the FAQ for solutions to common installation
errors, read the SCRATCH_INSTALL document, visit the VICIDIAL forum or send an
email to the mailing list:
http://www.eflo.net/VICIDIALforum/index.php
https://lists.sourceforge.net/lists/listinfo/astguiclient-users
Also, check out our weblog: http://astguiclient.blogspot.com/
**** IMPORTANT - In order for vicidial/astguiclient to function correctly please
read the REQUIREMENTS.txt for a minimum requirements list. ***
End-user Manuals for Agents and Managers are available from http://www.eflo.net
Subscribe to:
Posts (Atom)