echo Voicetronix Asterisk Installer 2007
echo
echo asterisk   v 1.2.14
echo openline4  4 trunks
echo openpci8LS  4 trunks 4 stations 
echo openswitch12 4 trunks 8 stations
echo ubuntu-server 6.06 LTS
CARD_TYPE=openline
echo
echo run as root
echo you must have ubuntu-server minimal install -- do not use a LAMP install
echo you must have the ubuntu-server cd in the cd drive
echo you must have a network connection
echo you must have the voicetronix card installed in a spare pci slot
echo


function install_packages(){
	echo
	echo install packages
	apt-get update
	apt-get -y install make patch g++ ssh
        # for driver 4.1
	apt-get -y install pciutils-dev libz-dev
        # for wanpipe
	apt-get -y install byacc flex libncurses5-dev
	# for asterisk
        apt-get -y install libssl-dev
	# for web-server
#       apt-get install perl
#	apt-get -y install apache2
#	apache2 -k start

	echo install kernel header

	apt-get -y install linux-headers-$(uname -r)
}

function install_vpb_driver_40(){
echo
echo install vpb-driver_40
cd /root
if [ -d vpb-driver-4.0 ];then
	echo 
	echo vpb-driver installed
	echo
	vpbscan
else
	if [ -f vpb-driver-4.0.tar.gz ];then
		echo
	else
		wget http://www.voicetronix.com/Downloads/vpb-driver-4.x/vpb-driver-4.0.tar.gz
		#wget http://www.voicetronix.com/Downloads/vpb-driver-4.0.tar.gz
	fi
	tar zxvf vpb-driver-4.0.tar.gz
	cd vpb-driver-4.0
	#./configure for drivers 4.1.x
	make install
	# firmware check
fi
}

function install_wcopenpci(){
echo
echo install wcopenpci-1.2.6vt5
cd /root
if [ -d zaptel-wcopenpci ];then
	echo 
	echo wcopenpci driver installed
	echo
	
else
	if [ -f  zaptel-wcopenpci-1.2.6vt5.tar.gz ];then
		echo
	else
		wget http://www.voicetronix.com/Downloads/asterisk/zaptel-wcopenpci-1.2.6vt5.tar.gz
	fi
	tar zxvf zaptel-wcopenpci-1.2.6vt5.tar.gz
	cd zaptel-wcopenpci
	#
	make install
	# firmware check
fi
}

function install_shared_libraries_path(){
echo 
echo set up path to libvpb.so
	rm -f /etc/ld.so.conf
	echo '/usr/local/lib' > /etc/ld.so.conf
	cat /etc/ld.so.conf
	ldconfig

}

function install_conf_files_openline(){
echo
echo install conf files
if [ -d /etc/vpb ];then
	echo
	echo config files exist
	echo
	echo vpb.conf
	cat /etc/vpb/vpb.conf
	echo openline.conf
	cat /etc/vpb/openline.conf
else
	cd /root	
	mkdir -p /etc/vpb

	# vpb.conf
	wget http://www.voicetronix.com/Downloads/conf/vpb.conf.openline
	cp -af vpb.conf.openline /etc/vpb/vpb.conf

	# openline.conf 
	wget http://www.voicetronix.com/Downloads/conf/openline.conf
	cp -af openline.conf /etc/vpb/openline.conf

	# firmware for openline
	cp vpb-driver-4.0/firmware/vpbmain_pci.out /etc/vpb        
fi
}

function install_conf_files_openswitch(){
echo
echo install conf files
if [ -d /etc/vpb ];then
	echo
	echo config files exist
	echo
	echo vpb.conf
	cat /etc/vpb/vpb.conf
	echo vtcore.conf
	cat /etc/vpb/vtcore.conf
else
	cd /root	
	mkdir -p /etc/vpb

	# vpb.conf
	wget http://www.voicetronix.com/Downloads/conf/vpb.conf.openswitch
	cp -af vpb.conf.openswitch /etc/vpb/vpb.conf

	# openline.conf 
	wget http://www.voicetronix.com/Downloads/conf/vtcore.conf.openswitch
	cp -af vtcore.conf.openswitch /etc/vpb/vtcore.conf
fi
}

