#!/bin/bash
# Version 1.0.0.25
# Released 15/03/2007
# Marcus Vinicus <mcoelho@innovus.com.br>

################################################################################
ScriptUpdate="a"			# m=manual / a=automatic script update (once/day)
########################## No user changes below ###############################

InstDir="/usr/local/sbin"			# location of script
# Script Version
if [ -f $InstDir/netpbx-update.sh  ] ;then
	Ver=`grep -m1 Version $InstDir/netpbx-update.sh |cut -d" " -f 3|cut -d"." -f1,2,3,4`
else
	Ver="0.0.0.0"
fi

DATE=`date +"%d%b%Y"`
ROOT_UID=0				# root uid is 0
E_NOTROOT=67			 	# Non-root exit error
E_XCD=66			 	# can't change directory
ME=`basename $0`	 		# for getopt -n
DEBUG=false
Param=$2
CurDir=`pwd`
Look4Update="Y"				# For manual update check


# check to see if we are root
if [ "$UID" -ne "$ROOT_UID" ] ;then
	echo
	echo "ATENCAO: E necessario perimissao de root para executar esta atualizacao..."
	echo
	cd $CurDir
	exit 67
fi


###########################################################
######################## Functions ########################
###########################################################

ChecknetpbxAccess ()
{
netpbx=`ping -c1 update.netpbx.com.br|grep received|cut -d"," -f2`
if [ "$netpbx" != " 1 received" ] ;then
	echo
	echo "Impossivel pingar update.netpbx.com.br!"
	echo "Por favor teste sua conexao com a internet."
	echo
	exit 1
fi
}

###########################################################
# Automatic/Manual script update check
###########################################################
CheckNewScript ()
{
if [ -f /tmp/netpbx-last-update ] ;then
	LastUpdate=`cat /tmp/netpbx-last-update`
else
	LastUpdate=""
fi

if [ "$ScriptUpdate" = "a" ] ;then
	if [ "$LastUpdate" = "" ] ;then
		echo `date +%y%m%d` > /tmp/netpbx-last-update
		UpdateScript
	elif [ "$LastUpdate" -lt "`date +%y%m%d`" ] ;then
		echo `date +%y%m%d` > /tmp/netpbx-last-update
		UpdateScript
	fi
fi

if [ "$Look4Update" = "Y" ] ;then
	echo `date +%y%m%d` > /tmp/netpbx-last-update
	UpdateScript
fi
}

