diff --git a/agc_2-X/branches/agc_2.0.4/docs/BASE_INSTALL.txt b/agc_2-X/branches/agc_2.0.4/docs/BASE_INSTALL.txt
index 70ce22de..be9373c9 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/BASE_INSTALL.txt
+++ b/agc_2-X/branches/agc_2.0.4/docs/BASE_INSTALL.txt
@@ -31,17 +31,17 @@ PHASE 1: INSTALLING ASTERISK
1. follow these command line steps:
mkdir /usr/src/asterisk
cd /usr/src/asterisk
-wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.27.tar.gz
-wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.25.tar.gz
+wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.30.2.tar.gz
+wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.27.tar.gz
wget http://ftp.digium.com/pub/libpri/releases/libpri-1.2.7.tar.gz
-gunzip asterisk-1.2.27.tar.gz
-tar xvf asterisk-1.2.27.tar
-gunzip zaptel-1.2.25.tar.gz
-tar xvf zaptel-1.2.25.tar
+gunzip asterisk-1.2.30.2.tar.gz
+tar xvf asterisk-1.2.30.2.tar
+gunzip zaptel-1.2.27.tar.gz
+tar xvf zaptel-1.2.27.tar
gunzip libpri-1.2.7.tar.gz
tar xvf libpri-1.2.7.tar
-cd ./zaptel-1.2.25
-wget http://www.freedomphones.net/files/newt-0.51.6.tar.gz
+cd ./zaptel-1.2.27
+wget http://downloads.vicidial.com/packages/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
@@ -58,7 +58,7 @@ cd ../libpri-1.2.7
make clean
make
make install
-cd ../asterisk-1.2.27
+cd ../asterisk-1.2.30.2
(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
@@ -73,11 +73,11 @@ cd ../asterisk-1.2.27
wget http://www.eflo.net/files/amd2.conf
mkdir /etc/asterisk
mv amd2.conf /etc/asterisk/amd.conf
- *OPTIONAL*(1.2.23 thru 1.2.27) apply the meetme DTMF passthru patch
+ *OPTIONAL*(1.2.23 thru 1.2.30.2) apply the meetme DTMF passthru patch
wget http://www.eflo.net/files/meetme_DTMF_passthru-1.2.23.patch
patch -p1 < ./meetme_DTMF_passthru-1.2.23.patch
- File to patch: app_meetme.c
- *OPTIONAL*(1.2.12.1 thru 1.2.27) apply the meetme volume control patch
+ *OPTIONAL*(1.2.12.1 thru 1.2.30.2) 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
@@ -89,7 +89,7 @@ cd ../asterisk-1.2.27
patch -p1 < ./cli_chan_concise_delimiter.patch
- File to patch: cli.c
- *OPTIONAL*(1.2.14 thru 1.2.27) rewrite of waitforsilence
+ *OPTIONAL*(1.2.14 thru 1.2.30.2) rewrite of waitforsilence
wget http://www.eflo.net/files/app_waitforsilence.c
mv -f app_waitforsilence.c apps/app_waitforsilence.c
@@ -136,7 +136,7 @@ them:
configure it.
NOTES: If you want to install zttool diagnostics you may need the newt package installed:
-http://www.freedomphones.net/files/newt-0.51.6.tar.gz
+http://downloads.vicidial.com/packages/newt-0.51.6.tar.gz
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'
@@ -211,7 +211,7 @@ package(as of this writing it is 2.0.4.1)
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://downloads.vicidial.com/sounds/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/
@@ -219,7 +219,7 @@ free for download at the following two sites:
'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
+ wget http://downloads.vicidial.com/sounds/conf.gsm
cp conf.gsm park.gsm
- you are done
@@ -270,11 +270,16 @@ to use our new mysql script file to add the tables to the database:
(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;
+CREATE DATABASE `asterisk` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@'%' IDENTIFIED BY '1234';
GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@localhost IDENTIFIED BY '1234';
+GRANT RELOAD ON *.* TO cron@'%';
+GRANT RELOAD ON *.* TO cron@localhost;
+
+flush privileges;
+
use asterisk;
\. /usr/src/astguiclient/trunk/extras/MySQL_AST_CREATE_tables.sql
@@ -467,7 +472,7 @@ PHASE 6: ADDING CRONTAB ENTRIES FOR ASTGUICLIENT/VICIDIAL SCRIPTS
2 0 * * 0 /usr/share/astguiclient/AST_agent_week.pl
### remove old recordings more than 7 days old
-24 0 * * * /usr/bin/find /var/spool/asterisk/monitor -maxdepth 2 -type f -mtime +7 -print | xargs rm -f
+#24 0 * * * /usr/bin/find /var/spool/asterisk/monitor -maxdepth 2 -type f -mtime +7 -print | xargs rm -f
### remove old vicidial logs and asterisk logs more than 2 days old
28 0 * * * /usr/bin/find /var/log/astguiclient -maxdepth 1 -type f -mtime +2 -print | xargs rm -f
@@ -656,6 +661,8 @@ You may want to reduce the exposure of some of the elements of VICIDIAL. Here ar
- Change the WWW writable in the admin.php server settings to "0"
- Change the default admin user "6666" or it's password from the default
- Change the Default secret(password) for the default SIP and IAX accounts that are set up with astGUIclient
+- Change the default password for the Asterisk manager connection in manager.conf then change it in the server modification screen
+- Change the default password for the mysql cron user in mysql and change it to match in /etc/astguiclient.conf on each server
- Possibly use static IP addresses for the IAX/SIP conf account entries
- Change the default port for Apache in httpd.conf from 80 to something else
- Change the default port for IAX in iax.conf from 4569 to something else
diff --git a/agc_2-X/branches/agc_2.0.4/docs/REQUIRED_APPS_INSTALL.txt b/agc_2-X/branches/agc_2.0.4/docs/REQUIRED_APPS_INSTALL.txt
index ce53cf61..d0c948d8 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/REQUIRED_APPS_INSTALL.txt
+++ b/agc_2-X/branches/agc_2.0.4/docs/REQUIRED_APPS_INSTALL.txt
@@ -148,10 +148,10 @@ cd zlib-1.2.3
make
make install
cd /usr/local
-wget http://gulus.usherbrooke.ca/pub/appl/ssh/OpenSSH/portable/openssh-4.7p1.tar.gz
-gunzip openssh-4.7p1.tar.gz
-tar xvf openssh-4.7p1.tar
-cd openssh-4.7p1
+wget http://ftp.openssh.zone-h.org/pub/OpenBSD/OpenSSH/portable/openssh-5.0p1.tar.gz
+gunzip openssh-5.0p1.tar.gz
+tar xvf openssh-5.0p1.tar
+cd openssh-5.0p1
./configure
make
make install
@@ -188,13 +188,14 @@ make install
cd /usr/local
-wget http://mirror.candidhosting.com/pub/apache/httpd/httpd-2.0.61.tar.gz
-gunzip httpd-2.0.61.tar.gz
-tar xvf httpd-2.0.61.tar
-wget http://us2.php.net/distributions/php-4.4.8.tar.gz
-gunzip php-4.4.8.tar.gz
-tar xvf php-4.4.8.tar
-cd httpd-2.0.61
+wget http://mirror.candidhosting.com/pub/apache/httpd/httpd-2.2.8.tar.gz
+gunzip httpd-2.2.8.tar.gz
+tar xvf httpd-2.2.8.tar
+wget http://us2.php.net/distributions/php-5.2.6.tar.gz
+gunzip php-5.2.6.tar.gz
+tar xvf php-5.2.6.tar
+cd httpd-2.2.8
+make clean
./configure --prefix=/usr/local/apache2 --enable-ssl --enable-setenvif --enable-so --with-apxs2 --enable-dav --enable-maintainer-mode
make
make install
@@ -207,8 +208,9 @@ openssl req -new -x509 -days 1200 -keyout /usr/local/apache2/conf/ssl.key/server
openssl rsa -in /usr/local/apache2/conf/ssl.key/server.key.cpy -out /usr/local/apache2/conf/ssl.key/server.key
-cd ../php-4.4.8
-./configure --with-mysql=/usr/local/mysql --enable-inline-optimization --enable-memory-limit --enable-track-vars --enable-libgcc --with-xml --enable-versioning --enable-sysvsem --with-openssl --disable-debug --with-apxs2=/usr/local/apache2/bin/apxs --with-zlib
+cd ../php-5.2.6
+make clean
+./configure --with-mysql=/usr/local/mysql --enable-inline-optimization --enable-memory-limit --enable-track-vars --enable-libgcc --enable-sysvsem --with-openssl --with-apxs2=/usr/local/apache2/bin/apxs --with-zlib
make
make install
cp php.ini-dist /usr/local/lib/php.ini
@@ -217,9 +219,9 @@ vi /usr/local/apache2/conf/httpd.conf
add the following lines:
"AddType application/x-httpd-php .php .phtml"
- "LoadModule php4_module libexec/libphp4.so"
+ "LoadModule php5_module modules/libphp5.so"
or
- "LoadModule php4_module module/libphp4.so"
+ "LoadModule php5_module modules/libphp5.so"
modify the index.html line and add index.php to the list
to disable logging, change:
@@ -250,10 +252,8 @@ vi /usr/local/apache2/conf/httpd.conf
vi /usr/local/lib/php.ini
- modify the following line:
- "memory_limit = 8M"
- and change it to:
- "memory_limit = 48M"
+ Make sure short tags are enabled:
+ "short_open_tag = On"
some other fields to change if using web-based lead loader:
max_execution_time = 330
@@ -277,7 +277,7 @@ 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"
+zend_extension="../../../usr/local/eaccelerator-0.9.5/modules/eaccelerator.so"
eaccelerator.shm_size="48"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
@@ -292,9 +292,9 @@ eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
-
mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator
+ls -l /tmp/eaccelerator
php -v
/usr/local/apache2/bin/apachectl startssl
@@ -335,17 +335,17 @@ make install
mkdir /usr/src/asterisk
cd /usr/src/asterisk
-wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.27.tar.gz
-wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.24.tar.gz
+wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.30.2.tar.gz
+wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.27.tar.gz
wget http://ftp.digium.com/pub/libpri/releases/libpri-1.2.7.tar.gz
-gunzip asterisk-1.2.27.tar.gz
-tar xvf asterisk-1.2.27.tar
-gunzip zaptel-1.2.24.tar.gz
-tar xvf zaptel-1.2.24.tar
+gunzip asterisk-1.2.30.2.tar.gz
+tar xvf asterisk-1.2.30.2.tar
+gunzip zaptel-1.2.27.tar.gz
+tar xvf zaptel-1.2.27.tar
gunzip libpri-1.2.7.tar.gz
tar xvf libpri-1.2.7.tar
-cd ./zaptel-1.2.24
-wget http://www.freedomphones.net/files/newt-0.51.6.tar.gz
+cd ./zaptel-1.2.27
+wget http://downloads.vicidial.com/packages/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
@@ -362,7 +362,7 @@ cd ../libpri-1.2.7
make clean
make
make install
-cd ../asterisk-1.2.27
+cd ../asterisk-1.2.30.2
cd apps
wget http://www.eflo.net/files/app_amd2.c
mv app_amd2.c app_amd.c
@@ -504,24 +504,24 @@ rm -f /usr/lib/asterisk/modules/res_speech.so
mkdir /usr/src/asterisk-1.4
cd /usr/src/asterisk-1.4
-wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.4.18.tar.gz
-wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.4.8.tar.gz
-wget http://ftp.digium.com/pub/libpri/releases/libpri-1.4.3.tar.gz
-gunzip asterisk-1.4.18.tar.gz
-tar xvf asterisk-1.4.18.tar
-gunzip zaptel-1.4.8.tar.gz
-tar xvf zaptel-1.4.8.tar
-gunzip libpri-1.4.3.tar.gz
-tar xvf libpri-1.4.3.tar
-cd ./zaptel-1.4.8
+wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.4.21.1.tar.gz
+wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.4.11.tar.gz
+wget http://ftp.digium.com/pub/libpri/releases/libpri-1.4.4.tar.gz
+gunzip asterisk-1.4.21.1.tar.gz
+tar xvf asterisk-1.4.21.1.tar
+gunzip zaptel-1.4.11.tar.gz
+tar xvf zaptel-1.4.11.tar
+gunzip libpri-1.4.4.tar.gz
+tar xvf libpri-1.4.4.tar
+cd ./zaptel-1.4.11
./configure
make
make install
-cd ../libpri-1.4.3
+cd ../libpri-1.4.4
make clean
make
make install
-cd ../asterisk-1.4.18
+cd ../asterisk-1.4.21.1
wget http://www.eflo.net/files/enter.h
wget http://www.eflo.net/files/leave.h
mv -f enter.h apps/enter.h
diff --git a/agc_2-X/branches/agc_2.0.4/docs/SCRATCH_INSTALL.txt b/agc_2-X/branches/agc_2.0.4/docs/SCRATCH_INSTALL.txt
index 874d4847..35198ba3 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/SCRATCH_INSTALL.txt
+++ b/agc_2-X/branches/agc_2.0.4/docs/SCRATCH_INSTALL.txt
@@ -1,3079 +1,3093 @@
-Asterisk/astguiclient install from scratch. v.2.0.4.1 2008-04-XX
- By the VICIDIAL group info@vicidial.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
-
-
-This document is meant to be a very in-depth step-by-step explanation of
-installing the Asterisk open-source PBX on a Linux system and also installing
-the astGUIclient suite. The instructions will assume starting from nothing and
-will try to give several side step instructions to account for some differences
-in choices of hardware and software.
-
-The actual installation that I am doing as I write these instructions will be on
-the following hardware:
-
- - Pentium 3 500MHz
- - Intel motherboard D815BN
- - 256MB PC133 RAM
- - 80GB IBM deskstar 7200RPM Hard Drive
- - Digium Wildcard Single Span T1 Card T100P
- - 2U rackmount case with 250W power supply
- - Phone hardware will be a Grandstream BT102 and a Sipura SPA-2000 because they
-are so cheap and readily available
-
-All of these parts, aside from the Digium card and the two SIP VOIP devices,
-were purchased from ebay and the entire package(with the two VOIP devices and
-all server hardware included) cost me about $1100 to put together including the
-phones and Digium adapter.
-
-We have many other Asterisk servers at our main office, but this one can be
-experimented with easily because it was so cheap to make and has a relatively
-small capacity when compared with a multi-processor server with a quad span T1
-card.
-
-This is our test Asterisk server and functions well for a dozen or so extensions
-in use if it were to be used in production. A size that is optimal for many
-small offices operating with a fractional data/voice T1 for instance.
-
-For hardware you can use almost any Pentium-class processor(PII, PIII, Athlon,
-Xeon, etc), and you can use any digium telco interface card. Both of these
-choices will determine what the capacity of your Asterisk server will be. If you
-want to do simple IVR or conference calling and a few extensions, then a PIII
-with a single Digium T1 card will work just fine for you. If you want to use the
-VICIDIAL application, you will want to get as high-powered of a machine as you
-can afford and get a digium quad-span T1 card.
-
-The following is assumed for these installation procedures:
-- You have access to a CD burner and 3 blank CDs
-- You have some sort of broadband internet connection
-- You understand basic linux commands and can use a file editor like vi
-- You have all of the necessary hardware:
- - a pentium-class computer
- - a digium telco interface card with appropriate telco lines
- - at least 1 SIP VOIP device
- - a Local Area Network(LAN) with extra ports enough for the new server
-and the number of phones you want
-
-
-
-
-
-PHASE 1: INSTALLING AN OPERATING SYSTEM
-
-
-This installation will be using Slackware 11 for the linux distribution,
-Slackware 12.X will also work with these instructions. There are several easier
-linux distributions and there are others that are more popular, but Slackware is
-a nice non-commercial distro that has been around for a long time and proven
-itself to be a very uncluttered and stable platform for development.
-
-1. Go to http://www.ultimatebootcd.com/ , download the latest bootcd and
-burn it to a CD. This will be needed to partition the hard drive prior to
-installation of Slackware linux. The latest version as of this writing is 4.1
-(If you have problems with your hardware booting some of the utilities with 4.1
-I suggest trying 1.7, that version has older utilities, but still gets the job
-done and works on every machine I've tried it on).
-
-2. Insert the ultimatebootcd you just burned into your CDROM drive and boot
-to it. You will select "filesystem utilities" and then "XFDISK"
-
-3. Select any old partitions and delete them and then create 2 new
-partitions:
- - 70000 MB, select yes to validate, change partition type to "Linux Native"
- - 3332 MB, select yes to validate, change partition type to "Linux Swap"
- - press F3 to exit and let it do it's thing, this will take an hour or so.
-
-4. Go to http://www.slackware.com/getslack/ to download Slackware linux.
-The most recent release as of this writing is 12.0. This release fits on 3 CDs
-or 1 DVD. Download both installation disks from any close server listed on the
-download page and burn them both to CDs.
-
-5. Insert Disk 1 of the Slackware installation CD and boot your computer.
-If you have a simple computer with just an IDE drive just hit enter at the boot:
-prompt. If you have other hard drive adapters(SCSI/RAID/SATA/etc..) you will
-need to look at the Slackware installation help page to determine what boot
-image you will need to use to install Slackware correctly.
-
-6. Login as root and type "setup" at the prompt to go to the setup menu.
-7. Go to ADDSWAP and hit Enter
-8. Select the swap partition you just created and hit Yes, The swap
-partition will then be formatted
-9. Select the root partiton you just created as Linux Native and hit
-Select, then select "ext3" for the file system, then select 4096 for the inodes
-and the root partition will then be formatted
-10. Select "Install Slackware from a CD" and hit OK
-11. Select "auto" installation and hit OK
-12. Select every package except for "KDEI" and hit OK
-13. Select "full" installation and hit OK
-14. Insert the next Slackware installation disk (disk 2) when it prompts
-you, and hit OK to continue
-15. Now you will select the boot kernel that you will use from now on. If
-you have a simple system with IDE drives you can probably just select "skip" and
-go to the next step. If not then you should probably select "cdrom" and select
-the kernel from the list that you selected to boot into the installation.
-16. You can make a bootdisk if you like, but you don't have to.
-17. For Modem you can select "no modem" and hit OK to continue
-18. Enable hotplug, hit Yes to continue
-19. Install lilo "simple" and hit OK to continue
-20. lilo frame buffer console 640x480 is safe choice if you're not sure
-21. Optional Lilo append, leave blank and hit OK to continue
-22. Lilo destination, I usually choose MBR but root works most of the time
-23. Mouse, select the mouse type that you have hooked up, or select ps/2
-24. Load GPM at boot time, Hit Yes to continue
-25. select Yes to configure your network
-26. Hostname, we are typing "phone"
-27. network, we are typing our local domain name
-28. IP address, we are selecting Static IP, here's what we enter for
-network, you should enter a network setup that will work with your local LAN:
- - IP address: 10.10.10.15
- - subnet: 255.255.0.0
- - gateway: 10.10.10.1
- - name server: 10.10.10.1
-29. Accept your network settings
-30. Startup services to run, change nothing and select OK to continue
-31. select NO for custom screen fonts
-32. Hardware clock to UTC, select NO
-33. Select your time zone and hit OK
-34. I usually select gnome as the window manager, even though you won't be
-using it on this machine
-35. Select Yes to enter a root password. type something that you will
-remember.
-36. Setup of Slackware Linux is complete, hit OK and EXIT then press
-CTRL-ALT-DELETE to reboot your computer
-
-
-
-
-
-PHASE 2: COMPILING A CUSTOM LINUX KERNEL
-
-
-From this step on you should be able to continue the installation remotely
-although it is wise to at least have quick access to the machine if something
-goes wrong.
-
-To connect remotely through SSH on linux type "slogin serveripaddress" or to use
-Windows to connect you can use a piece of free software called putty available
-here: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
-Also, for windows you can use SSH file transferring(SFTP) with a program called
-filezilla: http://filezilla.sourceforge.net/
-
-This is an optional step if your linux system is running, but compiling your own
-custom kernel is always a way to optimize your system for the hardware you have
-installed or a way to remove the unnecesary modules that are in the default
-kernel. You will definately want to build your own kernel if you have a multi
-processor machine. If you are new to Linux you probably do not want to do this.
-
-If you are using a newer Digium Octasic-based echo-cancellation quad T1/E1 card
-then you need to use a 2.6 Linux kernel in order to use the echo-cancellation
-functionality of the card.
-
-If you want to compile a 2.6 kernel then start with OPTION 1, otherwise to
-compile the 2.4 kernel that comes with Slackware(2.4.33) start with OPTION 2:
-
-OPTION 1: compile Linux kernel 2.6.17 *RECOMMENDED*
-
-1. cd /usr/src
-2. wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.11.tar.gz
-3. gunzip linux-2.6.17.11.tar.gz
-4. tar xvf linux-2.6.17.11.tar
-5. mv -f /usr/src/linux /usr/src/linux-old
-6. ln -s /usr/src/linux-2.6.17.11 /usr/src/linux
-7. cd linux
-8. make mrproper # prep for kernel assembly
-9. make menuconfig # launch configuration menu app
- (this part is very dependant upon your own hardware)
- (what is mentioned below are only changes beyond what is selected by default)
-
- Block Layer --->
- -> IO Scheduler
- this should be set to CFQ if you do not have a hardware caching controller
- if you have a hardware caching controller DEADLINE or NO-OP are the best
- choices, if you have a battery backuped caching controller that is set to write-back you should use NO-OP.
- Processor Type and Features --->
- ->Symmetric multi-processing support
- (if you have multiple processors or a Dual-core or HT enabled)
- ->High Memory Support
- (if you have more than 900MB of System RAM move upto 4GB)
- ->Timer frequency (1000 HZ)
- (change to 1000Hz if using ztdummy for timer on pre 2.6.17 kernel)
- ->[*]Tickless System (enable UNLESS using ztdummy on pre 2.6.17 kernel)
- ->[*]Enable Kernel irq balancing
- ->Preemption Model (No Forced Preemption (Server))
- (^This one is very important!!!)
- Power management options (ACPI, APM) --->
- ->ACPI (Advanced Configuration and Power Interface) Support
- (enable all down to Processor and thermal zone)
- Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->
- ->[*] PCI Express support
- (if using Sangoma PCI Express card)
- Networking --->
- Amateur Radio support --->
- <*> Amateur Radio AX.25 Level 2 protocol
- [*] AX.25 DAMA Slave support
- <*> Amateur Radio NET/ROM protocol
- <*> Amateur Radio X.25 PLP (Rose)
- (all needed for new Digium Octasic drivers)
- Device Drivers --->
- ATA/ATAPI/MFM/RLL support --->
- <*> SCSI emulation support
- (needed for SATA drives, also further down check chipset drivers)
- SCSI device support --->
- <*> RAID Transport Class
- (needed if you are using a RAID)
- SCSI low-level drivers --->
- <*> Serial ATA (SATA) support
- (required if using SATA drives)
- (if using a SCSI RAID card pick correct driver here)
- Multi-device support (RAID and LVM) --->
- (select proper RAID types if using Linux RAID)
- Network device support --->
- Ethernet (10 or 100Mbit) --->
- Ethernet (1000 Mbit) --->
- (select proper drivers for the eype of network card you have)
- Character devices --->
- <*> Enhanced Real Time Clock Support
- (double-check that this is enabled, very important)
- Real Time Clock --->
- <*> RTC class
- (double-check that this is enabled, very important)
- File systems --->
- <*> Ext3 journalling file system support
- (important if using ext3 filesystem)
- pseudo filesystems --->
- <*> Virtual memory file system support
- (this is usually checked anyway but mandatory for recording to RAM[tmpfs])
- Library routines --->
- <*> CRC-CCITT functions
- <*> CRC16 functions
- <*> CRC32c (Castagnoli, et al) Cyclic Redundancy-Check
- (important for new Digium Octasic drivers)
- EXIT AND SAVE YOUR CONFIGURATION
-
-10. make clean # clean up the kernel build areas
-11. make bzImage # create a kernel bzImage
-12. make modules # build the modules into the image
-13. make modules_install # install kernel modules
-14. cp arch/i386/boot/bzImage /boot/bzImage-XXXX # copy image
- (put whatever you want in XXXX, that is your new kernel name)
-15. cp System.map /boot/System.map-XXXX # copy system map
-16. mv -f /boot/System.map /boot/System.map-orig
-17. ln -s /boot/System.map-XXXX /boot/System.map # symlink map
-18. vi /etc/lilo.conf # edit the lilo boot config file
- image=/boot/bzImage-XXXX # add the new image in above-
- label=test-XXXX # the previous one
- root=/dev/hda1 # device of root partition
- read-only
-19. /sbin/lilo # run the lilo reload script
-20. vi /etc/fstab # to include the following line for recording to RAM
- tmpfs /var/spool/asterisk/monitor tmpfs rw 0 0
-21. shutdown -r 0 # reboot machine and hope it worked
-
-OPTION 2: compile Linux kernel 2.4.33.3 (not recommended, very old)
-
-1. cd /usr/src/linux # move to your linux source directory
-2. cp .config config.save # copy old config to a save file
-3. make mrproper # prep for kernel assembly
-4. make menuconfig # launch configuration menu app
- (this part is very dependant upon your own hardware)
- enable processor version # select the processor that you have
- enable SMP # if more than 1 processor or Intel HT
- enable high memory () # if more than 1GB of RAM
- enable SCSI Multiple # if SCSI drives
- enable SCSI devices AMI Megaraid # if SCSI Megaraid adapter
- enable 3com network devices # if 3com network card
- enable ext3 file system # for ext3 to work
- enable all ACPI options # for SMP to work
- enable Enhanced Real Time Clock Support in Character devices section
- # for SMP to work
- enable any other hardware specific options
- exit and save configuration
-5. make dep # build the kernel dependancies
-6. make clean # clean up the kernel build areas
-7. make bzImage # create a kernel bzImage
-8. make modules # build the modules into the image
-9. make modules_install # install kernel modules
-10. # nothing# mkinitrd /boot/initrd-XXXXXX.img XXXXXX *not needed on Slackware*
-11. cp arch/i386/boot/bzImage /boot/bzImage-XXXXXX # copy image
- (put whatever you want in XXXXXX, that is your new kernel name)
-12. cp System.map /boot/System.map-XXXXXXN # copy system map
-13. mv -f /boot/System.map /boot/System.map-orig
-14. ln -s /boot/System.map-XXXXXX /boot/System.map # symlink map
-15. vi /etc/lilo.conf # edit the lilo boot config file
- image=/boot/bzImage-XXXXXX # add the new image in above-
- label=test-XXXXXX # the previous one
- root=/dev/hda1 # device of root partition
- read-only
-16. /sbin/lilo # run the lilo reload script
-17. shutdown -r 0 # reboot machine and hope it worked
-
-
-After compiling your kernel you can run a few commands to verify that you are
-running your new kernel and that devices are running as they are supposed to:
- ps --info (will show you your linux kernel version and other info)
- cat /proc/cpuinfo (will show you processor type and more than one if SMP)
- top (will show you system memory)
-
-
-
-
-PHASE 3: 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.
-
-
-
-SUBPHASE 3.0: install new Gnu Make
-
-A new version of the "make" compilation application replaced the 4-year-old
-version that most Linux distros(Including Slackware) use. This is only needed
-if you will be building Asterisk from the 1.4 release tree.
-
- - wget http://mirrors.kernel.org/gnu/make/make-3.81.tar.gz
- - gunzip make-3.81.tar.gz
- - tar xvf make-3.81.tar
- - cd make-3.81
- - ./configure
- - make
- - make install
-
-
-
-SUBPHASE 3.1: MySQL requirements
-
-You must at least have Mysql client installed on each VICIDIAL server, but you
-only need one database server.
-
-MySQL is a fast database system that is very easy to integrate with any
-application. You can either install the server on the local Asterisk system or
-have one somewhere on your network. For our purposes, we are creating an Asterisk
-installation that is self contained and needs no other local servers to operate,
-so we will need to install mysql on this machine.
-*REQUIRED and OPTIONAL* (only install MySQL server locally if you don't want to use an installation
-on another machine, Mysql client is required on all VICIDIAL servers)
-NOTE: a minimum of MySQL server 4.0.X is required
-
- Go to http://www.mysql.com/ and download the mysql package
- - to install this directly on the command line type:
- - cd /usr/local
- - wget http://mirror.trouble-free.net/mysql_mirror/Downloads/MySQL-4.0/mysql-4.0.27.tar.gz
- # http://mirror.trouble-free.net/mysql_mirror/Downloads/MySQL-5.0/mysql-5.0.45.tar.gz
- - gunzip mysql-4.0.27.tar.gz
- - tar xvf mysql-4.0.27.tar
- - cd mysql-4.0.27
- - groupadd mysql
- - useradd -g mysql mysql
- - "./configure --prefix=/usr/local/mysql --enable-large-files --enable-shared=yes --with-readline"
- **** If only MySQL client is needed for DBD::mysql then use this:
- - "./configure --prefix=/usr/local/mysql --without-server --enable-shared=yes --with-readline"
- **** If using version 5 tree MySQL client then use this:
- - "./configure --prefix=/usr/local/mysql --without-server --enable-shared=yes --with-readline --enable-thread-safe-client"
- - make
- - make install
- - scripts/mysql_install_db
- - chown -R root /usr/local/mysql
- - chown -R mysql /usr/local/mysql/var
- - chgrp -R mysql /usr/local/mysql
- - cp support-files/my-medium.cnf /etc/my.cnf
- - /usr/local/mysql/bin/mysqld_safe --user=mysql --skip-name-resolve --skip-host-cache &
- - ln -s /tmp/mysql.sock /var/run/mysql/mysql.sock
- **** For some systems you may need to add the mysql/bin directory to your PATH:
- - PATH=$PATH:$HOME/bin:/usr/local/mysql/bin/
- - export PATH
- **** you may also want to add those two lines to your /root/.bash_profile file
- **** For Mysql 5 tree only, you also may need to copy the libmysqlclient.so file to libs
- - cp /usr/local/mysql-5.0.45/libmysql/.libs/libmysqlclient.so /usr/lib/
- - cp /usr/local/mysql-5.0.45/libmysql/.libs/libmysqlclient.so.15 /usr/lib/
- - you are done
-
- ** INSTALLATION NOTE **
- If you are having Linuxthreads problems upon onfigure, just execute the following command:
- echo '/* Linuxthreads */' >> /usr/include/pthread.h
-
- ***** 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
-
-
-
-SUBPHASE 3.2: 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
- - 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
-
-
-
-SUBPHASE 3.3: Installing other utilities
-
-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)
-
-1. Go to http://sourceforge.net/projects/sox/ and download the sox package
- - to install this directly on the command line type:
- - cd /usr/local
- - cd /usr/local
- - wget http://easynews.dl.sourceforge.net/sourceforge/sox/sox-14.0.1.tar.gz
- - gunzip sox-14.0.1.tar.gz
- - tar xvf sox-14.0.1.tar
- - cd sox-14.0.1
- - ./configure --disable-shared
- - make (if alsa.o errors add --disable-alsa-dsp to configure and redo)
- - make install
- - you are done
-
-
-LAME is an 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)
-
-2. 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://easynews.dl.sourceforge.net/sourceforge/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*
-
-3. Go to http://www.gnu.org/software/screen/ and download the screen package
- - to install this directly on the command line type:
- - cd /usr/local
- - wget http://ftp.gnu.org/gnu/screen/screen-4.0.2.tar.gz
- or for older version:
- - wget http://mirrors.kernel.org/gnu/screen/screen-3.9.15.tar.gz
- - gunzip screen-4.0.2.tar.gz
- - tar xvf screen-4.0.2.tar
- - cd screen-4.0.2
- - ./configure
- - make
- - make install
- - you are done
-
-
-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)
-
-4. 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)
-
-5. 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*
-NOTE: another good network analysis utility is "iptraf" and is on most system
-
-6. 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)
-
-7. 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://superb-west.dl.sourceforge.net/sourceforge/ploticus/pl240src.tar.gz
- - gunzip pl240src.tar.gz
- - tar xvf pl240src.tar
- - cd pl240src/src/
- - make clean
- - make
- - make install
- - you are done
- NOTE: uncomment these lines to compile on systems without X11(v232):
- NOXFLAG = -DNOX11
- XLIBS =
- XOBJ =
- 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
-
-
-openssh is a remote login protocol server that is always a good idea to have
-updated on your system, so we're going to install a new version now.
-*OPTIONAL* (only updated as a precaution, not manditory)
- [NOTE: newer zlib is needed before installing]
-
-8. Go to http://www.openssh.org/ and download the linux source for openssh
- - to install this directly on the command line type:
- - cd /usr/local
- - wget http://www.zlib.net/zlib-1.2.3.tar.gz
- - gunzip zlib-1.2.3.tar.gz
- - tar xvf zlib-1.2.3.tar
- - cd zlib-1.2.3
- - ./configure
- - make
- - make install
- - cd /usr/local
- - wget http://gulus.usherbrooke.ca/pub/appl/ssh/OpenSSH/portable/openssh-4.7p1.tar.gz
- - gunzip openssh-4.7p1.tar.gz
- - tar xvf openssh-4.7p1.tar
- - cd openssh-4.7p1
- - ./configure
- - make
- - make install
- - you are done
-
-
-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)
-
-9. 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.8g.tar.gz
- - gunzip openssl-0.9.8g.tar.gz
- - tar xvf openssl-0.9.8g.tar
- - cd openssl-0.9.8g
- - ./config
- - make
- - make install
- - you are done
-
-
-apache is a web server that allows you to use many different modules with it to
-extend it's functionality. In order to use some of the astguiclient
-functionalities we need to have Apache and PHP installed on this machine.
-*OPTIONAL* (only install Apache and PHP locally if you don't want to use an
-installation on another machine)
-
-10. Go to http://www.apache.org/ and download the apache unix source
- Go to http://www.php.net/ and download the php unix source code
- - to install this directly on the command line type:
- - cd /usr/local
- - wget http://mirror.candidhosting.com/pub/apache/httpd/httpd-2.0.61.tar.gz
- - gunzip httpd-2.0.61.tar.gz
- - tar xvf httpd-2.0.61.tar
- - wget http://us2.php.net/distributions/php-4.4.8.tar.gz
- NOTE: PHP 5.1.1 has also been tested with this release
- - gunzip php-4.4.8.tar.gz
- - tar xvf php-4.4.8.tar
- - cd httpd-2.0.61
- - ./configure --enable-so --with-apxs2
- - make
- - make install
- - cd ../php-4.4.8
- - ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
- - make
- - make install
- - cp php.ini-dist /usr/local/lib/php.ini
- NOTE: you will want to make sure NOTICE logging is turned off:
- error_reporting = E_ALL & ~E_NOTICE ; (this is default)
-!!! REQUIRED !!! raise the memory limit for scripts in php.ini:
- memory_limit = 48M
- some other fields to change if using web-based lead loader:
- max_execution_time = 330
- max_input_time = 360
- post_max_size = 48M
- upload_max_filesize = 42M
- default_socket_timeout = 360
-
- - vi /usr/local/apache2/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
-
- to disable logging, change:
- "CustomLog logs/access_log common"
- to this:
- "CustomLog /dev/null common"
-
- to enable web browsing of Recordings on Asterisk server, add this:
- Alias /RECORDINGS/ "/var/spool/asterisk/monitorDONE/"
-
-
- Options Indexes MultiViews
- AllowOverride None
- Order allow,deny
- Allow from all
-
-
- - /usr/local/apache2/bin/apachectl start
- - go to http://your-new-asterisk-server-ipaddress/ to see if it worked
- - you are done
- NOTE: If using PHP5 you may need to add the following line to php.ini:
- short_open_tag = On
-
- 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*
-
-11. 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*
-
-12. 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*
- 13. 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*
- 14. 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
-
-
-
-
-
-PHASE 4: 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.27) and the SVN_DEV version(development
-branch). We recommend using Asterisk 1.2.27. 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 Asterisk 1.4, you will need to make sure that you set
-the servers table "asterisk_version" field to the proper version number and you
-can use the docs/conf_examples/extensions.conf.sample-1.4 file for your default
-dialplan
-
-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.27.tar.gz
- - wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.24.tar.gz
- - wget http://ftp.digium.com/pub/libpri/releases/libpri-1.2.5.tar.gz
- - gunzip asterisk-1.2.27.tar.gz
- - tar xvf asterisk-1.2.27.tar
- - gunzip zaptel-1.2.24.tar.gz
- - tar xvf zaptel-1.2.24.tar
- - gunzip libpri-1.2.5.tar.gz
- - tar xvf libpri-1.2.5.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.6 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")
-
- - cd ./zaptel-1.2.24
- - make clean
- - make
- - make install
- - cd ../libpri-1.2.5
- - make clean
- - make
- - make install
- - cd ../asterisk-1.2.27
- - (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.23 thru 1.2.27) apply the meetme DTMF passthru patch
- - wget http://www.eflo.net/files/meetme_DTMF_passthru-1.2.23.patch
- - patch -p1 < ./meetme_DTMF_passthru-1.2.23.patch
- - File to patch: app_meetme.c
- *OPTIONAL*(1.2.12.1 thru 1.2.27) 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
-
- *OPTIONAL*(1.2.14 thru 1.2.27) rewrite of waitforsilence
- - wget http://www.eflo.net/files/app_waitforsilence.c
- - mv -f app_waitforsilence.c apps/app_waitforsilence.c
-
- *OPTIONAL* shorter enter and leave sounds for meetme
- - wget http://www.eflo.net/files/enter.h
- - wget http://www.eflo.net/files/leave.h
- - mv -f enter.h apps/enter.h
- - mv -f leave.h apps/leave.h
-
-
- - make clean
- - make
- - make install
- - make samples # this makes sample conf files (only use for new installs)
-
- - 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-3.2.4.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
-
-If you will be doing native music-on-hold for your inbound calls, you will need
-musiconhold audio files to be converted to native formats like GSM, ULAW and ALAW:
-
- cd /var/lib/asterisk/mohmp3/
- mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-sunshine.mp3 > /var/lib/asterisk/mohmp3/fpm-sunshine.raw
- sox -r 44100 -w -s -c 1 fpm-sunshine.raw -r 8000 -c 1 fpm-sunshine.wav
- sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm
- sox fpm-sunshine.wav -t ul -r 8000 -b -c 1 fpm-sunshine.pcm
- mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-calm-river.mp3 > /var/lib/asterisk/mohmp3/fpm-calm-river.raw
- sox -r 44100 -w -s -c 1 fpm-calm-river.raw -r 8000 -c 1 fpm-calm-river.wav
- sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm
- sox fpm-calm-river.wav -t ul -r 8000 -b -c 1 fpm-calm-river.pcm
- mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-world-mix.mp3 > /var/lib/asterisk/mohmp3/fpm-world-mix.raw
- sox -r 44100 -w -s -c 1 fpm-world-mix.raw -r 8000 -c 1 fpm-world-mix.wav
- sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm
- sox fpm-world-mix.wav -t ul -r 8000 -b -c 1 fpm-world-mix.pcm
- mkdir ../orig-mp3
- mv -f *.mp3 ../orig-mp3/
- mkdir ../quiet-mp3
- cd ../quiet-mp3
- sox -r 44100 -w -s -c 1 ../mohmp3/fpm-sunshine.raw -r 8000 -c 1 fpm-sunshine.wav vol 0.25
- sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm
- sox fpm-sunshine.wav -t ul -r 8000 -b -c 1 fpm-sunshine.pcm
- sox -r 44100 -w -s -c 1 ../mohmp3/fpm-calm-river.raw -r 8000 -c 1 fpm-calm-river.wav vol 0.25
- sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm
- sox fpm-calm-river.wav -t ul -r 8000 -b -c 1 fpm-calm-river.pcm
- sox -r 44100 -w -s -c 1 ../mohmp3/fpm-world-mix.raw -r 8000 -c 1 fpm-world-mix.wav vol 0.25
- sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm
- sox fpm-world-mix.wav -t ul -r 8000 -b -c 1 fpm-world-mix.pcm
- rm -f ../mohmp3/*.raw
-
-
-
-PHASE 5: 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/Sangoma/Rhino/etc...) 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.
-
-
-
-SUBPHASE 5.0: 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/Linksys 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
- - 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://127.0.0.1:4577/call_log)
- exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN:1},55,o)
- exten => _91NXXNXXXXXX,3,Hangup
-
- [incoming]
- exten => 1112223333,1,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
-TRUNKloop = IAX2/ASTloop:test@127.0.0.1:40569 ; used for blind monitoring
-TRUNKblind = IAX2/ASTblind:test@127.0.0.1:41569 ; used for testing
-
-[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://127.0.0.1:4577/call_log)
- exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN:1},55,o)
- exten => _91NXXNXXXXXX,3,Hangup
-
-### OPTIONAL SIP trunk extensions entries for long distance dialing over SIP
- exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
- exten => _91NXXNXXXXXX,2,Dial(sip/${EXTEN:1}@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*.,1,Dial(${TRUNKIAX2}/${EXTEN:16},55,o)
-### server 2 extens:
- exten => _010*010*010*015*.,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 asterisk 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:
- /usr/share/astguiclient/start_asterisk_boot.pl
-
-
-
-SUBPHASE 5.1: 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 Linksys/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
-
-
-
-SUBPHASE 5.2: 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
-
-
-SUBPHASE 5.3: 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...
-
-
-
-
-PHASE 6: INSTALLING ASTGUICLIENT AND VICIDIAL
-
-Now that Asterisk is installed and running we can add the astGUIclient and
-VICIDIAL components to the system.
-
-
-
-SUBPHASE 6.0: putting the files in place
-
-There are two methods for downloading astGUIclient/VICIDIAL, a release and SVN
-
-1. Go to http://astguiclient.sf.net/ and download the latest astguiclient
-package(as of this writing it is 2.0.4.1)
- - for 2.0.X release:
- - mkdir /usr/src/astguiclient
- - cd /usr/src/astguiclient
- - wget http://internap.dl.sourceforge.net/sourceforge/astguiclient/astguiclient_2.0.4.1.zip
- - unzip astguiclient_2.0.4.1.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://svn.eflo.net:43690/agc_2-X/trunk
- - cd 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
-
-
-
-SUBPHASE 6.1: 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;
-
-NOTE: if you will be using lead files with a language that does not use the
-standard latin character set then you will want to use UTF8 for your default
-characterset in the MySQL database. This requires at least MySQL 4.1.11 and you
-can use the following query to create the database:
- CREATE DATABASE `asterisk` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-
-
-GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@'%' IDENTIFIED BY '1234';
-GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@localhost IDENTIFIED BY '1234';
-
-# 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';
-
-# NOTE: make sure you do NOT put any spaces or other punctuation in the
-# server_id, phone, extension, or user fields in the queries below if you edit them.
-
-use asterisk;
-
-\. /usr/src/astguiclient/trunk/extras/MySQL_AST_CREATE_tables.sql
- or you may need to run this if you get an error:
- \. /usr/src/astguiclient/agc_2.0.4/extras/MySQL_AST_CREATE_tables.sql
- \. /usr/src/astguiclient/astguiclient/MySQL_AST_CREATE_tables.sql
-
-### to load in default IAX and SIP phone accounts run the following query
-
-\. /usr/src/astguiclient/trunk/extras/sip-iax_phones.sql
- or you may need to run this if you get an error:
- \. /usr/src/astguiclient/agc_2.0.4/extras/sip-iax_phones.sql
- \. /usr/src/astguiclient/astguiclient/sip-iax_phones.sql
-
-
-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.27');
-
-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','');
-insert into conferences values('8600030','10.10.10.15','');
-insert into conferences values('8600031','10.10.10.15','');
-insert into conferences values('8600032','10.10.10.15','');
-insert into conferences values('8600033','10.10.10.15','');
-insert into conferences values('8600034','10.10.10.15','');
-insert into conferences values('8600035','10.10.10.15','');
-insert into conferences values('8600036','10.10.10.15','');
-insert into conferences values('8600037','10.10.10.15','');
-insert into conferences values('8600038','10.10.10.15','');
-insert into conferences values('8600039','10.10.10.15','');
-insert into conferences values('8600040','10.10.10.15','');
-insert into conferences values('8600041','10.10.10.15','');
-insert into conferences values('8600042','10.10.10.15','');
-insert into conferences values('8600043','10.10.10.15','');
-insert into conferences values('8600044','10.10.10.15','');
-insert into conferences values('8600045','10.10.10.15','');
-insert into conferences values('8600046','10.10.10.15','');
-insert into conferences values('8600047','10.10.10.15','');
-insert into conferences values('8600048','10.10.10.15','');
-insert into conferences values('8600049','10.10.10.15','');
-
-quit
-
- to populate the timezone/country table run this command from command line:
- - /usr/share/astguiclient/ADMIN_area_code_populate.pl
-
- to load the performance testing leads run these commands:
- - cp /usr/src/astguiclient/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/
- or
- - cp /usr/src/astguiclient/agc_2.0.4/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/
- - cp /usr/src/astguiclient_2.0.4.1/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/
-
- - /usr/share/astguiclient/VICIDIAL_IN_new_leads_file.pl --forcelistid=107 --forcephonecode=1
-
-
-######------ END Mysql data entry ------######
-
-NOTE: If you will be using channelbanks for agent phones you can use the
-/extras/single_channelbank_phones.sql file to help enter the phones table entries.
-
-NOTE: If you will be using IAX or SIP phones for agent phones you can use the
-/extras/sip-iax_phones.sql file to help enter the phones table entries.
-
-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 "Admin" 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
-
-
-
-
-SUBPHASE 6.2: 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--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})
-
-; MANDITORY VDAD extens:
-; In this setup, the serverIP is the prefix followed by agent conf_exten
-; These lines are REQUIRED for VICIDIAL to work properly
-; local server extens:
-; BE SURE TO CHANGE THIS LINE FOR YOUR IP ADDRESS!
- exten => _010*010*010*015*.,1,Goto(default,${EXTEN:16},1)
- exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
- exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
-; Local blind monitoring
- exten => _08600XXX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,To)
-; OPTIONAL server 2 extens, needed for load balancing:
- exten => _010*010*010*016*.,1,Dial(${TRUNKIAX2}/${EXTEN:16},55,o)
-
-; 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
-; SEE extensions.conf.sample-1.4 for changes needed for use with Asterisk 1.4
-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
-
-; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls,
-
-; 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
-
-; Extensions for performance testing
-exten => _91999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => _91999NXXXXXX,2,Dial(${TRUNKloop}/${EXTEN:2},,tTo)
-exten => _91999NXXXXXX,3,Hangup
-exten => 999999999999,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 999999999999,2,Dial(${TRUNKloop}/${EXTEN:1},,tTo)
-exten => 999999999999,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
-
-; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls,
-; 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
-
-; parameters for agi-VDAD_ALL_inbound.agi (9 fields separated by five dashes "-----"):
-; 1. the method of call handling for the script:
-; - CID - CID received, add record with phone number
-; - CIDLOOKUP - Lookup CID to find record in whole system
-; - CIDLOOKUPRL - Restrict lookup to one list
-; - CIDLOOKUPRC - Restrict lookup to one campaign's lists
-; - CLOSER - Closer calls from VICIDIAL fronters
-; - ANI - ANI received, add record with phone number
-; - ANILOOKUP - Lookup ANI to find record in whole system
-; - ANILOOKUPRL - Restrict lookup to one list
-; - 3DIGITID - Enter 3 digit code to go to agent
-; - 4DIGITID - Enter 4 digit code to go to agent
-; - 5DIGITID - Enter 5 digit code to go to agent
-; - 10DIGITID - Enter 10 digit code to go to agent
-; 2. the method of searching for an available agent:
-; - LO - Load Balance Overflow only (priority to home server)
-; - LB - Load Balance total system
-; - SO - Home server only
-; 3. the full name of the IN GROUP to be used in vicidial for the inbound call
-; 4. the phone number that was called, for the log entry
-; 5. the callerID or lead_id of the person that called(usually overridden)
-; 6. the park extension audio file name if used
-; 7. the status of the call initially(usually not used)
-; 8. the list_id to insert the new lead under if it is new (and CID/ANI available)
-; 9. the phone dialing code to insert with the new lead if new (and CID/ANI available)
-; 10. the campaign_id to search within lists if CIDLOOKUPRC
-; inbound VICIDIAL call with CID delivery through T1 PRI
-exten => 1234,1,Answer ; Answer the line
-exten => 1234,2,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----CL_GALLERIA-----7274515134-----Closer-----park----------999-----1)
-exten => 1234,3,Hangup
-
-; inbound VICIDIAL transfer calls [can arrive through PRI T1 crossover, IAX or SIP channel]
-exten => _90009.,1,Answer ; Answer the line
-exten => _90009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1)
-exten => _90009.,3,Hangup
-exten => _990009.,1,Answer ; Answer the line
-exten => _990009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1)
-exten => _990009.,3,Hangup
-
-
-### follow these instructions if you plan to have VICIDIAL agents take inbound or closer calls:
- 1. 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
- 2. create a new campaign in VICIDIAL called "CLOSER" and set "allow inbound blended" to Y
- 3. check the CL_GALLERIA checknox in the "Allowed In-Groups" section
- 4. have agents log in to the CLOSER campaign and select the CL_GALLERIA in-group
- 5. they will now start receiving inbound calls
- 6. 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
- 7. 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):
-
-; ZapBarge direct channel extensions
-exten => _86120XX,1,ZapBarge(${EXTEN:5})
-
-
-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 => 8600030
-conf => 8600031
-conf => 8600032
-conf => 8600033
-conf => 8600034
-conf => 8600035
-conf => 8600036
-conf => 8600037
-conf => 8600038
-conf => 8600039
-conf => 8600040
-conf => 8600041
-conf => 8600042
-conf => 8600043
-conf => 8600044
-conf => 8600045
-conf => 8600046
-conf => 8600047
-conf => 8600048
-conf => 8600049
-conf => 8600050
-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):
-
-; astGUIclient conferences
-exten => _86000[0-4]X,1,Meetme,${EXTEN}|q
-
-
-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
-
-; VICIDIAL conferences
-exten => _86000[5-9]X,1,Meetme,${EXTEN}|F
-exten => _86001XX,1,Meetme,${EXTEN}|F
-exten => _8600200,1,Meetme,${EXTEN}|F
-; quiet entry and leaving conferences for VICIDIAL
-exten => _78600XXX,1,Meetme,${EXTEN:1}|Fq
-; quiet monitor extensions for meetme rooms (for room managers)
-exten => _68600XXX,1,Meetme,${EXTEN:1}|Fmq
-; Local blind monitoring
-exten => _08600XXX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,To)
-
-; voicelab exten
-exten => _86009XX,1,Meetme,${EXTEN}|Fmq
-; voicelab exten moderator
-exten => _986009XX,1,Meetme,${EXTEN:1}
-
-######------ END extensions.conf changes for VD conf ------######
-
-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
-
-exten => 8304,1,Answer
-exten => 8304,2,Playback(ding)
-exten => 8304,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)
-; SEE extensions.conf.sample-1.4 for changes needed for use with Asterisk 1.4
-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)
-; SEE extensions.conf.sample-1.4 for changes needed for use with Asterisk 1.4
-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
-; SEE extensions.conf.sample-1.4 for changes needed for use with Asterisk 1.4
-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
-
-; prompts for recording AGI script, ID is 4321
-; first variable is format (gsm/wav)
-; second variable is timeout in milliseconds (default is 360000 [6 minutes])
-exten => 8167,1,Answer
-exten => 8167,2,AGI(agi-record_prompts.agi,wav-----360000)
-exten => 8167,3,Hangup
-exten => 8168,1,Answer
-exten => 8168,2,AGI(agi-record_prompts.agi,gsm-----360000)
-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
-
-
-
-SUBPHASE 6.3: 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 ------######
-
-
-
-SUBPHASE 6.4: 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):
-
-# OPTIONAL enable ip_relay(for same-machine trunking and blind monitoring)
-# /usr/share/astguiclient/ip_relay/relay_control start 2>/dev/null 1>&2
-
-# Disable console blanking and powersaving
-/usr/bin/setterm -blank
-/usr/bin/setterm -powersave off
-/usr/bin/setterm -powerdown
-
-### 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
-
-### roll the Asterisk logs upon reboot
-/usr/share/astguiclient/ADMIN_restart_roll_logs.pl
-
-### clear the server-related records from the database
-/usr/share/astguiclient/AST_reset_mysql_vars.pl
-
-### 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
-
-
-
-
-SUBPHASE 6.5: 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):
-
-### recording mixing/compressing/ftping scripts
-0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl
-#0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl
-1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl --GSM
-#2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --GSM
-
-### keepalive script for astguiclient processes
-* * * * * /usr/share/astguiclient/ADMIN_keepalive_ALL.pl
-
-### kill Hangup script for Asterisk updaters
-* * * * * /usr/share/astguiclient/AST_manager_kill_hung_congested.pl
-
-### updater for voicemail
-* * * * * /usr/share/astguiclient/AST_vm_update.pl
-
-### updater for conference validator
-* * * * * /usr/share/astguiclient/AST_conf_update.pl
-
-### flush queue DB table every hour for entries older than 1 hour
-11 * * * * /usr/share/astguiclient/AST_flush_DBqueue.pl -q
-
-### fix the vicidial_agent_log once every hour
-33 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl
-
-### updater for VICIDIAL hopper
-* * * * * /usr/share/astguiclient/AST_VDhopper.pl -q
-
-### adjust the GMT offset for the leads in the vicidial_list table
-1 1,7 * * * /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --debug --postal-code-gmt
-
-### reset several temporary-info tables in the database
-2 1 * * * /usr/share/astguiclient/AST_reset_mysql_vars.pl
-
-### optimize the database tables within the asterisk database
-3 1 * * * /usr/share/astguiclient/AST_DB_optimize.pl
-
-## adjust time on the server with ntp
-30 * * * * /usr/local/bin/ntpdate -u 18.145.0.30 2>/dev/null 1>&2
-
-### VICIDIAL agent time log weekly and daily summary report generation
-2 0 * * 0 /usr/share/astguiclient/AST_agent_week.pl
-22 0 * * * /usr/share/astguiclient/AST_agent_day.pl
-
-### VICIDIAL campaign export scripts (OPTIONAL)
-#32 0 * * * /usr/share/astguiclient/AST_VDsales_export.pl
-#42 0 * * * /usr/share/astguiclient/AST_sourceID_summary_export.pl
-
-### remove old recordings more than 7 days old
-24 0 * * * /usr/bin/find /var/spool/asterisk/monitor -maxdepth 2 -type f -mtime +7 -print | xargs rm -f
-
-### remove old vicidial logs and asterisk logs more than 2 days old
-28 0 * * * /usr/bin/find /var/log/astguiclient -maxdepth 1 -type f -mtime +2 -print | xargs rm -f
-29 0 * * * /usr/bin/find /var/log/asterisk -maxdepth 3 -type f -mtime +2 -print | xargs rm -f
-
-
-
-
- - 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
-
-NOTES:
-- The AST_agent_day.pl and AST_agent_week.pl scripts create an ASCII fixed-length report of all agent activity on the system
-- The AST_VDsales_export.pl script allows for the exporting(into several different formats) of specified vicidial_list data based on status and campaign as well as inbound group
-- The AST_sourceID_summary_export.pl script summarizes leads in the system by source_id and generates a text report
-
-
-
-
-
-SUBPHASE 6.6: 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','N','UNDEFINED');
-insert into vicidial_statuses values('QUEUE','Lead To Be Called','N','N','UNDEFINED');
-insert into vicidial_statuses values('INCALL','Lead Being Called','N','N','UNDEFINED');
-insert into vicidial_statuses values('DROP','Agent Not Available','N','Y','UNDEFINED');
-insert into vicidial_statuses values('XDROP','Agent Not Available IN','N','Y','UNDEFINED');
-insert into vicidial_statuses values('NA','No Answer AutoDial','N','N','UNDEFINED');
-
-insert into vicidial_statuses values('CALLBK','Call Back','Y','Y','UNDEFINED');
-insert into vicidial_statuses values('CBHOLD','Call Back Hold','N','Y','UNDEFINED');
-insert into vicidial_statuses values('A','Answering Machine','Y','N','UNDEFINED');
-insert into vicidial_statuses values('AA','Answering Machine Auto','N','N','UNDEFINED');
-insert into vicidial_statuses values('AM','Answering Machine Sent to Mesg','N','N','UNDEFINED');
-insert into vicidial_statuses values('AL','Answering Machine Msg Played','N','N','UNDEFINED');
-insert into vicidial_statuses values('B','Busy','Y','N','UNDEFINED');
-insert into vicidial_statuses values('DC','Disconnected Number','Y','N','UNDEFINED');
-insert into vicidial_statuses values('DEC','Declined Sale','Y','Y','UNDEFINED');
-insert into vicidial_statuses values('DNC','DO NOT CALL','Y','Y','UNDEFINED');
-insert into vicidial_statuses values('SALE','Sale Made','Y','Y','UNDEFINED');
-insert into vicidial_statuses values('N','No Answer','Y','N','UNDEFINED');
-insert into vicidial_statuses values('NI','Not Interested','Y','Y','UNDEFINED');
-insert into vicidial_statuses values('NP','No Pitch No Price','Y','Y','UNDEFINED');
-insert into vicidial_statuses values('XFER','Call Transferred','Y','Y','UNDEFINED');
-
-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
-
-
-
-SUBPHASE 6.7: 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
-
-
-
-SUBPHASE 6.8: 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 the recommended browser)
-- Mozilla 1.7 or greater
-- Netscape 8 or greater
-- Opera 8.5 or greater
-- Microsoft Internet Explorer 6.0
-
-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.
-
-
-
-SUBPHASE 6.9: 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 the recommended browser)
-- Mozilla 1.7 or greater
-- Netscape 8 or greater
-- Opera 8.5 or greater
-- Microsoft Internet Explorer 6.0
-
-This version is fully functional and has been tested in our production
-call center with no problems.
-
-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 full 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 password 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.
-
-
-
-PHASE 7.0: 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
+Asterisk/astguiclient install from scratch. v.2.0.4.1 2008-09-XX
+ By the VICIDIAL group info@vicidial.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
+
+
+This document is meant to be a very in-depth step-by-step explanation of
+installing the Asterisk open-source PBX on a Linux system and also installing
+the astGUIclient suite. The instructions will assume starting from nothing and
+will try to give several side step instructions to account for some differences
+in choices of hardware and software.
+
+The actual installation that I am doing as I write these instructions will be on
+the following hardware:
+
+ - Pentium 3 500MHz
+ - Intel motherboard D815BN
+ - 256MB PC133 RAM
+ - 80GB IBM deskstar 7200RPM Hard Drive
+ - Digium Wildcard Single Span T1 Card T100P
+ - 2U rackmount case with 250W power supply
+ - Phone hardware will be a Grandstream BT102 and a Sipura SPA-2000 because they
+are so cheap and readily available
+
+All of these parts, aside from the Digium card and the two SIP VOIP devices,
+were purchased from ebay and the entire package(with the two VOIP devices and
+all server hardware included) cost me about $1100 to put together including the
+phones and Digium adapter.
+
+We have many other Asterisk servers at our main office, but this one can be
+experimented with easily because it was so cheap to make and has a relatively
+small capacity when compared with a multi-processor server with a quad span T1
+card.
+
+This is our test Asterisk server and functions well for a dozen or so extensions
+in use if it were to be used in production. A size that is optimal for many
+small offices operating with a fractional data/voice T1 for instance.
+
+For hardware you can use almost any Pentium-class processor(PII, PIII, Athlon,
+Xeon, etc), and you can use any digium telco interface card. Both of these
+choices will determine what the capacity of your Asterisk server will be. If you
+want to do simple IVR or conference calling and a few extensions, then a PIII
+with a single Digium T1 card will work just fine for you. If you want to use the
+VICIDIAL application, you will want to get as high-powered of a machine as you
+can afford and get a digium quad-span T1 card.
+
+The following is assumed for these installation procedures:
+- You have access to a CD burner and 3 blank CDs
+- You have some sort of broadband internet connection
+- You understand basic linux commands and can use a file editor like vi
+- You have all of the necessary hardware:
+ - a pentium-class computer
+ - a digium telco interface card with appropriate telco lines
+ - at least 1 SIP VOIP device
+ - a Local Area Network(LAN) with extra ports enough for the new server
+and the number of phones you want
+
+
+
+
+
+PHASE 1: INSTALLING AN OPERATING SYSTEM
+
+
+This installation will be using Slackware 11 for the linux distribution,
+Slackware 12.X will also work with these instructions. There are several easier
+linux distributions and there are others that are more popular, but Slackware is
+a nice non-commercial distro that has been around for a long time and proven
+itself to be a very uncluttered and stable platform for development.
+
+1. Go to http://www.ultimatebootcd.com/ , download the latest bootcd and
+burn it to a CD. This will be needed to partition the hard drive prior to
+installation of Slackware linux. The latest version as of this writing is 4.1
+(If you have problems with your hardware booting some of the utilities with 4.1
+I suggest trying 1.7, that version has older utilities, but still gets the job
+done and works on every machine I've tried it on).
+
+2. Insert the ultimatebootcd you just burned into your CDROM drive and boot
+to it. You will select "filesystem utilities" and then "XFDISK"
+
+3. Select any old partitions and delete them and then create 2 new
+partitions:
+ - 70000 MB, select yes to validate, change partition type to "Linux Native"
+ - 3332 MB, select yes to validate, change partition type to "Linux Swap"
+ - press F3 to exit and let it do it's thing, this will take an hour or so.
+
+4. Go to http://www.slackware.com/getslack/ to download Slackware linux.
+The most recent release as of this writing is 12.0. This release fits on 3 CDs
+or 1 DVD. Download both installation disks from any close server listed on the
+download page and burn them both to CDs.
+
+5. Insert Disk 1 of the Slackware installation CD and boot your computer.
+If you have a simple computer with just an IDE drive just hit enter at the boot:
+prompt. If you have other hard drive adapters(SCSI/RAID/SATA/etc..) you will
+need to look at the Slackware installation help page to determine what boot
+image you will need to use to install Slackware correctly.
+
+6. Login as root and type "setup" at the prompt to go to the setup menu.
+7. Go to ADDSWAP and hit Enter
+8. Select the swap partition you just created and hit Yes, The swap
+partition will then be formatted
+9. Select the root partiton you just created as Linux Native and hit
+Select, then select "ext3" for the file system, then select 4096 for the inodes
+and the root partition will then be formatted
+10. Select "Install Slackware from a CD" and hit OK
+11. Select "auto" installation and hit OK
+12. Select every package except for "KDEI" and hit OK
+13. Select "full" installation and hit OK
+14. Insert the next Slackware installation disk (disk 2) when it prompts
+you, and hit OK to continue
+15. Now you will select the boot kernel that you will use from now on. If
+you have a simple system with IDE drives you can probably just select "skip" and
+go to the next step. If not then you should probably select "cdrom" and select
+the kernel from the list that you selected to boot into the installation.
+16. You can make a bootdisk if you like, but you don't have to.
+17. For Modem you can select "no modem" and hit OK to continue
+18. Enable hotplug, hit Yes to continue
+19. Install lilo "simple" and hit OK to continue
+20. lilo frame buffer console 640x480 is safe choice if you're not sure
+21. Optional Lilo append, leave blank and hit OK to continue
+22. Lilo destination, I usually choose MBR but root works most of the time
+23. Mouse, select the mouse type that you have hooked up, or select ps/2
+24. Load GPM at boot time, Hit Yes to continue
+25. select Yes to configure your network
+26. Hostname, we are typing "phone"
+27. network, we are typing our local domain name
+28. IP address, we are selecting Static IP, here's what we enter for
+network, you should enter a network setup that will work with your local LAN:
+ - IP address: 10.10.10.15
+ - subnet: 255.255.0.0
+ - gateway: 10.10.10.1
+ - name server: 10.10.10.1
+29. Accept your network settings
+30. Startup services to run, change nothing and select OK to continue
+31. select NO for custom screen fonts
+32. Hardware clock to UTC, select NO
+33. Select your time zone and hit OK
+34. I usually select gnome as the window manager, even though you won't be
+using it on this machine
+35. Select Yes to enter a root password. type something that you will
+remember.
+36. Setup of Slackware Linux is complete, hit OK and EXIT then press
+CTRL-ALT-DELETE to reboot your computer
+
+
+
+
+
+PHASE 2: COMPILING A CUSTOM LINUX KERNEL
+
+
+From this step on you should be able to continue the installation remotely
+although it is wise to at least have quick access to the machine if something
+goes wrong.
+
+To connect remotely through SSH on linux type "slogin serveripaddress" or to use
+Windows to connect you can use a piece of free software called putty available
+here: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
+Also, for windows you can use SSH file transferring(SFTP) with a program called
+filezilla: http://filezilla.sourceforge.net/
+
+This is an optional step if your linux system is running, but compiling your own
+custom kernel is always a way to optimize your system for the hardware you have
+installed or a way to remove the unnecesary modules that are in the default
+kernel. You will definately want to build your own kernel if you have a multi
+processor machine. If you are new to Linux you probably do not want to do this.
+
+If you are using a newer Digium Octasic-based echo-cancellation quad T1/E1 card
+then you need to use a 2.6 Linux kernel in order to use the echo-cancellation
+functionality of the card.
+
+If you want to compile a 2.6 kernel then start with OPTION 1, otherwise to
+compile the 2.4 kernel that comes with Slackware(2.4.33) start with OPTION 2:
+
+OPTION 1: compile Linux kernel 2.6.17 *RECOMMENDED*
+
+1. cd /usr/src
+2. wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.11.tar.gz
+3. gunzip linux-2.6.17.11.tar.gz
+4. tar xvf linux-2.6.17.11.tar
+5. mv -f /usr/src/linux /usr/src/linux-old
+6. ln -s /usr/src/linux-2.6.17.11 /usr/src/linux
+7. cd linux
+8. make mrproper # prep for kernel assembly
+9. make menuconfig # launch configuration menu app
+ (this part is very dependant upon your own hardware)
+ (what is mentioned below are only changes beyond what is selected by default)
+
+ Block Layer --->
+ -> IO Scheduler
+ this should be set to CFQ if you do not have a hardware caching controller
+ if you have a hardware caching controller DEADLINE or NO-OP are the best
+ choices, if you have a battery backuped caching controller that is set to write-back you should use NO-OP.
+ Processor Type and Features --->
+ ->Symmetric multi-processing support
+ (if you have multiple processors or a Dual-core or HT enabled)
+ ->High Memory Support
+ (if you have more than 900MB of System RAM move upto 4GB)
+ ->Timer frequency (1000 HZ)
+ (change to 1000Hz if using ztdummy for timer on pre 2.6.17 kernel)
+ ->[*]Tickless System (enable UNLESS using ztdummy on pre 2.6.17 kernel)
+ ->[*]Enable Kernel irq balancing
+ ->Preemption Model (No Forced Preemption (Server))
+ (^This one is very important!!!)
+ Power management options (ACPI, APM) --->
+ ->ACPI (Advanced Configuration and Power Interface) Support
+ (enable all down to Processor and thermal zone)
+ Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->
+ ->[*] PCI Express support
+ (if using Sangoma PCI Express card)
+ Networking --->
+ Amateur Radio support --->
+ <*> Amateur Radio AX.25 Level 2 protocol
+ [*] AX.25 DAMA Slave support
+ <*> Amateur Radio NET/ROM protocol
+ <*> Amateur Radio X.25 PLP (Rose)
+ (all needed for new Digium Octasic drivers)
+ Device Drivers --->
+ ATA/ATAPI/MFM/RLL support --->
+ <*> SCSI emulation support
+ (needed for SATA drives, also further down check chipset drivers)
+ SCSI device support --->
+ <*> RAID Transport Class
+ (needed if you are using a RAID)
+ SCSI low-level drivers --->
+ <*> Serial ATA (SATA) support
+ (required if using SATA drives)
+ (if using a SCSI RAID card pick correct driver here)
+ Multi-device support (RAID and LVM) --->
+ (select proper RAID types if using Linux RAID)
+ Network device support --->
+ Ethernet (10 or 100Mbit) --->
+ Ethernet (1000 Mbit) --->
+ (select proper drivers for the eype of network card you have)
+ Character devices --->
+ <*> Enhanced Real Time Clock Support
+ (double-check that this is enabled, very important)
+ Real Time Clock --->
+ <*> RTC class
+ (double-check that this is enabled, very important)
+ File systems --->
+ <*> Ext3 journalling file system support
+ (important if using ext3 filesystem)
+ pseudo filesystems --->
+ <*> Virtual memory file system support
+ (this is usually checked anyway but mandatory for recording to RAM[tmpfs])
+ Library routines --->
+ <*> CRC-CCITT functions
+ <*> CRC16 functions
+ <*> CRC32c (Castagnoli, et al) Cyclic Redundancy-Check
+ (important for new Digium Octasic drivers)
+ EXIT AND SAVE YOUR CONFIGURATION
+
+10. make clean # clean up the kernel build areas
+11. make bzImage # create a kernel bzImage
+12. make modules # build the modules into the image
+13. make modules_install # install kernel modules
+14. cp arch/i386/boot/bzImage /boot/bzImage-XXXX # copy image
+ (put whatever you want in XXXX, that is your new kernel name)
+15. cp System.map /boot/System.map-XXXX # copy system map
+16. mv -f /boot/System.map /boot/System.map-orig
+17. ln -s /boot/System.map-XXXX /boot/System.map # symlink map
+18. vi /etc/lilo.conf # edit the lilo boot config file
+ image=/boot/bzImage-XXXX # add the new image in above-
+ label=test-XXXX # the previous one
+ root=/dev/hda1 # device of root partition
+ read-only
+19. /sbin/lilo # run the lilo reload script
+20. vi /etc/fstab # to include the following line for recording to RAM
+ tmpfs /var/spool/asterisk/monitor tmpfs rw 0 0
+21. shutdown -r 0 # reboot machine and hope it worked
+
+OPTION 2: compile Linux kernel 2.4.33.3 (not recommended, very old)
+
+1. cd /usr/src/linux # move to your linux source directory
+2. cp .config config.save # copy old config to a save file
+3. make mrproper # prep for kernel assembly
+4. make menuconfig # launch configuration menu app
+ (this part is very dependant upon your own hardware)
+ enable processor version # select the processor that you have
+ enable SMP # if more than 1 processor or Intel HT
+ enable high memory () # if more than 1GB of RAM
+ enable SCSI Multiple # if SCSI drives
+ enable SCSI devices AMI Megaraid # if SCSI Megaraid adapter
+ enable 3com network devices # if 3com network card
+ enable ext3 file system # for ext3 to work
+ enable all ACPI options # for SMP to work
+ enable Enhanced Real Time Clock Support in Character devices section
+ # for SMP to work
+ enable any other hardware specific options
+ exit and save configuration
+5. make dep # build the kernel dependancies
+6. make clean # clean up the kernel build areas
+7. make bzImage # create a kernel bzImage
+8. make modules # build the modules into the image
+9. make modules_install # install kernel modules
+10. # nothing# mkinitrd /boot/initrd-XXXXXX.img XXXXXX *not needed on Slackware*
+11. cp arch/i386/boot/bzImage /boot/bzImage-XXXXXX # copy image
+ (put whatever you want in XXXXXX, that is your new kernel name)
+12. cp System.map /boot/System.map-XXXXXXN # copy system map
+13. mv -f /boot/System.map /boot/System.map-orig
+14. ln -s /boot/System.map-XXXXXX /boot/System.map # symlink map
+15. vi /etc/lilo.conf # edit the lilo boot config file
+ image=/boot/bzImage-XXXXXX # add the new image in above-
+ label=test-XXXXXX # the previous one
+ root=/dev/hda1 # device of root partition
+ read-only
+16. /sbin/lilo # run the lilo reload script
+17. shutdown -r 0 # reboot machine and hope it worked
+
+
+After compiling your kernel you can run a few commands to verify that you are
+running your new kernel and that devices are running as they are supposed to:
+ ps --info (will show you your linux kernel version and other info)
+ cat /proc/cpuinfo (will show you processor type and more than one if SMP)
+ top (will show you system memory)
+
+
+
+
+PHASE 3: 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.
+
+
+
+SUBPHASE 3.0: install new Gnu Make
+
+A new version of the "make" compilation application replaced the 4-year-old
+version that most Linux distros(Including Slackware) use. This is only needed
+if you will be building Asterisk from the 1.4 release tree.
+
+ - wget http://mirrors.kernel.org/gnu/make/make-3.81.tar.gz
+ - gunzip make-3.81.tar.gz
+ - tar xvf make-3.81.tar
+ - cd make-3.81
+ - ./configure
+ - make
+ - make install
+
+
+
+SUBPHASE 3.1: MySQL requirements
+
+You must at least have Mysql client installed on each VICIDIAL server, but you
+only need one database server.
+
+MySQL is a fast database system that is very easy to integrate with any
+application. You can either install the server on the local Asterisk system or
+have one somewhere on your network. For our purposes, we are creating an Asterisk
+installation that is self contained and needs no other local servers to operate,
+so we will need to install mysql on this machine.
+*REQUIRED and OPTIONAL* (only install MySQL server locally if you don't want to use an installation
+on another machine, Mysql client is required on all VICIDIAL servers)
+NOTE: a minimum of MySQL server 4.0.X is required
+
+ Go to http://www.mysql.com/ and download the mysql package
+ - to install this directly on the command line type:
+ - cd /usr/local
+ - wget http://mirror.trouble-free.net/mysql_mirror/Downloads/MySQL-4.0/mysql-4.0.27.tar.gz
+ # http://mirror.trouble-free.net/mysql_mirror/Downloads/MySQL-5.0/mysql-5.0.45.tar.gz
+ - gunzip mysql-4.0.27.tar.gz
+ - tar xvf mysql-4.0.27.tar
+ - cd mysql-4.0.27
+ - groupadd mysql
+ - useradd -g mysql mysql
+ - "./configure --prefix=/usr/local/mysql --enable-large-files --enable-shared=yes --with-readline"
+ **** If only MySQL client is needed for DBD::mysql then use this:
+ - "./configure --prefix=/usr/local/mysql --without-server --enable-shared=yes --with-readline"
+ **** If using version 5 tree MySQL client then use this:
+ - "./configure --prefix=/usr/local/mysql --without-server --enable-shared=yes --with-readline --enable-thread-safe-client"
+ - make
+ - make install
+ - scripts/mysql_install_db
+ - chown -R root /usr/local/mysql
+ - chown -R mysql /usr/local/mysql/var
+ - chgrp -R mysql /usr/local/mysql
+ - cp support-files/my-medium.cnf /etc/my.cnf
+ - /usr/local/mysql/bin/mysqld_safe --user=mysql --skip-name-resolve --skip-host-cache &
+ - ln -s /tmp/mysql.sock /var/run/mysql/mysql.sock
+ **** For some systems you may need to add the mysql/bin directory to your PATH:
+ - PATH=$PATH:$HOME/bin:/usr/local/mysql/bin/
+ - export PATH
+ **** you may also want to add those two lines to your /root/.bash_profile file
+ **** For Mysql 5 tree only, you also may need to copy the libmysqlclient.so file to libs
+ - cp /usr/local/mysql-5.0.45/libmysql/.libs/libmysqlclient.so /usr/lib/
+ - cp /usr/local/mysql-5.0.45/libmysql/.libs/libmysqlclient.so.15 /usr/lib/
+ - you are done
+
+ ** INSTALLATION NOTE **
+ If you are having Linuxthreads problems upon onfigure, just execute the following command:
+ echo '/* Linuxthreads */' >> /usr/include/pthread.h
+
+ ***** 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
+
+
+
+SUBPHASE 3.2: 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
+ - 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://downloads.vicidial.com/packages/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
+
+
+
+SUBPHASE 3.3: Installing other utilities
+
+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)
+
+1. Go to http://sourceforge.net/projects/sox/ and download the sox package
+ - to install this directly on the command line type:
+ - cd /usr/local
+ - cd /usr/local
+ - wget http://easynews.dl.sourceforge.net/sourceforge/sox/sox-14.0.1.tar.gz
+ - gunzip sox-14.0.1.tar.gz
+ - tar xvf sox-14.0.1.tar
+ - cd sox-14.0.1
+ - ./configure --disable-shared
+ - make (if alsa.o errors add --disable-alsa-dsp to configure and redo)
+ - make install
+ - you are done
+
+
+LAME is an 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)
+
+2. 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://easynews.dl.sourceforge.net/sourceforge/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*
+
+3. Go to http://www.gnu.org/software/screen/ and download the screen package
+ - to install this directly on the command line type:
+ - cd /usr/local
+ - wget http://ftp.gnu.org/gnu/screen/screen-4.0.2.tar.gz
+ or for older version:
+ - wget http://mirrors.kernel.org/gnu/screen/screen-3.9.15.tar.gz
+ - gunzip screen-4.0.2.tar.gz
+ - tar xvf screen-4.0.2.tar
+ - cd screen-4.0.2
+ - ./configure
+ - make
+ - make install
+ - you are done
+
+
+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)
+
+4. 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)
+
+5. 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*
+NOTE: another good network analysis utility is "iptraf" and is on most system
+
+6. 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)
+
+7. 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://superb-west.dl.sourceforge.net/sourceforge/ploticus/pl240src.tar.gz
+ - gunzip pl240src.tar.gz
+ - tar xvf pl240src.tar
+ - cd pl240src/src/
+ - make clean
+ - make
+ - make install
+ - you are done
+ NOTE: uncomment these lines to compile on systems without X11(v232):
+ NOXFLAG = -DNOX11
+ XLIBS =
+ XOBJ =
+ 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
+
+
+openssh is a remote login protocol server that is always a good idea to have
+updated on your system, so we're going to install a new version now.
+*OPTIONAL* (only updated as a precaution, not manditory)
+ [NOTE: newer zlib is needed before installing]
+
+8. Go to http://www.openssh.org/ and download the linux source for openssh
+ - to install this directly on the command line type:
+ - cd /usr/local
+ - wget http://www.zlib.net/zlib-1.2.3.tar.gz
+ - gunzip zlib-1.2.3.tar.gz
+ - tar xvf zlib-1.2.3.tar
+ - cd zlib-1.2.3
+ - ./configure
+ - make
+ - make install
+ - cd /usr/local
+ - wget http://ftp.openssh.zone-h.org/pub/OpenBSD/OpenSSH/portable/openssh-5.0p1.tar.gz
+ - gunzip openssh-5.0p1.tar.gz
+ - tar xvf openssh-5.0p1.tar
+ - cd openssh-5.0p1
+ - ./configure
+ - make
+ - make install
+ - you are done
+
+
+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)
+
+9. 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.8g.tar.gz
+ - gunzip openssl-0.9.8g.tar.gz
+ - tar xvf openssl-0.9.8g.tar
+ - cd openssl-0.9.8g
+ - ./config
+ - make
+ - make install
+ - you are done
+
+
+apache is a web server that allows you to use many different modules with it to
+extend it's functionality. In order to use some of the astguiclient
+functionalities we need to have Apache and PHP installed on this machine.
+*OPTIONAL* (only install Apache and PHP locally if you don't want to use an
+installation on another machine)
+
+10. Go to http://www.apache.org/ and download the apache unix source
+ Go to http://www.php.net/ and download the php unix source code
+ - to install this directly on the command line type:
+ - cd /usr/local
+ - wget http://mirror.candidhosting.com/pub/apache/httpd/httpd-2.2.8.tar.gz
+ - gunzip httpd-2.2.8.tar.gz
+ - tar xvf httpd-2.2.8.tar
+ - wget http://us2.php.net/distributions/php-5.2.6.tar.gz
+ NOTE: PHP 5.1.1 has also been tested with this release
+ - gunzip php-5.2.6.tar.gz
+ - tar xvf php-5.2.6.tar
+ - cd httpd-2.2.8
+ - ./configure --enable-so --with-apxs2
+ - make
+ - make install
+ - cd ../php-5.2.6
+ - ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
+ - make
+ - make install
+ - cp php.ini-dist /usr/local/lib/php.ini
+ NOTE: you will want to make sure NOTICE logging is turned off:
+ error_reporting = E_ALL & ~E_NOTICE ; (this is default)
+!!! REQUIRED !!! be sure the memory limit for scripts in php.ini is AT LEAST 48M:
+ memory_limit = 48M
+ Make sure short tags are enabled:
+ short_open_tag = On
+ some other fields to change if using web-based lead loader:
+ max_execution_time = 330
+ max_input_time = 360
+ post_max_size = 48M
+ upload_max_filesize = 42M
+ default_socket_timeout = 360
+
+ - vi /usr/local/apache2/conf/httpd.conf
+ add the following lines:
+ "AddType application/x-httpd-php .php .phtml"
+ "LoadModule php4_module libexec/libphp5.so"
+ or
+ "LoadModule php4_module modules/libphp5.so"
+ modify the index.html line and add index.php to the list
+
+ to disable logging, change:
+ "CustomLog logs/access_log common"
+ to this:
+ "CustomLog /dev/null common"
+
+ to enable web browsing of Recordings on Asterisk server, add this:
+ Alias /RECORDINGS/ "/var/spool/asterisk/monitorDONE/"
+
+
+ Options Indexes MultiViews
+ AllowOverride None
+ Order allow,deny
+ Allow from all
+
+ Forcetype application/forcedownload
+
+
+
+ - /usr/local/apache2/bin/apachectl start
+ - go to http://your-new-asterisk-server-ipaddress/ to see if it worked
+ - you are done
+ NOTE: If using PHP5 you may need to add the following line to php.ini:
+ short_open_tag = On
+
+ OPTIONAL- Load eAccelerator PHP-caching application:
+ Even so this is technically an optional part, it is strongly recommended that you install eAccelerator
+ since it will slash PHPs processing power requirements greatly. Without eAccelerator load on the system
+ can be ten times as high, which can cause all kinds of problems, this is especially true for single
+ system setups.
+ - 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)
+ zend_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*
+
+11. 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*
+
+12. 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*
+ 13. 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*
+ 14. 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
+
+
+
+
+
+PHASE 4: 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.30.2) and the SVN_DEV version(development
+branch). We recommend using Asterisk 1.2.30.2. 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 Asterisk 1.4, you will need to make sure that you set
+the servers table "asterisk_version" field to the proper version number and you
+can use the docs/conf_examples/extensions.conf.sample-1.4 file for your default
+dialplan
+
+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.30.2.tar.gz
+ - wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.27.tar.gz
+ - wget http://ftp.digium.com/pub/libpri/releases/libpri-1.2.5.tar.gz
+ - gunzip asterisk-1.2.30.2.tar.gz
+ - tar xvf asterisk-1.2.30.2.tar
+ - gunzip zaptel-1.2.27.tar.gz
+ - tar xvf zaptel-1.2.27.tar
+ - gunzip libpri-1.2.5.tar.gz
+ - tar xvf libpri-1.2.5.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.6 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")
+
+ - cd ./zaptel-1.2.27
+ - make clean
+ - make
+ - make install
+ - cd ../libpri-1.2.5
+ - make clean
+ - make
+ - make install
+ - cd ../asterisk-1.2.30.2
+ - (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.23 thru 1.2.30.2) apply the meetme DTMF passthru patch
+ - wget http://www.eflo.net/files/meetme_DTMF_passthru-1.2.23.patch
+ - patch -p1 < ./meetme_DTMF_passthru-1.2.23.patch
+ - File to patch: app_meetme.c
+ *OPTIONAL*(1.2.12.1 thru 1.2.30.2) 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
+
+ *OPTIONAL*(1.2.14 thru 1.2.30.2) rewrite of waitforsilence
+ - wget http://www.eflo.net/files/app_waitforsilence.c
+ - mv -f app_waitforsilence.c apps/app_waitforsilence.c
+
+ *OPTIONAL* shorter enter and leave sounds for meetme
+ - wget http://www.eflo.net/files/enter.h
+ - wget http://www.eflo.net/files/leave.h
+ - mv -f enter.h apps/enter.h
+ - mv -f leave.h apps/leave.h
+
+
+ - make clean
+ - make
+ - make install
+ - make samples # this makes sample conf files (only use for new installs)
+
+ - 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-3.2.4.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://downloads.vicidial.com/packages/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
+
+If you will be doing native music-on-hold for your inbound calls, you will need
+musiconhold audio files to be converted to native formats like GSM, ULAW and ALAW:
+
+ cd /var/lib/asterisk/mohmp3/
+ mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-sunshine.mp3 > /var/lib/asterisk/mohmp3/fpm-sunshine.raw
+ sox -r 44100 -w -s -c 1 fpm-sunshine.raw -r 8000 -c 1 fpm-sunshine.wav
+ sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm
+ sox fpm-sunshine.wav -t ul -r 8000 -b -c 1 fpm-sunshine.pcm
+ mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-calm-river.mp3 > /var/lib/asterisk/mohmp3/fpm-calm-river.raw
+ sox -r 44100 -w -s -c 1 fpm-calm-river.raw -r 8000 -c 1 fpm-calm-river.wav
+ sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm
+ sox fpm-calm-river.wav -t ul -r 8000 -b -c 1 fpm-calm-river.pcm
+ mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-world-mix.mp3 > /var/lib/asterisk/mohmp3/fpm-world-mix.raw
+ sox -r 44100 -w -s -c 1 fpm-world-mix.raw -r 8000 -c 1 fpm-world-mix.wav
+ sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm
+ sox fpm-world-mix.wav -t ul -r 8000 -b -c 1 fpm-world-mix.pcm
+ mkdir ../orig-mp3
+ mv -f *.mp3 ../orig-mp3/
+ mkdir ../quiet-mp3
+ cd ../quiet-mp3
+ sox -r 44100 -w -s -c 1 ../mohmp3/fpm-sunshine.raw -r 8000 -c 1 fpm-sunshine.wav vol 0.25
+ sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm
+ sox fpm-sunshine.wav -t ul -r 8000 -b -c 1 fpm-sunshine.pcm
+ sox -r 44100 -w -s -c 1 ../mohmp3/fpm-calm-river.raw -r 8000 -c 1 fpm-calm-river.wav vol 0.25
+ sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm
+ sox fpm-calm-river.wav -t ul -r 8000 -b -c 1 fpm-calm-river.pcm
+ sox -r 44100 -w -s -c 1 ../mohmp3/fpm-world-mix.raw -r 8000 -c 1 fpm-world-mix.wav vol 0.25
+ sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm
+ sox fpm-world-mix.wav -t ul -r 8000 -b -c 1 fpm-world-mix.pcm
+ rm -f ../mohmp3/*.raw
+
+
+
+PHASE 5: 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/Sangoma/Rhino/etc...) 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.
+
+
+
+SUBPHASE 5.0: 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/Linksys 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
+ - 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://127.0.0.1:4577/call_log)
+ exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN:1},55,o)
+ exten => _91NXXNXXXXXX,3,Hangup
+
+ [incoming]
+ exten => 1112223333,1,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
+TRUNKloop = IAX2/ASTloop:test@127.0.0.1:40569 ; used for blind monitoring
+TRUNKblind = IAX2/ASTblind:test@127.0.0.1:41569 ; used for testing
+
+[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://127.0.0.1:4577/call_log)
+ exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN:1},55,o)
+ exten => _91NXXNXXXXXX,3,Hangup
+
+### OPTIONAL SIP trunk extensions entries for long distance dialing over SIP
+ exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+ exten => _91NXXNXXXXXX,2,Dial(sip/${EXTEN:1}@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*.,1,Dial(${TRUNKIAX2}/${EXTEN:16},55,o)
+### server 2 extens:
+ exten => _010*010*010*015*.,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 asterisk 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:
+ /usr/share/astguiclient/start_asterisk_boot.pl
+
+
+
+SUBPHASE 5.1: 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 Linksys/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
+
+
+
+SUBPHASE 5.2: 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://downloads.vicidial.com/softphones/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
+
+
+SUBPHASE 5.3: 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...
+
+
+
+
+PHASE 6: INSTALLING ASTGUICLIENT AND VICIDIAL
+
+Now that Asterisk is installed and running we can add the astGUIclient and
+VICIDIAL components to the system.
+
+
+
+SUBPHASE 6.0: putting the files in place
+
+There are two methods for downloading astGUIclient/VICIDIAL, a release and SVN
+
+1. Go to http://astguiclient.sf.net/ and download the latest astguiclient
+package(as of this writing it is 2.0.4.1)
+ - for 2.0.X release:
+ - mkdir /usr/src/astguiclient
+ - cd /usr/src/astguiclient
+ - wget http://internap.dl.sourceforge.net/sourceforge/astguiclient/astguiclient_2.0.4.1.zip
+ - unzip astguiclient_2.0.4.1.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://svn.eflo.net:43690/agc_2-X/trunk
+ - cd 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://downloads.vicidial.com/sounds/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://downloads.vicidial.com/sounds/conf.gsm
+ cp conf.gsm park.gsm
+
+ - you are done
+
+
+
+SUBPHASE 6.1: 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;
+
+NOTE: if you will be using lead files with a language that does not use the
+standard latin character set then you will want to use UTF8 for your default
+characterset in the MySQL database. This requires at least MySQL 4.1.11 and you
+can use the following query to create the database:
+ CREATE DATABASE `asterisk` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+
+
+GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@'%' IDENTIFIED BY '1234';
+GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@localhost IDENTIFIED BY '1234';
+
+GRANT RELOAD ON *.* TO cron@'%';
+GRANT RELOAD ON *.* TO cron@localhost;
+
+flush privileges;
+
+# 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';
+
+# NOTE: make sure you do NOT put any spaces or other punctuation in the
+# server_id, phone, extension, or user fields in the queries below if you edit them.
+
+use asterisk;
+
+\. /usr/src/astguiclient/trunk/extras/MySQL_AST_CREATE_tables.sql
+ or you may need to run this if you get an error:
+ \. /usr/src/astguiclient/agc_2.0.4/extras/MySQL_AST_CREATE_tables.sql
+ \. /usr/src/astguiclient/astguiclient/MySQL_AST_CREATE_tables.sql
+
+### to load in default IAX and SIP phone accounts run the following query
+
+\. /usr/src/astguiclient/trunk/extras/sip-iax_phones.sql
+ or you may need to run this if you get an error:
+ \. /usr/src/astguiclient/agc_2.0.4/extras/sip-iax_phones.sql
+ \. /usr/src/astguiclient/astguiclient/sip-iax_phones.sql
+
+
+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.30.2');
+
+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','');
+insert into conferences values('8600030','10.10.10.15','');
+insert into conferences values('8600031','10.10.10.15','');
+insert into conferences values('8600032','10.10.10.15','');
+insert into conferences values('8600033','10.10.10.15','');
+insert into conferences values('8600034','10.10.10.15','');
+insert into conferences values('8600035','10.10.10.15','');
+insert into conferences values('8600036','10.10.10.15','');
+insert into conferences values('8600037','10.10.10.15','');
+insert into conferences values('8600038','10.10.10.15','');
+insert into conferences values('8600039','10.10.10.15','');
+insert into conferences values('8600040','10.10.10.15','');
+insert into conferences values('8600041','10.10.10.15','');
+insert into conferences values('8600042','10.10.10.15','');
+insert into conferences values('8600043','10.10.10.15','');
+insert into conferences values('8600044','10.10.10.15','');
+insert into conferences values('8600045','10.10.10.15','');
+insert into conferences values('8600046','10.10.10.15','');
+insert into conferences values('8600047','10.10.10.15','');
+insert into conferences values('8600048','10.10.10.15','');
+insert into conferences values('8600049','10.10.10.15','');
+
+quit
+
+ to populate the timezone/country table run this command from command line:
+ - /usr/share/astguiclient/ADMIN_area_code_populate.pl
+
+ to load the performance testing leads run these commands:
+ - cp /usr/src/astguiclient/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/
+ or
+ - cp /usr/src/astguiclient/agc_2.0.4/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/
+ - cp /usr/src/astguiclient_2.0.4.1/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/
+
+ - /usr/share/astguiclient/VICIDIAL_IN_new_leads_file.pl --forcelistid=107 --forcephonecode=1
+
+
+######------ END Mysql data entry ------######
+
+NOTE: If you will be using channelbanks for agent phones you can use the
+/extras/single_channelbank_phones.sql file to help enter the phones table entries.
+
+NOTE: If you will be using IAX or SIP phones for agent phones you can use the
+/extras/sip-iax_phones.sql file to help enter the phones table entries.
+
+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 "Admin" 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
+
+
+
+
+SUBPHASE 6.2: 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--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})
+
+; MANDITORY VDAD extens:
+; In this setup, the serverIP is the prefix followed by agent conf_exten
+; These lines are REQUIRED for VICIDIAL to work properly
+; local server extens:
+; BE SURE TO CHANGE THIS LINE FOR YOUR IP ADDRESS!
+ exten => _010*010*010*015*.,1,Goto(default,${EXTEN:16},1)
+ exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
+ exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
+; Local blind monitoring
+ exten => _08600XXX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,To)
+; OPTIONAL server 2 extens, needed for load balancing:
+ exten => _010*010*010*016*.,1,Dial(${TRUNKIAX2}/${EXTEN:16},55,o)
+
+; 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
+; SEE extensions.conf.sample-1.4 for changes needed for use with Asterisk 1.4
+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
+
+; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls,
+
+; 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
+
+; Extensions for performance testing
+exten => _91999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => _91999NXXXXXX,2,Dial(${TRUNKloop}/${EXTEN:2},,tTo)
+exten => _91999NXXXXXX,3,Hangup
+exten => 999999999999,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => 999999999999,2,Dial(${TRUNKloop}/${EXTEN:1},,tTo)
+exten => 999999999999,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
+
+; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls,
+; 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
+
+; parameters for agi-VDAD_ALL_inbound.agi (9 fields separated by five dashes "-----"):
+; 1. the method of call handling for the script:
+; - CID - CID received, add record with phone number
+; - CIDLOOKUP - Lookup CID to find record in whole system
+; - CIDLOOKUPRL - Restrict lookup to one list
+; - CIDLOOKUPRC - Restrict lookup to one campaign's lists
+; - CLOSER - Closer calls from VICIDIAL fronters
+; - ANI - ANI received, add record with phone number
+; - ANILOOKUP - Lookup ANI to find record in whole system
+; - ANILOOKUPRL - Restrict lookup to one list
+; - 3DIGITID - Enter 3 digit code to go to agent
+; - 4DIGITID - Enter 4 digit code to go to agent
+; - 5DIGITID - Enter 5 digit code to go to agent
+; - 10DIGITID - Enter 10 digit code to go to agent
+; 2. the method of searching for an available agent:
+; - LO - Load Balance Overflow only (priority to home server)
+; - LB - Load Balance total system
+; - SO - Home server only
+; 3. the full name of the IN GROUP to be used in vicidial for the inbound call
+; 4. the phone number that was called, for the log entry
+; 5. the callerID or lead_id of the person that called(usually overridden)
+; 6. the park extension audio file name if used
+; 7. the status of the call initially(usually not used)
+; 8. the list_id to insert the new lead under if it is new (and CID/ANI available)
+; 9. the phone dialing code to insert with the new lead if new (and CID/ANI available)
+; 10. the campaign_id to search within lists if CIDLOOKUPRC
+; inbound VICIDIAL call with CID delivery through T1 PRI
+exten => 1234,1,Answer ; Answer the line
+exten => 1234,2,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----CL_GALLERIA-----7274515134-----Closer-----park----------999-----1)
+exten => 1234,3,Hangup
+
+; inbound VICIDIAL transfer calls [can arrive through PRI T1 crossover, IAX or SIP channel]
+exten => _90009.,1,Answer ; Answer the line
+exten => _90009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1)
+exten => _90009.,3,Hangup
+exten => _990009.,1,Answer ; Answer the line
+exten => _990009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1)
+exten => _990009.,3,Hangup
+
+
+### follow these instructions if you plan to have VICIDIAL agents take inbound or closer calls:
+ 1. 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
+ 2. create a new campaign in VICIDIAL called "CLOSER" and set "allow inbound blended" to Y
+ 3. check the CL_GALLERIA checknox in the "Allowed In-Groups" section
+ 4. have agents log in to the CLOSER campaign and select the CL_GALLERIA in-group
+ 5. they will now start receiving inbound calls
+ 6. 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
+ 7. 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):
+
+; ZapBarge direct channel extensions
+exten => _86120XX,1,ZapBarge(${EXTEN:5})
+
+
+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 => 8600030
+conf => 8600031
+conf => 8600032
+conf => 8600033
+conf => 8600034
+conf => 8600035
+conf => 8600036
+conf => 8600037
+conf => 8600038
+conf => 8600039
+conf => 8600040
+conf => 8600041
+conf => 8600042
+conf => 8600043
+conf => 8600044
+conf => 8600045
+conf => 8600046
+conf => 8600047
+conf => 8600048
+conf => 8600049
+conf => 8600050
+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):
+
+; astGUIclient conferences
+exten => _86000[0-4]X,1,Meetme,${EXTEN}|q
+
+
+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
+
+; VICIDIAL conferences
+exten => _86000[5-9]X,1,Meetme,${EXTEN}|F
+exten => _86001XX,1,Meetme,${EXTEN}|F
+exten => _8600200,1,Meetme,${EXTEN}|F
+; quiet entry and leaving conferences for VICIDIAL
+exten => _78600XXX,1,Meetme,${EXTEN:1}|Fq
+; quiet monitor extensions for meetme rooms (for room managers)
+exten => _68600XXX,1,Meetme,${EXTEN:1}|Fmq
+; Local blind monitoring
+exten => _08600XXX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,To)
+
+; voicelab exten
+exten => _86009XX,1,Meetme,${EXTEN}|Fmq
+; voicelab exten moderator
+exten => _986009XX,1,Meetme,${EXTEN:1}
+
+######------ END extensions.conf changes for VD conf ------######
+
+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
+
+exten => 8304,1,Answer
+exten => 8304,2,Playback(ding)
+exten => 8304,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)
+; SEE extensions.conf.sample-1.4 for changes needed for use with Asterisk 1.4
+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)
+; SEE extensions.conf.sample-1.4 for changes needed for use with Asterisk 1.4
+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
+; SEE extensions.conf.sample-1.4 for changes needed for use with Asterisk 1.4
+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
+
+; prompts for recording AGI script, ID is 4321
+; first variable is format (gsm/wav)
+; second variable is timeout in milliseconds (default is 360000 [6 minutes])
+exten => 8167,1,Answer
+exten => 8167,2,AGI(agi-record_prompts.agi,wav-----360000)
+exten => 8167,3,Hangup
+exten => 8168,1,Answer
+exten => 8168,2,AGI(agi-record_prompts.agi,gsm-----360000)
+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
+
+
+
+SUBPHASE 6.3: 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 ------######
+
+
+
+SUBPHASE 6.4: 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):
+
+# OPTIONAL enable ip_relay(for same-machine trunking and blind monitoring)
+# /usr/share/astguiclient/ip_relay/relay_control start 2>/dev/null 1>&2
+
+# Disable console blanking and powersaving
+/usr/bin/setterm -blank
+/usr/bin/setterm -powersave off
+/usr/bin/setterm -powerdown
+
+### 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
+
+### roll the Asterisk logs upon reboot
+/usr/share/astguiclient/ADMIN_restart_roll_logs.pl
+
+### clear the server-related records from the database
+/usr/share/astguiclient/AST_reset_mysql_vars.pl
+
+### 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
+
+
+
+
+SUBPHASE 6.5: 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):
+
+### recording mixing/compressing/ftping scripts
+0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl
+#0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl
+1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl --GSM
+#2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --GSM
+
+### keepalive script for astguiclient processes
+* * * * * /usr/share/astguiclient/ADMIN_keepalive_ALL.pl
+
+### kill Hangup script for Asterisk updaters
+* * * * * /usr/share/astguiclient/AST_manager_kill_hung_congested.pl
+
+### updater for voicemail
+* * * * * /usr/share/astguiclient/AST_vm_update.pl
+
+### updater for conference validator
+* * * * * /usr/share/astguiclient/AST_conf_update.pl
+
+### flush queue DB table every hour for entries older than 1 hour
+11 * * * * /usr/share/astguiclient/AST_flush_DBqueue.pl -q
+
+### fix the vicidial_agent_log once every hour
+33 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl
+
+### updater for VICIDIAL hopper
+* * * * * /usr/share/astguiclient/AST_VDhopper.pl -q
+
+### adjust the GMT offset for the leads in the vicidial_list table
+1 1,7 * * * /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --debug --postal-code-gmt
+
+### reset several temporary-info tables in the database
+2 1 * * * /usr/share/astguiclient/AST_reset_mysql_vars.pl
+
+### optimize the database tables within the asterisk database
+3 1 * * * /usr/share/astguiclient/AST_DB_optimize.pl
+
+## adjust time on the server with ntp
+30 * * * * /usr/local/bin/ntpdate -u 18.145.0.30 2>/dev/null 1>&2
+
+### VICIDIAL agent time log weekly and daily summary report generation
+2 0 * * 0 /usr/share/astguiclient/AST_agent_week.pl
+22 0 * * * /usr/share/astguiclient/AST_agent_day.pl
+
+### VICIDIAL campaign export scripts (OPTIONAL)
+#32 0 * * * /usr/share/astguiclient/AST_VDsales_export.pl
+#42 0 * * * /usr/share/astguiclient/AST_sourceID_summary_export.pl
+
+### remove old recordings more than 7 days old
+#24 0 * * * /usr/bin/find /var/spool/asterisk/monitor -maxdepth 2 -type f -mtime +7 -print | xargs rm -f
+
+### remove old vicidial logs and asterisk logs more than 2 days old
+28 0 * * * /usr/bin/find /var/log/astguiclient -maxdepth 1 -type f -mtime +2 -print | xargs rm -f
+29 0 * * * /usr/bin/find /var/log/asterisk -maxdepth 3 -type f -mtime +2 -print | xargs rm -f
+
+
+
+
+ - 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
+
+NOTES:
+- The AST_agent_day.pl and AST_agent_week.pl scripts create an ASCII fixed-length report of all agent activity on the system
+- The AST_VDsales_export.pl script allows for the exporting(into several different formats) of specified vicidial_list data based on status and campaign as well as inbound group
+- The AST_sourceID_summary_export.pl script summarizes leads in the system by source_id and generates a text report
+
+
+
+
+
+SUBPHASE 6.6: 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','N','UNDEFINED');
+insert into vicidial_statuses values('QUEUE','Lead To Be Called','N','N','UNDEFINED');
+insert into vicidial_statuses values('INCALL','Lead Being Called','N','N','UNDEFINED');
+insert into vicidial_statuses values('DROP','Agent Not Available','N','Y','UNDEFINED');
+insert into vicidial_statuses values('XDROP','Agent Not Available IN','N','Y','UNDEFINED');
+insert into vicidial_statuses values('NA','No Answer AutoDial','N','N','UNDEFINED');
+
+insert into vicidial_statuses values('CALLBK','Call Back','Y','Y','UNDEFINED');
+insert into vicidial_statuses values('CBHOLD','Call Back Hold','N','Y','UNDEFINED');
+insert into vicidial_statuses values('A','Answering Machine','Y','N','UNDEFINED');
+insert into vicidial_statuses values('AA','Answering Machine Auto','N','N','UNDEFINED');
+insert into vicidial_statuses values('AM','Answering Machine Sent to Mesg','N','N','UNDEFINED');
+insert into vicidial_statuses values('AL','Answering Machine Msg Played','N','N','UNDEFINED');
+insert into vicidial_statuses values('B','Busy','Y','N','UNDEFINED');
+insert into vicidial_statuses values('DC','Disconnected Number','Y','N','UNDEFINED');
+insert into vicidial_statuses values('DEC','Declined Sale','Y','Y','UNDEFINED');
+insert into vicidial_statuses values('DNC','DO NOT CALL','Y','Y','UNDEFINED');
+insert into vicidial_statuses values('SALE','Sale Made','Y','Y','UNDEFINED');
+insert into vicidial_statuses values('N','No Answer','Y','N','UNDEFINED');
+insert into vicidial_statuses values('NI','Not Interested','Y','Y','UNDEFINED');
+insert into vicidial_statuses values('NP','No Pitch No Price','Y','Y','UNDEFINED');
+insert into vicidial_statuses values('XFER','Call Transferred','Y','Y','UNDEFINED');
+
+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
+
+
+
+SUBPHASE 6.7: 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
+
+
+
+SUBPHASE 6.8: 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 the recommended browser)
+- Mozilla 1.7 or greater
+- Netscape 8 or greater
+- Opera 8.5 or greater
+- Microsoft Internet Explorer 6.0
+
+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.
+
+
+
+SUBPHASE 6.9: 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 the recommended browser)
+- Mozilla 1.7 or greater
+- Netscape 8 or greater
+- Opera 8.5 or greater
+- Microsoft Internet Explorer 6.0
+
+This version is fully functional and has been tested in our production
+call center with no problems.
+
+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 full 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 password 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.
+
+
+
+PHASE 7.0: 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
diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/dnsmgr.conf.sample b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/dnsmgr.conf.sample
index 160aecc4..1215e584 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/dnsmgr.conf.sample
+++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/dnsmgr.conf.sample
@@ -1,3 +1,3 @@
-[general]
-enable=yes ; enable creation of managed DNS lookups
-refreshinterval=300 ; refresh managed DNS lookups every seconds
+[general]
+enable=yes ; enable creation of managed DNS lookups
+refreshinterval=300 ; refresh managed DNS lookups every seconds
diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample
index f5c087e9..50a64a5c 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample
+++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample
@@ -1,514 +1,514 @@
-[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
-TRUNKIAX1=IAX2/ASTtest1:test@10.10.10.16:4569 ; IAX trunk interface
-TRUNKBINFONE=IAX2/1112223333:PASSWORD@iax.binfone.com ; IAX trunk interface
-SIPtrunk=SIP/1234:PASSWORD@sip.provider.net ; SIP trunk
-TRUNKloop = IAX2/ASTloop:test@127.0.0.1:40569 ; used for blind monitoring
-TRUNKblind = IAX2/ASTblind:test@127.0.0.1:41569 ; used for testing
-
-
-[default]
-; VICI-GROUP DIRECT SUPPORT LINE (VICIHELP[84244357])
-exten => _84244XXX,1,Dial(IAX2/vicihelp/${EXTEN:5})
-
-; BE SURE TO CHANGE THIS LINE FOR YOUR IP ADDRESS!
-exten => _010*010*010*015*.,1,Goto(default,${EXTEN:16},1)
-exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
-exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
-; Local blind monitoring
-exten => _08600XXX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,To)
-
-; ### server 2 exten:
-; exten => _010*010*010*016*.,1,Dial(${TRUNKIAX1}/${EXTEN:16},55,o)
-
-
-; Example phone extensions
-
-; Extension 2000 Sipura/Linksys ATA 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/Linksys ATA line 2
-exten => 2001,1,Dial(sip/spa2001,30,to) ; Ring, 30 secs max
-exten => 2001,2,Voicemail,u2001 ; Send to voicemail...
-; Extension 2102 rings Grandstream phone
-exten => 2102,1,Dial(sip/gs102,30,to) ; Ring, 30 secs max
-exten => 2102,2,Voicemail,u2102 ; Send to voicemail...
-; Extension 401 rings the firefly softphone
-exten => 401,1,Dial((IAX2/firefly01@firefly01/s||t)
-exten => 401,2,Hangup
-
-; extensions for other SIP and IAX call center phones
-; cc100-cc150 SIP Phones
-exten => _1[0-5]X,1,Dial(sip/cc${EXTEN},20,to)
-; cc300-cc350 IAX Phones
-exten => _3[0-5]X,1,Dial(IAX2/cc${EXTEN},20,to)
-
-; extensions if using a T1 channelbank
-exten => _19XX,1,Dial(Zap/${EXTEN:2},30,o)
-exten => _19XX,2,Hangup
-
-; Extension 4001 rings Zap phone (this example for FXS on Zap port 1)
-exten => 4001,1,Dial(Zap/1,30,o) ; ring Zap device 1
-exten => 4001,2,Voicemail,u4001 ; Send to voicemail...
-
-
-; # 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)
-
-; FastAGI for VICIDIAL/astGUIclient call logging
-exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})
-
-; Inbound call from BINFONE
-; exten => 1112223333,1,AGI(agi://127.0.0.1:4577/call_log)
-; exten => 1112223333,2,Dial(sip/gs102,55,o)
-; exten => 1112223333,3,Hangup
-
-; 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
-; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls,
-exten => _901144XXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => _901144XXXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},55,To)
-exten => _901144XXXXXXXXXX,3,Hangup
-
-; dial a long distance outbound number to Australia
-; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls,
-exten => _901161XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => _901161XXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,To)
-exten => _901161XXXXXXXXX,3,Hangup
-
-; Extensions for performance testing
-exten => _91999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => _91999NXXXXXX,2,Dial(${TRUNKloop}/${EXTEN:2},,tTo)
-exten => _91999NXXXXXX,3,Hangup
-exten => 999999999999,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 999999999999,2,Dial(${TRUNKloop}/${EXTEN:1},,tTo)
-exten => 999999999999,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},,To)
-exten => _91800NXXXXXX,3,Hangup
-exten => _91888NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => _91888NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
-exten => _91888NXXXXXX,3,Hangup
-exten => _91877NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => _91877NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
-exten => _91877NXXXXXX,3,Hangup
-exten => _91866NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => _91866NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
-exten => _91866NXXXXXX,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},,To)
-exten => _9NXXXXXX,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},,To)
-exten => _9727NXXXXXX,3,Hangup
-
-; dial a long distance outbound number
-; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls
-exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => _91NXXNXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,To)
-exten => _91NXXNXXXXXX,3,Hangup
-; dial a long distance outbound number through BINFONE
-; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-; exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN:1},55,To)
-; exten => _91NXXNXXXXXX,3,Hangup
-; dial a long distance outbound number through a SIP provider
-; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-; exten => _91NXXNXXXXXX,2,Dial(sip/${EXTEN:1}@SIPtrunk,55,o)
-; exten => _91NXXNXXXXXX,3,Hangup
-
-; 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
-; This is not part of VICIDIAL, it is for astGUIclient agent use only
-
-; Extension 3429 - Inbound 800 number (1-800-555-3429) example of RBS T1
-; with 10 digit ANI and 4 digit DNIS star separated
-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,4,Answer
-exten => _*NXXNXXXXXX*3429,5,Dial(sip/spa2000&sip/spa2001,30,to)
-exten => _*NXXNXXXXXX*3429,6,Voicemail,u2000
-
-
-; parameters for agi-VDAD_ALL_inbound.agi (9 fields separated by five dashes "-----"):
-; 1. the method of call handling for the script:
-; - CID - CID received, add record with phone number
-; - CIDLOOKUP - Lookup CID to find record in whole system
-; - CIDLOOKUPRL - Restrict lookup to one list
-; - CIDLOOKUPRC - Restrict lookup to one campaign's lists
-; - CLOSER - Closer calls from VICIDIAL fronters
-; - ANI - ANI received, add record with phone number
-; - ANILOOKUP - Lookup ANI to find record in whole system
-; - ANILOOKUPRL - Restrict lookup to one list
-; - 3DIGITID - Enter 3 digit code to go to agent
-; - 4DIGITID - Enter 4 digit code to go to agent
-; - 5DIGITID - Enter 5 digit code to go to agent
-; - 10DIGITID - Enter 10 digit code to go to agent
-; 2. the method of searching for an available agent:
-; - LO - Load Balance Overflow only (priority to home server)
-; - LB - Load Balance total system
-; - SO - Home server only
-; 3. the full name of the IN GROUP to be used in vicidial for the inbound call
-; 4. the phone number that was called, for the log entry
-; 5. the callerID or lead_id of the person that called(usually overridden)
-; 6. the park extension audio file name if used
-; 7. the status of the call initially(usually not used)
-; 8. the list_id to insert the new lead under if it is new (and CID/ANI available)
-; 9. the phone dialing code to insert with the new lead if new (and CID/ANI available)
-; 10. the campaign_id to search within lists if CIDLOOKUPRC
-; inbound VICIDIAL call with CID delivery through T1 PRI
-exten => 1234,1,Answer ; Answer the line
-exten => 1234,2,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----CL_GALLERIA-----7274515134-----Closer-----park----------999-----1)
-exten => 1234,3,Hangup
-
-; inbound VICIDIAL transfer calls [can arrive through PRI T1 crossover, IAX or SIP channel]
-exten => _90009.,1,Answer ; Answer the line
-exten => _90009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1)
-exten => _90009.,3,Hangup
-exten => _990009.,1,Answer ; Answer the line
-exten => _990009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1)
-exten => _990009.,3,Hangup
-
-
-; barge monitoring extension
-exten => 8159,1,ZapBarge
-exten => 8159,2,Hangup
-
-; ZapBarge direct channel extensions
-exten => _86120XX,1,ZapBarge(${EXTEN:5})
-
-
-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
-
-; astGUIclient conferences
-exten => _86000[0-4]X,1,Meetme,${EXTEN}|q
-; VICIDIAL conferences
-exten => _86000[5-9]X,1,Meetme,${EXTEN}|F
-exten => _86001XX,1,Meetme,${EXTEN}|F
-exten => _8600200,1,Meetme,${EXTEN}|F
-; quiet entry and leaving conferences for VICIDIAL
-exten => _78600XXX,1,Meetme,${EXTEN:1}|Fq
-; quiet monitor extensions for meetme rooms (for room managers)
-exten => _68600XXX,1,Meetme,${EXTEN:1}|Fmq
-
-; voicelab exten
-exten => _86009XX,1,Meetme,${EXTEN}|Fmq
-; voicelab exten moderator
-exten => _986009XX,1,Meetme,${EXTEN:1}
-
-
-
-; 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
-
-exten => 8304,1,Answer
-exten => 8304,2,Playback(ding)
-exten => 8304,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)
-; Recording is limited to 1 hour, to make longer, just change the Wait,3600
-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)
-; Recording is limited to 1 hour, to make longer, just change the Wait,3600
-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
-
-; use for selective CallerID hangup by area code(hard-coded)
-exten => 8352,1,AGI(agi-VDADselective_CID_hangup.agi,${EXTEN})
-exten => 8352,2,Playback(safe_harbor)
-exten => 8352,3,Hangup
-
-; prompts for recording AGI script, ID is 4321
-; first variable is format (gsm/wav)
-; second variable is timeout in milliseconds (default is 720000 [12 minutes])
-exten => 8167,1,Answer
-exten => 8167,2,AGI(agi-record_prompts.agi,wav-----720000)
-exten => 8167,3,Hangup
-exten => 8168,1,Answer
-exten => 8168,2,AGI(agi-record_prompts.agi,gsm-----720000)
-exten => 8168,3,Hangup
-
-; playback of recorded prompts
-exten => _851XXXXX,1,Answer
-exten => _851XXXXX,2,Playback(${EXTEN})
-exten => _851XXXXX,3,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(1)
-exten => _85026666666666.,2,Voicemail(${EXTEN:14}|u)
-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
-
-;#### VDAD STANDARD TRANSFER ENTRIES ####
-; VICIDIAL_auto_dialer transfer script for no-agent campaigns:
-exten => 8364,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8364,2,AGI(agi-VDADtransferBROADCAST.agi,${EXTEN})
-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(2000|2000|1000|5000|120|50|4|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 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,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(2000|2000|1000|5000|120|50|4|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
-
-
-
-; PERFORMANCE TESTING
-exten => _999XXXXXX1,1,Answer
-exten => _999XXXXXX1,2,Wait(2)
-exten => _999XXXXXX1,3,Playback(beep)
-exten => _999XXXXXX1,4,Hangup
-
-exten => _999XXXX112,1,Wait(8)
-exten => _999XXXX112,2,Answer
-exten => _999XXXX112,3,Playback(demo-instruct)
-exten => _999XXXX112,4,Playback(demo-instruct)
-exten => _999XXXX112,5,Hangup
-
-exten => _999XXXXXX2,1,Wait(8)
-exten => _999XXXXXX2,2,Answer
-exten => _999XXXXXX2,3,Playback(demo-instruct)
-exten => _999XXXXXX2,4,Hangup
-
-exten => _999XXXXXX3,1,SetVar(PRI_CAUSE=1)
-exten => _999XXXXXX3,2,Hangup
-
-exten => _999XXXXXX4,1,SetVar(PRI_CAUSE=27)
-exten => _999XXXXXX4,2,Hangup
-
-exten => _999XXXXXX5,1,Wait(60)
-exten => _999XXXXXX5,2,Hangup
-
-exten => _999XXXXXX6,1,Wait(10)
-exten => _999XXXXXX6,2,Answer
-exten => _999XXXXXX6,3,Playback(demo-instruct)
-exten => _999XXXXXX6,4,Hangup
-
-exten => _999XXXXXX7,1,Wait(12)
-exten => _999XXXXXX7,2,Answer
-exten => _999XXXXXX7,3,Playback(demo-enterkeywords)
-exten => _999XXXXXX7,4,Hangup
-
-exten => _999XXXXXX8,1,SetVar(PRI_CAUSE=17)
-exten => _999XXXXXX8,2,Hangup
-
-exten => _999XXXXXX9,1,Wait(6)
-exten => _999XXXXXX9,2,Answer
-exten => _999XXXXXX9,3,Playback(demo-abouttotry)
-exten => _999XXXXXX9,4,Hangup
-
-exten => _999XXXXXX0,1,Wait(5)
-exten => _999XXXXXX0,2,Answer
-exten => _999XXXXXX0,3,Playback(vm-goodbye)
-exten => _999XXXXXX0,4,Hangup
-
-exten => 99999999999,1,Answer
-exten => 99999999999,2,Playback(conf)
-exten => 99999999999,3,Playback(conf)
-exten => 99999999999,4,Playback(conf)
-exten => 99999999999,5,Playback(conf)
-exten => 99999999999,6,Playback(conf)
-exten => 99999999999,7,Playback(conf)
-exten => 99999999999,8,Playback(conf)
-exten => 99999999999,9,Playback(conf)
-exten => 99999999999,10,Playback(conf)
-exten => 99999999999,11,Playback(conf)
-exten => 99999999999,12,Playback(conf)
-exten => 99999999999,13,Playback(conf)
-exten => 99999999999,14,Hangup
+[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
+TRUNKIAX1=IAX2/ASTtest1:test@10.10.10.16:4569 ; IAX trunk interface
+TRUNKBINFONE=IAX2/1112223333:PASSWORD@iax.binfone.com ; IAX trunk interface
+SIPtrunk=SIP/1234:PASSWORD@sip.provider.net ; SIP trunk
+TRUNKloop = IAX2/ASTloop:test@127.0.0.1:40569 ; used for blind monitoring
+TRUNKblind = IAX2/ASTblind:test@127.0.0.1:41569 ; used for testing
+
+
+[default]
+; VICI-GROUP DIRECT SUPPORT LINE (VICIHELP[84244357])
+exten => _84244XXX,1,Dial(IAX2/vicihelp/${EXTEN:5})
+
+; BE SURE TO CHANGE THIS LINE FOR YOUR IP ADDRESS!
+exten => _010*010*010*015*.,1,Goto(default,${EXTEN:16},1)
+exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
+exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
+; Local blind monitoring
+exten => _08600XXX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,To)
+
+; ### server 2 exten:
+; exten => _010*010*010*016*.,1,Dial(${TRUNKIAX1}/${EXTEN:16},55,o)
+
+
+; Example phone extensions
+
+; Extension 2000 Sipura/Linksys ATA 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/Linksys ATA line 2
+exten => 2001,1,Dial(sip/spa2001,30,to) ; Ring, 30 secs max
+exten => 2001,2,Voicemail,u2001 ; Send to voicemail...
+; Extension 2102 rings Grandstream phone
+exten => 2102,1,Dial(sip/gs102,30,to) ; Ring, 30 secs max
+exten => 2102,2,Voicemail,u2102 ; Send to voicemail...
+; Extension 401 rings the firefly softphone
+exten => 401,1,Dial((IAX2/firefly01@firefly01/s||t)
+exten => 401,2,Hangup
+
+; extensions for other SIP and IAX call center phones
+; cc100-cc150 SIP Phones
+exten => _1[0-5]X,1,Dial(sip/cc${EXTEN},20,to)
+; cc300-cc350 IAX Phones
+exten => _3[0-5]X,1,Dial(IAX2/cc${EXTEN},20,to)
+
+; extensions if using a T1 channelbank
+exten => _19XX,1,Dial(Zap/${EXTEN:2},30,o)
+exten => _19XX,2,Hangup
+
+; Extension 4001 rings Zap phone (this example for FXS on Zap port 1)
+exten => 4001,1,Dial(Zap/1,30,o) ; ring Zap device 1
+exten => 4001,2,Voicemail,u4001 ; Send to voicemail...
+
+
+; # 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)
+
+; FastAGI for VICIDIAL/astGUIclient call logging
+exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})
+
+; Inbound call from BINFONE
+; exten => 1112223333,1,AGI(agi://127.0.0.1:4577/call_log)
+; exten => 1112223333,2,Dial(sip/gs102,55,o)
+; exten => 1112223333,3,Hangup
+
+; 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
+; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls,
+exten => _901144XXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => _901144XXXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},55,To)
+exten => _901144XXXXXXXXXX,3,Hangup
+
+; dial a long distance outbound number to Australia
+; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls,
+exten => _901161XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => _901161XXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,To)
+exten => _901161XXXXXXXXX,3,Hangup
+
+; Extensions for performance testing
+exten => _91999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => _91999NXXXXXX,2,Dial(${TRUNKloop}/${EXTEN:2},,tTo)
+exten => _91999NXXXXXX,3,Hangup
+exten => 999999999999,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => 999999999999,2,Dial(${TRUNKloop}/${EXTEN:1},,tTo)
+exten => 999999999999,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},,To)
+exten => _91800NXXXXXX,3,Hangup
+exten => _91888NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => _91888NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
+exten => _91888NXXXXXX,3,Hangup
+exten => _91877NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => _91877NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
+exten => _91877NXXXXXX,3,Hangup
+exten => _91866NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => _91866NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
+exten => _91866NXXXXXX,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},,To)
+exten => _9NXXXXXX,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},,To)
+exten => _9727NXXXXXX,3,Hangup
+
+; dial a long distance outbound number
+; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls
+exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => _91NXXNXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,To)
+exten => _91NXXNXXXXXX,3,Hangup
+; dial a long distance outbound number through BINFONE
+; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+; exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN:1},55,To)
+; exten => _91NXXNXXXXXX,3,Hangup
+; dial a long distance outbound number through a SIP provider
+; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+; exten => _91NXXNXXXXXX,2,Dial(sip/${EXTEN:1}@SIPtrunk,55,o)
+; exten => _91NXXNXXXXXX,3,Hangup
+
+; 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
+; This is not part of VICIDIAL, it is for astGUIclient agent use only
+
+; Extension 3429 - Inbound 800 number (1-800-555-3429) example of RBS T1
+; with 10 digit ANI and 4 digit DNIS star separated
+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,4,Answer
+exten => _*NXXNXXXXXX*3429,5,Dial(sip/spa2000&sip/spa2001,30,to)
+exten => _*NXXNXXXXXX*3429,6,Voicemail,u2000
+
+
+; parameters for agi-VDAD_ALL_inbound.agi (9 fields separated by five dashes "-----"):
+; 1. the method of call handling for the script:
+; - CID - CID received, add record with phone number
+; - CIDLOOKUP - Lookup CID to find record in whole system
+; - CIDLOOKUPRL - Restrict lookup to one list
+; - CIDLOOKUPRC - Restrict lookup to one campaign's lists
+; - CLOSER - Closer calls from VICIDIAL fronters
+; - ANI - ANI received, add record with phone number
+; - ANILOOKUP - Lookup ANI to find record in whole system
+; - ANILOOKUPRL - Restrict lookup to one list
+; - 3DIGITID - Enter 3 digit code to go to agent
+; - 4DIGITID - Enter 4 digit code to go to agent
+; - 5DIGITID - Enter 5 digit code to go to agent
+; - 10DIGITID - Enter 10 digit code to go to agent
+; 2. the method of searching for an available agent:
+; - LO - Load Balance Overflow only (priority to home server)
+; - LB - Load Balance total system
+; - SO - Home server only
+; 3. the full name of the IN GROUP to be used in vicidial for the inbound call
+; 4. the phone number that was called, for the log entry
+; 5. the callerID or lead_id of the person that called(usually overridden)
+; 6. the park extension audio file name if used
+; 7. the status of the call initially(usually not used)
+; 8. the list_id to insert the new lead under if it is new (and CID/ANI available)
+; 9. the phone dialing code to insert with the new lead if new (and CID/ANI available)
+; 10. the campaign_id to search within lists if CIDLOOKUPRC
+; inbound VICIDIAL call with CID delivery through T1 PRI
+exten => 1234,1,Answer ; Answer the line
+exten => 1234,2,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----CL_GALLERIA-----7274515134-----Closer-----park----------999-----1)
+exten => 1234,3,Hangup
+
+; inbound VICIDIAL transfer calls [can arrive through PRI T1 crossover, IAX or SIP channel]
+exten => _90009.,1,Answer ; Answer the line
+exten => _90009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1)
+exten => _90009.,3,Hangup
+exten => _990009.,1,Answer ; Answer the line
+exten => _990009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1)
+exten => _990009.,3,Hangup
+
+
+; barge monitoring extension
+exten => 8159,1,ZapBarge
+exten => 8159,2,Hangup
+
+; ZapBarge direct channel extensions
+exten => _86120XX,1,ZapBarge(${EXTEN:5})
+
+
+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
+
+; astGUIclient conferences
+exten => _86000[0-4]X,1,Meetme,${EXTEN}|q
+; VICIDIAL conferences
+exten => _86000[5-9]X,1,Meetme,${EXTEN}|F
+exten => _86001XX,1,Meetme,${EXTEN}|F
+exten => _8600200,1,Meetme,${EXTEN}|F
+; quiet entry and leaving conferences for VICIDIAL
+exten => _78600XXX,1,Meetme,${EXTEN:1}|Fq
+; quiet monitor extensions for meetme rooms (for room managers)
+exten => _68600XXX,1,Meetme,${EXTEN:1}|Fmq
+
+; voicelab exten
+exten => _86009XX,1,Meetme,${EXTEN}|Fmq
+; voicelab exten moderator
+exten => _986009XX,1,Meetme,${EXTEN:1}
+
+
+
+; 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
+
+exten => 8304,1,Answer
+exten => 8304,2,Playback(ding)
+exten => 8304,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)
+; Recording is limited to 1 hour, to make longer, just change the Wait,3600
+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)
+; Recording is limited to 1 hour, to make longer, just change the Wait,3600
+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
+
+; use for selective CallerID hangup by area code(hard-coded)
+exten => 8352,1,AGI(agi-VDADselective_CID_hangup.agi,${EXTEN})
+exten => 8352,2,Playback(safe_harbor)
+exten => 8352,3,Hangup
+
+; prompts for recording AGI script, ID is 4321
+; first variable is format (gsm/wav)
+; second variable is timeout in milliseconds (default is 720000 [12 minutes])
+exten => 8167,1,Answer
+exten => 8167,2,AGI(agi-record_prompts.agi,wav-----720000)
+exten => 8167,3,Hangup
+exten => 8168,1,Answer
+exten => 8168,2,AGI(agi-record_prompts.agi,gsm-----720000)
+exten => 8168,3,Hangup
+
+; playback of recorded prompts
+exten => _851XXXXX,1,Answer
+exten => _851XXXXX,2,Playback(${EXTEN})
+exten => _851XXXXX,3,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(1)
+exten => _85026666666666.,2,Voicemail(${EXTEN:14}|u)
+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
+
+;#### VDAD STANDARD TRANSFER ENTRIES ####
+; VICIDIAL_auto_dialer transfer script for no-agent campaigns:
+exten => 8364,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => 8364,2,AGI(agi-VDADtransferBROADCAST.agi,${EXTEN})
+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(2000|2000|1000|5000|120|50|4|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 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,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(2000|2000|1000|5000|120|50|4|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
+
+
+
+; PERFORMANCE TESTING
+exten => _999XXXXXX1,1,Answer
+exten => _999XXXXXX1,2,Wait(2)
+exten => _999XXXXXX1,3,Playback(beep)
+exten => _999XXXXXX1,4,Hangup
+
+exten => _999XXXX112,1,Wait(8)
+exten => _999XXXX112,2,Answer
+exten => _999XXXX112,3,Playback(demo-instruct)
+exten => _999XXXX112,4,Playback(demo-instruct)
+exten => _999XXXX112,5,Hangup
+
+exten => _999XXXXXX2,1,Wait(8)
+exten => _999XXXXXX2,2,Answer
+exten => _999XXXXXX2,3,Playback(demo-instruct)
+exten => _999XXXXXX2,4,Hangup
+
+exten => _999XXXXXX3,1,SetVar(PRI_CAUSE=1)
+exten => _999XXXXXX3,2,Hangup
+
+exten => _999XXXXXX4,1,SetVar(PRI_CAUSE=27)
+exten => _999XXXXXX4,2,Hangup
+
+exten => _999XXXXXX5,1,Wait(60)
+exten => _999XXXXXX5,2,Hangup
+
+exten => _999XXXXXX6,1,Wait(10)
+exten => _999XXXXXX6,2,Answer
+exten => _999XXXXXX6,3,Playback(demo-instruct)
+exten => _999XXXXXX6,4,Hangup
+
+exten => _999XXXXXX7,1,Wait(12)
+exten => _999XXXXXX7,2,Answer
+exten => _999XXXXXX7,3,Playback(demo-enterkeywords)
+exten => _999XXXXXX7,4,Hangup
+
+exten => _999XXXXXX8,1,SetVar(PRI_CAUSE=17)
+exten => _999XXXXXX8,2,Hangup
+
+exten => _999XXXXXX9,1,Wait(6)
+exten => _999XXXXXX9,2,Answer
+exten => _999XXXXXX9,3,Playback(demo-abouttotry)
+exten => _999XXXXXX9,4,Hangup
+
+exten => _999XXXXXX0,1,Wait(5)
+exten => _999XXXXXX0,2,Answer
+exten => _999XXXXXX0,3,Playback(vm-goodbye)
+exten => _999XXXXXX0,4,Hangup
+
+exten => 99999999999,1,Answer
+exten => 99999999999,2,Playback(conf)
+exten => 99999999999,3,Playback(conf)
+exten => 99999999999,4,Playback(conf)
+exten => 99999999999,5,Playback(conf)
+exten => 99999999999,6,Playback(conf)
+exten => 99999999999,7,Playback(conf)
+exten => 99999999999,8,Playback(conf)
+exten => 99999999999,9,Playback(conf)
+exten => 99999999999,10,Playback(conf)
+exten => 99999999999,11,Playback(conf)
+exten => 99999999999,12,Playback(conf)
+exten => 99999999999,13,Playback(conf)
+exten => 99999999999,14,Hangup
diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample-1.4 b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample-1.4
index afd864d0..a47d45aa 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample-1.4
+++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample-1.4
@@ -1,514 +1,514 @@
-[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
-TRUNKIAX1=IAX2/ASTtest1:test@10.10.10.16:4569 ; IAX trunk interface
-TRUNKBINFONE=IAX2/1112223333:PASSWORD@iax.binfone.com ; IAX trunk interface
-SIPtrunk=SIP/1234:PASSWORD@sip.provider.net ; SIP trunk
-TRUNKloop = IAX2/ASTloop:test@127.0.0.1:40569 ; used for blind monitoring
-TRUNKblind = IAX2/ASTblind:test@127.0.0.1:41569 ; used for testing
-
-
-[default]
-; VICI-GROUP DIRECT SUPPORT LINE (VICIHELP[84244357])
-exten => _84244XXX,1,Dial(IAX2/vicihelp/${EXTEN:5})
-
-; BE SURE TO CHANGE THIS LINE FOR YOUR IP ADDRESS!
-exten => _010*010*010*015*.,1,Goto(default,${EXTEN:16},1)
-exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
-exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
-; Local blind monitoring
-exten => _08600XXX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,To)
-
-; ### server 2 exten:
-; exten => _010*010*010*016*.,1,Dial(${TRUNKIAX1}/${EXTEN:16},55,o)
-
-
-; Example phone extensions
-
-; Extension 2000 Sipura/Linksys ATA 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/Linksys ATA line 2
-exten => 2001,1,Dial(sip/spa2001,30,to) ; Ring, 30 secs max
-exten => 2001,2,Voicemail,u2001 ; Send to voicemail...
-; Extension 2102 rings Grandstream phone
-exten => 2102,1,Dial(sip/gs102,30,to) ; Ring, 30 secs max
-exten => 2102,2,Voicemail,u2102 ; Send to voicemail...
-; Extension 401 rings the firefly softphone
-exten => 401,1,Dial((IAX2/firefly01@firefly01/s||t)
-exten => 401,2,Hangup
-
-; extensions for other SIP and IAX call center phones
-; cc100-cc150 SIP Phones
-exten => _1[0-5]X,1,Dial(sip/cc${EXTEN},20,to)
-; cc300-cc350 IAX Phones
-exten => _3[0-5]X,1,Dial(IAX2/cc${EXTEN},20,to)
-
-; extensions if using a T1 channelbank
-exten => _19XX,1,Dial(Zap/${EXTEN:2},30,o)
-exten => _19XX,2,Hangup
-
-; Extension 4001 rings Zap phone (this example for FXS on Zap port 1)
-exten => 4001,1,Dial(Zap/1,30,o) ; ring Zap device 1
-exten => 4001,2,Voicemail,u4001 ; Send to voicemail...
-
-
-; # 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)
-
-; FastAGI for VICIDIAL/astGUIclient call logging
-exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})
-
-; Inbound call from BINFONE
-; exten => 1112223333,1,AGI(agi://127.0.0.1:4577/call_log)
-; exten => 1112223333,2,Dial(sip/gs102,55,o)
-; exten => 1112223333,3,Hangup
-
-; 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(all)}-----${CALLERID(num)}-----${CALLERID(name)})
-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
-; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls,
-exten => _901144XXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => _901144XXXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},55,To)
-exten => _901144XXXXXXXXXX,3,Hangup
-
-; dial a long distance outbound number to Australia
-; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls,
-exten => _901161XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => _901161XXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,To)
-exten => _901161XXXXXXXXX,3,Hangup
-
-; Extensions for performance testing
-exten => _91999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => _91999NXXXXXX,2,Dial(${TRUNKloop}/${EXTEN:2},,tTo)
-exten => _91999NXXXXXX,3,Hangup
-exten => 999999999999,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 999999999999,2,Dial(${TRUNKloop}/${EXTEN:1},,tTo)
-exten => 999999999999,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},,To)
-exten => _91800NXXXXXX,3,Hangup
-exten => _91888NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => _91888NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
-exten => _91888NXXXXXX,3,Hangup
-exten => _91877NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => _91877NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
-exten => _91877NXXXXXX,3,Hangup
-exten => _91866NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => _91866NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
-exten => _91866NXXXXXX,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},,To)
-exten => _9NXXXXXX,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},,To)
-exten => _9727NXXXXXX,3,Hangup
-
-; dial a long distance outbound number
-; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls
-exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => _91NXXNXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,To)
-exten => _91NXXNXXXXXX,3,Hangup
-; dial a long distance outbound number through BINFONE
-; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-; exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN:1},55,To)
-; exten => _91NXXNXXXXXX,3,Hangup
-; dial a long distance outbound number through a SIP provider
-; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
-; exten => _91NXXNXXXXXX,2,Dial(sip/${EXTEN:1}@SIPtrunk,55,o)
-; exten => _91NXXNXXXXXX,3,Hangup
-
-; 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
-; This is not part of VICIDIAL, it is for astGUIclient agent use only
-
-; Extension 3429 - Inbound 800 number (1-800-555-3429) example of RBS T1
-; with 10 digit ANI and 4 digit DNIS star separated
-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,4,Answer
-exten => _*NXXNXXXXXX*3429,5,Dial(sip/spa2000&sip/spa2001,30,to)
-exten => _*NXXNXXXXXX*3429,6,Voicemail,u2000
-
-
-; parameters for agi-VDAD_ALL_inbound.agi (9 fields separated by five dashes "-----"):
-; 1. the method of call handling for the script:
-; - CID - CID received, add record with phone number
-; - CIDLOOKUP - Lookup CID to find record in whole system
-; - CIDLOOKUPRL - Restrict lookup to one list
-; - CIDLOOKUPRC - Restrict lookup to one campaign's lists
-; - CLOSER - Closer calls from VICIDIAL fronters
-; - ANI - ANI received, add record with phone number
-; - ANILOOKUP - Lookup ANI to find record in whole system
-; - ANILOOKUPRL - Restrict lookup to one list
-; - 3DIGITID - Enter 3 digit code to go to agent
-; - 4DIGITID - Enter 4 digit code to go to agent
-; - 5DIGITID - Enter 5 digit code to go to agent
-; - 10DIGITID - Enter 10 digit code to go to agent
-; 2. the method of searching for an available agent:
-; - LO - Load Balance Overflow only (priority to home server)
-; - LB - Load Balance total system
-; - SO - Home server only
-; 3. the full name of the IN GROUP to be used in vicidial for the inbound call
-; 4. the phone number that was called, for the log entry
-; 5. the callerID or lead_id of the person that called(usually overridden)
-; 6. the park extension audio file name if used
-; 7. the status of the call initially(usually not used)
-; 8. the list_id to insert the new lead under if it is new (and CID/ANI available)
-; 9. the phone dialing code to insert with the new lead if new (and CID/ANI available)
-; 10. the campaign_id to search within lists if CIDLOOKUPRC
-; inbound VICIDIAL call with CID delivery through T1 PRI
-exten => 1234,1,Answer ; Answer the line
-exten => 1234,2,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----CL_GALLERIA-----7274515134-----Closer-----park----------999-----1)
-exten => 1234,3,Hangup
-
-; inbound VICIDIAL transfer calls [can arrive through PRI T1 crossover, IAX or SIP channel]
-exten => _90009.,1,Answer ; Answer the line
-exten => _90009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1)
-exten => _90009.,3,Hangup
-exten => _990009.,1,Answer ; Answer the line
-exten => _990009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1)
-exten => _990009.,3,Hangup
-
-
-; barge monitoring extension
-exten => 8159,1,ZapBarge
-exten => 8159,2,Hangup
-
-; ZapBarge direct channel extensions
-exten => _86120XX,1,ZapBarge(${EXTEN:5})
-
-
-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
-
-; astGUIclient conferences
-exten => _86000[0-4]X,1,Meetme,${EXTEN}|q
-; VICIDIAL conferences
-exten => _86000[5-9]X,1,Meetme,${EXTEN}|F
-exten => _86001XX,1,Meetme,${EXTEN}|F
-exten => _8600200,1,Meetme,${EXTEN}|F
-; quiet entry and leaving conferences for VICIDIAL
-exten => _78600XXX,1,Meetme,${EXTEN:1}|Fq
-; quiet monitor extensions for meetme rooms (for room managers)
-exten => _68600XXX,1,Meetme,${EXTEN:1}|Fmq
-
-; voicelab exten
-exten => _86009XX,1,Meetme,${EXTEN}|Fmq
-; voicelab exten moderator
-exten => _986009XX,1,Meetme,${EXTEN:1}
-
-
-
-; 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
-
-exten => 8304,1,Answer
-exten => 8304,2,Playback(ding)
-exten => 8304,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)
-; Recording is limited to 1 hour, to make longer, just change the Wait,3600
-exten => 8309,1,Answer
-exten => 8309,2,Monitor(wav,${CALLERID(name)})
-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)
-; Recording is limited to 1 hour, to make longer, just change the Wait,3600
-exten => 8310,1,Answer
-exten => 8310,2,Monitor(gsm,${CALLERID(name)})
-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
-
-; use for selective CallerID hangup by area code(hard-coded)
-exten => 8352,1,AGI(agi-VDADselective_CID_hangup.agi,${EXTEN})
-exten => 8352,2,Playback(safe_harbor)
-exten => 8352,3,Hangup
-
-; prompts for recording AGI script, ID is 4321
-; first variable is format (gsm/wav)
-; second variable is timeout in milliseconds (default is 720000 [12 minutes])
-exten => 8167,1,Answer
-exten => 8167,2,AGI(agi-record_prompts.agi,wav-----720000)
-exten => 8167,3,Hangup
-exten => 8168,1,Answer
-exten => 8168,2,AGI(agi-record_prompts.agi,gsm-----720000)
-exten => 8168,3,Hangup
-
-; playback of recorded prompts
-exten => _851XXXXX,1,Answer
-exten => _851XXXXX,2,Playback(${EXTEN})
-exten => _851XXXXX,3,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${{CALLERID(num)}(num)})
-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(1)
-exten => _85026666666666.,2,Voicemail(${EXTEN:14}|u)
-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
-
-;#### VDAD STANDARD TRANSFER ENTRIES ####
-; VICIDIAL_auto_dialer transfer script for no-agent campaigns:
-exten => 8364,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8364,2,AGI(agi-VDADtransferBROADCAST.agi,${EXTEN})
-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(2000|2000|1000|5000|120|50|4|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 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,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(2000|2000|1000|5000|120|50|4|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
-
-
-
-; PERFORMANCE TESTING
-exten => _999XXXXXX1,1,Answer
-exten => _999XXXXXX1,2,Wait(2)
-exten => _999XXXXXX1,3,Playback(beep)
-exten => _999XXXXXX1,4,Hangup
-
-exten => _999XXXX112,1,Wait(8)
-exten => _999XXXX112,2,Answer
-exten => _999XXXX112,3,Playback(demo-instruct)
-exten => _999XXXX112,4,Playback(demo-instruct)
-exten => _999XXXX112,5,Hangup
-
-exten => _999XXXXXX2,1,Wait(8)
-exten => _999XXXXXX2,2,Answer
-exten => _999XXXXXX2,3,Playback(demo-instruct)
-exten => _999XXXXXX2,4,Hangup
-
-exten => _999XXXXXX3,1,SetVar(PRI_CAUSE=1)
-exten => _999XXXXXX3,2,Hangup
-
-exten => _999XXXXXX4,1,SetVar(PRI_CAUSE=27)
-exten => _999XXXXXX4,2,Hangup
-
-exten => _999XXXXXX5,1,Wait(60)
-exten => _999XXXXXX5,2,Hangup
-
-exten => _999XXXXXX6,1,Wait(10)
-exten => _999XXXXXX6,2,Answer
-exten => _999XXXXXX6,3,Playback(demo-instruct)
-exten => _999XXXXXX6,4,Hangup
-
-exten => _999XXXXXX7,1,Wait(12)
-exten => _999XXXXXX7,2,Answer
-exten => _999XXXXXX7,3,Playback(demo-enterkeywords)
-exten => _999XXXXXX7,4,Hangup
-
-exten => _999XXXXXX8,1,SetVar(PRI_CAUSE=17)
-exten => _999XXXXXX8,2,Hangup
-
-exten => _999XXXXXX9,1,Wait(6)
-exten => _999XXXXXX9,2,Answer
-exten => _999XXXXXX9,3,Playback(demo-abouttotry)
-exten => _999XXXXXX9,4,Hangup
-
-exten => _999XXXXXX0,1,Wait(5)
-exten => _999XXXXXX0,2,Answer
-exten => _999XXXXXX0,3,Playback(vm-goodbye)
-exten => _999XXXXXX0,4,Hangup
-
-exten => 99999999999,1,Answer
-exten => 99999999999,2,Playback(conf)
-exten => 99999999999,3,Playback(conf)
-exten => 99999999999,4,Playback(conf)
-exten => 99999999999,5,Playback(conf)
-exten => 99999999999,6,Playback(conf)
-exten => 99999999999,7,Playback(conf)
-exten => 99999999999,8,Playback(conf)
-exten => 99999999999,9,Playback(conf)
-exten => 99999999999,10,Playback(conf)
-exten => 99999999999,11,Playback(conf)
-exten => 99999999999,12,Playback(conf)
-exten => 99999999999,13,Playback(conf)
-exten => 99999999999,14,Hangup
+[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
+TRUNKIAX1=IAX2/ASTtest1:test@10.10.10.16:4569 ; IAX trunk interface
+TRUNKBINFONE=IAX2/1112223333:PASSWORD@iax.binfone.com ; IAX trunk interface
+SIPtrunk=SIP/1234:PASSWORD@sip.provider.net ; SIP trunk
+TRUNKloop = IAX2/ASTloop:test@127.0.0.1:40569 ; used for blind monitoring
+TRUNKblind = IAX2/ASTblind:test@127.0.0.1:41569 ; used for testing
+
+
+[default]
+; VICI-GROUP DIRECT SUPPORT LINE (VICIHELP[84244357])
+exten => _84244XXX,1,Dial(IAX2/vicihelp/${EXTEN:5})
+
+; BE SURE TO CHANGE THIS LINE FOR YOUR IP ADDRESS!
+exten => _010*010*010*015*.,1,Goto(default,${EXTEN:16},1)
+exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
+exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
+; Local blind monitoring
+exten => _08600XXX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,To)
+
+; ### server 2 exten:
+; exten => _010*010*010*016*.,1,Dial(${TRUNKIAX1}/${EXTEN:16},55,o)
+
+
+; Example phone extensions
+
+; Extension 2000 Sipura/Linksys ATA 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/Linksys ATA line 2
+exten => 2001,1,Dial(sip/spa2001,30,to) ; Ring, 30 secs max
+exten => 2001,2,Voicemail,u2001 ; Send to voicemail...
+; Extension 2102 rings Grandstream phone
+exten => 2102,1,Dial(sip/gs102,30,to) ; Ring, 30 secs max
+exten => 2102,2,Voicemail,u2102 ; Send to voicemail...
+; Extension 401 rings the firefly softphone
+exten => 401,1,Dial((IAX2/firefly01@firefly01/s||t)
+exten => 401,2,Hangup
+
+; extensions for other SIP and IAX call center phones
+; cc100-cc150 SIP Phones
+exten => _1[0-5]X,1,Dial(sip/cc${EXTEN},20,to)
+; cc300-cc350 IAX Phones
+exten => _3[0-5]X,1,Dial(IAX2/cc${EXTEN},20,to)
+
+; extensions if using a T1 channelbank
+exten => _19XX,1,Dial(Zap/${EXTEN:2},30,o)
+exten => _19XX,2,Hangup
+
+; Extension 4001 rings Zap phone (this example for FXS on Zap port 1)
+exten => 4001,1,Dial(Zap/1,30,o) ; ring Zap device 1
+exten => 4001,2,Voicemail,u4001 ; Send to voicemail...
+
+
+; # 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)
+
+; FastAGI for VICIDIAL/astGUIclient call logging
+exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})
+
+; Inbound call from BINFONE
+; exten => 1112223333,1,AGI(agi://127.0.0.1:4577/call_log)
+; exten => 1112223333,2,Dial(sip/gs102,55,o)
+; exten => 1112223333,3,Hangup
+
+; 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(all)}-----${CALLERID(num)}-----${CALLERID(name)})
+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
+; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls,
+exten => _901144XXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => _901144XXXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},55,To)
+exten => _901144XXXXXXXXXX,3,Hangup
+
+; dial a long distance outbound number to Australia
+; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls,
+exten => _901161XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => _901161XXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,To)
+exten => _901161XXXXXXXXX,3,Hangup
+
+; Extensions for performance testing
+exten => _91999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => _91999NXXXXXX,2,Dial(${TRUNKloop}/${EXTEN:2},,tTo)
+exten => _91999NXXXXXX,3,Hangup
+exten => 999999999999,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => 999999999999,2,Dial(${TRUNKloop}/${EXTEN:1},,tTo)
+exten => 999999999999,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},,To)
+exten => _91800NXXXXXX,3,Hangup
+exten => _91888NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => _91888NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
+exten => _91888NXXXXXX,3,Hangup
+exten => _91877NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => _91877NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
+exten => _91877NXXXXXX,3,Hangup
+exten => _91866NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => _91866NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
+exten => _91866NXXXXXX,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},,To)
+exten => _9NXXXXXX,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},,To)
+exten => _9727NXXXXXX,3,Hangup
+
+; dial a long distance outbound number
+; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls
+exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => _91NXXNXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,To)
+exten => _91NXXNXXXXXX,3,Hangup
+; dial a long distance outbound number through BINFONE
+; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+; exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN:1},55,To)
+; exten => _91NXXNXXXXXX,3,Hangup
+; dial a long distance outbound number through a SIP provider
+; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+; exten => _91NXXNXXXXXX,2,Dial(sip/${EXTEN:1}@SIPtrunk,55,o)
+; exten => _91NXXNXXXXXX,3,Hangup
+
+; 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
+; This is not part of VICIDIAL, it is for astGUIclient agent use only
+
+; Extension 3429 - Inbound 800 number (1-800-555-3429) example of RBS T1
+; with 10 digit ANI and 4 digit DNIS star separated
+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,4,Answer
+exten => _*NXXNXXXXXX*3429,5,Dial(sip/spa2000&sip/spa2001,30,to)
+exten => _*NXXNXXXXXX*3429,6,Voicemail,u2000
+
+
+; parameters for agi-VDAD_ALL_inbound.agi (9 fields separated by five dashes "-----"):
+; 1. the method of call handling for the script:
+; - CID - CID received, add record with phone number
+; - CIDLOOKUP - Lookup CID to find record in whole system
+; - CIDLOOKUPRL - Restrict lookup to one list
+; - CIDLOOKUPRC - Restrict lookup to one campaign's lists
+; - CLOSER - Closer calls from VICIDIAL fronters
+; - ANI - ANI received, add record with phone number
+; - ANILOOKUP - Lookup ANI to find record in whole system
+; - ANILOOKUPRL - Restrict lookup to one list
+; - 3DIGITID - Enter 3 digit code to go to agent
+; - 4DIGITID - Enter 4 digit code to go to agent
+; - 5DIGITID - Enter 5 digit code to go to agent
+; - 10DIGITID - Enter 10 digit code to go to agent
+; 2. the method of searching for an available agent:
+; - LO - Load Balance Overflow only (priority to home server)
+; - LB - Load Balance total system
+; - SO - Home server only
+; 3. the full name of the IN GROUP to be used in vicidial for the inbound call
+; 4. the phone number that was called, for the log entry
+; 5. the callerID or lead_id of the person that called(usually overridden)
+; 6. the park extension audio file name if used
+; 7. the status of the call initially(usually not used)
+; 8. the list_id to insert the new lead under if it is new (and CID/ANI available)
+; 9. the phone dialing code to insert with the new lead if new (and CID/ANI available)
+; 10. the campaign_id to search within lists if CIDLOOKUPRC
+; inbound VICIDIAL call with CID delivery through T1 PRI
+exten => 1234,1,Answer ; Answer the line
+exten => 1234,2,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----CL_GALLERIA-----7274515134-----Closer-----park----------999-----1)
+exten => 1234,3,Hangup
+
+; inbound VICIDIAL transfer calls [can arrive through PRI T1 crossover, IAX or SIP channel]
+exten => _90009.,1,Answer ; Answer the line
+exten => _90009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1)
+exten => _90009.,3,Hangup
+exten => _990009.,1,Answer ; Answer the line
+exten => _990009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1)
+exten => _990009.,3,Hangup
+
+
+; barge monitoring extension
+exten => 8159,1,ZapBarge
+exten => 8159,2,Hangup
+
+; ZapBarge direct channel extensions
+exten => _86120XX,1,ZapBarge(${EXTEN:5})
+
+
+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
+
+; astGUIclient conferences
+exten => _86000[0-4]X,1,Meetme,${EXTEN}|q
+; VICIDIAL conferences
+exten => _86000[5-9]X,1,Meetme,${EXTEN}|F
+exten => _86001XX,1,Meetme,${EXTEN}|F
+exten => _8600200,1,Meetme,${EXTEN}|F
+; quiet entry and leaving conferences for VICIDIAL
+exten => _78600XXX,1,Meetme,${EXTEN:1}|Fq
+; quiet monitor extensions for meetme rooms (for room managers)
+exten => _68600XXX,1,Meetme,${EXTEN:1}|Fmq
+
+; voicelab exten
+exten => _86009XX,1,Meetme,${EXTEN}|Fmq
+; voicelab exten moderator
+exten => _986009XX,1,Meetme,${EXTEN:1}
+
+
+
+; 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
+
+exten => 8304,1,Answer
+exten => 8304,2,Playback(ding)
+exten => 8304,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)
+; Recording is limited to 1 hour, to make longer, just change the Wait,3600
+exten => 8309,1,Answer
+exten => 8309,2,Monitor(wav,${CALLERID(name)})
+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)
+; Recording is limited to 1 hour, to make longer, just change the Wait,3600
+exten => 8310,1,Answer
+exten => 8310,2,Monitor(gsm,${CALLERID(name)})
+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
+
+; use for selective CallerID hangup by area code(hard-coded)
+exten => 8352,1,AGI(agi-VDADselective_CID_hangup.agi,${EXTEN})
+exten => 8352,2,Playback(safe_harbor)
+exten => 8352,3,Hangup
+
+; prompts for recording AGI script, ID is 4321
+; first variable is format (gsm/wav)
+; second variable is timeout in milliseconds (default is 720000 [12 minutes])
+exten => 8167,1,Answer
+exten => 8167,2,AGI(agi-record_prompts.agi,wav-----720000)
+exten => 8167,3,Hangup
+exten => 8168,1,Answer
+exten => 8168,2,AGI(agi-record_prompts.agi,gsm-----720000)
+exten => 8168,3,Hangup
+
+; playback of recorded prompts
+exten => _851XXXXX,1,Answer
+exten => _851XXXXX,2,Playback(${EXTEN})
+exten => _851XXXXX,3,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${{CALLERID(num)}(num)})
+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(1)
+exten => _85026666666666.,2,Voicemail(${EXTEN:14}|u)
+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
+
+;#### VDAD STANDARD TRANSFER ENTRIES ####
+; VICIDIAL_auto_dialer transfer script for no-agent campaigns:
+exten => 8364,1,AGI(agi://127.0.0.1:4577/call_log)
+exten => 8364,2,AGI(agi-VDADtransferBROADCAST.agi,${EXTEN})
+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(2000|2000|1000|5000|120|50|4|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 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,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(2000|2000|1000|5000|120|50|4|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
+
+
+
+; PERFORMANCE TESTING
+exten => _999XXXXXX1,1,Answer
+exten => _999XXXXXX1,2,Wait(2)
+exten => _999XXXXXX1,3,Playback(beep)
+exten => _999XXXXXX1,4,Hangup
+
+exten => _999XXXX112,1,Wait(8)
+exten => _999XXXX112,2,Answer
+exten => _999XXXX112,3,Playback(demo-instruct)
+exten => _999XXXX112,4,Playback(demo-instruct)
+exten => _999XXXX112,5,Hangup
+
+exten => _999XXXXXX2,1,Wait(8)
+exten => _999XXXXXX2,2,Answer
+exten => _999XXXXXX2,3,Playback(demo-instruct)
+exten => _999XXXXXX2,4,Hangup
+
+exten => _999XXXXXX3,1,SetVar(PRI_CAUSE=1)
+exten => _999XXXXXX3,2,Hangup
+
+exten => _999XXXXXX4,1,SetVar(PRI_CAUSE=27)
+exten => _999XXXXXX4,2,Hangup
+
+exten => _999XXXXXX5,1,Wait(60)
+exten => _999XXXXXX5,2,Hangup
+
+exten => _999XXXXXX6,1,Wait(10)
+exten => _999XXXXXX6,2,Answer
+exten => _999XXXXXX6,3,Playback(demo-instruct)
+exten => _999XXXXXX6,4,Hangup
+
+exten => _999XXXXXX7,1,Wait(12)
+exten => _999XXXXXX7,2,Answer
+exten => _999XXXXXX7,3,Playback(demo-enterkeywords)
+exten => _999XXXXXX7,4,Hangup
+
+exten => _999XXXXXX8,1,SetVar(PRI_CAUSE=17)
+exten => _999XXXXXX8,2,Hangup
+
+exten => _999XXXXXX9,1,Wait(6)
+exten => _999XXXXXX9,2,Answer
+exten => _999XXXXXX9,3,Playback(demo-abouttotry)
+exten => _999XXXXXX9,4,Hangup
+
+exten => _999XXXXXX0,1,Wait(5)
+exten => _999XXXXXX0,2,Answer
+exten => _999XXXXXX0,3,Playback(vm-goodbye)
+exten => _999XXXXXX0,4,Hangup
+
+exten => 99999999999,1,Answer
+exten => 99999999999,2,Playback(conf)
+exten => 99999999999,3,Playback(conf)
+exten => 99999999999,4,Playback(conf)
+exten => 99999999999,5,Playback(conf)
+exten => 99999999999,6,Playback(conf)
+exten => 99999999999,7,Playback(conf)
+exten => 99999999999,8,Playback(conf)
+exten => 99999999999,9,Playback(conf)
+exten => 99999999999,10,Playback(conf)
+exten => 99999999999,11,Playback(conf)
+exten => 99999999999,12,Playback(conf)
+exten => 99999999999,13,Playback(conf)
+exten => 99999999999,14,Hangup
diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/iax.conf.sample b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/iax.conf.sample
index b8ad4589..9a10d3ff 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/iax.conf.sample
+++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/iax.conf.sample
@@ -1,808 +1,808 @@
-[general]
-bindport=4569
-iaxcompat=yes
-bandwidth=high
-allow=all
-allow=gsm ; Always allow GSM, it's cool :)
-jitterbuffer=no
-tos=lowdelay
-
-;register => 1112223333:PASSWORD@iax.binfone.com
-register => ASTloop:test@127.0.0.1:40569
-register => ASTblind:test@127.0.0.1:41569
-
-[vicihelp]
-host=67.134.219.20 ;voip.vicidial-group.com
-type=friend
-context=opengateway
-disallow=all
-allow=gsm
-allow=ulaw
-permit=67.134.219.20/255.255.255.255
-insecure=very
-
-[ASTloop]
-type=friend
-accountcode=ASTloop
-context=default
-auth=plaintext
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-qualify=yes
-
-[ASTblind]
-type=friend
-accountcode=ASTblind
-context=default
-auth=plaintext
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-qualify=yes
-
-[1112223333]
-auth=md5
-type=friend
-username=1112223333
-secret=PASSWORD
-host=iax.binfone.com
-context=incoming-IAX-context-in-extensions.conf
-
-[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
-
-
-[cc300]
-type=friend
-accountcode=cc300
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc301]
-type=friend
-accountcode=cc301
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc302]
-type=friend
-accountcode=cc302
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc303]
-type=friend
-accountcode=cc303
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc304]
-type=friend
-accountcode=cc304
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc305]
-type=friend
-accountcode=cc305
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc306]
-type=friend
-accountcode=cc306
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc307]
-type=friend
-accountcode=cc307
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc308]
-type=friend
-accountcode=cc308
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc309]
-type=friend
-accountcode=cc309
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc310]
-type=friend
-accountcode=cc310
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc311]
-type=friend
-accountcode=cc311
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc312]
-type=friend
-accountcode=cc312
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc313]
-type=friend
-accountcode=cc313
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc314]
-type=friend
-accountcode=cc314
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc315]
-type=friend
-accountcode=cc315
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc316]
-type=friend
-accountcode=cc316
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc317]
-type=friend
-accountcode=cc317
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc318]
-type=friend
-accountcode=cc318
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc319]
-type=friend
-accountcode=cc319
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc320]
-type=friend
-accountcode=cc320
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc321]
-type=friend
-accountcode=cc321
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc322]
-type=friend
-accountcode=cc322
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc323]
-type=friend
-accountcode=cc323
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc324]
-type=friend
-accountcode=cc324
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc325]
-type=friend
-accountcode=cc325
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc326]
-type=friend
-accountcode=cc326
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc327]
-type=friend
-accountcode=cc327
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc328]
-type=friend
-accountcode=cc328
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc329]
-type=friend
-accountcode=cc329
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc330]
-type=friend
-accountcode=cc330
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc331]
-type=friend
-accountcode=cc331
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc332]
-type=friend
-accountcode=cc332
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc333]
-type=friend
-accountcode=cc333
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc334]
-type=friend
-accountcode=cc334
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc335]
-type=friend
-accountcode=cc335
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc336]
-type=friend
-accountcode=cc336
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc337]
-type=friend
-accountcode=cc337
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc338]
-type=friend
-accountcode=cc338
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc339]
-type=friend
-accountcode=cc339
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc340]
-type=friend
-accountcode=cc340
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc341]
-type=friend
-accountcode=cc341
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc342]
-type=friend
-accountcode=cc342
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc343]
-type=friend
-accountcode=cc343
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc344]
-type=friend
-accountcode=cc344
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc345]
-type=friend
-accountcode=cc345
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc346]
-type=friend
-accountcode=cc346
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc347]
-type=friend
-accountcode=cc347
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc348]
-type=friend
-accountcode=cc348
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc349]
-type=friend
-accountcode=cc349
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc350]
-type=friend
-accountcode=cc350
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
-[cc351]
-type=friend
-accountcode=cc351
-context=default
-auth=md5
-host=dynamic
-permit=0.0.0.0/0.0.0.0
-secret=test
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-qualify=yes
-
+[general]
+bindport=4569
+iaxcompat=yes
+bandwidth=high
+allow=all
+allow=gsm ; Always allow GSM, it's cool :)
+jitterbuffer=no
+tos=lowdelay
+
+;register => 1112223333:PASSWORD@iax.binfone.com
+register => ASTloop:test@127.0.0.1:40569
+register => ASTblind:test@127.0.0.1:41569
+
+[vicihelp]
+host=67.134.219.20 ;voip.vicidial-group.com
+type=friend
+context=opengateway
+disallow=all
+allow=gsm
+allow=ulaw
+permit=67.134.219.20/255.255.255.255
+insecure=very
+
+[ASTloop]
+type=friend
+accountcode=ASTloop
+context=default
+auth=plaintext
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+qualify=yes
+
+[ASTblind]
+type=friend
+accountcode=ASTblind
+context=default
+auth=plaintext
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+qualify=yes
+
+[1112223333]
+auth=md5
+type=friend
+username=1112223333
+secret=PASSWORD
+host=iax.binfone.com
+context=incoming-IAX-context-in-extensions.conf
+
+[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
+
+
+[cc300]
+type=friend
+accountcode=cc300
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc301]
+type=friend
+accountcode=cc301
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc302]
+type=friend
+accountcode=cc302
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc303]
+type=friend
+accountcode=cc303
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc304]
+type=friend
+accountcode=cc304
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc305]
+type=friend
+accountcode=cc305
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc306]
+type=friend
+accountcode=cc306
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc307]
+type=friend
+accountcode=cc307
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc308]
+type=friend
+accountcode=cc308
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc309]
+type=friend
+accountcode=cc309
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc310]
+type=friend
+accountcode=cc310
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc311]
+type=friend
+accountcode=cc311
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc312]
+type=friend
+accountcode=cc312
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc313]
+type=friend
+accountcode=cc313
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc314]
+type=friend
+accountcode=cc314
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc315]
+type=friend
+accountcode=cc315
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc316]
+type=friend
+accountcode=cc316
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc317]
+type=friend
+accountcode=cc317
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc318]
+type=friend
+accountcode=cc318
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc319]
+type=friend
+accountcode=cc319
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc320]
+type=friend
+accountcode=cc320
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc321]
+type=friend
+accountcode=cc321
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc322]
+type=friend
+accountcode=cc322
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc323]
+type=friend
+accountcode=cc323
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc324]
+type=friend
+accountcode=cc324
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc325]
+type=friend
+accountcode=cc325
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc326]
+type=friend
+accountcode=cc326
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc327]
+type=friend
+accountcode=cc327
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc328]
+type=friend
+accountcode=cc328
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc329]
+type=friend
+accountcode=cc329
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc330]
+type=friend
+accountcode=cc330
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc331]
+type=friend
+accountcode=cc331
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc332]
+type=friend
+accountcode=cc332
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc333]
+type=friend
+accountcode=cc333
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc334]
+type=friend
+accountcode=cc334
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc335]
+type=friend
+accountcode=cc335
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc336]
+type=friend
+accountcode=cc336
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc337]
+type=friend
+accountcode=cc337
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc338]
+type=friend
+accountcode=cc338
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc339]
+type=friend
+accountcode=cc339
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc340]
+type=friend
+accountcode=cc340
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc341]
+type=friend
+accountcode=cc341
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc342]
+type=friend
+accountcode=cc342
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc343]
+type=friend
+accountcode=cc343
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc344]
+type=friend
+accountcode=cc344
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc345]
+type=friend
+accountcode=cc345
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc346]
+type=friend
+accountcode=cc346
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc347]
+type=friend
+accountcode=cc347
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc348]
+type=friend
+accountcode=cc348
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc349]
+type=friend
+accountcode=cc349
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc350]
+type=friend
+accountcode=cc350
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
+[cc351]
+type=friend
+accountcode=cc351
+context=default
+auth=md5
+host=dynamic
+permit=0.0.0.0/0.0.0.0
+secret=test
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+qualify=yes
+
diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/logger.conf.sample b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/logger.conf.sample
index 0c4c74a3..34af05de 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/logger.conf.sample
+++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/logger.conf.sample
@@ -1,3 +1,3 @@
-[logfiles]
-console => notice,warning,error
-messages => notice,warning,error,debug,verbose
+[logfiles]
+console => notice,warning,error
+messages => notice,warning,error,debug,verbose
diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/manager.conf.sample b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/manager.conf.sample
index ac195fa5..8760d41c 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/manager.conf.sample
+++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/manager.conf.sample
@@ -1,24 +1,24 @@
-[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
+[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
diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/meetme.conf.sample b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/meetme.conf.sample
index 87f7bb0b..9aefecad 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/meetme.conf.sample
+++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/meetme.conf.sample
@@ -1,215 +1,215 @@
-[rooms]
-conf => 8600
-conf => 8601,1234
-
-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 => 8600030
-conf => 8600031
-conf => 8600032
-conf => 8600033
-conf => 8600034
-conf => 8600035
-conf => 8600036
-conf => 8600037
-conf => 8600038
-conf => 8600039
-conf => 8600040
-conf => 8600041
-conf => 8600042
-conf => 8600043
-conf => 8600044
-conf => 8600045
-conf => 8600046
-conf => 8600047
-conf => 8600048
-conf => 8600049
-conf => 8600050
-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
-
-conf => 8600900
-conf => 8600901
-conf => 8600902
-conf => 8600903
-conf => 8600904
-conf => 8600905
-conf => 8600906
-conf => 8600907
-conf => 8600908
-conf => 8600909
+[rooms]
+conf => 8600
+conf => 8601,1234
+
+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 => 8600030
+conf => 8600031
+conf => 8600032
+conf => 8600033
+conf => 8600034
+conf => 8600035
+conf => 8600036
+conf => 8600037
+conf => 8600038
+conf => 8600039
+conf => 8600040
+conf => 8600041
+conf => 8600042
+conf => 8600043
+conf => 8600044
+conf => 8600045
+conf => 8600046
+conf => 8600047
+conf => 8600048
+conf => 8600049
+conf => 8600050
+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
+
+conf => 8600900
+conf => 8600901
+conf => 8600902
+conf => 8600903
+conf => 8600904
+conf => 8600905
+conf => 8600906
+conf => 8600907
+conf => 8600908
+conf => 8600909
diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/musiconhold.conf.sample b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/musiconhold.conf.sample
index 5b18de7a..df8a659c 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/musiconhold.conf.sample
+++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/musiconhold.conf.sample
@@ -1,16 +1,16 @@
-;
-; Music on Hold -- Sample Configuration
-;
-
-[default]
-mode=files
-directory=/var/lib/asterisk/mohmp3
-
-; valid mode options:
-; quietmp3 -- default
-; mp3 -- loud
-; mp3nb -- unbuffered
-; quietmp3nb -- quiet unbuffered
-; custom -- run a custom application
-; files -- read files from a directory in any Asterisk supported format
-
+;
+; Music on Hold -- Sample Configuration
+;
+
+[default]
+mode=files
+directory=/var/lib/asterisk/mohmp3
+
+; valid mode options:
+; quietmp3 -- default
+; mp3 -- loud
+; mp3nb -- unbuffered
+; quietmp3nb -- quiet unbuffered
+; custom -- run a custom application
+; files -- read files from a directory in any Asterisk supported format
+
diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/sip.conf.sample b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/sip.conf.sample
index 911d1713..ec26c855 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/sip.conf.sample
+++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/sip.conf.sample
@@ -1,724 +1,724 @@
-[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
-
-
-
-
-
-[cc100]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc100
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1000
-mailbox=100
-
-[cc101]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc101
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1000
-mailbox=101
-
-[cc102]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc102
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1000
-mailbox=102
-
-[cc103]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc103
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1000
-mailbox=103
-
-[cc104]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc104
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1000
-mailbox=104
-
-[cc105]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc105
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1000
-mailbox=105
-
-[cc106]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc106
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1000
-mailbox=106
-
-[cc107]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc107
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1000
-mailbox=107
-
-[cc108]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc108
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1000
-mailbox=108
-
-[cc109]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc109
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1000
-mailbox=109
-
-[cc110]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc110
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1100
-mailbox=110
-
-[cc111]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc111
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1100
-mailbox=111
-
-[cc112]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc112
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1100
-mailbox=112
-
-[cc113]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc113
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1100
-mailbox=113
-
-[cc114]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc114
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1100
-mailbox=114
-
-[cc115]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc115
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1100
-mailbox=115
-
-[cc116]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc116
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1100
-mailbox=116
-
-[cc117]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc117
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1100
-mailbox=117
-
-[cc118]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc118
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1100
-mailbox=118
-
-[cc119]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc119
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1100
-mailbox=119
-
-[cc120]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc120
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1200
-mailbox=120
-
-[cc121]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc121
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1200
-mailbox=121
-
-[cc122]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc122
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1200
-mailbox=122
-
-[cc123]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc123
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1200
-mailbox=123
-
-[cc124]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc124
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1200
-mailbox=124
-
-[cc125]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc125
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1200
-mailbox=125
-
-[cc126]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc126
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1200
-mailbox=126
-
-[cc127]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc127
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1200
-mailbox=127
-
-[cc128]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc128
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1200
-mailbox=128
-
-[cc129]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc129
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1200
-mailbox=129
-
-[cc130]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc130
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1300
-mailbox=130
-
-[cc131]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc131
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1300
-mailbox=131
-
-[cc132]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc132
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1300
-mailbox=132
-
-[cc133]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc133
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1300
-mailbox=133
-
-[cc134]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc134
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1300
-mailbox=134
-
-[cc135]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc135
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1300
-mailbox=135
-
-[cc136]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc136
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1300
-mailbox=136
-
-[cc137]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc137
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1300
-mailbox=137
-
-[cc138]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc138
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1300
-mailbox=138
-
-[cc139]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc139
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1300
-mailbox=139
-
-[cc140]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc140
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1400
-mailbox=140
-
-[cc141]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc141
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1400
-mailbox=141
-
-[cc142]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc142
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1400
-mailbox=142
-
-[cc143]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc143
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1400
-mailbox=143
-
-[cc144]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc144
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1400
-mailbox=144
-
-[cc145]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc145
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1400
-mailbox=145
-
-[cc146]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc146
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1400
-mailbox=146
-
-[cc147]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc147
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1400
-mailbox=147
-
-[cc148]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc148
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1400
-mailbox=148
-
-[cc149]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc149
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1400
-mailbox=149
-
-[cc150]
-disallow=all
-allow=ulaw
-allow=alaw
-type=friend
-username=cc150
-secret=test
-host=dynamic
-dtmfmode=inband
-defaultip=192.168.1.249
-qualify=1400
-mailbox=150
+[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
+
+
+
+
+
+[cc100]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc100
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1000
+mailbox=100
+
+[cc101]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc101
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1000
+mailbox=101
+
+[cc102]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc102
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1000
+mailbox=102
+
+[cc103]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc103
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1000
+mailbox=103
+
+[cc104]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc104
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1000
+mailbox=104
+
+[cc105]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc105
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1000
+mailbox=105
+
+[cc106]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc106
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1000
+mailbox=106
+
+[cc107]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc107
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1000
+mailbox=107
+
+[cc108]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc108
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1000
+mailbox=108
+
+[cc109]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc109
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1000
+mailbox=109
+
+[cc110]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc110
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1100
+mailbox=110
+
+[cc111]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc111
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1100
+mailbox=111
+
+[cc112]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc112
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1100
+mailbox=112
+
+[cc113]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc113
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1100
+mailbox=113
+
+[cc114]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc114
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1100
+mailbox=114
+
+[cc115]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc115
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1100
+mailbox=115
+
+[cc116]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc116
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1100
+mailbox=116
+
+[cc117]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc117
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1100
+mailbox=117
+
+[cc118]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc118
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1100
+mailbox=118
+
+[cc119]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc119
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1100
+mailbox=119
+
+[cc120]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc120
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1200
+mailbox=120
+
+[cc121]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc121
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1200
+mailbox=121
+
+[cc122]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc122
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1200
+mailbox=122
+
+[cc123]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc123
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1200
+mailbox=123
+
+[cc124]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc124
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1200
+mailbox=124
+
+[cc125]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc125
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1200
+mailbox=125
+
+[cc126]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc126
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1200
+mailbox=126
+
+[cc127]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc127
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1200
+mailbox=127
+
+[cc128]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc128
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1200
+mailbox=128
+
+[cc129]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc129
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1200
+mailbox=129
+
+[cc130]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc130
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1300
+mailbox=130
+
+[cc131]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc131
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1300
+mailbox=131
+
+[cc132]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc132
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1300
+mailbox=132
+
+[cc133]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc133
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1300
+mailbox=133
+
+[cc134]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc134
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1300
+mailbox=134
+
+[cc135]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc135
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1300
+mailbox=135
+
+[cc136]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc136
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1300
+mailbox=136
+
+[cc137]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc137
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1300
+mailbox=137
+
+[cc138]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc138
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1300
+mailbox=138
+
+[cc139]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc139
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1300
+mailbox=139
+
+[cc140]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc140
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1400
+mailbox=140
+
+[cc141]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc141
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1400
+mailbox=141
+
+[cc142]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc142
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1400
+mailbox=142
+
+[cc143]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc143
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1400
+mailbox=143
+
+[cc144]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc144
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1400
+mailbox=144
+
+[cc145]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc145
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1400
+mailbox=145
+
+[cc146]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc146
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1400
+mailbox=146
+
+[cc147]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc147
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1400
+mailbox=147
+
+[cc148]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc148
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1400
+mailbox=148
+
+[cc149]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc149
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1400
+mailbox=149
+
+[cc150]
+disallow=all
+allow=ulaw
+allow=alaw
+type=friend
+username=cc150
+secret=test
+host=dynamic
+dtmfmode=inband
+defaultip=192.168.1.249
+qualify=1400
+mailbox=150
diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/voicemail.conf.sample b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/voicemail.conf.sample
index 4b3546ac..dc3a8537 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/voicemail.conf.sample
+++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/voicemail.conf.sample
@@ -1,19 +1,19 @@
-[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
+[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
diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zapata.conf.t100p.sample b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zapata.conf.t100p.sample
index c735d394..1117086e 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zapata.conf.t100p.sample
+++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zapata.conf.t100p.sample
@@ -1,46 +1,46 @@
-# /etc/asterisk/zapata.conf:
-# Digium/Clone T100P EXAMPLE:
-# Here is an example of a configuration where an T100P single T1 card is used
-# for connecting a single T1 PRI circuit with 23 voice channels
-
-[channels]
-group=1
-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 => 1-23
-
-# FOR A RBS WinkStart T1 YOU WOULD USE SOMETHING LIKE THIS:
-# 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-24
-#
-# FOR AN ANALOG T1 ChannelBank YOU WOULD USE SOMETHING LIKE THIS:
-# group=4
-# language=en
-# signalling=fxo_ks
-# usecallerid=yes
-# callerid=asreceived
-# context=default
-# echocancel=64
-# echocancelwhenbridged=no
-# rxgain=-1.0
-# txgain=-1.0
-# channel => 1-24
-
+# /etc/asterisk/zapata.conf:
+# Digium/Clone T100P EXAMPLE:
+# Here is an example of a configuration where an T100P single T1 card is used
+# for connecting a single T1 PRI circuit with 23 voice channels
+
+[channels]
+group=1
+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 => 1-23
+
+# FOR A RBS WinkStart T1 YOU WOULD USE SOMETHING LIKE THIS:
+# 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-24
+#
+# FOR AN ANALOG T1 ChannelBank YOU WOULD USE SOMETHING LIKE THIS:
+# group=4
+# language=en
+# signalling=fxo_ks
+# usecallerid=yes
+# callerid=asreceived
+# context=default
+# echocancel=64
+# echocancelwhenbridged=no
+# rxgain=-1.0
+# txgain=-1.0
+# channel => 1-24
+
diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zapata.conf.x100p.sample b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zapata.conf.x100p.sample
index 75084b4a..6e2ecd8e 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zapata.conf.x100p.sample
+++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zapata.conf.x100p.sample
@@ -1,13 +1,13 @@
-# /etc/asterisk/zapata.conf:
-# 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 on ebay for $10-30 that will work with Asterisk
-
-[trunkgroups]
-[channels]
-context=unused
-signalling=fxs_ks
-channel => 1
-
+# /etc/asterisk/zapata.conf:
+# 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 on ebay for $10-30 that will work with Asterisk
+
+[trunkgroups]
+[channels]
+context=unused
+signalling=fxs_ks
+channel => 1
+
diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zaptel.conf.t100p.sample b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zaptel.conf.t100p.sample
index 178c9f01..0e28251b 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zaptel.conf.t100p.sample
+++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zaptel.conf.t100p.sample
@@ -1,23 +1,23 @@
-# /etc/zaptel.conf:
-# Digium/Clone T100P EXAMPLE:
-# Here is an example of a configuration where an T100P single T1 card is used
-# for connecting a single T1 PRI circuit with 23 voice channels
-
-span=1,1,0,esf,b8zs
-bchan=1-23
-dchan=24
-loadzone = us
-defaultzone=us
-
-# FOR A RBS WinkStart T1 YOU WOULD USE SOMETHING LIKE THIS:
-# span=1,1,0,esf,b8zs
-# e&m=1-24
-# loadzone = us
-# defaultzone=us
-#
-# FOR AN ANALOG T1 ChannelBank YOU WOULD USE SOMETHING LIKE THIS:
-# span=1,1,0,esf,b8zs
-# fxoks=1-24
-# loadzone = us
-# defaultzone=us
-#
+# /etc/zaptel.conf:
+# Digium/Clone T100P EXAMPLE:
+# Here is an example of a configuration where an T100P single T1 card is used
+# for connecting a single T1 PRI circuit with 23 voice channels
+
+span=1,1,0,esf,b8zs
+bchan=1-23
+dchan=24
+loadzone = us
+defaultzone=us
+
+# FOR A RBS WinkStart T1 YOU WOULD USE SOMETHING LIKE THIS:
+# span=1,1,0,esf,b8zs
+# e&m=1-24
+# loadzone = us
+# defaultzone=us
+#
+# FOR AN ANALOG T1 ChannelBank YOU WOULD USE SOMETHING LIKE THIS:
+# span=1,1,0,esf,b8zs
+# fxoks=1-24
+# loadzone = us
+# defaultzone=us
+#
diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zaptel.conf.x100p.sample b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zaptel.conf.x100p.sample
index aa2adb65..a9742eea 100644
--- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zaptel.conf.x100p.sample
+++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/zaptel.conf.x100p.sample
@@ -1,10 +1,10 @@
-# /etc/zaptel.conf:
-# 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 on ebay for $10-30 that will work with Asterisk
-
-loadzone=us
-defaultzone=us
-fxsks=1
+# /etc/zaptel.conf:
+# 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 on ebay for $10-30 that will work with Asterisk
+
+loadzone=us
+defaultzone=us
+fxsks=1