forked from SimplesIP/install_pabx
bruno
8 months ago
4 changed files with 33 additions and 385 deletions
@ -0,0 +1,27 @@
|
||||
## Repositório de instalação do PABX da Simples IP |
||||
|
||||
![Badge](https://img.shields.io/static/v1?label=OS&message=Debian&color=f00&style=flat) |
||||
|
||||
#### Pastas: |
||||
- **config_simplesip**: Contém os arquivos de configuração do PABX. Toda parte de configuração e código fonte estão nesta página. Lá estão o código fonte também. |
||||
1. Script de instalação: app_install.sh |
||||
2. Com pastas que devem ser colocados na configuração do PABX: **usr/** **database/** **etc/** **hdaux/** **var/** |
||||
|
||||
- **tools_simplesip**: Contém as ferramentas e as instalações necessário para usar o PABX. Exemplo: |
||||
1. arquivo de **dependencias_simplesip.txt** Lista de software para instalação está ali |
||||
1. **install.sh** script de instalação das ferramentas |
||||
|
||||
- **build_instalador**: Essas pastas serão executados apenas para criar o script de instalação. |
||||
1. Para compilar para instalação execute o **debian/build_instalador/build_app.sh** esse script cuidará de compilar e colocar os arquivo que deve ser instalado na instalação. Para mais detalhe verifique os arquivos dessas pastas. |
||||
2. O password para descriptografar as pastas config\_simplesip são incorporado na variável **PASSWORD_CRYPT**. |
||||
|
||||
|
||||
#### Dependencias: |
||||
- apt-get install shc |
||||
- apt-get install build-essential |
||||
|
||||
|
||||
** warnings: Os arquivos compilados devem ser apropriado para cada versão, isto é, código compilados devem ser da versão correspondente. (compilado 12 -> Debian 12) (compilado 11 -> Debian 11) ** |
||||
|
||||
|
||||
|
@ -1,385 +0,0 @@
|
||||
#!/bin/bash |
||||
trap "" 2 20 |
||||
|
||||
|
||||
COMPANY="SIMPLES IP" |
||||
|
||||
#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 |
||||
|
||||
# |
||||
#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/debian_version | sed 's/[a-zA-Z() ]//g' | cut -d "." -f 1) |
||||
|
||||
#busca enconding |
||||
encode=$(locale | tr [[:upper:]] [[:lower:]] | sed -e "s/\"//g" | grep "^lang=") |
||||
|
||||
|
||||
|
||||
# O SO será em UTF-8, porém o banco em ISO |
||||
if ! [ "$encode" = "lang=en_us.iso-8859-1" ] ; 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 |
||||
|
||||
lines_locale=$(grep -E "^[^#]" /etc/locale.gen) |
||||
for line in $lines_locale; do echo $line; sed -i "s|^$line|# $line|g" /etc/locale.gen; done |
||||
echo "en_US ISO-8859-1" >> /etc/locale.gen |
||||
|
||||
|
||||
/sbin/locale-gen |
||||
|
||||
/bin/localectl set-locale LANG="en_US.ISO-8859-1" |
||||
/bin/localectl set-locale LANGUAGE="en_US.ISO-8859-1" |
||||
|
||||
clear |
||||
echo "Reiniciando..." |
||||
for i in {5..1};do sleep 1 && echo -n "$i ";done |
||||
echo "" |
||||
echo "Recomece a atualizacao" |
||||
/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//tmp/sip_install.pid && exit |
||||
OPCAO=$(echo $TIMEZONE | sed "s/,/\\n/g") |
||||
|
||||
if ! [ -z "$OPCAO" ] ; then |
||||
/usr/bin/timedatectl set-timezone $OPCAO |
||||
break |
||||
fi |
||||
|
||||
done |
||||
|
||||
|
||||
#Parando servicos agendadosill $(ps -ef | egrep '(tty|pts)'| grep -vE "$tty_user"|awk '{print $2}') |
||||
if [ -e /var/run/crond.pid ] ; then |
||||
|
||||
/usr/bin/systemctl kill cron |
||||
|
||||
fi |
||||
|
||||
# Remover qualquer outro usuário logado (conectado) |
||||
/bin/kill $(ps -ef | egrep '(tty|pts)'| grep -vE "$tty_user"|awk '{print $2}') |
||||
|
||||
#Diretorios |
||||
! [ -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 |
||||
|
||||
|
||||
[ -e /etc/init.d/supervisor ] && systemctl kill supervisor |
||||
|
||||
# O shell padrão adicionar usuário |
||||
#sed -i 's/^SHELL=.*/SHELL=\/bin\/bash/g' /etc/default/useradd |
||||
[ ! -f /usr/bin/rbash ] && /usr/bin/cp /usr/bin/bash /usr/bin/rbash |
||||
|
||||
[ -L /bin/reboot ] && unlink /bin/reboot |
||||
[ -L /bin/halt ] && unlink /bin/halt |
||||
|
||||
|
||||
|
||||
#Instalando/atualizando scripts de VPN |
||||
cd $path_arquivo/ |
||||
[ -e $(ls -1 simplesip*.rpm) ] && rpm -hUv simplesip*.rpm |
||||
|
||||
|
||||
#Instala pacotes complementares |
||||
#[ "$versao_linux" = "7" ] && rpm -Uhiv tzdata/centos7/tzdata*.rpm |
||||
#[ "$versao_linux" = "6" ] && rpm -Uhiv tzdata/centos6/tzdata*.rpm |
||||
|
||||
[ "$versao_linux" = "7" ] && rpm -Uhiv sshpass/centos7/sshpass*.rpm |
||||
[ "$versao_linux" = "6" ] && rpm -Uhiv sshpass/centos6/$arquitetura/sshpass*.rpm |
||||
|
||||
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/^\(User apache\)/User pbx/g" /etc/httpd/conf/httpd.conf |
||||
sed -i "s/^\(Group apache\)/Group pbx/g" /etc/httpd/conf/httpd.conf |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#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/ |
||||
|
||||
|
||||
#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 |
||||
[ "$versao_linux" = "7" ] && /bin/systemctl stop rc.pbx.service |
||||
[ "$versao_linux" = "6" ] && /etc/init.d/rc.pbx stop |
||||
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 |
||||
|
||||
#tar xzf aplicativo_site.tar.gz |
||||
#sleep 2 |
||||
#mv aplicativo_site/* /var/www/html/ |
||||
|
||||
|
||||
/bin/cp -Rapf var/www/html/* /var/www/html/ |
||||
|
||||
cd $path_arquivo/ |
||||
#Configurando php |
||||
/bin/cp -Rapf /etc/php.ini /etc/php.ini.ori.$(date +%F-%H-%M-%S) |
||||
/bin/cp -Rap /var/www/html/include/scriptdb/install/php/php.ini /etc/php.ini |
||||
chown --recursive pbx:pbx /var/lib/php |
||||
|
||||
#Adicionando modulo zend para criptografia |
||||
if [ "$arquitetura" = "x86_64" ] ; then |
||||
/bin/cp -Rapf /var/www/html/include/scriptdb/install/php/encoder/x64/ioncube_loader_lin_5.6.so /etc/ioncube_loader.so |
||||
/bin/cp -Rapf /var/www/html/include/scriptdb/install/php/encoder/x64/ioncube_loader_lin_5.6_ts.so /usr/lib64/php-zts/modules/ |
||||
chmod 755 /usr/lib64/php-zts/modules/ioncube_loader_lin_5.6_ts.so |
||||
chown pbx:pbx /usr/lib64/php-zts/modules/ioncube_loader_lin_5.6_ts.so |
||||
|
||||
echo "zend_extension = /usr/lib64/php-zts/modules/ioncube_loader_lin_5.6_ts.so" > /etc/php-zts.d/00-ioncube.ini |
||||
|
||||
else |
||||
/bin/cp -Rapf /var/www/html/include/scriptdb/install/php/encoder/x32/ioncube_loader_lin_5.6.so /etc/ioncube_loader.so |
||||
/bin/cp -Rapf /var/www/html/include/scriptdb/install/php/encoder/x32/ioncube_loader_lin_5.6_ts.so /usr/lib64/php-zts/modules/ |
||||
chmod 755 /usr/lib64/php-zts/modules/ioncube_loader_lin_5.6_ts.so |
||||
chown pbx:pbx /usr/lib64/php-zts/modules/ioncube_loader_lin_5.6_ts.so |
||||
|
||||
echo "zend_extension = /usr/lib64/php-zts/modules/ioncube_loader_lin_5.6_ts.so" > /etc/php-zts.d/00-ioncube.ini |
||||
|
||||
fi |
||||
|
||||
chown pbx:pbx /etc/ioncube_loader.so |
||||
chmod 755 /etc/ioncube_loader.so |
||||
|
||||
#Timezone PHP |
||||
if [ "$versao_linux" = "7" ] ; then |
||||
timezone=$(/usr/bin/timedatectl | grep "Time zone:" | awk '{print $3}') |
||||
else |
||||
timezone=$(grep "ZONE" /etc/sysconfig/clock | cut -d '"' -f2) |
||||
fi |
||||
! [ -z "$timezone" ] && sed -i "s|^\(;date.timezone =.*\)|date.timezone = \"$timezone\"|g" /etc/php.ini |
||||
! [ -z "$timezone" ] && sed -i "s|^\(date.timezone =.*\)|date.timezone = \"$timezone\"|g" /etc/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 postgresql.service |
||||
/bin/systemctl enable sshd.service |
||||
#/bin/systemctl enable ntpd.service |
||||
#/bin/systemctl enable ntpdate.service |
||||
/bin/timedatectl set-ntp true |
||||
/bin/systemctl enable rc.pbx.service |
||||
/bin/systemctl enable dahdi.service |
||||
/bin/systemctl enable crond.service |
||||
/bin/systemctl enable supervisor.service |
||||
/bin/systemctl start httpd.service |
||||
/bin/systemctl enable dnsmasq.service |
||||
/bin/systemctl disable 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 |
Loading…
Reference in new issue