###########################################################
# Check for updated script
###########################################################
UpdateScript ()
{
#Check that wget is installed
if [ ! -f /usr/bin/wget ] ;then
	echo 
	echo " ERRO!  Nao foi encontrado o wget em /usr/bin/wget, favor corrigir e executar novamente o script."
	echo
	echo "         If you have it elsewhere, you can simply make a link to it"
	echo "         You can also set the script to not look for updates."
	echo '         Modify line at top to say ScriptUpdate="m" '
	echo
	exit 1
fi

clear

if [ -f $InstDir/netpbx-update.sh  ] ;then
	MajVer=`grep -m1 Version $InstDir/netpbx-update.sh |cut -d" " -f3|cut -d"." -f1`	
	MinVer=`grep -m1 Version $InstDir/netpbx-update.sh |cut -d" " -f3|cut -d"." -f2`	
	UpdVer=`grep -m1 Version $InstDir/netpbx-update.sh |cut -d" " -f3|cut -d"." -f3`	
	PatVer=`grep -m1 Version $InstDir/netpbx-update.sh |cut -d" " -f3|cut -d"." -f4`	
else
	MajVer="0"
	MinVer="0"
	UpdVer="0"
	PatVer="0"
fi

echo "A versao do netpbx-update.sh e: ${MajVer}.${MinVer}.${UpdVer}.${PatVer}" 
echo
if [ "$ScriptUpdate" = "a" ] ;then
	echo -n " Procurando atualizacao da ferramenta de update automatico..."
	echo
else
	echo -n " Checando atualizacoes..."
	echo
fi
if [ -f /tmp/netpbx-update-version ] ;then
	rm -f /tmp/netpbx-update-version*
fi
wget -P /tmp/ -q http://update.netpbx.com.br/netpbx-update-version 
ExitCode=$?

# Compare installed with available version 
if [ "$ExitCode" = "0" ] ;then
	ServMajVer=`grep netpbx-update.sh /tmp/netpbx-update-version|cut -d" " -f 2|cut -d"." -f1`
	ServMinVer=`grep netpbx-update.sh /tmp/netpbx-update-version|cut -d" " -f 2|cut -d"." -f2`
	ServUpdVer=`grep netpbx-update.sh /tmp/netpbx-update-version|cut -d" " -f 2|cut -d"." -f3`
	ServPatVer=`grep netpbx-update.sh /tmp/netpbx-update-version|cut -d" " -f 2|cut -d"." -f4`
	echo " Versao ${ServMajVer}.${ServMinVer}.${ServUpdVer}.${ServPatVer} disponivel no servidor."
	
	if [ "$ServMajVer" -gt "$MajVer" ] ;then
		Update="Y"
	elif [ "$ServMinVer" -gt "$MinVer" ] ;then
		Update="Y"
	elif [ "$ServUpdVer" -gt "$UpdVer" ] ;then
		Update="Y"
	elif [ "$ServPatVer" -gt "$PatVer" ] ;then
		Update="Y"
	else
		Update="N"
	fi
	
# echo -n " Versao do servidor:  ${ServMajVer}.${ServMinVer}.${ServUpdVer}.${ServPatVer}."
# echo -n " Versao instalada:  ${MajVer}.${MinVer}.${UpdVer}.${PatVer}."
	if [ "$Update" = "Y" ] ;then
		echo " Atualizando para ultima versao  ( ${ServMajVer}.${ServMinVer}.${ServUpdVer}.${ServPatVer} )..."
		echo
		wget -P /tmp/ http://update.netpbx.com.br/netpbx-update.sh 
		ExitCode=$?
		
		if [ "$ExitCode" -eq "0" ] ;then
						
			echo
			echo " Nova versao baixada com sucesso."
			echo -n " Posso colocar o novo script em: /usr/local/sbin (y/n)? "
			read YesNo
							
			if [ "$YesNo" = "y" ] ;then
				mv -f /tmp/netpbx-update.sh  /usr/local/sbin
				chmod 500 /usr/local/sbin/netpbx-update.sh 
				echo " chmod 500 /usr/local/sbin/netpbx-update.sh "
			else
				echo " Updated script is left in `pwd` per user request."
				echo " Don't forget to set the execute flag."
			fi
			
			echo
			echo " Por favor execute novamente o aplicativo de atualizacao."
			echo
			exit 2
		else
			echo
			echo " ERROR! Erro inexperado. Nao foi possivel fazer download da ultima versao."
			echo "        Tente novamente mais tarde."
			echo
			exit 1
		fi
	else
		echo " Voce possui a ultima versao."
		echo
	fi
else
	echo " NOT ABLE TO RETRIEVE SERVER VERSION!"
	echo 
	echo " If this persists over an hour please post to www.netpbx.com.br"
	echo " But check your own network connection first."
fi

}


###########################################################
# Main script
###########################################################

ChecknetpbxAccess
CheckNewScript

echo
echo "                   Netpbx Update"  
echo "                     (V.$Ver)"
echo

