Instalação do PABX 1.8
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

714 lines
32 KiB

#!/bin/bash
trap "" 2 20
#Descobrindo o caminho do script
dir=$(dirname $0)
path_arquivo=$(cd $dir;pwd)
clear
echo ' '
echo ' _____ _ __ _____ ________ '
echo ' / ___/(_)___ ___ ____ / /__ / ___/ / _/ __ \'
echo ' \__ \/ / __ `__ \/ __ \/ / _ \\__ \ / // /_/ /'
echo ' ___/ / / / / / / / /_/ / / __/__/ / _/ // ____/ '
echo '/____/_/_/ /_/ /_/ .___/_/\___/____/ /___/_/ '
echo ' /_/ '
echo '
# '
# Verifica se o script esta rodando
#
if [ -e /tmp/sip_install.pid ] ; then
echo "Script em Excecucao..."
exit
fi
#
#Gera PID do scritp
#
echo $$ > /tmp/sip_install.pid
resposta=0
if [ -d /var/www/html/aplicativo ] || [ -d /var/www/html/include ] || [ -d /var/www/html/agenda ] ; then
echo ""
echo ""
echo -n "Identifiquei que ja ocorreu uma instalacao neste servidor, o procedimento a seguir substituira todos os arquivos, deseja continuar? (S/N):"
read -n 1 resposta
echo ""
if [[ $resposta != +(s|S|y|Y|sim|SIM) ]] ; then
/bin/rm -rf /tmp/sip_install.pid
/bin/rm -rf $path_arquivo
/bin/rm -rf $path_arquivo*.tar.gz
echo ""
echo "Instalacao cancelada!"
echo ""
echo ""
exit
fi
fi
#Variaveis
arquitetura=$(uname -m)
versao_linux=$(cat /etc/redhat-release | sed 's/[a-zA-Z() ]//g' | cut -d "." -f 1)
#Verifica enconding
encode=$(/bin/localectl status | tr [[:upper:]] [[:lower:]] | sed -e "s/\"//g" | grep "lang=" | cut -d "=" -f2)
if ! [ "$encode" = "en_us.iso885915" ] ; then
clear
echo -n "Encoding: $encode incorreto, deseja corrigir e reiniciar o servidor? (S/N):"
read -n 1 resposta
echo ""
if [[ $resposta != +(s|S|y|Y|sim|SIM) ]] ; then
/bin/rm -rf /tmp/sip_install.pid
exit
fi
/bin/localectl set-locale LANG=en_US.iso885915
clear
echo "Reiniciando..."
for i in {5..1};do sleep 1 && echo -n "$i ";done
echo ""
echo "Recomece a instalazacao"
/bin/rm -rf /tmp/sip_install.pid
[ -e /sbin/reboot ] && /sbin/reboot
reboot
fi
#Configura Timezone do sistema operacional
while true ; do
DIALOGDATA="$(for i in $(/usr/bin/timedatectl list-timezones) ; do echo -n "$i '' off " | sed -e "s/America\/Cuiaba '' off/America\/Cuiaba '' on/g" ; done)"
TIMEZONE=$(dialog --stdout --default-item America/Cuiaba --radiolist " CONFIGURE O TIMEZONE " 0 0 0 $DIALOGDATA)
# Apertou CANCELAR ou ESC, sair...
[ $? -ne 0 ] && /bin/rm -rf /tmp/sip_atualiza.pid && exit
OPCAO=$(echo $TIMEZONE | sed "s/,/\\n/g")
if ! [ -z "$OPCAO" ] ; then
/usr/bin/timedatectl set-timezone $OPCAO
break
fi
done
clear
#Parando servicos agendados
if [ -e /var/run/crond.pid ] ; then
systemctl stop crond.service
fi
#Diretorios
! [ -d /hdaux/downloads ] && mkdir -p /hdaux/downloads
! [ -d /hdaux/atualizacao ] && mkdir -p /hdaux/atualizacao
! [ -d /hdaux/utilitarios/scripts ] && mkdir -p /hdaux/utilitarios/scripts
! [ -d /hdaux/utilitarios/ferramentas ] && mkdir -p /hdaux/utilitarios/ferramentas
! [ -d /hdaux/utilitarios/manuais ] && mkdir -p /hdaux/utilitarios/manuais
! [ -d /hdaux/backup ] && mkdir -p /hdaux/backup
! [ -d /hdaux/restore ] && mkdir -p /hdaux/restore
! [ -d /etc/asterisk ] && mkdir -p /etc/asterisk
! [ -d /var/lib/asterisk ] && mkdir -p /var/lib/asterisk
! [ -d /var/run/asterisk ] && mkdir -p /var/run/asterisk
! [ -d /hdaux/downloads ] && mkdir -p /hdaux/downloads
! [ -d /var/log/logs_antigos/httpd ] && mkdir -p /var/log/logs_antigos/httpd
! [ -d /var/log/logs_antigos/nginx ] && mkdir -p /var/log/logs_antigos/nginx
! [ -d /var/log/logs_antigos/php-fpm ] && mkdir -p /var/log/logs_antigos/php-fpm
! [ -d /var/log/logs_antigos/ppp ] && mkdir -p /var/log/logs_antigos/ppp
! [ -d /var/log/logs_antigos/syslog ] && mkdir -p /var/log/logs_antigos/syslog
! [ -d /var/log/logs_antigos/audit ] && mkdir -p /var/log/logs_antigos/audit
! [ -d /var/log/logs_antigos/asterisk ] && mkdir -p /var/log/logs_antigos/asterisk
! [ -d /var/log/logs_antigos/asterisk/cdr-csv ] && mkdir -p /var/log/logs_antigos/asterisk/cdr-csv
! [ -d /var/log/logs_antigos/ntp ] && mkdir -p /var/log/logs_antigos/ntp
[ -e /etc/logrotate.d/httpd ] && rm -rf /etc/logrotate.d/httpd
[ -e /etc/logrotate.d/nginx ] && rm -rf /etc/logrotate.d/nginx
[ -e /etc/logrotate.d/php-fpm ] && rm -rf /etc/logrotate.d/php-fpm
[ -e /etc/logrotate.d/ppp ] && rm -rf /etc/logrotate.d/ppp
[ -e /etc/logrotate.d/syslog ] && rm -rf /etc/logrotate.d/syslog
[ -e /etc/init.d/supervisor ] && /etc/init.d/supervisor stop
#Criando o usuario manutencao, utilizado para desligar e reiniciar o servidor pelo cliente
if [ -z "$(cat /etc/passwd| grep -i ^manutencao:)" ] ; then
/usr/sbin/groupadd manutencao 2> /dev/null
/usr/sbin/useradd manutencao -g manutencao 2> /dev/null
fi
sed -i "/.*manutencao\.sh.*/d" /home/manutencao/.bashrc
sed -i "/^logout/d" /home/manutencao/.bashrc
#echo "/hdaux/utilitarios/scripts/manutencao.sh" >> /home/manutencao/.bashrc
echo "/home/manutencao/manutencao.sh" >> /home/manutencao/.bashrc
echo "logout" >> /home/manutencao/.bashrc
echo 'manutencao:$1$a5Ve1L3I$nNz40fKNj6Bc17tabq0tR0' | chpasswd -e
chmod 0755 /sbin/reboot
chmod 0755 /sbin/halt
[ -L /bin/reboot ] && unlink /bin/reboot
[ -L /bin/halt ] && unlink /bin/halt
if [ -z "$(cat /etc/passwd| grep -i ^aplicacao:)" ] ; then
/usr/sbin/groupadd aplicacao 2> /dev/null
/usr/sbin/useradd -d /tmp aplicacao -g aplicacao 2> /dev/null
else
if ! [ -z "$(grep -i "^aplicacao:x:0:0" /etc/passwd)" ] ; then
sed -i "s/^\(aplicacao\:x.*\)/aplicacao\:x\:700\:700\:\:\/tmp\:\/bin\/bash/g" /etc/passwd
/usr/sbin/userdel aplicacao
/usr/sbin/groupadd aplicacao 2> /dev/null
/usr/sbin/useradd -d /tmp aplicacao -g aplicacao 2> /dev/null
fi
fi
echo 'aplicacao:$6$ATTBesNh$nDOFtvY3acrCpGpEaMzyIzzSlLqts6H.z/9dlL01v2TP3c4bR4ullbiR5blvtKb3irLyN4WHo5Zyb0YNTBWUK.' | chpasswd -e
if [ -z "$(cat /etc/passwd| grep -i ^pbx:)" ] ; then
/usr/sbin/groupadd pbx 2> /dev/null
/usr/sbin/useradd -d /var/lib/asterisk -g pbx pbx -s /sbin/nologin 2> /dev/null
fi
if [ -z "$(cat /etc/passwd| grep -i ^simples:)" ] ; then
/usr/sbin/groupadd simples 2> /dev/null
/usr/sbin/useradd simples -g simples 2> /dev/null
fi
/usr/bin/gpasswd -a simples pbx
echo 'simples:$1$.a2cO7Hk$GR/pAYAWj2swBYvkMmT1M0' | chpasswd -e
if [ -z "$(cat /etc/passwd| grep -i ^sipadmin:)" ] ; then
/usr/sbin/groupadd sipadmin 2> /dev/null
/usr/sbin/useradd sipadmin -g sipadmin 2> /dev/null
fi
echo 'sipadmin:$1$TxxcluHK$Sp7JKPyEwaoIUNMEzPYcO0' | chpasswd -e
if [ -z "$(cat /etc/passwd| grep -i ^pablo:)" ] ; then
/usr/sbin/groupadd pablo 2> /dev/null
/usr/sbin/useradd --no-create-home pablo -g pablo 2> /dev/null
fi
echo 'pablo:$1$ohLbyCo8$gkkznaV9F/zjGvTLk.s9G.' | chpasswd -e
#Alterando senha de root
echo 'root:$1$ui0wOo2b$f1DFvPtJKBrHHnLAG6vUM1' | chpasswd -e
#Instalando/atualizando scripts de VPN
cd $path_arquivo/
[ -e $(ls -1 simplesip*.rpm) ] && rpm -hUv simplesip*.rpm
cd $path_arquivo/
#Configurando apache
if [ -e /etc/httpd/run/httpd.pid ] ; then
systemctl stop httpd
fi
sleep 2
! [ -z $(ls -ltr /etc/httpd/conf/httpd.conf.ori* 2> /dev/null | head -n1 | awk {'print $9'}) ] && /bin/mv -f $(ls -ltr /etc/httpd/conf/httpd.conf.ori* | head -n1 | awk {'print $9'}) /etc/httpd/conf/httpd.conf
/bin/cp -Rapf /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.ori.$(date +%F-%H-%M-%S)
sed -i "s/^\(DocumentRoot \".*\)/DocumentRoot \"\/var\/www\/html\/aplicativo\"/g" /etc/httpd/conf/httpd.conf
sed -i "s/^\(User apache\)/User pbx/g" /etc/httpd/conf/httpd.conf
sed -i "s/^\(Group apache\)/Group pbx/g" /etc/httpd/conf/httpd.conf
sed -i "/Alias \/downloads/,/<\/Directory>/d" /etc/httpd/conf/httpd.conf
sed -i "/Alias \/old/,/<\/Directory>/d" /etc/httpd/conf/httpd.conf
sed -i "/Alias \/gravacoes/,/<\/Directory>/d" /etc/httpd/conf/httpd.conf
sed -i "/Alias \/agenda/,/<\/Directory>/d" /etc/httpd/conf/httpd.conf
sed -i "/Alias \/ferramentas/,/<\/Directory>/d" /etc/httpd/conf/httpd.conf
sed -i "/Alias \/manuais/,/<\/Directory>/d" /etc/httpd/conf/httpd.conf
sed -i "/^ $/d" /etc/httpd/conf/httpd.conf
old=$(grep "Alias /old" /etc/httpd/conf/httpd.conf)
if [ -z "$old" ] ; then
echo " " >> /etc/httpd/conf/httpd.conf
echo "Alias /old \"/var/www/html/old/\"" >> /etc/httpd/conf/httpd.conf
echo " " >> /etc/httpd/conf/httpd.conf
echo "<Directory \"/var/www/html/old\"> " >> /etc/httpd/conf/httpd.conf
echo " Options Indexes MultiViews " >> /etc/httpd/conf/httpd.conf
echo " AllowOverride None " >> /etc/httpd/conf/httpd.conf
echo " Order allow,deny " >> /etc/httpd/conf/httpd.conf
echo " Require all granted " >> /etc/httpd/conf/httpd.conf
echo " Allow from all " >> /etc/httpd/conf/httpd.conf
echo "</Directory> " >> /etc/httpd/conf/httpd.conf
fi
gravacoes=$(grep "Alias /gravacoes" /etc/httpd/conf/httpd.conf)
if [ -z "$gravacoes" ] ; then
echo " " >> /etc/httpd/conf/httpd.conf
echo "Alias /gravacoes \"/var/spool/asterisk/monitor\" " >> /etc/httpd/conf/httpd.conf
echo " " >> /etc/httpd/conf/httpd.conf
echo "<Directory \"/var/spool/asterisk/monitor\"> " >> /etc/httpd/conf/httpd.conf
echo " Options Indexes MultiViews " >> /etc/httpd/conf/httpd.conf
echo " AllowOverride None " >> /etc/httpd/conf/httpd.conf
echo " Order allow,deny " >> /etc/httpd/conf/httpd.conf
echo " Require all granted " >> /etc/httpd/conf/httpd.conf
echo " Allow from 127.0.0.1 " >> /etc/httpd/conf/httpd.conf
echo "</Directory> " >> /etc/httpd/conf/httpd.conf
fi
agenda=$(grep "Alias /agenda" /etc/httpd/conf/httpd.conf)
if [ -z "$agenda" ] ; then
echo " " >> /etc/httpd/conf/httpd.conf
echo "Alias /agenda \"/var/www/html/agenda\" " >> /etc/httpd/conf/httpd.conf
echo " " >> /etc/httpd/conf/httpd.conf
echo "<Directory \"/var/www/html/agenda/\"> " >> /etc/httpd/conf/httpd.conf
echo " Options Indexes MultiViews " >> /etc/httpd/conf/httpd.conf
echo " AllowOverride None " >> /etc/httpd/conf/httpd.conf
echo " Order allow,deny " >> /etc/httpd/conf/httpd.conf
echo " Require all granted " >> /etc/httpd/conf/httpd.conf
echo " Allow from all " >> /etc/httpd/conf/httpd.conf
echo "</Directory> " >> /etc/httpd/conf/httpd.conf
fi
downloads=$(grep "Alias /downloads" /etc/httpd/conf/httpd.conf)
if [ -z "$downloads" ] ; then
echo " " >> /etc/httpd/conf/httpd.conf
echo "Alias /downloads \"/hdaux/downloads\" " >> /etc/httpd/conf/httpd.conf
echo " " >> /etc/httpd/conf/httpd.conf
echo "<Directory \"/hdaux/downloads/\"> " >> /etc/httpd/conf/httpd.conf
echo " Options Indexes MultiViews " >> /etc/httpd/conf/httpd.conf
echo " AllowOverride None " >> /etc/httpd/conf/httpd.conf
echo " Order allow,deny " >> /etc/httpd/conf/httpd.conf
echo " Require all granted " >> /etc/httpd/conf/httpd.conf
echo " Allow from all " >> /etc/httpd/conf/httpd.conf
echo "</Directory> " >> /etc/httpd/conf/httpd.conf
fi
ferramentas=$(grep "Alias /ferramentas" /etc/httpd/conf/httpd.conf)
if [ -z "$ferramentas" ] ; then
echo " " >> /etc/httpd/conf/httpd.conf
echo "Alias /ferramentas \"/hdaux/utilitarios/ferramentas\" " >> /etc/httpd/conf/httpd.conf
echo " " >> /etc/httpd/conf/httpd.conf
echo "<Directory \"/hdaux/utilitarios/ferramentas/\"> " >> /etc/httpd/conf/httpd.conf
echo " Options Indexes MultiViews " >> /etc/httpd/conf/httpd.conf
echo " AllowOverride None " >> /etc/httpd/conf/httpd.conf
echo " Order allow,deny " >> /etc/httpd/conf/httpd.conf
echo " Require all granted " >> /etc/httpd/conf/httpd.conf
echo " Allow from all " >> /etc/httpd/conf/httpd.conf
echo "</Directory> " >> /etc/httpd/conf/httpd.conf
fi
manuais=$(grep "Alias /manuais" /etc/httpd/conf/httpd.conf)
if [ -z "$manuais" ] ; then
echo " " >> /etc/httpd/conf/httpd.conf
echo "Alias /manuais \"/hdaux/utilitarios/manuais\" " >> /etc/httpd/conf/httpd.conf
echo " " >> /etc/httpd/conf/httpd.conf
echo "<Directory \"/hdaux/utilitarios/manuais/\"> " >> /etc/httpd/conf/httpd.conf
echo " Options Indexes MultiViews " >> /etc/httpd/conf/httpd.conf
echo " AllowOverride None " >> /etc/httpd/conf/httpd.conf
echo " Order allow,deny " >> /etc/httpd/conf/httpd.conf
echo " Require all granted " >> /etc/httpd/conf/httpd.conf
echo " Allow from all " >> /etc/httpd/conf/httpd.conf
echo "</Directory> " >> /etc/httpd/conf/httpd.conf
fi
#AJUSTE CENTOS 8
echo '<FilesMatch "\.(agi)$">' > /etc/httpd/conf.d/agi.conf
echo ' SetHandler agi-script' >> /etc/httpd/conf.d/agi.conf
echo '</FilesMatch>' >> /etc/httpd/conf.d/agi.conf
LINHA=$(cat -n /etc/httpd/conf/httpd.conf | grep '<Files "\.ht\*">' | awk {'print $1'})
sed -i "$(($LINHA+4)) a\Timeout 600" /etc/httpd/conf/httpd.conf
cd $path_arquivo/
#Configurando banco de dados postgresql
if ! [ -e /var/lib/pgsql/data/postgresql.conf ] ; then
/usr/bin/postgresql-setup --initdb
fi
sleep 3
[ -e /var/run/postgresql/.s.PGSQL.5432 ] && /bin/systemctl stop postgresql.service
sleep 2
! [ -z $(ls -ltr /var/lib/pgsql/data/postgresql.conf.ori* 2> /dev/null | head -n1 | awk {'print $9'}) ] && /bin/mv -f $(ls -ltr /var/lib/pgsql/data/postgresql.conf.ori* | head -n1 | awk {'print $9'}) /var/lib/pgsql/data/postgresql.conf
sed -i "s/^\(autovacuum =.*\)/autovacuum = off/g" /var/lib/pgsql/data/postgresql.conf
sed -i "s/^\(#autovacuum =.*\)/autovacuum = off/g" /var/lib/pgsql/data/postgresql.conf
sed -i "s/^\(listen_addresses =.*\)/listen_addresses = \'\*\'/g" /var/lib/pgsql/data/postgresql.conf
sed -i "s/^\(#listen_addresses =.*\)/listen_addresses = \'\*\'/g" /var/lib/pgsql/data/postgresql.conf
#autovacuum = on
/bin/cp -Rapf /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.ori.$(date +%F-%H-%M-%S)
sed -i "s/^\(.*host.*all.*all.*127.0.0.1.*\)/host all all 127.0.0.1\/32 password/g" /var/lib/pgsql/data/pg_hba.conf
sed -i "s/^\(.*host.*all.*all.*0.0.0.0\/0.*\)/host all all 127.0.0.1\/32 password/g" /var/lib/pgsql/data/pg_hba.conf
sed -i "/\(.*192\.168\.115\.0*.\)/d" /var/lib/pgsql/data/pg_hba.conf
sed -i "/\(.*10\.252\.252\.0*.\)/d" /var/lib/pgsql/data/pg_hba.conf
sed -i "/\(.*177\.67\.197\.146*.\)/d" /var/lib/pgsql/data/pg_hba.conf
echo "host all all 192.168.115.0/24 password" >> /var/lib/pgsql/data/pg_hba.conf
echo "host all all 10.252.252.0/24 password" >> /var/lib/pgsql/data/pg_hba.conf
echo "host all all 177.67.197.146/32 password" >> /var/lib/pgsql/data/pg_hba.conf
/bin/systemctl start postgresql.service
sleep 15
cd /tmp
if [ -z "$(su postgres -c 'psql -l | grep postgres')" ] ; then
echo "Aguardando resposta do Banco de Dados"
for i in {30..1};do sleep 1 && echo -n "$i ";done
if [ -z "$(su postgres -c 'psql -l | grep postgres')" ] ; then
echo ""
echo ""
echo "O banco de dados nao esta acessivel"
echo "Instalcao cancelada"
echo ""
echo ""
/bin/rm -rf /tmp/sip_install.pid
/bin/rm -rf $path_arquivo
/bin/rm -rf $path_arquivo*.tar.gz
exit
fi
fi
su postgres -c "psql -c \"CREATE USER contacte WITH PASSWORD 'ctepgSQL' SUPERUSER CREATEDB CREATEROLE;\""
sleep 3
su postgres -c "psql -c \"CREATE USER root WITH PASSWORD '$imple$ip' SUPERUSER CREATEDB CREATEROLE;\""
sleep 3
su postgres -c "psql -c \"CREATE USER simplesip WITH PASSWORD 'smplsIP' SUPERUSER CREATEDB CREATEROLE;\""
sleep 3
su postgres -c "psql -c \"ALTER USER postgres WITH PASSWORD 'SIP$$';\""
sleep 3
su postgres -c "psql -c \"ALTER USER contacte WITH PASSWORD 'ctepgSQL';\""
sleep 3
su postgres -c "psql -c \"ALTER USER root WITH PASSWORD '$imple$ip';\""
sleep 3
su postgres -c "psql -c \"ALTER USER simplesip WITH PASSWORD 'smplsIP';\""
sleep 3
#Criando Banco de Dados
! [ -z "$(su postgres -c 'psql -l' | grep pbx)" ] && su postgres -c "dropdb pbx"
sleep 5
su postgres -c "createdb pbx"
sleep 5
#mv $path_arquivo/database/pbx-data.sql /tmp/pbx.sql
mkdir -p /tmp/database
tar xzf $path_arquivo/database/pbx-data*.tar.gz -C /tmp/database/
su postgres -c "psql -d pbx -f /tmp/database/pbx*.sql"
sleep 1
/bin/rm -rf /tmp/database
psql -c "delete from pbx_funcoes" -d pbx
psql -c "delete from pbx_funcoes_internas" -d pbx
psql -c "update pbx_usuarios set senha = md5('OitoDois80_SiP'), check_vl = md5('admin') where apelido = 'admin'" -d pbx
psql -c "update pbx_usuarios set senha = md5('SimpleS_admin'), check_vl = md5('administrador') where apelido = 'administrador'" -d pbx
psql -c "update pbx_usuarios set senha = md5('s3ncC0nt@S2nh@'), check_vl = md5('sinccontasenha') where apelido = 'sinccontasenha'" -d pbx
psql -c "update pbx_conf_padrao set usuario_servidor = 'aplicacao', senha_servidor = 'mudA_horA@SimpleSiP', porta_servidor = '2223'" -d pbx
psql -c "update pbx_sip_general set extranet = '$(/sbin/ip ro | grep "/" | awk {'print $1'} | grep -v "169.254.0.0")'" -d pbx
psql -c "update pbx_motivos_pausas set tempo_alerta = '120' where tempo_alerta is null" -d pbx
cd $path_arquivo/
#Configurando msmtp
! [ -e /etc/msmtprc ] && touch /etc/msmtprc
chmod 700 /etc/msmtprc
echo "set sendmail=/usr/bin/msmtp" > /root/.mailrc
echo "defaults" > /etc/msmtprc
echo "account voicemail" >> /etc/msmtprc
echo "port 587" >> /etc/msmtprc
echo "timeout off" >> /etc/msmtprc
echo "protocol smtp" >> /etc/msmtprc
echo "domain smtp.office365.com" >> /etc/msmtprc
echo "tls on" >> /etc/msmtprc
echo "tls_trust_file" >> /etc/msmtprc
echo "tls_certcheck on" >> /etc/msmtprc
echo "logfile ~/.msmtp.log" >> /etc/msmtprc
echo "host smtp.office365.com" >> /etc/msmtprc
echo "from pabx.simplesip@outlook.com" >> /etc/msmtprc
echo "auth login" >> /etc/msmtprc
echo "user pabx.simplesip@outlook.com" >> /etc/msmtprc
echo "password SimpleS_root" >> /etc/msmtprc
echo "" >> /etc/msmtprc
echo "account default:voicemail" >> /etc/msmtprc
chmod --recursive u=rwX,g=rX,o= /etc/msmtprc
chown --recursive pbx:pbx /etc/msmtprc
#Voicemail
psql -Atc "update pbx_confmail set conta = 'voicemail', porta = '587', timeout = 'off', protocolo = 'smtp', dominio = 'smtp.office365.com', tsl = 'on', tsl_certificado = '', tsl_check = 'on', hosts = 'smtp.office365.com', de = 'pabx.simplesip@outlook.com', auth = 'login', usuario = 'pabx.simplesip@outlook.com', senha = 'SimpleS_root', padrao = 'S'" -d pbx
sed -i "/\(.*#Servicos Auxiliares\)/d" /etc/crontab
sed -i "/\(.*#Transbordo Assistido\)/d" /etc/crontab
sed -i "/\(.*#Backup\)/d" /etc/crontab
sed -i "/\(.*#VPN\)/d" /etc/crontab
sed -i "/\(.*#Remove Caixa Postal\)/d" /etc/crontab
sed -i "/\(.*#Limpa Maildrop\)/d" /etc/crontab
sed -i "/\(.*#Backup - Shell\)/d" /etc/crontab
sed -i "/\(.*#Bloqueio - SIP\)/d" /etc/crontab
sed -i "/\(.*#NTP\)/d" /etc/crontab
sed -i "/\(.*#Logrotate\)/d" /etc/crontab
sed -i "/\(.*\/var\/spool\/asterisk\/voicemail\/default\/\)/d" /etc/crontab
sed -i "/\(.*\/var\/spool\/postfix\/maildrop\/\)/d" /etc/crontab
sed -i "/\(.*\/hdaux\/utilitarios\/scripts\/logrotate\)/d" /etc/crontab
sed -i "/\(.*\.sh.*\)/d" /etc/crontab
sed -i "/\(.*\.php.*\)/d" /etc/crontab
echo "#Servicos Auxiliares" >> /etc/crontab
echo "0 0 * * * root /var/lib/asterisk/scripts/callcenter/reload.sh" >> /etc/crontab
echo "0 1 * * * root /hdaux/utilitarios/scripts/hd.sh " >> /etc/crontab
echo "*/1 * * * * root /var/lib/asterisk/scripts/callcenter/queue_log.php" >> /etc/crontab
echo "*/1 * * * * root /var/lib/asterisk/scripts/callcenter/monitora_agentes.php 180" >> /etc/crontab
echo "*/1 * * * * root /var/lib/asterisk/scripts/manutencaoDB/importaBilhetes.php" >> /etc/crontab
#echo "*/30 * * * * root /var/lib/asterisk/scripts/portabilidade/atualiza_cliente.php" >> /etc/crontab
echo "*/1 * * * * root /var/lib/asterisk/scripts/workflow/workflowSender.php" >> /etc/crontab
echo "0 2 * * * root /var/lib/asterisk/scripts/manutencaoDB/manutencaodb.php" >> /etc/crontab
echo "#*/1 * * * * root /var/lib/asterisk/scripts/integracao/encerraChamada.php" >> /etc/crontab
echo "*/1 * * * * root /var/lib/asterisk/scripts/callcenter/atualizar-dacs.php" >> /etc/crontab
echo "*/1 * * * * root sleep 15 && /var/lib/asterisk/scripts/callcenter/atualizar-dacs.php" >> /etc/crontab
echo "*/1 * * * * root sleep 30 && /var/lib/asterisk/scripts/callcenter/atualizar-dacs.php" >> /etc/crontab
echo "*/1 * * * * root sleep 45 && /var/lib/asterisk/scripts/callcenter/atualizar-dacs.php" >> /etc/crontab
echo "#Transbordo Assistido" >> /etc/crontab
echo "*/1 * * * * root /var/lib/asterisk/agi-bin/transbordo.php" >> /etc/crontab
echo "*/1 * * * * root sleep 15 && /var/lib/asterisk/agi-bin/transbordo.php" >> /etc/crontab
echo "*/1 * * * * root sleep 30 && /var/lib/asterisk/agi-bin/transbordo.php" >> /etc/crontab
echo "*/1 * * * * root sleep 45 && /var/lib/asterisk/agi-bin/transbordo.php" >> /etc/crontab
echo "#Backup" >> /etc/crontab
echo "*/10 * * * * root /var/lib/asterisk/scripts/backup/backup.php" >> /etc/crontab
echo "#Backup - Shell" >> /etc/crontab
echo "0 1 * * * root /hdaux/utilitarios/scripts/backup.sh config,bd" >> /etc/crontab
echo "#VPN" >> /etc/crontab
echo "*/1 * * * * root /bin/sip_teste_vpn.sh" >> /etc/crontab
echo "#Remove Caixa Postal" >> /etc/crontab
echo "0 1 * * * root find /var/spool/asterisk/voicemail/default/ -iname *.WAV -mtime +10 -exec rm -rf {} \\;" >> /etc/crontab
echo "0 1 * * * root find /var/spool/asterisk/voicemail/default/ -iname *.txt -mtime +10 -exec rm -rf {} \\;" >> /etc/crontab
echo "#Limpa Maildrop" >> /etc/crontab
echo "0 6 * * * root for i in \$(ls -1 /var/spool/postfix/maildrop/) ; do /bin/rm -rf /var/spool/postfix/maildrop/\$i ; done" >> /etc/crontab
echo "#Bloqueio - SIP" >> /etc/crontab
echo "*/1 * * * * root /hdaux/utilitarios/scripts/bloqueia_autenticacao.sh" >> /etc/crontab
#echo "#NTP" >> /etc/crontab
#echo "*/15 * * * * root /hdaux/utilitarios/scripts/ntp.sh" >> /etc/crontab
echo "#Logrotate" >> /etc/crontab
echo "59 23 * * * root /hdaux/utilitarios/scripts/logrotate.sh --force" >> /etc/crontab
#VPN
echo '#!/bin/bash' > /etc/ppp/ip-up.local
echo "" >> /etc/ppp/ip-up.local
echo "case \"\$5\" in" >> /etc/ppp/ip-up.local
echo " 10.254.254.1)" >> /etc/ppp/ip-up.local
echo " /sbin/route add -net 10.252.252.0/24 gw 10.254.254.1" >> /etc/ppp/ip-up.local
echo " /sbin/route add -net 192.168.115.0/24 gw 10.254.254.1" >> /etc/ppp/ip-up.local
echo " ;;" >> /etc/ppp/ip-up.local
echo " *)" >> /etc/ppp/ip-up.local
echo "esac" >> /etc/ppp/ip-up.local
chmod 777 /etc/ppp/ip-up.local
#SSH
sed -i "/\(^aplicacao *.\)/d" /etc/sudoers
sed -i "/\(^pablo *.\)/d" /etc/sudoers
sed -i "/\(^manutencao *.\)/d" /etc/sudoers
sed -i "/\(^simples *.\)/d" /etc/sudoers
sed -i "/\(^sipadmin *.\)/d" /etc/sudoers
echo "sipadmin ALL=(ALL) NOPASSWD:/usr/sbin/rasterisk,NOPASSWD:/usr/sbin/asterisk,NOPASSWD:/sbin/iptables,NOPASSWD:/bin/sed,NOPASSWD:/bin/sip_lista_bloqueio.sh,NOPASSWD:/bin/sip_limpa_bloqueio.sh,NOPASSWD:/sbin/halt,NOPASSWD:/sbin/reboot,NOPASSWD:/usr/sbin/setup,NOPASSWD:/sbin/service,NOPASSWD:/bin/date" >> /etc/sudoers
echo "simples ALL=(ALL) NOPASSWD:/usr/sbin/rasterisk,NOPASSWD:/usr/sbin/asterisk,NOPASSWD:/usr/sbin/setup,NOPASSWD:/sbin/service" >> /etc/sudoers
echo "aplicacao ALL=(ALL) NOPASSWD:/bin/ls,NOPASSWD:/usr/bin/ffmpeg,NOPASSWD:/bin/mkdir,NOPASSWD:/bin/chown pbx*,NOPASSWD:/bin/date,NOPASSWD:/bin/rm -rf /var/lib/asterisk/*,NOPASSWD:/bin/mv /var/lib/asterisk/*" >> /etc/sudoers
echo "manutencao ALL=(ALL) NOPASSWD:/sbin/halt,NOPASSWD:/sbin/reboot,NOPASSWD:/usr/sbin/system-config-network-tui,NOPASSWD:/sbin/service" >> /etc/sudoers
echo "pablo ALL=(ALL) ALL" >> /etc/sudoers
sed -i "s/^\(^#Port .*\)/Port 2223/g" /etc/ssh/sshd_config
sed -i "s/^\(^Port .*\)/Port 2223/g" /etc/ssh/sshd_config
sed -i "s/^\(^#PermitRootLogin .*\)/PermitRootLogin no/g" /etc/ssh/sshd_config
sed -i "s/^\(^PermitRootLogin .*\)/PermitRootLogin no/g" /etc/ssh/sshd_config
sed -i "/\(.*AllowUsers*.\)/d" /etc/ssh/sshd_config
echo "AllowUsers aplicacao@127.0.0.1 simples sipadmin pablo opc centos" >> /etc/ssh/sshd_config
#NTP
/bin/cp -Rapf /etc/chrony.conf /etc/chrony.conf.ori.$(date +%F-%H-%M-%S)
echo "pool 2.centos.pool.ntp.org iburst" > /etc/chrony.conf
echo "driftfile /var/lib/chrony/drift" >> /etc/chrony.conf
echo "makestep 1.0 3" >> /etc/chrony.conf
echo "rtcsync" >> /etc/chrony.conf
echo "allow 10.0.0.0/8" >> /etc/chrony.conf
echo "allow 172.0.0.0/8" >> /etc/chrony.conf
echo "allow 192.0.0.0/8" >> /etc/chrony.conf
echo "keyfile /etc/chrony.keys" >> /etc/chrony.conf
echo "leapsectz right/UTC" >> /etc/chrony.conf
echo "logdir /var/log/chrony" >> /etc/chrony.conf
#Atualizando scripts de apoio
cd $path_arquivo/
rm -rf /hdaux/utilitarios/scripts/*
/bin/cp -Rapf hdaux/utilitarios/scripts/* /hdaux/utilitarios/scripts/
[ "0" != $(ls -1 /hdaux/utilitarios/scripts/ | grep ".sh" | wc -l) ] && chmod 777 /hdaux/utilitarios/scripts/*.sh
[ "0" != $(ls -1 /hdaux/utilitarios/scripts/ | grep ".php" | wc -l) ] && chmod 755 /hdaux/utilitarios/scripts/*.php
/bin/cp -Rapf /hdaux/utilitarios/scripts/manutencao.sh /home/manutencao/
#Parando o servico
PID=$(ps -C asterisk| awk {'print $1'} |grep -v "PID")
if ! [ -z $PID ] ; then
/bin/systemctl stop rc.pbx.service
fi
#Atualizando arquivos de configuracao
cd $path_arquivo/
/bin/rm -rf /etc/asterisk/*
/bin/rm -rf /var/lib/asterisk/*
#/bin/cp -Rapf asterisk/etc_asterisk/default_asterisk/* /etc/asterisk/
/bin/cp -Rapf etc/asterisk/* /etc/asterisk/
/bin/cp -Rapf etc_asterisk/* /etc/asterisk/
#Desabilita o modulo DGV caso necessario
if [ -e /etc/init.d/vlibd ] ; then
placa=$(lspci|grep "PLX Technology")
if [ -z "$placa" ] ; then
dgv=$(grep chan_dgv.so /etc/asterisk/modules.conf)
if [ -z "$dgv" ] ; then
echo "noload => chan_dgv.so" >> /etc/asterisk/modules.conf
else
sed -i "s/.*chan_dgv\.so.*/noload => chan_dgv\.so/g" /etc/asterisk/modules.conf
fi
fi
fi
#Atualizando scripts e arquivos de sons
#tar xzf var_lib_asterisk.tar.gz
mv var/lib/asterisk/* /var/lib/asterisk/
#Atualizando o aplicativo (site)
cd $path_arquivo/
[ -d /var/www/html/aplicativo ] && rm -rf /var/www/html/aplicativo
[ -d /var/www/html/agenda ] && rm -rf /var/www/html/agenda
[ -d /var/www/html/include ] && rm -rf /var/www/html/include
/bin/cp -Rapf var/www/html/* /var/www/html/
cd $path_arquivo/
#Configurando php
/bin/cp -Rapf /etc/opt/remi/php56/php.ini /etc/opt/remi/php56/php.ini.ori.$(date +%F-%H-%M-%S)
/bin/cp -Rapf /var/www/html/include/scriptdb/install/php/php.ini /etc/opt/remi/php56/php.ini
sed -i "s/^\(^\[Encoder\]\)/;\[Encoder\]/g" /etc/opt/remi/php56/php.ini
sed -i "s/^\(^zend_extension\)/;zend_extension/g" /etc/opt/remi/php56/php.ini
[ -L /usr/bin/php ] && unlink /usr/bin/php
ln -s /opt/remi/php56/root/usr/bin/php /usr/bin/php
/bin/cp -Rapf /etc/opt/remi/php56/php-fpm.d/www.conf /etc/opt/remi/php56/php-fpm.d/www.conf.ori.$(date +%F-%H-%M-%S)
sed -i "s/^\(user = apache\)/user = pbx/g" /etc/opt/remi/php56/php-fpm.d/www.conf
sed -i "s/^\(group = apache\)/group = pbx/g" /etc/opt/remi/php56/php-fpm.d/www.conf
sed -i "s/^\(^;listen.owner =.*\)/listen.owner = pbx/g" /etc/opt/remi/php56/php-fpm.d/www.conf
sed -i "s/^\(^;listen.group =.*\)/listen.group = pbx/g" /etc/opt/remi/php56/php-fpm.d/www.conf
sed -i "s/^\(^;listen.mode =.*\)/listen.mode = 0660/g" /etc/opt/remi/php56/php-fpm.d/www.conf
sed -i "s/^\(^listen.owner =.*\)/listen.owner = pbx/g" /etc/opt/remi/php56/php-fpm.d/www.conf
sed -i "s/^\(^listen.group =.*\)/listen.group = pbx/g" /etc/opt/remi/php56/php-fpm.d/www.conf
sed -i "s/^\(^listen.mode =.*\)/listen.mode = 0755/g" /etc/opt/remi/php56/php-fpm.d/www.conf
sed -i "s/^\(^listen.acl_users =.*\)/;listen.acl_users =/g" /etc/opt/remi/php56/php-fpm.d/www.conf
sed -i "s/^\(^listen.acl_groups =.*\)/;listen.acl_groups =/g" /etc/opt/remi/php56/php-fpm.d/www.conf
/bin/cp -Rapf /usr/lib/systemd/system/httpd.service.d/php56-php-fpm.conf /usr/lib/systemd/system/httpd.service.d/php56-php-fpm.conf.$(date +%F-%H-%M-%S)
echo "[service]" >> /usr/lib/systemd/system/httpd.service.d/php56-php-fpm.conf
echo "User=pbx" >> /usr/lib/systemd/system/httpd.service.d/php56-php-fpm.conf
echo "Group=pbx" >> /usr/lib/systemd/system/httpd.service.d/php56-php-fpm.conf
chown pbx:pbx -R /var/opt/remi/php56/run/php-fpm
chown pbx:pbx -R /var/opt/remi/php56/lib/php
#chown --recursive pbx:pbx /var/lib/php
#Timezone PHP
timezone=$(/usr/bin/timedatectl | grep "Time zone:" | awk '{print $3}')
! [ -z "$timezone" ] && sed -i "s|^\(;date.timezone =.*\)|date.timezone = \"$timezone\"|g" /etc/opt/remi/php56/php.ini
! [ -z "$timezone" ] && sed -i "s|^\(date.timezone =.*\)|date.timezone = \"$timezone\"|g" /etc/opt/remi/php56/php.ini
#DNSMASQ
DNSRESOLV=$(cat /etc/resolv.conf | grep -v "#" | grep -v "127.0.0.1" | wc -l)
if ! [ "$DNSRESOLV" = "0" ] ; then
/bin/cp -Rapf /etc/dnsmasq.conf /etc/dnsmasq.conf.$(date +%F-%H-%M-%S)
sed -i "/\(^server=.*\)/d" /etc/dnsmasq.conf
for i in $(cat /etc/resolv.conf | grep -v "#" | grep -v "127.0.0.1" | awk {'print $2'}) ; do echo "server=$i" >> /etc/dnsmasq.conf ; done
else
echo "Nao ha DNS configurado!"
fi
#Ferramentas e Manuais
cd $path_arquivo/
#[ "0" != $(ls -1 ferramentas/ | wc -l) ] && /bin/rm -rf /hdaux/utilitarios/ferramentas/* && /bin/cp -Rapf ferramentas/* /hdaux/utilitarios/ferramentas/
#[ "0" != $(ls -1 manuais/ | wc -l) ] && /bin/rm -rf && /hdaux/utilitarios/manuais/* && /bin/cp -Rapf manuais/* /hdaux/utilitarios/manuais/
[ -d /hdaux/utilitarios/ferramentas ] && /bin/rm -rf /hdaux/utilitarios/ferramentas
[ -d /hdaux/utilitarios/manuais ] && /bin/rm -rf /hdaux/utilitarios/manuais
/bin/cp -Rapf ferramentas /hdaux/utilitarios/
/bin/cp -Rapf manuais /hdaux/utilitarios/
##Ajuste de permissoes da aplicacao
echo "Configurando permissoes"
/hdaux/utilitarios/scripts/permissoes_atualizacao.sh
#Reiniciando os servicos
echo "Reiniciando os servicos"
asterisk -rx "module reload app_queue.so"
[ -e /var/run/nginx.pid ] && /bin/systemctl stop nginx.service
sleep 1
[ -e /var/run/php-fpm/php-fpm.pid ] && /bin/systemctl stop php-fpm.service
sleep 1
[ -e /etc/httpd/run/httpd.pid ] && /bin/systemctl stop httpd.service
sleep 1
/bin/systemctl start httpd.service
sleep 1
/bin/systemctl restart postgresql.service
sleep 2
/bin/systemctl restart sshd.service
sleep 2
/etc/init.d/supervisor start
sleep 2
/bin/systemctl restart dnsmasq.service
/bin/systemctl enable httpd.service
/bin/systemctl enable php56-php-fpm
/bin/systemctl enable postgresql.service
/bin/systemctl enable sshd.service
/bin/systemctl enable rc.pbx.service
#/bin/systemctl enable dahdi.service
/bin/systemctl enable crond.service
/bin/systemctl enable supervisor.service
/bin/systemctl enable dnsmasq.service
/bin/systemctl enable chronyd
/bin/systemctl disable rpcbind
clear
cd $path_arquivo/
sed -i "/.*queue_log.pid.*/d" /etc/rc.local
echo "[ -e /tmp/queue_log.pid ] && /bin/rm -rf /tmp/queue_log.pid" >> /etc/rc.local
sed -i "s/^enable=yes/;enable=no/g" /etc/asterisk/cel.conf
asterisk -rx "module reload cel"
sed -i "s/^TENTATIVAS=.*/TENTATIVAS=75/g" /hdaux/utilitarios/scripts/bloqueia_autenticacao.sh
sed -i "s/.*monitora_agentes.php.*/\*\/1 \* \* \* \* root \/var\/lib\/asterisk\/scripts\/callcenter\/monitora_agentes.php 180/g" /etc/crontab
[ -e /var/lib/asterisk/agi-bin/transbordo.php ] && /bin/mv -f /var/lib/asterisk/agi-bin/transbordo.php /var/lib/asterisk/scripts/callcenter/transbordo.php
/bin/rm -rf /root/anaconda-ks.cfg
/bin/rm -rf /root/instalacao-simplesip.log
/bin/rm -rf /root/install.log
/bin/rm -rf /root/install.log.syslog
/bin/rm -rf /root/script_pos*.log
/bin/rm -rf /var/log/instaladores_simplesip.log
/bin/rm -rf $path_arquivo
/bin/rm -rf $path_arquivo*.tar.gz
/bin/rm -rf /tmp/ks-script*
/bin/rm -rf /tmp/pjproject-*
sed -i "/\(.*sip_vpn\.sh.*\)/d" /root/.bashrc
curl --data "loginUser=admin&loginPass=OitoDois80_SiP" http://127.0.0.1 > /dev/null 2>&1
sleep 1
if ! [ -e /hdaux/cliente ] ; then
echo -n "Digite o nome do cliente, para identificacao nos alertas via e-mail:"
read resposta
echo $resposta | sed 's/ //g' > /hdaux/cliente
fi
echo "Reiniciando..."
for i in {5..1};do sleep 1 && echo -n "$i ";done
echo ""
/bin/rm -rf /tmp/sip_install.pid
[ -e /sbin/reboot ] && /sbin/reboot
reboot