function install_conf_files_openpci(){
echo
echo install conf files
	cd /root	

	# zaptel.conf
	wget http://www.voicetronix.com/Downloads/asterisk/zaptel.conf.openpci
	cp -af zaptel.conf.openpci /etc/zaptel.conf

	# modules.conf 
	wget http://www.voicetronix.com/Downloads/asterisk/modules.conf.openpci
	cp -af modules.conf.openpci /etc/asterisk/modules.conf

	# zapata.conf 
	wget http://www.voicetronix.com/Downloads/asterisk/zapata.conf.openpci
	cp -af zapata.conf.openpci /etc/asterisk/zapata.conf
}

function load_driver_vpb(){
echo
echo load driver vpb
	modprobe -r vpb
	modprobe vpb
	tail /var/log/messages
	lsmod | grep vpb
}

function load_driver_vtopenswitch(){
echo
echo load driver vtopenswitch
	modprobe -r vtopenswitch
	modprobe vtopenswitch
	tail /var/log/messages
	lsmod | grep vt
}

function load_driver_wcopenpci(){
echo
echo load driver wcopenpci
	modprobe -r wcopenpci
	modprobe wcopenpci
	tail /var/log/messages
	lsmod | grep wco
}


function install_asterisk_1214(){
echo
echo install asterisk-1.2.14
cd /root
if [ -d asterisk-1.2.14 ];then
	echo
	echo asterisk installed
	echo
else
	cd /root
	if [ -f asterisk-1.2.14.tar.gz ];then
		echo
	else
		wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.14.tar.gz
	fi
	tar zxvf asterisk-1.2.14.tar.gz
	cd asterisk-1.2.14
	#patch channels/Makefile for chan_vpb
        wget http://www.voicetronix.com/Downloads/asterisk/asterisk-channels-Makefile-patch
        patch channels/Makefile < asterisk-channels-Makefile-patch
	make
	make install
        make samples
fi
}

function patch_vpb_conf_openline() {
echo
echo Patch /etc/asterisk/vpb.conf for openline
        wget http://www.voicetronix.com/Downloads/asterisk/asterisk-vpb-conf-openline4-patch
	patch /etc/asterisk/vpb.conf < asterisk-vpb-conf-openline4-patch

}

function patch_vpb_conf_openswitch() {
echo
echo Patch /etc/asterisk/vpb.conf for openswitch
        wget http://www.voicetronix.com/Downloads/asterisk/asterisk-vpb-conf-openswitch12-patch
	patch /etc/asterisk/vpb.conf < asterisk-vpb-conf-openswitch12-patch

}


if [ `id -u` != "0" ]; then
	echo "Sorry, you are not root."
	exit 1
fi

echo $"parm: $0   $1"
case "$1" in
    openline)
	CARD_TYPE=openline
	;;
    openswitch)
	CARD_TYPE=openswitch
	;;
    openpci)
	CARD_TYPE=openpci
	;;
    *)
	echo $"Usage : $0 { openline | openswitch | openpci }"
	exit 1
esac

install_packages

#prepare rc.local for startup instructions
sed -i -e "/exit 0/d" /etc/rc.local

if [ $CARD_TYPE = openline ]; then
	install_vpb_driver_40
        install_conf_files_openline
        load_driver_vpb
	install_asterisk_1214
        patch_vpb_conf_openline
	echo -e "modprobe vpb\nsleep 5\nasterisk\nexit 0" >> /etc/rc.local
fi

if [ $CARD_TYPE = openswitch ]; then
	install_vpb_driver_40
        install_conf_files_openswitch
        load_driver_vtopenswitch
	install_asterisk_1214
        patch_vpb_conf_openswitch
	echo -e "modprobe vtopenswitch\nsleep 5\nasterisk\nexit 0" >> /etc/rc.local
fi

if [ $CARD_TYPE = openpci ]; then
	install_wcopenpci
	install_asterisk_1214
        install_conf_files_openpci
        load_driver_wcopenpci
        ztcfg -vvv
        echo -e "modprobe wcopenpci\nsleep 5\nasterisk\nexit 0" >> /etc/rc.local
fi

asterisk -cvvv