case "$1" in
  
  update)
	######################################################################
	# Verificando Versao Instalada no sistema
	######################################################################
	
	if [ ! -f /etc/netpbx/netpbx-version ] ;then
		if [ ! -d /etc/netpbx ] ;then
			mkdir /etc/netpbx
		fi
		echo "1.0.0.0" > /etc/netpbx/netpbx-version
	fi
	
	netpbxMajVer=`cat /etc/netpbx/netpbx-version|cut -d"." -f1`
	netpbxMinVer=`cat /etc/netpbx/netpbx-version|cut -d"." -f2`
	netpbxUpdVer=`cat /etc/netpbx/netpbx-version|cut -d"." -f3`
	netpbxPatVer=`cat /etc/netpbx/netpbx-version|cut -d"." -f4`
	echo "Versao do NetPBX instalada: ${netpbxMajVer}.${netpbxMinVer}.${netpbxUpdVer}.${netpbxPatVer}"
	
	if [ "${netpbxMajVer}${netpbxMinVer}${netpbxUpdVer}${netpbxPatVer}" -eq "1000" ] ; then
		netpbxUpdate="1000"
	elif [ "${netpbxMajVer}${netpbxMinVer}${netpbxUpdVer}${netpbxPatVer}" -eq "1243" ] ; then
		netpbxUpdate="1243"
	elif [ "${netpbxMajVer}${netpbxMinVer}${netpbxUpdVer}${netpbxPatVer}" -eq "1244" ] ; then
		netpbxUpdate="1244"
	elif [ "${netpbxMajVer}${netpbxMinVer}${netpbxUpdVer}${netpbxPatVer}" -eq "1245" ] ; then
		netpbxUpdate="1245"
	elif [ "${netpbxMajVer}${netpbxMinVer}${netpbxUpdVer}${netpbxPatVer}" -eq "1246" ] ; then
		netpbxUpdate="1246"
	elif [ "${netpbxMajVer}${netpbxMinVer}${netpbxUpdVer}${netpbxPatVer}" -eq "1247" ] ; then
		netpbxUpdate="1247"
	elif [ "${netpbxMajVer}${netpbxMinVer}${netpbxUpdVer}${netpbxPatVer}" -eq "1248" ] ; then
		netpbxUpdate="1248"
	else
		netpbxUpdate="${netpbxMajVer}${netpbxMinVer}${netpbxUpdVer}${netpbxPatVer}"
	fi
	
	if [ "${netpbxUpdate}" -le "1000" ] ;then
	######################################################################
	# Upgrade from 1.0.0.0 to 1.2.4.3
	######################################################################
		echo ""
		echo "Atualizando NetPBX para 1.2.4.3..."
		echo ""
		
		if [ ! -f /usr/sbin/fxotune ] ;then
			cp /usr/src/zaptel/fxotune /usr/sbin/.
				touch /etc/fxotune.conf
		fi
		cd /tmp
		echo ""; echo "";
		echo "Realizando download da atualizacao grafica do netpbx... "
		echo "" ; echo "";
		sleep 2
		if [ -f /tmp/netpbx-2.4.3_html.tar.gz ] ;then
				rm -f /tmp/netpbx-2.4.3_html.tar.gz
		fi
		wget -c http://update.netpbx.com.br/netpbx/netpbx-2.4.3_html.tar.gz
		cd /
		if [ -f /tmp/op_buttons_additional.cfg ] ;then
			rm -f /tmp/op_buttons_additional.cfg
		fi
		
		if [ -f /tmp/op_buttons_custom.cfg ] ;then
				rm -f /tmp/op_buttons_custom.cfg
		fi
		
		if [ -f /var/www/html/panel/op_buttons_additional.cfg ] ;then
			cp /var/www/html/panel/op_buttons_additional.cfg /tmp/.
		fi
		if [ -f /var/www/html/panel/op_buttons_custom.cfg ] ;then
			cp /var/www/html/panel/op_buttons_custom.cfg /tmp/.
		fi
		rm -rf /var/www/html
		echo "" ; echo "";
		echo "Descompactando e instalando a atualizacao da interface grafica"
		echo "" ; echo "";
		sleep 2
		tar xvfz /tmp/netpbx-2.4.3_html.tar.gz
		rm /tmp/netpbx-2.4.3_html.tar.gz
		
		if [ -f /tmp/op_buttons_additional.cfg ] ;then
			if [ -f /var/www/html/panel/op_buttons_additional.cfg ] ;then
					rm -f /var/www/html/panel/op_buttons_additional.cfg 
			fi
			mv /tmp/op_buttons_additional.cfg /var/www/html/panel/.
		fi
		if [ -f /tmp/op_buttons_custom.cfg ] ;then
				if [ -f /var/www/html/panel/op_buttons_custom.cfg ] ;then
						rm -f /var/www/html/panel/op_buttons_custom.cfg
				fi
				mv /tmp/op_buttons_custom.cfg /var/www/html/panel/.
		fi
		chown asterisk:asterisk /var/www/* -Rf
		chmod 777 /var/www/* -Rf
		chmod 755 /var/www/html/maint/phpMyAdmin/* -Rf
		
		if [ -f /etc/netpbx/backup ] ;then
			mkdir /etc/netpbx/backup
		fi
		echo "" ; echo "";
		echo "Realizando backup do sistema de configuracao..."
		echo "" ; echo "";
		sleep 2
		tar czvf /etc/netpbx/backup/netpbx-1.0.0.0_config_bkp_${DATE}.tar.gz /etc/rc3.d/S99local /etc/asterisk /etc/netpbx/
		cd /tmp
		echo "" ; echo "";
		echo "Realizando download da atualizacao de configuracao do netpbx... "
		echo "" ; echo "";
		sleep 2
		if [ -f /tmp/netpbx-2.4.3_conf.tar.gz ] ;then
				rm -f /tmp/netpbx-2.4.3_conf.tar.gz
		fi
		wget -c http://update.netpbx.com.br/netpbx/netpbx-2.4.3_conf.tar.gz
		cd /
		tar xvfz /tmp/netpbx-2.4.3_conf.tar.gz
		amportal stop
		service zaptel stop
		if [ -f /etc/netpbx/netpbx-version ] ;then
			rm -f /etc/netpbx/netpbx-version
		fi
		echo "1.2.4.3" > /etc/netpbx/netpbx-version
		#-------------------------------------------------------------------------------------------------
		echo "Concluido. Netpbx Atualizado com Sucesso!"
		echo "Favor reiniciar o sistema."
		echo ""
		
	fi
	if [ "${netpbxUpdate}" -le "1243" ] ;then
	######################################################################
	# Upgrade from 1.2.4.3 to 1.2.4.4
	######################################################################
	
		echo ""
		echo "Atualizando NetPBX para 1.2.4.4..."
		echo ""
		cd /tmp
		echo ""; echo "";
		echo "Realizando download da atualizacao grafica do netpbx... "
		echo "" ; echo "";
		sleep 2
		if [ -f /tmp/netpbx-2.4.4_html.tar.gz ] ;then
				rm -f /tmp/netpbx-2.4.4_html.tar.gz
		fi
		wget -c http://update.netpbx.com.br/netpbx/netpbx-2.4.4_html.tar.gz
		cd /
		echo "" ; echo "";
		echo "Descompactando e instalando a atualizacao da interface grafica"
		echo "" ; echo "";
		sleep 2
		tar xvfz /tmp/netpbx-2.4.4_html.tar.gz
		rm /tmp/netpbx-2.4.4_html.tar.gz
		echo "" ; echo "";
		echo "Atualizando banco de dados MYSQL"
		echo "" ; echo "";
		sleep 2
		mysql -u root -ppassw0rd -D asterisk < /var/www/html/insert.sql
		rm /var/www/html/insert.sql
		ln -s /var/spool/asterisk/monitor /var/www/html/recordings/monitor
		chown asterisk:asterisk /var/www/* -Rf
		chmod 777 /var/www/* -Rf
		chmod 755 /var/www/html/maint/phpMyAdmin/* -Rf
		if [ -f /etc/netpbx/netpbx-version ] ;then
				rm -f /etc/netpbx/netpbx-version
		fi
		echo "1.2.4.4" > /etc/netpbx/netpbx-version
		#-------------------------------------------------------------------------------------------------
		
		echo "Concluido. Netpbx Atualizado com Sucesso!"
		echo "Favor reiniciar o sistema."
		echo ""
	fi
	if [ "${netpbxUpdate}" -le "1244" ] ;then
	######################################################################
	# Upgrade from 1.2.4.4 to 1.2.4.5
	######################################################################
	
		echo ""
		echo "Atualizando NetPBX para 1.2.4.5..."
		echo ""
		cd /tmp
		echo ""; echo "";
		echo "Realizando download da atualizacao grafica do netpbx... "
		echo "" ; echo "";
		sleep 2
		if [ -f /tmp/netpbx-2.4.5_html.tar.gz ] ;then
				rm -f /tmp/netpbx-2.4.5_html.tar.gz
		fi
		wget -c http://update.netpbx.com.br/netpbx/netpbx-2.4.5_html.tar.gz
		cd /
		echo "" ; echo "";
		echo "Descompactando e instalando a atualizacao da interface grafica"
		echo "" ; echo "";
		sleep 2
		tar xvfz /tmp/netpbx-2.4.5_html.tar.gz
		rm /tmp/netpbx-2.4.5_html.tar.gz
		echo "" ; echo "";
		echo "Atualizando banco de dados MYSQL"
		echo "" ; echo "";
		sleep 2
		php -q /var/www/html/update_1245.php
		rm /var/www/html/update_1245.php
		if [ ! -d /var/www/html/recordings/monitor ] ;then
			ln -s /var/spool/asterisk/monitor /var/www/html/recordings/monitor
		fi
		chown asterisk:asterisk /var/www/* -Rf
		chmod 777 /var/www/* -Rf
		chmod 755 /var/www/html/maint/phpMyAdmin/* -Rf
		if [ -f /etc/netpbx/netpbx-version ] ;then
				rm -f /etc/netpbx/netpbx-version
		fi
		echo "1.2.4.5" > /etc/netpbx/netpbx-version
		#-------------------------------------------------------------------------------------------------
		
		echo "Concluido. Netpbx Atualizado com Sucesso!"
		echo "Favor reiniciar o sistema."
		echo ""
	fi
	if [ "${netpbxUpdate}" -le "1245" ] ;then
	######################################################################
	# Upgrade from 1.2.4.5 to 1.2.4.6
	######################################################################
	
		echo ""
		echo "Atualizando NetPBX para 1.2.4.6..."
		echo ""
		cd /tmp
		echo ""; echo "";
		echo "Realizando download da atualizacao grafica do netpbx... "
		echo "" ; echo "";
		sleep 2
		if [ -f /tmp/netpbx-2.4.6_html.tar.gz ] ;then
				rm -f /tmp/netpbx-2.4.6_html.tar.gz
		fi
		wget -c http://update.netpbx.com.br/netpbx/netpbx-2.4.6_html.tar.gz
		cd /
		echo "" ; echo "";
		echo "Descompactando e instalando a atualizacao da interface grafica"
		echo "" ; echo "";
		sleep 2
		tar xvfz /tmp/netpbx-2.4.6_html.tar.gz
		rm /tmp/netpbx-2.4.6_html.tar.gz
		echo "" ; echo "";
		if [ ! -d /var/www/html/recordings/monitor ] ;then
			ln -s /var/spool/asterisk/monitor /var/www/html/recordings/monitor
		fi
		yum update diskdumputils pciutils hotplug device-mapper yum -y
		if [ ! -f /usr/lib/asterisk/modules/app_rxfax.so ] ;then
				cp /usr/src/fax/app_rxfax.so /usr/lib/asterisk/modules/
				chown asterisk:asterisk /usr/lib/asterisk/modules/app_rxfax.so
				chmod 777 /usr/lib/asterisk/modules/app_rxfax.so
		fi
		if [ ! -f /usr/lib/asterisk/modules/app_txfax.so ] ;then
				cp /usr/src/fax/app_txfax.so /usr/lib/asterisk/modules/
				chown asterisk:asterisk /usr/lib/asterisk/modules/app_txfax.so
				chmod 777 /usr/lib/asterisk/modules/app_rxfax.so
		fi
		mysql -u root -ppassw0rd < /var/www/html/insert.sql
		rm /var/www/html/insert.sql
		/etc/init.d/httpd restart
		if [ -f /tmp/crontab.tmp ] ;then
			rm -f /tmp/crontab.tmp
		fi
		crontab -l | grep -v "*/5 * * * * php -q /etc/netpbx/script/queue_log.php" > /tmp/crontab.tmp
		echo "*/5 * * * * php -q /etc/netpbx/script/queue_log.php" > /tmp/crontab.tmp
		crontab /tmp/crontab.tmp
		if [ -f /tmp/crontab.tmp ] ;then
			rm -f /tmp/crontab.tmp
		fi
		chown asterisk:asterisk /etc/asterisk/extensions.conf
		chmod 777 /etc/asterisk/extensions.conf
		if [ -f /etc/asterisk/modules.conf.new ] ;then
			rm -f /etc/asterisk/modules.conf.new
		fi
		cat /etc/asterisk/modules.conf | grep -v "noload => app_txfax.so" | grep -v "noload => app_rxfax.so" > /etc/asterisk/modules.conf.new
		mv /etc/asterisk/modules.conf /etc/asterisk/modules.conf.old
		mv /etc/asterisk/modules.conf.new /etc/asterisk/modules.conf
		chown asterisk:asterisk /var/www/* -Rf
		chown asterisk:asterisk /var/lib/asterisk/agi-bin/ -Rf
		chmod u+x /var/lib/asterisk/agi-bin/*.agi
		chmod u+x /var/lib/asterisk/agi-bin/*.pl
		chmod 777 /var/www/* -Rf
		chmod 755 /var/www/html/maint/phpMyAdmin/* -Rf
		if [ -f /etc/netpbx/netpbx-version ] ;then
				rm -f /etc/netpbx/netpbx-version
		fi
		echo "1.2.4.6" > /etc/netpbx/netpbx-version
		#-------------------------------------------------------------------------------------------------
		
		echo "Concluido. Netpbx Atualizado com Sucesso!"
		echo "Favor reiniciar o sistema."
		echo ""
	fi
	if [ "${netpbxUpdate}" -le "1246" ] ;then
	######################################################################
	# Upgrade from 1.2.4.6 to 1.2.4.7
	######################################################################
	
		echo ""
		echo "Atualizando NetPBX para 1.2.4.7..."
		echo ""
		cd /tmp
		echo ""; echo "";
		echo "Realizando download da atualizacao grafica do netpbx... "
		echo "" ; echo "";
		sleep 2
		if [ -f /tmp/netpbx-2.4.7_html.tar.gz ] ;then
				rm -f /tmp/netpbx-2.4.7_html.tar.gz
		fi
		wget -c http://update.netpbx.com.br/netpbx/netpbx-2.4.7_html.tar.gz
		cd /
		echo "" ; echo "";
		echo "Descompactando e instalando a atualizacao da interface grafica"
		echo "" ; echo "";
		sleep 2
		tar xvfz /tmp/netpbx-2.4.7_html.tar.gz
		rm /tmp/netpbx-2.4.7_html.tar.gz
		echo "" ; echo "";
		chown asterisk:asterisk /etc/asterisk/extensions.conf
		chown asterisk:asterisk /etc/asterisk/voicemail.conf
		chmod 777 /etc/asterisk/extensions.conf
		chmod 777 /etc/asterisk/voicemail.conf
		chown asterisk:asterisk /var/www/* -Rf
		chown asterisk:asterisk /var/lib/asterisk/agi-bin/ -Rf
		chmod u+x /var/lib/asterisk/agi-bin/*.agi
		chmod u+x /var/lib/asterisk/agi-bin/*.pl
		chmod 777 /var/www/* -Rf
		chmod 755 /var/www/html/maint/phpMyAdmin/* -Rf
		if [ -f /etc/netpbx/netpbx-version ] ;then
				rm -f /etc/netpbx/netpbx-version
		fi
		echo "1.2.4.7" > /etc/netpbx/netpbx-version
		#-------------------------------------------------------------------------------------------------
		
		echo "Concluido. Netpbx Atualizado com Sucesso!"
		echo "Favor reiniciar o sistema."
		echo ""
	fi
	if [ "${netpbxUpdate}" -le "1247" ] ;then
	######################################################################
	# Upgrade from 1.2.4.7 to 1.2.4.8
	######################################################################
	
		echo ""
		echo "Atualizando NetPBX para 1.2.4.8..."
		echo ""
		cd /tmp
		echo ""; echo "";
		echo "Realizando download da atualizacao grafica do netpbx... "
		echo "" ; echo "";
		sleep 2
		if [ -f /tmp/netpbx-2.4.8_html.tar.gz ] ;then
				rm -f /tmp/netpbx-2.4.8_html.tar.gz
		fi
		wget -c http://update.netpbx.com.br/netpbx/netpbx-2.4.8_html.tar.gz
		cd /
		echo "" ; echo "";
		echo "Descompactando e instalando a atualizacao da interface grafica"
		echo "" ; echo "";
		sleep 2
		tar xvfz /tmp/netpbx-2.4.8_html.tar.gz
		rm /tmp/netpbx-2.4.8_html.tar.gz
		echo "" ; echo "";
		chown asterisk:asterisk /etc/asterisk/extensions.conf
		chown asterisk:asterisk /etc/asterisk/voicemail.conf
		chmod 777 /etc/asterisk/extensions.conf
		chmod 777 /etc/asterisk/voicemail.conf
		chown asterisk:asterisk /var/www/* -Rf
		chown asterisk:asterisk /var/lib/asterisk/agi-bin/ -Rf
		chmod u+x /var/lib/asterisk/agi-bin/*.agi
		chmod u+x /var/lib/asterisk/agi-bin/*.pl
		chmod 777 /var/www/* -Rf
		chmod 755 /var/www/html/maint/phpMyAdmin/* -Rf
		if [ -f /etc/netpbx/netpbx-version ] ;then
				rm -f /etc/netpbx/netpbx-version
		fi
		echo "1.2.4.8" > /etc/netpbx/netpbx-version
		#-------------------------------------------------------------------------------------------------
		
		echo "Concluido. Netpbx Atualizado com Sucesso!"
		echo "Favor reiniciar o sistema."
		echo ""
	fi
	if [ "${netpbxUpdate}" -le "1248" ] ;then
	######################################################################
	# Upgrade from 1.2.4.8 to 1.2.4.9
	######################################################################
	
		echo ""
		echo "Atualizando NetPBX para 1.2.4.9..."
		echo ""
		cd /tmp
		echo ""; echo "";
		echo "Realizando download da atualizacao grafica do netpbx... "
		echo "" ; echo "";
		sleep 2
		if [ -f /tmp/netpbx-2.4.9_html.tar.gz ] ;then
				rm -f /tmp/netpbx-2.4.9_html.tar.gz
		fi
		wget -c http://update.netpbx.com.br/netpbx/netpbx-2.4.9_html.tar.gz
		cd /
		echo "" ; echo "";
		echo "Descompactando e instalando a atualizacao da interface grafica"
		echo "" ; echo "";
		sleep 2
		tar xvfz /tmp/netpbx-2.4.9_html.tar.gz
		rm /tmp/netpbx-2.4.9_html.tar.gz
		echo "" ; echo "";
		chown asterisk:asterisk /var/www/* -Rf
		chmod 777 /var/www/* -Rf
		chmod 755 /var/www/html/maint/phpMyAdmin/* -Rf
		if [ -f /etc/netpbx/netpbx-version ] ;then
				rm -f /etc/netpbx/netpbx-version
		fi
		echo "1.2.4.9" > /etc/netpbx/netpbx-version
		#-------------------------------------------------------------------------------------------------
		
		echo "Concluido. Netpbx Atualizado com Sucesso!"
		echo "Favor reiniciar o sistema."
		echo ""
	else
	######################################################################
	# Sistema Atualizado
	######################################################################
	
		echo "Voce possui a versao atual do NetPBX."
	fi
		;;
	
  help)
	
	echo
	echo " Utilizacao: netpbx-update.sh comando"
	echo
	echo "        Os comandos sao {update | update-ast | help}"
	echo
	echo " update:"
	echo "   Atualiza o sitema NetPBX para a ultima versao disponivel."
	echo
	echo " update-ast:"
	echo "   Atualiza o Asterisk para a ultima versao disponivel."
	echo
	echo " help:"
	echo "   Exibe esta tela de ajuda."
	echo
	;;
	
  update-ast)
	
	ASTVER='1.2.15'
	ZAPVER='1.2.14'
	LIBVER='1.2.4'
	ADDVER='1.2.5'
	
	amportal stop;
	if [ -f /etc/netpbx/backup ] ;then
        	mkdir /etc/netpbx/backup
	fi
	echo ""; echo "";
	echo "Efetuando Backup de codecs de audio... "
	echo "" ; echo "";
	sleep 2
	
	if [ -f /usr/lib/asterisk/modules/codec_g729.so ] ;then
        	if [ -f /tmp/codec_g729.so ] ;then
	                rm -f /tmp/codec_g729.so
        	fi
        	mv /usr/lib/asterisk/modules/codec_g729.so /tmp/.
	fi
        if [ -f /usr/lib/asterisk/modules/codec_g729a.so ] ;then
                if [ -f /tmp/codec_g729a.so ] ;then
                        rm -f /tmp/codec_g729a.so
                fi
                mv /usr/lib/asterisk/modules/codec_g729a.so /tmp/.
        fi
        if [ -f /usr/lib/asterisk/modules/codec_g723.so ] ;then
                if [ -f /tmp/codec_g723.so ] ;then
                        rm -f /tmp/codec_g723.so
                fi
                mv /usr/lib/asterisk/modules/codec_g723.so /tmp/.
        fi
	echo "" ; echo "";
	echo "Realizando backup do sistema de configuracao..."
	echo "" ; echo "";
	sleep 2
	tar czvf /etc/netpbx/backup/asterisk_bkp_${DATE}.tar.gz /usr/lib/asterisk/ /var/lib/asterisk/  
	rm -rf /usr/lib/asterisk/modules
	cd /usr/src/;
	echo ""; echo ""; echo "";
	if [ -f /usr/src/asterisk-${ASTVER}.tar.gz ] ;then
        rm -f /usr/src/asterisk-${ASTVER}.tar.gz
	fi
	echo "[!] Baixando o source do asterisk";
	echo ""; echo ""; echo ""; echo ""; echo ""; 
	sleep 4;
	wget http://ftp.digium.com/pub/asterisk/releases/asterisk-${ASTVER}.tar.gz;
	echo ""; echo ""; echo "";
        if [ -f /usr/src/zaptel-${ZAPVER}.tar.gz ] ;then
        rm -f /usr/src/zaptel-${ZAPVER}.tar.gz
        fi
	echo "[!] Baixando o source do zaptel";
	echo ""; echo ""; echo "";
	sleep 4;
	wget http://ftp.digium.com/pub/zaptel/releases/zaptel-${ZAPVER}.tar.gz;
	echo ""; echo ""; echo "";
	echo "[!] Baixando o source do libpri";
	echo ""; echo ""; echo "";
	sleep 4;
        if [ -f /usr/src/libpri-${LIBVER}.tar.gz ] ;then
        rm -f /usr/src/libpri-${LIBVER}.tar.gz
        fi
	wget http://ftp.digium.com/pub/libpri/releases/libpri-${LIBVER}.tar.gz;
	echo ""; echo ""; echo "";
	echo "[!] Baixando o source do asterisk-addons";
	echo ""; echo ""; echo "";
	sleep 4;
        if [ -f /usr/src/asterisk-addons-${ADDVER}.tar.gz ] ;then
        rm -f /usr/src/asterisk-addons-${ADDVER}.tar.gz
        fi
	wget http://ftp.digium.com/pub/asterisk/releases/asterisk-addons-${ADDVER}.tar.gz;
	echo ""; echo ""; echo "";
	echo "[!] Descompactando o Asterisk";
	echo ""; echo ""; echo "";
	sleep 4;
	tar xzvpf /usr/src/asterisk-${ASTVER}.tar.gz;
	echo ""; echo ""; echo "";
	echo "[!] Descompactando o Zaptel";
	echo ""; echo ""; echo "";
	sleep 4;
	tar xzvpf /usr/src/zaptel-${ZAPVER}.tar.gz;
	echo ""; echo ""; echo "";
	echo "[!] Descompactando o Libpri";
	echo ""; echo ""; echo "";
	sleep 4;
	tar xzvpf /usr/src/libpri-${LIBVER}.tar.gz;
	echo ""; echo ""; echo "";
	echo "[!] Descompactando o Asterisk-Addons";
	echo ""; echo ""; echo "";
	sleep 4;
	tar xzvpf /usr/src/asterisk-addons-${ADDVER}.tar.gz;
	echo ""; echo ""; echo "";
	echo "[!] Realizando Backup do asterisk anterior";
	echo ""; echo ""; echo "";
	sleep 4;
	mv /usr/src/asterisk /usr/src/asterisk.${DATE};
	echo ""; echo ""; echo "";
	echo "[!] Realizando Backup do zaptel anterior";
	echo ""; echo ""; echo "";
	sleep 4;
	mv /usr/src/zaptel /usr/src/zaptel.${DATE};
	echo ""; echo ""; echo "";
	echo "[!] Realizando Backup do libpri anterior";
	echo ""; echo ""; echo "";
	sleep 4;
	mv /usr/src/libpri /usr/src/libpri${DATE};
	echo ""; echo ""; echo "";
	echo "[!] Realizando Backup do asterisk-addons anterior";
	echo ""; echo ""; echo "";
	sleep 4;
	mv /usr/src/asterisk-addons /usr/src/asterisk-addons.${DATE};
	echo ""; echo ""; echo "";
	echo "[!] Movendo versao atual para pasta principal";
	echo ""; echo ""; echo "";
	sleep 4;
	mv /usr/src/asterisk-${ASTVER} /usr/src/asterisk;
	mv /usr/src/zaptel-${ZAPVER} /usr/src/zaptel;
	mv /usr/src/libpri-${LIBVER} /usr/src/libpri;
	mv /usr/src/asterisk-addons-${ADDVER} /usr/src/asterisk-addons;
	echo ""; echo ""; echo "";
	echo "[!] Iniciando compilação do zaptel";
	echo ""; echo ""; echo "";
	sleep 4;
	cd /usr/src/zaptel/;
	make clean && make && make install;
	echo ""; echo ""; echo "";
	echo "[!] Iniciando compilação do libpri";
	echo ""; echo ""; echo "";
	sleep 4;
	cd /usr/src/libpri/;
	make clean && make && make install;
	echo ""; echo ""; echo "";
	echo "[!] Iniciando compilação do asterisk";
	echo ""; echo ""; echo "";
	sleep 4;
	cd /usr/src/asterisk;
	make clean && make && make install;
	echo ""; echo ""; echo "";
	echo "[!] Iniciando compilação do asterisk-addons";
	echo ""; echo ""; echo "";
	sleep 4;
	cd /usr/src/asterisk-addons;
	make clean && make && make install;
	echo ""; echo ""; echo "";
	
	echo ""; echo "";
	echo "Restaurando arquivos de CODEC de audio... "
	echo "" ; echo "";
	sleep 2
	
	if [ -f /tmp/codec_g729.so ] ;then
                if [ -f /usr/lib/asterisk/modules/codec_g729.so ] ;then
                        rm -f /usr/lib/asterisk/modules/codec_g729.so
                fi
                mv /tmp/codec_g729.so /usr/lib/asterisk/modules/.
        fi
        if [ -f /tmp/codec_g729a.so ] ;then
                if [ -f /usr/lib/asterisk/modules/codec_g729a.so ] ;then
                        rm -f /usr/lib/asterisk/modules/codec_g729a.so
                fi
                mv /tmp/codec_g729a.so /usr/lib/asterisk/modules/.
        fi
        if [ -f /tmp/codec_g723.so ] ;then
                if [ -f /usr/lib/asterisk/modules/codec_g723.so ] ;then
                        rm -f /usr/lib/asterisk/modules/codec_g723.so
                fi
                mv /tmp/codec_g723.so /usr/lib/asterisk/modules/.
        fi
	echo "" ; echo "";
	echo "Realizando download do sons... "
	echo "" ; echo "";
	sleep 2
	if [ -f /tmp/netpbx-2.4.3_sounds.tar.gz ] ;then
	        rm -f /tmp/netpbx-2.4.3_sounds.tar.gz
	fi
	cd /tmp
	wget -c http://update.netpbx.com.br/netpbx/netpbx-2.4.3_sounds.tar.gz
	cd /
	tar xvfz /tmp/netpbx-2.4.3_sounds.tar.gz
	chmod 777 -Rf /var/lib/asterisk/sounds
	chown -Rf asterisk:asterisk /var/lib/asterisk/sounds
	chmod 777 -Rf /var/lib/asterisk/mohmp3
	chown -Rf asterisk:asterisk /var/lib/asterisk/mohmp3
	echo ""; echo "";
	echo "[!] Parabens! Atualização concluida";
	echo "";
	echo "";
	echo "[!] Reinicie o Asterisk!";
	echo ""; echo ""; echo "";
	sleep 4;
	;;
  *)
        echo
        echo " Utilizacao: netpbx-update.sh comando"
        echo
        echo "        Os comandos sao {update | update-ast | help}"
        echo
        exit
        ;;

esac
