Se agrega instaladores de vici + instalador de custom

main
Simon Hurtado 3 months ago
parent 142e3bb88b
commit d50d21f081

File diff suppressed because it is too large Load Diff

@ -4,6 +4,27 @@ BACKUP DE VICIBOX - AMBIENTE DE CONFIGURACIÓN
Fecha de creación: Fri Feb 6 04:46:49 PM UTC 2026
INSTRUCCIONES RÁPIDAS (instalación automática):
----------------------------------------------
1. Instalar git zypper install git
2. git clone https://git.sapian.cloud/Sapian/vicidial_sapian.git (Se descargan los archivos instalador voe y custom)
1. Copiar este directorio al servidor destino, debe quedar en la ruta /home/ ej. /home/backvicibox).
2. Ejecutar el instalador (instala dependencias, restore, parches y express):
cd /home/backvicibox
sudo chmod +x install-vicibox.sh restore.sh apply-vicibox-patches.sh
sudo ./install-vicibox.sh
NOTA
El script ./install-vicibox.sh ejecuta todos los sh necesarios para la instalacion
3. Revisar el log si algo falla: install-vicibox.log
ARCHIVOS INCLUIDOS:
-------------------
1. vicibox-scripts.tar.gz
@ -27,27 +48,14 @@ ARCHIVOS INCLUIDOS:
- Aplica parches a vicibox-install.pl (socket MySQL, random_pass, DBI)
- Se usa automáticamente desde install-vicibox.sh si no existe patches/vicibox-install.pl
6. create-admin-sapian.sh (NUEVO)
- Crea usuario administrador en ViciDial: sapian / sap64adm (user_level 9).
- Se ejecuta al final de install-vicibox.sh. También se puede ejecutar a mano: sudo ./create-admin-sapian.sh
7. patches/
6. patches/
- vicibox-install.pl: copia del instalador con parches ya aplicados (recomendado)
- README.txt: descripción de los parches
8. version-info.txt
7. version-info.txt
- Información de versiones y sistema
INSTRUCCIONES RÁPIDAS (instalación automática):
----------------------------------------------
1. Copiar este directorio al servidor destino (ej. /home/backvicibox).
2. Ejecutar el instalador (instala dependencias, restore, parches y express):
cd /home/backvicibox
sudo chmod +x install-vicibox.sh restore.sh apply-vicibox-patches.sh
sudo ./install-vicibox.sh
3. Revisar el log si algo falla: install-vicibox.log
INSTRUCCIONES MANUALES (paso a paso):
------------------------------------
@ -73,6 +81,5 @@ NOTAS:
- Log de install-vicibox.sh: install-vicibox.log en este directorio.
- Log del instalador ViciBox: /var/log/vicibox.log.
- Acceso web tras instalación: http://<IP>/vicidial/welcome.php
- Usuario administrador ViciDial (creado al final): sapian / sap64adm (admin.php)
==========================================

@ -0,0 +1,78 @@
==========================================
BACKUP DE VICIBOX - AMBIENTE DE CONFIGURACIÓN
==========================================
Fecha de creación: Fri Feb 6 04:46:49 PM UTC 2026
ARCHIVOS INCLUIDOS:
-------------------
1. vicibox-scripts.tar.gz
- Todos los scripts de instalación y configuración de Vicibox
- Ubicación original: /usr/share/vicibox/
2. astguiclient-trunk.tar.gz
- Código fuente completo de ViciDial
- Ubicación original: /usr/src/astguiclient/trunk/
3. restore.sh
- Script para restaurar los archivos en el servidor destino
4. install-vicibox.sh (NUEVO)
- Instalación completa en orden: Perl → MariaDB → PHP → Apache
- Configura Apache para apuntar a /vicidial/welcome.php
- Ejecuta restore.sh, aplica parches a vicibox-install.pl y lanza --vicibox-express
- Uso: sudo ./install-vicibox.sh
5. apply-vicibox-patches.sh (NUEVO)
- Aplica parches a vicibox-install.pl (socket MySQL, random_pass, DBI)
- Se usa automáticamente desde install-vicibox.sh si no existe patches/vicibox-install.pl
6. create-admin-sapian.sh (NUEVO)
- Crea usuario administrador en ViciDial: sapian / sap64adm (user_level 9).
- Se ejecuta al final de install-vicibox.sh. También se puede ejecutar a mano: sudo ./create-admin-sapian.sh
7. patches/
- vicibox-install.pl: copia del instalador con parches ya aplicados (recomendado)
- README.txt: descripción de los parches
8. version-info.txt
- Información de versiones y sistema
INSTRUCCIONES RÁPIDAS (instalación automática):
----------------------------------------------
1. Copiar este directorio al servidor destino (ej. /home/backvicibox).
2. Ejecutar el instalador (instala dependencias, restore, parches y express):
cd /home/backvicibox
sudo chmod +x install-vicibox.sh restore.sh apply-vicibox-patches.sh
sudo ./install-vicibox.sh
3. Revisar el log si algo falla: install-vicibox.log
INSTRUCCIONES MANUALES (paso a paso):
------------------------------------
1. Instalar dependencias: Perl (y DBI, DBD-mysql, LWP::Simple), Subversion,
MariaDB, PHP 8 (y apache2-mod_php8, php8-mysql), Apache2.
2. Configurar Apache para que la URL principal sirva /vicidial/welcome.php.
3. Ejecutar: sudo ./restore.sh
4. Aplicar parches (copiar patches/vicibox-install.pl a /usr/share/vicibox/
o ejecutar apply-vicibox-patches.sh).
5. Ejecutar: echo y | sudo /usr/share/vicibox/vicibox-install.pl --vicibox-express
6. En /etc/astguiclient.conf poner VARDB_server => 127.0.0.1 para la web.
REQUISITOS DEL SERVIDOR DESTINO:
--------------------------------
- Sistema operativo: openSUSE Leap / SUSE Linux Enterprise (SLE 15 SP6)
- install-vicibox.sh instala: Perl, DBI, DBD-mysql, libwww-perl, subversion,
MariaDB, PHP 8, Apache2. Asterisk se gestiona por el instalador ViciBox.
- Acceso a internet (recomendado para repos y actualizaciones).
NOTAS:
------
- El tamaño total comprimido es aproximadamente 50-70 MB.
- Log de install-vicibox.sh: install-vicibox.log en este directorio.
- Log del instalador ViciBox: /var/log/vicibox.log.
- Acceso web tras instalación: http://<IP>/vicidial/welcome.php
- Usuario administrador ViciDial (creado al final): sapian / sap64adm (admin.php)
==========================================

@ -0,0 +1,56 @@
#!/bin/bash
#
# Aplica los parches necesarios a /usr/share/vicibox/vicibox-install.pl
# (detección socket MySQL/MariaDB, random_pass sin pwgen, DBI con socket)
#
# Uso: sudo ./apply-vicibox-patches.sh
#
set -e
INSTALL_PL="/usr/share/vicibox/vicibox-install.pl"
if [ "$EUID" -ne 0 ]; then
echo "Ejecutar como root."
exit 1
fi
if [ ! -f "$INSTALL_PL" ]; then
echo "No se encuentra $INSTALL_PL. Ejecuta primero restore.sh."
exit 1
fi
# Si ya tiene los parches (socket y random_pass), no hacer nada
if grep -q 'mysql_socket' "$INSTALL_PL" && grep -q 'sub random_pass' "$INSTALL_PL"; then
echo "vicibox-install.pl ya tiene los parches aplicados."
exit 0
fi
BACKUP="${INSTALL_PL}.bak.$(date +%Y%m%d%H%M%S)"
cp -a "$INSTALL_PL" "$BACKUP"
echo "Copia de seguridad: $BACKUP"
# 1) Insertar detección de socket después de "$VICIport = 3306;"
perl -i -0pe 's/(\$VICIport = 3306;\n)(\$VICIuser = "cron";)/$1# Detect MySQL\/MariaDB socket (openSUSE uses \/var\/run\/mysql\/mysql.sock, others may use \/run\/mysql\/mysql.sock)\n\$mysql_socket = "";\nforeach my \$sock ("\/var\/run\/mysql\/mysql.sock", "\/run\/mysql\/mysql.sock", "\/var\/lib\/mysql\/mysql.sock", "\/tmp\/mysql.sock") {\n\tif (-S \$sock) { \$mysql_socket = \$sock; last; }\n}\n$2/s' "$INSTALL_PL"
# 2) Insertar sub random_pass después de "return \$string;\n}\n\n# Get the admin"
perl -i -0pe 's/(return \$string;\n\}\n\n)(# Get the admin\.php build)/$1# Generate random password string; use pwgen if available, else openssl, else Perl fallback\nsub random_pass {\n\tmy \$len = \$_\[0\] \|\| 15;\n\tif (-x \"\/usr\/bin\/pwgen\") {\n\t\tmy \$s = trim(\`\/usr\/bin\/pwgen -cns \$len 1\`);\n\t\treturn \$s if \$s;\n\t}\n\tif (-x \"\/usr\/bin\/openssl\") {\n\t\tmy \$s = trim(\`\/usr\/bin\/openssl rand -base64 \$len\`);\n\t\t\$s =~ s\/\[^a-zA-Z0-9\]\/\/g;\n\t\treturn substr(\$s, 0, \$len) if length(\$s) >= \$len;\n\t}\n\tmy \@c = (\x27a\x27..\x27z\x27, \x27A\x27..\x27Z\x27, 0..9);\n\treturn join(\x27\x27, map { \$c[rand \@c] } 1..\$len);\n}\n\n$2/s' "$INSTALL_PL"
# 3) Primera conexión DBI (root) -> usar dsn_root
perl -i -0pe 's/\t\t\$dbhVDnew = DBI->connect\("DBI:mysql::localhost:\$VICIport", "root", ""\) or die "Couldn\x27t connect to MySQL to create database: " \. DBI->errstr;\n\t\tif \(\$DBS==0\)/\t\tmy \$dsn_root = "DBI:mysql::localhost:\$VICIport" \. (\$mysql_socket ? ";mysql_socket=\$mysql_socket" : "");\n\t\t\$dbhVDnew = DBI->connect(\$dsn_root, "root", "") or die "Couldn\x27t connect to MySQL to create database: " \. DBI->errstr;\n\t\tif (\$DBS==0)/s' "$INSTALL_PL"
# 4) Reconnect to new database -> dsn_db
perl -i -0pe 's/\t\t# Reconnect to the new database\n\t\t\$dbhVDnew->disconnect;\n\t\t\$dbhVDnew = DBI->connect\("DBI:mysql:\$VICIdatabase:localhost:\$VICIport", "root", ""\) or die "Couldn\x27t reconnect to MySQL to create database tables: " \. DBI->errstr;/# Reconnect to the new database\n\t\t\$dbhVDnew->disconnect;\n\t\tmy \$dsn_db = "DBI:mysql:\$VICIdatabase:localhost:\$VICIport" \. (\$mysql_socket ? ";mysql_socket=\$mysql_socket" : "");\n\t\t\$dbhVDnew = DBI->connect(\$dsn_db, "root", "") or die "Couldn\x27t reconnect to MySQL to create database tables: " \. DBI->errstr;/s' "$INSTALL_PL"
# 5) Slave reconnect -> dsn_root2
perl -i -0pe 's/\t\t\t# release and reconnect since we restarted the server\n\t\t\t\$dbhVDnew->disconnect;\n\t\t\t\$dbhVDnew = DBI->connect\("DBI:mysql::localhost:\$VICIport", "root", ""\) or die "Couldn\x27t connect to MySQL to create database: " \. DBI->errstr;\n\t\t\t# Reset the slave/\t\t\t# release and reconnect since we restarted the server\n\t\t\t\$dbhVDnew->disconnect;\n\t\t\tmy \$dsn_root2 = "DBI:mysql::localhost:\$VICIport" \. (\$mysql_socket ? ";mysql_socket=\$mysql_socket" : "");\n\t\t\t\$dbhVDnew = DBI->connect(\$dsn_root2, "root", "") or die "Couldn\x27t connect to MySQL to create database: " \. DBI->errstr;\n\t\t\t# Reset the slave/s' "$INSTALL_PL"
# 6) pwgen -> random_pass (dos líneas de passwords)
perl -i -pe 's/my \$randomstring1=trim\(`\/usr\/bin\/pwgen -cns 15 1`\);/my \$randomstring1=random_pass(15);/; s/my \$randomstring2=trim\(`\/usr\/bin\/pwgen -cns 15 1`\);/my \$randomstring2=random_pass(15);/' "$INSTALL_PL"
# 7) Conexión cron (dbhVD) -> dsn_cron
perl -i -0pe 's/\t\t\t\t# At this point the primary should be up and good, so we set-up our normal DBI connection for later processes\n\t\t\t\t# Also a good double-check procedure that stuff works\n\t\t\t\t\$dbhVD = DBI->connect\("DBI:mysql:\$VICIdatabase:localhost:\$VICIport", "\$VICIuser", "\$VICIpass"\) or die "Couldn\x27t connect to ViciDial database: " \. DBI->errstr;/# At this point the primary should be up and good, so we set-up our normal DBI connection for later processes\n\t\t\t\t# Also a good double-check procedure that stuff works\n\t\t\t\tmy \$dsn_cron = "DBI:mysql:\$VICIdatabase:localhost:\$VICIport" \. (\$mysql_socket ? ";mysql_socket=\$mysql_socket" : "");\n\t\t\t\t\$dbhVD = DBI->connect(\$dsn_cron, "\$VICIuser", "\$VICIpass") or die "Couldn\x27t connect to ViciDial database: " \. DBI->errstr;/s' "$INSTALL_PL"
# 8) Más pwgen -> random_pass
perl -i -pe 's/\$randomstring=trim\(`pwgen -cns 32 1`\);/\$randomstring=random_pass(32);/; s/\$randomstring=trim\(`\/usr\/bin\/pwgen -cns 15 1`\);/\$randomstring=random_pass(15);/g' "$INSTALL_PL"
echo "Parches aplicados correctamente a $INSTALL_PL"

@ -0,0 +1,37 @@
#!/bin/bash
#
# Crea el usuario administrador en ViciDial: sapian / sap64adm
# Debe ejecutarse después de que la base de datos asterisk y la tabla vicidial_users existan.
#
# Uso: sudo ./create-admin-sapian.sh
#
set -e
# Usar 127.0.0.1 para evitar problemas de socket con MariaDB
MYSQL_OPTS="-h 127.0.0.1 -u root"
DB="asterisk"
USER="sapian"
PASS="sap64adm"
FULL_NAME="Sapian Admin"
if [ "$EUID" -ne 0 ]; then
echo "Ejecutar como root."
exit 1
fi
if ! mariadb $MYSQL_OPTS -e "USE $DB" 2>/dev/null; then
echo "La base de datos $DB no existe o no hay acceso. Ejecutar después de la instalación Express."
exit 1
fi
# Crear usuario administrador (user_level 9 = admin). Si ya existe, actualizar contraseña.
mariadb $MYSQL_OPTS "$DB" << EOF
INSERT INTO vicidial_users (user, pass, full_name, user_level, user_group, load_leads, campaign_detail, ast_admin_access, modify_users, alter_agent_interface_options, active)
VALUES ('$USER', '$PASS', '$FULL_NAME', '9', 'ADMIN', '1', '1', '1', '1', '1', 'Y')
ON DUPLICATE KEY UPDATE pass = VALUES(pass), full_name = VALUES(full_name), user_level = 9, active = 'Y',
load_leads = '1', campaign_detail = '1', ast_admin_access = '1', modify_users = '1', alter_agent_interface_options = '1';
EOF
echo "Usuario administrador creado/actualizado: $USER (password: $PASS)"
echo "Acceso: http://<IP>/vicidial/admin.php — iniciar sesión con $USER / $PASS"

@ -0,0 +1,743 @@
[INFO] ==========================================
[INFO] Instalación ViciBox (dependencias + restore + express)
[INFO] ==========================================
[INFO] 1. Instalando Perl, Subversion y módulos (DBI, DBD-mysql, LWP::Simple)...
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'perl' is already installed.
No update candidate for 'perl-5.42.0-160000.2.2.x86_64'. The highest available version is already installed.
'libwww-perl' not found in package names. Trying capabilities.
No provider of 'libwww-perl' found.
[INFO] Perl:
[INFO] 2. Instalando MariaDB...
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following recommended package was automatically selected:
mariadb
The following 9 NEW packages are going to be installed:
libJudy1 libltdl7 libmariadb3 libodbc2 libpcre2-posix3 mariadb mariadb-client mariadb-errormessages python313-mysqlclient
9 new packages to install.
Package download size: 26.0 MiB
Package install size change:
| 151.7 MiB required by packages that will be installed
151.7 MiB | - 0 B released by packages that will be removed
Backend: classic_rpmtrans
Continue? [y/n/v/...? shows all options] (y): y
Preloading Packages [..
Preloading: libltdl7-2.4.7-160000.2.2.x86_64.rpm [done]
.
Preloading: libpcre2-posix3-10.45-160000.2.2.x86_64.rpm [done]
.
Preloading: libmariadb3-3.4.5-160000.2.2.x86_64.rpm [done]
.
Preloading: mariadb-client-11.8.5-160000.3.1.x86_64.rpm [Error: "The requested URL returned error: 404", trying next mirror.]
.
Preloading: libodbc2-2.3.12-160000.2.2.x86_64.rpm [done]
.
Preloading: python313-mysqlclient-2.2.7-160000.2.2.x86_64.rpm [done]
.
Preloading: mariadb-errormessages-11.8.5-160000.3.1.noarch.rpm [done]
.
Preloading: libJudy1-1.0.5-160000.3.2.x86_64.rpm [done]
.
Preloading: mariadb-client-11.8.5-160000.3.1.x86_64.rpm [done]
..
Preloading: mariadb-11.8.5-160000.3.1.x86_64.rpm [done]
.done]
Retrieving: libJudy1-1.0.5-160000.3.2.x86_64 (repo-oss (16.0)) (1/9), 110.7 KiB
Retrieving: libltdl7-2.4.7-160000.2.2.x86_64 (repo-oss (16.0)) (2/9), 44.1 KiB
Retrieving: libmariadb3-3.4.5-160000.2.2.x86_64 (repo-oss (16.0)) (3/9), 157.7 KiB
Retrieving: libpcre2-posix3-10.45-160000.2.2.x86_64 (repo-oss (16.0)) (4/9), 66.6 KiB
Retrieving: mariadb-errormessages-11.8.5-160000.3.1.noarch (repo-oss (16.0)) (5/9), 343.9 KiB
Retrieving: libodbc2-2.3.12-160000.2.2.x86_64 (repo-oss (16.0)) (6/9), 202.5 KiB
Retrieving: mariadb-client-11.8.5-160000.3.1.x86_64 (repo-oss (16.0)) (7/9), 1.5 MiB
Retrieving: python313-mysqlclient-2.2.7-160000.2.2.x86_64 (repo-oss (16.0)) (8/9), 119.0 KiB
Retrieving: mariadb-11.8.5-160000.3.1.x86_64 (repo-oss (16.0)) (9/9), 23.5 MiB
Checking for file conflicts: [...done]
(1/9) Installing: libJudy1-1.0.5-160000.3.2.x86_64 [..done]
(2/9) Installing: libltdl7-2.4.7-160000.2.2.x86_64 [..done]
(3/9) Installing: libmariadb3-3.4.5-160000.2.2.x86_64 [..done]
(4/9) Installing: libpcre2-posix3-10.45-160000.2.2.x86_64 [..done]
(5/9) Installing: mariadb-errormessages-11.8.5-160000.3.1.noarch [..done]
(6/9) Installing: libodbc2-2.3.12-160000.2.2.x86_64 [..done]
(7/9) Installing: mariadb-client-11.8.5-160000.3.1.x86_64 [..
/usr/bin/systemd-sysusers --replace=/usr/lib/sysusers.d/mysql-user.conf -
Creating group 'mysql' with GID 60.
Creating user 'mysql' (MySQL database admin) with UID 60 and GID 60.
..done]
(8/9) Installing: python313-mysqlclient-2.2.7-160000.2.2.x86_64 [..done]
(9/9) Installing: mariadb-11.8.5-160000.3.1.x86_64 [...........done]
Running post-transaction scripts [.....done]
Update notifications were received from the following packages:
mariadb-11.8.5-160000.3.1.x86_64 (/var/adm/update-messages/mariadb-11.8.5-160000.3.1-something)
View the notifications now? [y/n] (n): n
Created symlink '/etc/systemd/system/mysql.service' → '/usr/lib/systemd/system/mariadb.service'.
Created symlink '/etc/systemd/system/multi-user.target.wants/mariadb.service' → '/usr/lib/systemd/system/mariadb.service'.
[INFO] MariaDB instalado y en ejecución
[INFO] 3. Instalando PHP 8 y módulo Apache...
Retrieving repository 'php 8.0 (SLE_15_SP6)' metadata [...
Looking for gpg keys in repository php 8.0 (SLE_15_SP6).
gpgkey=https://download.opensuse.org/repositories/devel:/languages:/php:/php80/SLE_15_SP6/repodata/repomd.xml.key
...
Automatically trusting the following key:
Repository: php 8.0 (SLE_15_SP6)
Key Fingerprint: E1E2 F102 BC77 314F 4A4B 7542 BED0 FF75 7D17 C956
Key Name: devel:languages:php OBS Project <devel:languages:php@build.opensuse.org>
Key Algorithm: RSA 4096
Key Created: Thu May 2 07:49:48 2024
Key Expires: Sat Jul 11 07:49:47 2026
Rpm Name: gpg-pubkey-7d17c956-6633459c
Note: A GPG pubkey is clearly identified by its fingerprint. Do not rely on the key's name. If
you are not sure whether the presented key is authentic, ask the repository provider or check
their web site. Many providers maintain a web page showing the fingerprints of the GPG keys they
are using.
..done]
Building repository 'php 8.0 (SLE_15_SP6)' cache [....done]
Repository 'repo-openh264 (16.0)' is up to date.
Repository 'repo-oss (16.0)' is up to date.
All repositories have been refreshed.
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following 11 recommended packages were automatically selected:
apache2-utils php8-ctype php8-dom php8-iconv php8-openssl php8-sqlite php8-tokenizer php8-xmlreader php8-xmlwriter postfix w3m
The following 4 packages are suggested, but will not be installed:
php8-cli php8-gd php8-gettext php8-mbstring
The following 40 NEW packages are going to be installed:
apache2 apache2-mod_php8 apache2-prefork apache2-utils ed git-web libapr-util1-0 libapr1-0 libargon2-1 libbrotlienc1 libgc1 libicu77 libicu77-ledata liblmdb-0_9_30 perl-CGI perl-Clone perl-Encode-Locale perl-HTML-Parser perl-HTML-Tagset perl-HTTP-Date perl-HTTP-Message perl-IO-HTML perl-LWP-MediaTypes perl-MIME-Base32 perl-URI php8 php8-ctype php8-dom php8-iconv php8-mysql php8-openssl php8-pdo php8-sqlite php8-tokenizer php8-xmlreader php8-xmlwriter postfix system-user-wwwrun w3m which
40 new packages to install.
Package download size: 23.7 MiB
Package install size change:
| 65.6 MiB required by packages that will be installed
65.6 MiB | - 0 B released by packages that will be removed
Backend: classic_rpmtrans
Continue? [y/n/v/...? shows all options] (y): y
Preloading Packages [..
Preloading: perl-HTTP-Message-7.0.0-160000.2.2.noarch.rpm [done]
.
Preloading: apache2-2.4.63-160000.3.1.x86_64.rpm [done]
.
Preloading: php8-8.4.16-160000.1.1.x86_64.rpm [Error: "The requested URL returned error: 404", trying next mirror.]
.
Preloading: apache2-prefork-2.4.63-160000.3.1.x86_64.rpm [done]
.
Preloading: postfix-3.10.2-160000.2.2.x86_64.rpm [done]
.
Preloading: apache2-mod_php8-8.4.16-160000.1.1.x86_64.rpm [Error: "The requested URL returned error: 404", trying next mirror.]
.
Preloading: perl-HTML-Parser-3.830.0-160000.2.2.x86_64.rpm [done]
.
Preloading: perl-CGI-4.670.0-160000.2.2.noarch.rpm [done]
.
Preloading: git-web-2.51.0-160000.1.2.x86_64.rpm [done]
.
Preloading: php8-8.4.16-160000.1.1.x86_64.rpm [done]
.
Preloading: php8-iconv-8.4.16-160000.1.1.x86_64.rpm [done]
.
Preloading: apache2-utils-2.4.63-160000.3.1.x86_64.rpm [done]
.
Preloading: apache2-mod_php8-8.4.16-160000.1.1.x86_64.rpm [done]
.
Preloading: php8-openssl-8.4.16-160000.1.1.x86_64.rpm [done]
.
Preloading: php8-sqlite-8.4.16-160000.1.1.x86_64.rpm [done]
.
Preloading: php8-tokenizer-8.4.16-160000.1.1.x86_64.rpm [done]
.
Preloading: php8-xmlreader-8.4.16-160000.1.1.x86_64.rpm [done]
.
Preloading: php8-dom-8.4.16-160000.1.1.x86_64.rpm [done]
.
Preloading: php8-xmlwriter-8.4.16-160000.1.1.x86_64.rpm [done]
..
Preloading: php8-mysql-8.4.16-160000.1.1.x86_64.rpm [done]
.
Preloading: libapr1-0-1.7.5-160000.2.2.x86_64.rpm [done]
.
Preloading: libargon2-1-20190702-160000.2.2.x86_64.rpm [done]
.
Preloading: libbrotlienc1-1.1.0-160000.2.2.x86_64.rpm [done]
.
Preloading: php8-pdo-8.4.16-160000.1.1.x86_64.rpm [done]
.
Preloading: perl-HTTP-Date-6.06-160000.2.2.noarch.rpm [done]
.
Preloading: libgc1-8.2.8-160000.2.2.x86_64.rpm [done]
.
Preloading: php8-ctype-8.4.16-160000.1.1.x86_64.rpm [done]
.
Preloading: liblmdb-0_9_30-0.9.30-160000.3.2.x86_64.rpm [done]
.
Preloading: perl-Clone-0.46-160000.2.2.x86_64.rpm [done]
.
Preloading: perl-Encode-Locale-1.05-160000.2.2.noarch.rpm [done]
.
Preloading: perl-LWP-MediaTypes-6.04-160000.2.2.noarch.rpm [done]
.
Preloading: ed-1.21.1-160000.2.2.x86_64.rpm [done]
.
Preloading: perl-IO-HTML-1.004-160000.2.2.noarch.rpm [done]
.
Preloading: system-user-wwwrun-20170617-160000.2.2.noarch.rpm [done]
.
Preloading: perl-MIME-Base32-1.303.0-160000.2.2.noarch.rpm [done]
.
Preloading: which-2.23-160000.2.2.x86_64.rpm [done]
.
Preloading: w3m-0.5.3+git20230121-160000.2.2.x86_64.rpm [done]
.
Preloading: libicu77-ledata-77.1-160000.2.2.noarch.rpm [done]
.
Preloading: libapr-util1-0-1.6.3-160000.2.2.x86_64.rpm [done]
.
Preloading: perl-URI-5.310.0-160000.2.2.noarch.rpm [done]
.
Preloading: libicu77-77.1-160000.2.2.x86_64.rpm [done]
.
Preloading: perl-HTML-Tagset-3.240.0-160000.2.2.noarch.rpm [done]
.done]
Retrieving: ed-1.21.1-160000.2.2.x86_64 (repo-oss (16.0)) (1/40), 85.9 KiB
Retrieving: libapr1-0-1.7.5-160000.2.2.x86_64 (repo-oss (16.0)) (2/40), 151.3 KiB
Retrieving: libargon2-1-20190702-160000.2.2.x86_64 (repo-oss (16.0)) (3/40), 20.5 KiB
Retrieving: libbrotlienc1-1.1.0-160000.2.2.x86_64 (repo-oss (16.0)) (4/40), 263.6 KiB
Retrieving: libgc1-8.2.8-160000.2.2.x86_64 (repo-oss (16.0)) (5/40), 109.3 KiB
Retrieving: libicu77-ledata-77.1-160000.2.2.noarch (repo-oss (16.0)) (6/40), 8.6 MiB
Retrieving: liblmdb-0_9_30-0.9.30-160000.3.2.x86_64 (repo-oss (16.0)) (7/40), 60.4 KiB
Retrieving: perl-Clone-0.46-160000.2.2.x86_64 (repo-oss (16.0)) (8/40), 23.1 KiB
Retrieving: perl-Encode-Locale-1.05-160000.2.2.noarch (repo-oss (16.0)) (9/40), 22.4 KiB
Retrieving: perl-HTML-Tagset-3.240.0-160000.2.2.noarch (repo-oss (16.0)) (10/40), 19.3 KiB
Retrieving: perl-HTTP-Date-6.06-160000.2.2.noarch (repo-oss (16.0)) (11/40), 28.4 KiB
Retrieving: perl-IO-HTML-1.004-160000.2.2.noarch (repo-oss (16.0)) (12/40), 28.5 KiB
Retrieving: perl-LWP-MediaTypes-6.04-160000.2.2.noarch (repo-oss (16.0)) (13/40), 34.2 KiB
Retrieving: perl-MIME-Base32-1.303.0-160000.2.2.noarch (repo-oss (16.0)) (14/40), 20.3 KiB
Retrieving: system-user-wwwrun-20170617-160000.2.2.noarch (repo-oss (16.0)) (15/40), 12.7 KiB
Retrieving: which-2.23-160000.2.2.x86_64 (repo-oss (16.0)) (16/40), 39.5 KiB
Retrieving: libapr-util1-0-1.6.3-160000.2.2.x86_64 (repo-oss (16.0)) (17/40), 123.8 KiB
Retrieving: w3m-0.5.3+git20230121-160000.2.2.x86_64 (repo-oss (16.0)) (18/40), 1.0 MiB
Retrieving: libicu77-77.1-160000.2.2.x86_64 (repo-oss (16.0)) (19/40), 2.1 MiB
Retrieving: perl-URI-5.310.0-160000.2.2.noarch (repo-oss (16.0)) (20/40), 137.2 KiB
Retrieving: apache2-utils-2.4.63-160000.3.1.x86_64 (repo-oss (16.0)) (21/40), 588.9 KiB
Retrieving: postfix-3.10.2-160000.2.2.x86_64 (repo-oss (16.0)) (22/40), 1.4 MiB
Retrieving: perl-HTTP-Message-7.0.0-160000.2.2.noarch (repo-oss (16.0)) (23/40), 116.5 KiB
Retrieving: apache2-prefork-2.4.63-160000.3.1.x86_64 (repo-oss (16.0)) (24/40), 1.8 MiB
Retrieving: apache2-2.4.63-160000.3.1.x86_64 (repo-oss (16.0)) (25/40), 905.9 KiB
Retrieving: perl-HTML-Parser-3.830.0-160000.2.2.x86_64 (repo-oss (16.0)) (26/40), 121.1 KiB
Retrieving: php8-8.4.16-160000.1.1.x86_64 (repo-oss (16.0)) (27/40), 281.8 KiB
Retrieving: apache2-mod_php8-8.4.16-160000.1.1.x86_64 (repo-oss (16.0)) (28/40), 2.2 MiB
Retrieving: perl-CGI-4.670.0-160000.2.2.noarch (repo-oss (16.0)) (29/40), 221.5 KiB
Retrieving: php8-dom-8.4.16-160000.1.1.x86_64 (repo-oss (16.0)) (30/40), 748.6 KiB
Retrieving: git-web-2.51.0-160000.1.2.x86_64 (repo-oss (16.0)) (31/40), 350.5 KiB
Retrieving: php8-ctype-8.4.16-160000.1.1.x86_64 (repo-oss (16.0)) (32/40), 218.2 KiB
Retrieving: php8-iconv-8.4.16-160000.1.1.x86_64 (repo-oss (16.0)) (33/40), 232.7 KiB
Retrieving: php8-openssl-8.4.16-160000.1.1.x86_64 (repo-oss (16.0)) (34/40), 291.9 KiB
Retrieving: php8-pdo-8.4.16-160000.1.1.x86_64 (repo-oss (16.0)) (35/40), 263.9 KiB
Retrieving: php8-sqlite-8.4.16-160000.1.1.x86_64 (repo-oss (16.0)) (36/40), 252.4 KiB
Retrieving: php8-tokenizer-8.4.16-160000.1.1.x86_64 (repo-oss (16.0)) (37/40), 225.6 KiB
Retrieving: php8-xmlreader-8.4.16-160000.1.1.x86_64 (repo-oss (16.0)) (38/40), 230.6 KiB
Retrieving: php8-xmlwriter-8.4.16-160000.1.1.x86_64 (repo-oss (16.0)) (39/40), 228.2 KiB
Retrieving: php8-mysql-8.4.16-160000.1.1.x86_64 (repo-oss (16.0)) (40/40), 345.5 KiB
Checking for file conflicts: [...done]
( 1/40) Installing: ed-1.21.1-160000.2.2.x86_64 [..done]
( 2/40) Installing: libapr1-0-1.7.5-160000.2.2.x86_64 [..done]
( 3/40) Installing: libargon2-1-20190702-160000.2.2.x86_64 [..done]
( 4/40) Installing: libbrotlienc1-1.1.0-160000.2.2.x86_64 [..done]
( 5/40) Installing: libgc1-8.2.8-160000.2.2.x86_64 [..done]
( 6/40) Installing: libicu77-ledata-77.1-160000.2.2.noarch [.....done]
( 7/40) Installing: liblmdb-0_9_30-0.9.30-160000.3.2.x86_64 [..done]
( 8/40) Installing: perl-Clone-0.46-160000.2.2.x86_64 [..done]
( 9/40) Installing: perl-Encode-Locale-1.05-160000.2.2.noarch [..done]
(10/40) Installing: perl-HTML-Tagset-3.240.0-160000.2.2.noarch [..done]
(11/40) Installing: perl-HTTP-Date-6.06-160000.2.2.noarch [..done]
(12/40) Installing: perl-IO-HTML-1.004-160000.2.2.noarch [..done]
(13/40) Installing: perl-LWP-MediaTypes-6.04-160000.2.2.noarch [..done]
(14/40) Installing: perl-MIME-Base32-1.303.0-160000.2.2.noarch [..done]
(15/40) Installing: system-user-wwwrun-20170617-160000.2.2.noarch [..
/usr/bin/systemd-sysusers --replace=/usr/lib/sysusers.d/system-user-wwwrun.conf -
Creating group 'www' with GID 474.
Creating group 'wwwrun' with GID 473.
Creating user 'wwwrun' (WWW daemon apache) with UID 473 and GID 473.
done]
(16/40) Installing: which-2.23-160000.2.2.x86_64 [..done]
(17/40) Installing: libapr-util1-0-1.6.3-160000.2.2.x86_64 [..done]
(18/40) Installing: w3m-0.5.3+git20230121-160000.2.2.x86_64 [..done]
(19/40) Installing: libicu77-77.1-160000.2.2.x86_64 [..done]
(20/40) Installing: perl-URI-5.310.0-160000.2.2.noarch [..done]
(21/40) Installing: apache2-utils-2.4.63-160000.3.1.x86_64 [..done]
(22/40) Installing: postfix-3.10.2-160000.2.2.x86_64 [..
/usr/bin/systemd-sysusers --replace=/usr/lib/sysusers.d/postfix-user.conf -
Creating group 'postfix' with GID 51.
Creating group 'maildrop' with GID 59.
Creating user 'postfix' (Postfix Daemon) with UID 51 and GID 51.
.
Updating /etc/sysconfig/postfix ...
Updating /etc/sysconfig/mail ...
Created symlink '/etc/systemd/system/multi-user.target.wants/postfix.service' -> '/usr/lib/systemd/system/postfix.service'.
done]
(23/40) Installing: perl-HTTP-Message-7.0.0-160000.2.2.noarch [..done]
(24/40) Installing: apache2-prefork-2.4.63-160000.3.1.x86_64 [...done]
(25/40) Installing: apache2-2.4.63-160000.3.1.x86_64 [....
Please check /etc/permissions.local for settings of /usr/sbin/suexec .
Updating /etc/sysconfig/apache2 ...
done]
(26/40) Installing: perl-HTML-Parser-3.830.0-160000.2.2.x86_64 [..done]
(27/40) Installing: php8-8.4.16-160000.1.1.x86_64 [..done]
(28/40) Installing: apache2-mod_php8-8.4.16-160000.1.1.x86_64 [...done]
(29/40) Installing: perl-CGI-4.670.0-160000.2.2.noarch [..done]
(30/40) Installing: php8-dom-8.4.16-160000.1.1.x86_64 [..done]
(31/40) Installing: git-web-2.51.0-160000.1.2.x86_64 [..done]
(32/40) Installing: php8-ctype-8.4.16-160000.1.1.x86_64 [..done]
(33/40) Installing: php8-iconv-8.4.16-160000.1.1.x86_64 [..done]
(34/40) Installing: php8-openssl-8.4.16-160000.1.1.x86_64 [..done]
(35/40) Installing: php8-pdo-8.4.16-160000.1.1.x86_64 [..done]
(36/40) Installing: php8-sqlite-8.4.16-160000.1.1.x86_64 [..done]
(37/40) Installing: php8-tokenizer-8.4.16-160000.1.1.x86_64 [..done]
(38/40) Installing: php8-xmlreader-8.4.16-160000.1.1.x86_64 [..done]
(39/40) Installing: php8-xmlwriter-8.4.16-160000.1.1.x86_64 [..done]
(40/40) Installing: php8-mysql-8.4.16-160000.1.1.x86_64 [..done]
Running post-transaction scripts [.......done]
[INFO] PHP instalado
[INFO] 4. Instalando Apache y configurando welcome.php...
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'apache2' is already installed.
No update candidate for 'apache2-2.4.63-160000.3.1.x86_64'. The highest available version is already installed.
'apache2-prefork' is already installed.
No update candidate for 'apache2-prefork-2.4.63-160000.3.1.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do.
Created symlink '/etc/systemd/system/httpd.service' → '/usr/lib/systemd/system/apache2.service'.
Created symlink '/etc/systemd/system/apache.service' → '/usr/lib/systemd/system/apache2.service'.
Created symlink '/etc/systemd/system/multi-user.target.wants/apache2.service' → '/usr/lib/systemd/system/apache2.service'.
[INFO] Apache instalado y apuntando a /vicidial/welcome.php
[INFO] 5. Ejecutando restore.sh...
[INFO] ==========================================
[INFO] Restauración de Vicibox
[INFO] ==========================================
[INFO] 1. Restaurando scripts de Vicibox...
[INFO] ✓ Scripts restaurados
[INFO] 2. Creando enlaces simbólicos...
[INFO] ✓ Enlaces simbólicos creados
[INFO] 3. Restaurando código fuente de ViciDial...
[INFO] ✓ Código fuente restaurado
[INFO] 4. Verificando instalación...
[INFO] ✓ Verificación completada sin errores
[INFO] ==========================================
[INFO] Restauración completada!
[INFO] ==========================================
[INFO] Ahora puedes ejecutar la instalación:
Para instalación Express (todo-en-uno):
vicibox-install --vicibox-express
Para instalación personalizada:
vicibox-install
[INFO] 6. Aplicando parches a vicibox-install.pl (socket MySQL, random_pass, etc.)...
[INFO] Copiado vicibox-install.pl con parches desde patches/
[INFO] 7. Ejecutando vicibox-install --vicibox-express (confirmación automática 'y')...
[INFO] Esto puede tardar varios minutos...
Can't locate LWP/Simple.pm in @INC (you may need to install the LWP::Simple module) (@INC entries checked: /usr/lib/perl5/site_perl/5.42.0/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.42.0 /usr/lib/perl5/vendor_perl/5.42.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.42.0 /usr/lib/perl5/5.42.0/x86_64-linux-thread-multi /usr/lib/perl5/5.42.0 /usr/lib/perl5/site_perl) at /usr/share/vicibox/vicibox-install.pl line 78.
BEGIN failed--compilation aborted at /usr/share/vicibox/vicibox-install.pl line 78.
[INFO] 8. /etc/astguiclient.conf no existe aún (normal si la instalación Express falló antes de crearlo).
[INFO] 9. Creando usuario administrador sapian en ViciDial...
La base de datos asterisk no existe o no hay acceso. Ejecutar después de la instalación Express.
[WARN] No se pudo crear el usuario (¿base de datos ya instalada?). Puedes ejecutar después: sudo /home/backvicibox/create-admin-sapian.sh
[INFO] ==========================================
[INFO] Proceso de instalación finalizado
[INFO] ==========================================
[INFO] Log guardado en: /home/backvicibox/install-vicibox.log
[INFO] Comprueba el estado de servicios: systemctl status mariadb apache2
[INFO] Acceso web: http://<IP-del-servidor>/vicidial/welcome.php
[INFO] Admin ViciDial: usuario sapian, password sap64adm (admin.php)
[INFO] ==========================================
[INFO] Instalación ViciBox (dependencias + restore + express)
[INFO] ==========================================
[INFO] 1. Instalando Perl, Subversion y módulos (DBI, DBD-mysql, LWP::Simple)...
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'perl' is already installed.
No update candidate for 'perl-5.42.0-160000.2.2.x86_64'. The highest available version is already installed.
'libwww-perl' not found in package names. Trying capabilities.
No provider of 'libwww-perl' found.
[INFO] Perl:
[INFO] 2. Instalando MariaDB...
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'mariadb' is already installed.
No update candidate for 'mariadb-11.8.5-160000.3.1.x86_64'. The highest available version is already installed.
'mariadb-client' is already installed.
No update candidate for 'mariadb-client-11.8.5-160000.3.1.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do.
[INFO] MariaDB instalado y en ejecución
[INFO] 3. Instalando PHP 8 y módulo Apache...
Repository 'php 8.0 (SLE_15_SP6)' is up to date.
Repository 'repo-openh264 (16.0)' is up to date.
Repository 'repo-oss (16.0)' is up to date.
All repositories have been refreshed.
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'php8' is already installed.
No update candidate for 'php8-8.4.16-160000.1.1.x86_64'. The highest available version is already installed.
'apache2-mod_php8' is already installed.
No update candidate for 'apache2-mod_php8-8.4.16-160000.1.1.x86_64'. The highest available version is already installed.
'php8-mysql' is already installed.
No update candidate for 'php8-mysql-8.4.16-160000.1.1.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do.
[INFO] PHP instalado
[INFO] 4. Instalando Apache y configurando welcome.php...
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'apache2' is already installed.
No update candidate for 'apache2-2.4.63-160000.3.1.x86_64'. The highest available version is already installed.
'apache2-prefork' is already installed.
No update candidate for 'apache2-prefork-2.4.63-160000.3.1.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do.
[INFO] Apache instalado y apuntando a /vicidial/welcome.php
[INFO] 5. Ejecutando restore.sh...
[INFO] ==========================================
[INFO] Restauración de Vicibox
[INFO] ==========================================
[INFO] 1. Restaurando scripts de Vicibox...
[INFO] ✓ Scripts restaurados
[INFO] 2. Creando enlaces simbólicos...
[INFO] ✓ Enlaces simbólicos creados
[INFO] 3. Restaurando código fuente de ViciDial...
[INFO] ✓ Código fuente restaurado
[INFO] 4. Verificando instalación...
[INFO] ✓ Verificación completada sin errores
[INFO] ==========================================
[INFO] Restauración completada!
[INFO] ==========================================
[INFO] Ahora puedes ejecutar la instalación:
Para instalación Express (todo-en-uno):
vicibox-install --vicibox-express
Para instalación personalizada:
vicibox-install
[INFO] 6. Aplicando parches a vicibox-install.pl (socket MySQL, random_pass, etc.)...
[INFO] Copiado vicibox-install.pl con parches desde patches/
[INFO] 7. Ejecutando vicibox-install --vicibox-express (confirmación automática 'y')...
[INFO] Esto puede tardar varios minutos...
Can't locate LWP/Simple.pm in @INC (you may need to install the LWP::Simple module) (@INC entries checked: /usr/lib/perl5/site_perl/5.42.0/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.42.0 /usr/lib/perl5/vendor_perl/5.42.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.42.0 /usr/lib/perl5/5.42.0/x86_64-linux-thread-multi /usr/lib/perl5/5.42.0 /usr/lib/perl5/site_perl) at /usr/share/vicibox/vicibox-install.pl line 78.
BEGIN failed--compilation aborted at /usr/share/vicibox/vicibox-install.pl line 78.
[INFO] 8. /etc/astguiclient.conf no existe aún (normal si la instalación Express falló antes de crearlo).
[INFO] 9. Creando usuario administrador sapian en ViciDial...
La base de datos asterisk no existe o no hay acceso. Ejecutar después de la instalación Express.
[WARN] No se pudo crear el usuario (¿base de datos ya instalada?). Puedes ejecutar después: sudo /home/backvicibox/create-admin-sapian.sh
[INFO] ==========================================
[INFO] Proceso de instalación finalizado
[INFO] ==========================================
[INFO] Log guardado en: /home/backvicibox/install-vicibox.log
[INFO] Comprueba el estado de servicios: systemctl status mariadb apache2
[INFO] Acceso web: http://<IP-del-servidor>/vicidial/welcome.php
[INFO] Admin ViciDial: usuario sapian, password sap64adm (admin.php)
[INFO] ==========================================
[INFO] Instalación ViciBox (dependencias + restore + express)
[INFO] ==========================================
[INFO] 1. Instalando Perl, Subversion y módulos (DBI, DBD-mysql, LWP::Simple)...
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'perl' is already installed.
No update candidate for 'perl-5.42.0-160000.2.2.x86_64'. The highest available version is already installed.
'libwww-perl' not found in package names. Trying capabilities.
No provider of 'libwww-perl' found.
[INFO] Perl:
[INFO] 2. Instalando MariaDB...
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'mariadb' is already installed.
No update candidate for 'mariadb-11.8.5-160000.3.1.x86_64'. The highest available version is already installed.
'mariadb-client' is already installed.
No update candidate for 'mariadb-client-11.8.5-160000.3.1.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do.
[INFO] MariaDB instalado y en ejecución
[INFO] 3. Instalando PHP 8 y módulo Apache...
Repository 'php 8.0 (SLE_15_SP6)' is up to date.
Repository 'repo-openh264 (16.0)' is up to date.
Repository 'repo-oss (16.0)' is up to date.
All repositories have been refreshed.
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'php8' is already installed.
No update candidate for 'php8-8.4.16-160000.1.1.x86_64'. The highest available version is already installed.
'apache2-mod_php8' is already installed.
No update candidate for 'apache2-mod_php8-8.4.16-160000.1.1.x86_64'. The highest available version is already installed.
'php8-mysql' is already installed.
No update candidate for 'php8-mysql-8.4.16-160000.1.1.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do.
[INFO] PHP instalado
[INFO] 4. Instalando Apache y configurando welcome.php...
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'apache2' is already installed.
No update candidate for 'apache2-2.4.63-160000.3.1.x86_64'. The highest available version is already installed.
'apache2-prefork' is already installed.
No update candidate for 'apache2-prefork-2.4.63-160000.3.1.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do.
[INFO] Apache instalado y apuntando a /vicidial/welcome.php
[INFO] 5. Ejecutando restore.sh...
[INFO] ==========================================
[INFO] Restauración de Vicibox
[INFO] ==========================================
[INFO] 1. Restaurando scripts de Vicibox...
[INFO] ✓ Scripts restaurados
[INFO] 2. Creando enlaces simbólicos...
[INFO] ✓ Enlaces simbólicos creados
[INFO] 3. Restaurando código fuente de ViciDial...
[INFO] ✓ Código fuente restaurado
[INFO] 4. Verificando instalación...
[INFO] ✓ Verificación completada sin errores
[INFO] ==========================================
[INFO] Restauración completada!
[INFO] ==========================================
[INFO] Ahora puedes ejecutar la instalación:
Para instalación Express (todo-en-uno):
vicibox-install --vicibox-express
Para instalación personalizada:
vicibox-install
[INFO] 6. Aplicando parches a vicibox-install.pl (socket MySQL, random_pass, etc.)...
[INFO] Copiado vicibox-install.pl con parches desde patches/
[INFO] 7. Ejecutando vicibox-install --vicibox-express (confirmación automática 'y')...
[INFO] Esto puede tardar varios minutos...
Can't locate LWP/Simple.pm in @INC (you may need to install the LWP::Simple module) (@INC entries checked: /usr/lib/perl5/site_perl/5.42.0/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.42.0 /usr/lib/perl5/vendor_perl/5.42.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.42.0 /usr/lib/perl5/5.42.0/x86_64-linux-thread-multi /usr/lib/perl5/5.42.0 /usr/lib/perl5/site_perl) at /usr/share/vicibox/vicibox-install.pl line 78.
BEGIN failed--compilation aborted at /usr/share/vicibox/vicibox-install.pl line 78.
[INFO] 8. /etc/astguiclient.conf no existe aún (normal si la instalación Express falló antes de crearlo).
[INFO] 9. Creando usuario administrador sapian en ViciDial...
La base de datos asterisk no existe o no hay acceso. Ejecutar después de la instalación Express.
[WARN] No se pudo crear el usuario (¿base de datos ya instalada?). Puedes ejecutar después: sudo /home/backvicibox/create-admin-sapian.sh
[INFO] ==========================================
[INFO] Proceso de instalación finalizado
[INFO] ==========================================
[INFO] Log guardado en: /home/backvicibox/install-vicibox.log
[INFO] Comprueba el estado de servicios: systemctl status mariadb apache2
[INFO] Acceso web: http://<IP-del-servidor>/vicidial/welcome.php
[INFO] Admin ViciDial: usuario sapian, password sap64adm (admin.php)
[INFO] ==========================================
[INFO] Instalación ViciBox (dependencias + restore + express)
[INFO] ==========================================
[INFO] 0. Instalando módulos Perl requeridos (perl-DBI, perl-DBD-mysql, perl-libwww-perl)...
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'perl-DBD-mysql' is already installed.
No update candidate for 'perl-DBD-mysql-4.050-160000.2.2.x86_64'. The highest available version is already installed.
'perl-libwww-perl' is already installed.
No update candidate for 'perl-libwww-perl-6.770.0-160000.2.2.noarch'. The highest available version is already installed.
'perl-DBI' is already installed.
No update candidate for 'perl-DBI-1.647.0-160000.2.2.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do.
[INFO] perl-DBI, perl-DBD-mysql, perl-libwww-perl instalados
[INFO] 1. Instalando Perl, Subversion y resto de dependencias...
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'perl' is already installed.
No update candidate for 'perl-5.42.0-160000.2.2.x86_64'. The highest available version is already installed.
'perl-DBD-mysql' is already installed.
No update candidate for 'perl-DBD-mysql-4.050-160000.2.2.x86_64'. The highest available version is already installed.
'perl-DBI' is already installed.
No update candidate for 'perl-DBI-1.647.0-160000.2.2.x86_64'. The highest available version is already installed.
'libwww-perl' not found in package names. Trying capabilities.
No provider of 'libwww-perl' found.
[INFO] Perl:
[INFO] 2. Instalando MariaDB...
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'mariadb' is already installed.
No update candidate for 'mariadb-11.8.5-160000.3.1.x86_64'. The highest available version is already installed.
'mariadb-client' is already installed.
No update candidate for 'mariadb-client-11.8.5-160000.3.1.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do.
[INFO] MariaDB instalado y en ejecución
[INFO] 3. Instalando PHP 8 y módulo Apache...
Repository 'php 8.0 (SLE_15_SP6)' is up to date.
Repository 'repo-openh264 (16.0)' is up to date.
Repository 'repo-oss (16.0)' is up to date.
All repositories have been refreshed.
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'php8' is already installed.
No update candidate for 'php8-8.4.16-160000.1.1.x86_64'. The highest available version is already installed.
'apache2-mod_php8' is already installed.
No update candidate for 'apache2-mod_php8-8.4.16-160000.1.1.x86_64'. The highest available version is already installed.
'php8-mysql' is already installed.
No update candidate for 'php8-mysql-8.4.16-160000.1.1.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do.
[INFO] PHP instalado
[INFO] 4. Instalando Apache y configurando welcome.php...
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'apache2' is already installed.
No update candidate for 'apache2-2.4.63-160000.3.1.x86_64'. The highest available version is already installed.
'apache2-prefork' is already installed.
No update candidate for 'apache2-prefork-2.4.63-160000.3.1.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do.
[INFO] Apache instalado y apuntando a /vicidial/welcome.php
[INFO] 4b. Instalando Asterisk (repositorio VICIdial asterisk-18)...
Adding repository 'asterisk (15.6)' [.....done]
Repository 'asterisk (15.6)' successfully added
URI : https://download.opensuse.org/repositories/home:/vicidial:/asterisk-18/15.6/
Enabled : Yes
GPG Check : Yes
Autorefresh : Yes
Priority : 99 (default priority)
Repository priorities are without effect. All enabled repositories share the same priority.
[WARN] Repo Asterisk no disponible. Instala manualmente: zypper ar .../home:vicidial:asterisk-18.repo && zypper in asterisk
[INFO] 5. Ejecutando restore.sh...
[INFO] ==========================================
[INFO] Restauración de Vicibox
[INFO] ==========================================
[INFO] 1. Restaurando scripts de Vicibox...
[INFO] ✓ Scripts restaurados
[INFO] 2. Creando enlaces simbólicos...
[INFO] ✓ Enlaces simbólicos creados
[INFO] 3. Restaurando código fuente de ViciDial...
[INFO] ✓ Código fuente restaurado
[INFO] 4. Verificando instalación...
[INFO] ✓ Verificación completada sin errores
[INFO] ==========================================
[INFO] Restauración completada!
[INFO] ==========================================
[INFO] Ahora puedes ejecutar la instalación:
Para instalación Express (todo-en-uno):
vicibox-install --vicibox-express
Para instalación personalizada:
vicibox-install
[INFO] 6. Aplicando parches a vicibox-install.pl (socket MySQL, random_pass, etc.)...
[INFO] Copiado vicibox-install.pl con parches desde patches/
[INFO] 7. Ejecutando vicibox-install --vicibox-express (confirmación automática 'y')...
[INFO] Esto puede tardar varios minutos...
ViciBox Installer
Vicibox Express mode activated
Can't exec "/usr/sbin/asterisk": No such file or directory at /usr/share/vicibox/vicibox-install.pl line 803.
Use of uninitialized value $string in substitution (s///) at /usr/share/vicibox/vicibox-install.pl line 137.
Use of uninitialized value $string in substitution (s///) at /usr/share/vicibox/vicibox-install.pl line 138.
Use of uninitialized value in split at /usr/share/vicibox/vicibox-install.pl line 803.
Use of uninitialized value $string in substitution (s///) at /usr/share/vicibox/vicibox-install.pl line 137.
Use of uninitialized value $string in substitution (s///) at /usr/share/vicibox/vicibox-install.pl line 138.
Use of uninitialized value $astverstring in pattern match (m//) at /usr/share/vicibox/vicibox-install.pl line 805.
Use of uninitialized value $astverstring in pattern match (m//) at /usr/share/vicibox/vicibox-install.pl line 806.
Use of uninitialized value $astverstring in pattern match (m//) at /usr/share/vicibox/vicibox-install.pl line 807.
Use of uninitialized value $astverstring in pattern match (m//) at /usr/share/vicibox/vicibox-install.pl line 808.
Use of uninitialized value $astverstring in pattern match (m//) at /usr/share/vicibox/vicibox-install.pl line 809.
Use of uninitialized value $astverstring in pattern match (m//) at /usr/share/vicibox/vicibox-install.pl line 810.
sh: line 1: /usr/bin/svn: No such file or directory
Use of uninitialized value $string in substitution (s///) at /usr/share/vicibox/vicibox-install.pl line 137.
Use of uninitialized value $string in substitution (s///) at /usr/share/vicibox/vicibox-install.pl line 138.
sh: line 1: /usr/bin/svn: No such file or directory
Use of uninitialized value $string in substitution (s///) at /usr/share/vicibox/vicibox-install.pl line 137.
Use of uninitialized value $string in substitution (s///) at /usr/share/vicibox/vicibox-install.pl line 138.
This will install ViciBox in "Express" mode. This will result in a
single server installation performing all roles of the ViciDial Call
Center Suite. This is the simplest method of installation and generally
suitable for use with 20 agents or less. Minimum server specifications
are Quad-Core CPU, 8GB of ram or more, and two 500-GB SSDs in RAID1. A
software RAID can be setup by using the MD or MultiDevice install media
for ViciBox.
To continue beyond this point will be destructive to the installed system.
Do you want to continue with the ViciBox Express install? [y/N] :
Beginning installation, expect lots of output...
Local SVN revision matches DB revision: 0
Doing general DataBase requirements...
Database already exists! Server was previously installed.
[INFO] 8. Configuración: VARDB_server => 127.0.0.1 en /etc/astguiclient.conf (para la web)
[INFO] 9. Creando usuario administrador sapian en ViciDial...
La base de datos asterisk no existe o no hay acceso. Ejecutar después de la instalación Express.
[WARN] No se pudo crear el usuario (¿base de datos ya instalada?). Puedes ejecutar después: sudo /home/backvicibox/create-admin-sapian.sh
[INFO] ==========================================
[INFO] Proceso de instalación finalizado
[INFO] ==========================================
[INFO] Log guardado en: /home/backvicibox/install-vicibox.log
[INFO] Comprueba el estado de servicios: systemctl status mariadb apache2 asterisk
[INFO] Acceso web: http://<IP-del-servidor>/vicidial/welcome.php
[INFO] Admin ViciDial: usuario sapian, password sap64adm (admin.php)

@ -0,0 +1,190 @@
#!/bin/bash
#
# Script de instalación completa de ViciBox (ambiente de configuración)
# Basado en la carpeta backvicibox.
#
# Orden: Perl (DBI/DBD-mysql/libwww) → MariaDB → PHP → Apache → Asterisk
# → restore.sh → parches a vicibox-install.pl → vicibox-install --vicibox-express
#
# Uso: sudo ./install-vicibox.sh
#
set -e
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LOG_FILE="${SCRIPT_DIR}/install-vicibox.log"
info() { echo -e "${GREEN}[INFO]${NC} $1" | tee -a "$LOG_FILE"; }
warn() { echo -e "${YELLOW}[WARN]${NC} $1" | tee -a "$LOG_FILE"; }
error() { echo -e "${RED}[ERROR]${NC} $1" | tee -a "$LOG_FILE"; }
if [ "$EUID" -ne 0 ]; then
error "Ejecutar como root: sudo $0"
exit 1
fi
# Comprobar que estamos en backvicibox y existen archivos
if [ ! -f "${SCRIPT_DIR}/restore.sh" ]; then
error "No se encuentra restore.sh. Ejecutar desde el directorio backvicibox."
exit 1
fi
if [ ! -f "${SCRIPT_DIR}/vicibox-scripts.tar.gz" ] || [ ! -f "${SCRIPT_DIR}/astguiclient-trunk.tar.gz" ]; then
error "Faltan vicibox-scripts.tar.gz o astguiclient-trunk.tar.gz en ${SCRIPT_DIR}"
exit 1
fi
info "=========================================="
info "Instalación ViciBox (dependencias + restore + express)"
info "=========================================="
echo ""
# --- 0. Módulos Perl (antes que todo) ---
info "0. Instalando módulos Perl requeridos (perl-DBI, perl-DBD-mysql, perl-libwww-perl)..."
zypper -n install -y perl-DBI perl-DBD-mysql perl-libwww-perl >> "$LOG_FILE" 2>&1 || true
info " perl-DBI, perl-DBD-mysql, perl-libwww-perl instalados"
echo ""
# --- 1. Perl (versión del sistema) y resto de módulos ---
info "1. Instalando Perl, Subversion y resto de dependencias..."
zypper -n install -y perl perl-DBI perl-DBD-mysql libwww-perl subversion >> "$LOG_FILE" 2>&1 || true
info " Perl: $(perl -v 2>&1 | head -1)"
echo ""
# --- 2. MariaDB ---
info "2. Instalando MariaDB..."
zypper -n install -y mariadb mariadb-client >> "$LOG_FILE" 2>&1
systemctl enable mariadb >> "$LOG_FILE" 2>&1
systemctl start mariadb >> "$LOG_FILE" 2>&1
info " MariaDB instalado y en ejecución"
echo ""
# --- 3. PHP 8 y módulo Apache ---
info "3. Instalando PHP 8 y módulo Apache..."
if ! zypper lr | grep -q "devel_languages_php_php80"; then
zypper -n addrepo https://download.opensuse.org/repositories/devel:languages:php:php80/SLE_15_SP6/devel:languages:php:php80.repo
fi
zypper --no-gpg-checks -n refresh >> "$LOG_FILE" 2>&1
zypper -n install -y php8 apache2-mod_php8 php8-mysql >> "$LOG_FILE" 2>&1
info " PHP $(php8 -v 2>/dev/null | head -1 || true) instalado"
echo ""
# --- 4. Apache ---
info "4. Instalando Apache y configurando welcome.php..."
zypper -n install -y apache2 apache2-prefork >> "$LOG_FILE" 2>&1
# Configurar que la raíz y /vicidial apunten a welcome.php
cat > /etc/apache2/conf.d/vicidial-welcome.conf << 'APACHECONF'
# ViciDial: URL principal -> vicidial/welcome.php
<Directory "/srv/www/htdocs/vicidial">
DirectoryIndex welcome.php
Options None
<IfModule !mod_access_compat.c>
Require all granted
</IfModule>
</Directory>
RedirectMatch ^/$ /vicidial/welcome.php
APACHECONF
systemctl enable apache2 >> "$LOG_FILE" 2>&1
systemctl start apache2 >> "$LOG_FILE" 2>&1
info " Apache instalado y apuntando a /vicidial/welcome.php"
echo ""
# --- 4b. Asterisk (requerido por vicibox-install; el instalador no lo instala) ---
info "4b. Instalando Asterisk (repositorio VICIdial asterisk-18)..."
AST_REPO_NAME="home:vicidial:asterisk-18"
AST_REPO_URL="https://download.opensuse.org/repositories/${AST_REPO_NAME}"
# Detectar versión (ej. 16.0 en openSUSE Leap 16.0)
AST_OS_VER=""
[ -f /etc/os-release ] && AST_OS_VER=$(grep -E '^VERSION_ID=' /etc/os-release | cut -d'"' -f2)
# Probar versión del sistema primero; luego 16.0, 15.6, 15.5
AST_VERSIONS="$AST_OS_VER 16.0 15.6 15.5"
AST_REPO_ADDED=0
for AST_VER in $AST_VERSIONS; do
[ -z "$AST_VER" ] && continue
if zypper lr 2>/dev/null | grep -q "$AST_REPO_NAME"; then
AST_REPO_ADDED=1
break
fi
info " Añadiendo repo: ${AST_REPO_NAME} (${AST_VER})..."
zypper -n addrepo --refresh "${AST_REPO_URL}/${AST_VER}/${AST_REPO_NAME}.repo" >> "$LOG_FILE" 2>&1 && AST_REPO_ADDED=1 && break
done
if [ "$AST_REPO_ADDED" = "1" ] && zypper lr 2>/dev/null | grep -q "$AST_REPO_NAME"; then
info " Refrescando repositorios..."
zypper --no-gpg-checks -n refresh >> "$LOG_FILE" 2>&1
info " Instalando asterisk..."
zypper -n install -y asterisk >> "$LOG_FILE" 2>&1
info " Habilitando e iniciando asterisk..."
systemctl enable asterisk >> "$LOG_FILE" 2>&1
systemctl start asterisk >> "$LOG_FILE" 2>&1 || true
info " Asterisk: $(asterisk -V 2>/dev/null || echo 'revisar servicio')"
else
warn " Repo Asterisk no disponible. Para Leap 16.0 ejecuta manualmente:"
warn " zypper ar --refresh ${AST_REPO_URL}/16.0/${AST_REPO_NAME}.repo"
warn " zypper --no-gpg-checks ref && zypper in -y asterisk && systemctl enable --now asterisk"
fi
echo ""
# --- 5. Restore (scripts y código fuente) ---
info "5. Ejecutando restore.sh..."
cd "$SCRIPT_DIR"
./restore.sh >> "$LOG_FILE" 2>&1
echo ""
# --- 6. Aplicar parches a vicibox-install.pl ---
info "6. Aplicando parches a vicibox-install.pl (socket MySQL, random_pass, etc.)..."
if [ -f "${SCRIPT_DIR}/patches/vicibox-install.pl" ]; then
cp "${SCRIPT_DIR}/patches/vicibox-install.pl" /usr/share/vicibox/vicibox-install.pl
chmod +x /usr/share/vicibox/vicibox-install.pl
info " Copiado vicibox-install.pl con parches desde patches/"
elif [ -f "${SCRIPT_DIR}/apply-vicibox-patches.sh" ]; then
"${SCRIPT_DIR}/apply-vicibox-patches.sh" >> "$LOG_FILE" 2>&1
info " Parches aplicados con apply-vicibox-patches.sh"
else
warn " No se encontró patches/vicibox-install.pl ni apply-vicibox-patches.sh."
warn " Se usará vicibox-install.pl sin parches (puede fallar socket MySQL/pwgen)."
fi
echo ""
# --- 7. Ejecutar instalación Express ---
info "7. Ejecutando vicibox-install --vicibox-express (confirmación automática 'y')..."
info " Esto puede tardar varios minutos..."
echo "y" | /usr/share/vicibox/vicibox-install.pl --vicibox-express >> "$LOG_FILE" 2>&1 || true
echo ""
# --- 8. Ajustar conexión web (127.0.0.1 para evitar error socket) ---
if [ -f /etc/astguiclient.conf ]; then
if grep -q 'VARDB_server => localhost' /etc/astguiclient.conf; then
sed -i 's/VARDB_server => localhost/VARDB_server => 127.0.0.1/' /etc/astguiclient.conf
info "8. Configuración: VARDB_server => 127.0.0.1 en /etc/astguiclient.conf (para la web)"
fi
else
info "8. /etc/astguiclient.conf no existe aún (normal si la instalación Express falló antes de crearlo)."
fi
echo ""
# --- 9. Crear usuario administrador sapian / sap64adm ---
info "9. Creando usuario administrador sapian en ViciDial..."
if [ -f "${SCRIPT_DIR}/create-admin-sapian.sh" ]; then
chmod +x "${SCRIPT_DIR}/create-admin-sapian.sh"
if "${SCRIPT_DIR}/create-admin-sapian.sh" >> "$LOG_FILE" 2>&1; then
info " Usuario administrador: sapian / sap64adm creado correctamente"
else
warn " No se pudo crear el usuario (¿base de datos ya instalada?). Puedes ejecutar después: sudo ${SCRIPT_DIR}/create-admin-sapian.sh"
fi
else
warn " No se encuentra create-admin-sapian.sh. Crear usuario sapian manualmente en admin.php si lo necesitas."
fi
echo ""
info "=========================================="
info "Proceso de instalación finalizado"
info "=========================================="
info "Log guardado en: $LOG_FILE"
info "Comprueba el estado de servicios: systemctl status mariadb apache2 asterisk"
info "Acceso web: http://<IP-del-servidor>/vicidial/welcome.php"
info "Admin ViciDial: usuario sapian, password sap64adm (admin.php)"
echo ""

@ -0,0 +1,14 @@
Parches para vicibox-install.pl
================================
- vicibox-install.pl (si existe): copia del script con modificaciones aplicadas para:
* Detección automática del socket MySQL/MariaDB (/var/run/mysql, /run/mysql, etc.)
* Función random_pass() cuando pwgen no está instalado
* Conexiones DBI usando el socket detectado (evita "No such file or directory")
Si este directorio contiene vicibox-install.pl, install-vicibox.sh lo copiará
a /usr/share/vicibox/ después de restore.sh. Si no, intentará aplicar
apply-vicibox-patches.sh al script restaurado.
Para regenerar vicibox-install.pl con parches desde un sistema ya parcheado:
cp /usr/share/vicibox/vicibox-install.pl /home/backvicibox/patches/

File diff suppressed because it is too large Load Diff

@ -0,0 +1,125 @@
#!/bin/bash
#
# Script de restauración de Vicibox para servidor destino
# Uso: ./restore.sh
#
set -e
# Colores para output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# Verificar que se ejecuta como root
if [ "$EUID" -ne 0 ]; then
error "Este script debe ejecutarse como root"
exit 1
fi
# Verificar que existen los archivos
if [ ! -f "vicibox-scripts.tar.gz" ]; then
error "No se encuentra vicibox-scripts.tar.gz"
exit 1
fi
if [ ! -f "astguiclient-trunk.tar.gz" ]; then
error "No se encuentra astguiclient-trunk.tar.gz"
exit 1
fi
info "=========================================="
info "Restauración de Vicibox"
info "=========================================="
echo ""
# 1. Restaurar scripts de Vicibox
info "1. Restaurando scripts de Vicibox..."
mkdir -p /usr/share
if tar -xzf vicibox-scripts.tar.gz -C /usr/share/ 2>/dev/null; then
chmod +x /usr/share/vicibox/*.sh 2>/dev/null
chmod +x /usr/share/vicibox/*.pl 2>/dev/null
chmod +x /usr/share/vicibox/vicibox-* 2>/dev/null
info " ✓ Scripts restaurados"
else
error " ✗ Error al restaurar scripts"
exit 1
fi
echo ""
# 2. Crear enlaces simbólicos
info "2. Creando enlaces simbólicos..."
mkdir -p /usr/local/bin
ln -sf /usr/share/vicibox/vicibox-install.pl /usr/local/bin/vicibox-install 2>/dev/null
ln -sf /usr/share/vicibox/vicibox-express /usr/local/bin/vicibox-express 2>/dev/null
ln -sf /usr/share/vicibox/vicibox-externip /usr/local/bin/vicibox-externip 2>/dev/null
ln -sf /usr/share/vicibox/vicibox-timezone /usr/local/bin/vicibox-timezone 2>/dev/null
ln -sf /usr/share/vicibox/vicibox-mdraid1 /usr/local/bin/vicibox-mdraid1 2>/dev/null
info " ✓ Enlaces simbólicos creados"
echo ""
# 3. Restaurar código fuente
info "3. Restaurando código fuente de ViciDial..."
mkdir -p /usr/src
if tar -xzf astguiclient-trunk.tar.gz -C /usr/src/ 2>/dev/null; then
chmod +x /usr/src/astguiclient/trunk/install.pl 2>/dev/null
chmod +x /usr/src/astguiclient/trunk/bin/* 2>/dev/null || true
chmod +x /usr/src/astguiclient/trunk/extras/*.sh 2>/dev/null || true
info " ✓ Código fuente restaurado"
else
error " ✗ Error al restaurar código fuente"
exit 1
fi
echo ""
# 4. Verificación
info "4. Verificando instalación..."
ERRORS=0
if [ ! -f "/usr/share/vicibox/vicibox-install.pl" ]; then
error " ✗ No se encuentra vicibox-install.pl"
ERRORS=$((ERRORS+1))
fi
if [ ! -f "/usr/src/astguiclient/trunk/install.pl" ]; then
error " ✗ No se encuentra install.pl de ViciDial"
ERRORS=$((ERRORS+1))
fi
if [ ! -f "/usr/src/astguiclient/trunk/extras/MySQL_AST_CREATE_tables.sql" ]; then
error " ✗ No se encuentra MySQL_AST_CREATE_tables.sql"
ERRORS=$((ERRORS+1))
fi
if [ $ERRORS -eq 0 ]; then
info " ✓ Verificación completada sin errores"
else
warn " ⚠ Se encontraron $ERRORS errores en la verificación"
fi
echo ""
info "=========================================="
info "Restauración completada!"
info "=========================================="
echo ""
info "Ahora puedes ejecutar la instalación:"
echo ""
echo " Para instalación Express (todo-en-uno):"
echo " vicibox-install --vicibox-express"
echo ""
echo " Para instalación personalizada:"
echo " vicibox-install"
echo ""

@ -0,0 +1,21 @@
=== Información de Versión ===
Fecha de backup: Fri Feb 6 04:46:49 PM UTC 2026
--- Versión de Vicibox ---
- ViciBox v.12.0.2 240121
* MariaDB 10.11 deprecated the old TIMESTAMP behavior
* ssh service was defined twice in the external.xml zonefile.
- ViciBox v.12.0.1 250118
* firewalld (the firewall) was not enabled by default. This is a policy issue and not a bug.
* Added version into to /etc/issue and Grub. So now it'll say v.12.0.1 instead of v.12.0
* vicibox-mdraid1 bug see https://docs.vicibox.com/en/latest/bugfix/bugfix1200-1.html
- ViciBox v.12.0.0-Beta 250116
--- Versión de ViciDial ---
2.14b0.5
--- Información del Sistema ---
Linux vicibox12 6.4.0-150600.23.73-default #1 SMP PREEMPT_DYNAMIC Tue Oct 7 08:43:02 UTC 2025 (46f6a23) x86_64 x86_64 x86_64 GNU/Linux
--- Versión de Asterisk ---
Asterisk 18.26.4-vici

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

@ -17,6 +17,7 @@
# GUÍA DE INSTALACIÓN (también en custom.css al inicio):
# 1. Import en vicidial_stylesheet.php (al inicio del CSS) para la mayoría de pantallas.
# 2. Link en admin_header.php (antes de </head>) para pantallas que usan admin_header.
# 2b. Link en admin_header.php (bloque short_header) para reportes en tiempo real (AST_timeonVDAD.php, etc.).
# 3. Link en VERM/VERM_admin.php (tras VERM_stylesheet.php) para la interfaz VERM admin.
# 4. Link en VERM/VERM_wallboards.php (tras VERM_wallboard_stylesheet.php) para el wallboard.
# 5. Link en VERM/VERM_custom_report.php (tras VERM_stylesheet.php) para el formulario de custom report.
@ -215,25 +216,57 @@ install_stylesheet_ref() {
info "Añadido @import en vicidial_stylesheet.php"
}
# Comprueba si el bloque short_header ya tiene el link a custom.css (p. ej. AST_timeonVDAD.php)
has_admin_header_short_ref() {
[[ ! -f "$ADMIN_HEADER" ]] && return 1
local short_line
short_line=$(grep -n "LOGreports_header_override == 'LOGO_ONLY_SMALL'" "$ADMIN_HEADER" | head -1 | cut -d: -f1)
[[ -z "$short_line" ]] || [[ $short_line -le 1 ]] && return 1
local prev_line
prev_line=$(sed -n "$((short_line - 1))p" "$ADMIN_HEADER")
[[ "$prev_line" == *"custom.css"* ]]
}
install_admin_header_ref() {
if installed_admin_header; then
info "admin_header.php: custom.css ya referenciado."
return 0
fi
if [[ ! -f "$ADMIN_HEADER" ]]; then
warn "No existe: $ADMIN_HEADER"
return 1
fi
save_pre_agc_backup "$ADMIN_HEADER"
local line_num
line_num=$(grep -n 'echo "</head>' "$ADMIN_HEADER" | head -1 | cut -d: -f1)
[[ -n "$line_num" ]] || { error "No se encontró echo \"</head>\" en admin_header.php"; return 1; }
local insert_line='echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"../agc/css/custom.css\" />\n";'
head -n $((line_num - 1)) "$ADMIN_HEADER" > "${ADMIN_HEADER}.tmp"
echo "$insert_line" >> "${ADMIN_HEADER}.tmp"
tail -n +"$line_num" "$ADMIN_HEADER" >> "${ADMIN_HEADER}.tmp"
mv "${ADMIN_HEADER}.tmp" "$ADMIN_HEADER"
info "Añadido <link> en admin_header.php"
# 1) Añadir <link> antes de </head> si aún no hay ninguna referencia a custom.css
if ! grep -q "agc/css/custom.css" "$ADMIN_HEADER"; then
save_pre_agc_backup "$ADMIN_HEADER"
local line_num
line_num=$(grep -n 'echo "</head>' "$ADMIN_HEADER" | head -1 | cut -d: -f1)
[[ -n "$line_num" ]] || { error "No se encontró echo \"</head>\" en admin_header.php"; return 1; }
local insert_line='echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"../agc/css/custom.css\" />\n";'
head -n $((line_num - 1)) "$ADMIN_HEADER" > "${ADMIN_HEADER}.tmp"
echo "$insert_line" >> "${ADMIN_HEADER}.tmp"
tail -n +"$line_num" "$ADMIN_HEADER" >> "${ADMIN_HEADER}.tmp"
mv "${ADMIN_HEADER}.tmp" "$ADMIN_HEADER"
info "Añadido <link> en admin_header.php (antes de </head>)"
else
info "admin_header.php: custom.css ya referenciado (</head>)."
fi
# 2) Añadir <link> en el bloque short_header si falta (reportes en tiempo real, etc.)
if ! has_admin_header_short_ref; then
local short_line
short_line=$(grep -n "LOGreports_header_override == 'LOGO_ONLY_SMALL'" "$ADMIN_HEADER" | head -1 | cut -d: -f1)
if [[ -n "$short_line" ]]; then
if [[ ! -f "${ADMIN_HEADER}${BACKUP_SUFFIX}" ]]; then
save_pre_agc_backup "$ADMIN_HEADER"
fi
local insert_line=$'\t\t'"echo \"<link rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"../agc/css/custom.css\\\" />\\n\";"
head -n $((short_line - 1)) "$ADMIN_HEADER" > "${ADMIN_HEADER}.tmp"
echo "$insert_line" >> "${ADMIN_HEADER}.tmp"
tail -n +"$short_line" "$ADMIN_HEADER" >> "${ADMIN_HEADER}.tmp"
mv "${ADMIN_HEADER}.tmp" "$ADMIN_HEADER"
info "Añadido <link> custom.css en admin_header.php (short header)"
fi
else
info "admin_header.php: custom.css ya referenciado (short header)."
fi
}
install_verm_ref() {
@ -615,8 +648,10 @@ restore_logos() {
}
# --- Placeholders en vicidial.php (Phone Login size=10) ---
# Comprueba que el input size=10 (primer login) tenga ya placeholder (compatible stock y variantes)
has_placeholders() {
[[ -f "$VICIDIAL_PHP" ]] && grep -q 'placeholder=.*_QXZ.*Phone Login' "$VICIDIAL_PHP"
[[ -f "$VICIDIAL_PHP" ]] || return 1
grep -q 'name=\\"phone_login\\" size=\\"10\\".*placeholder' "$VICIDIAL_PHP"
}
install_placeholders() {
@ -626,14 +661,16 @@ install_placeholders() {
return 0
fi
save_pre_agc_backup "$VICIDIAL_PHP"
sed -i '/name=\\"phone_login\\" size=\\"10\\"/s/ value=\\"\\" \/>/ value=\\"\\" placeholder=\\""._QXZ("Phone Login")."\\" \/>/' "$VICIDIAL_PHP"
sed -i '/name=\\"phone_pass\\" size=\\"10\\"/s/ value=\\"\\" \/>/ value=\\"\\" placeholder=\\""._QXZ("Phone Password")."\\" \/>/' "$VICIDIAL_PHP"
# Permite 0 o más espacios entre value="" y /> (compatible con stock ViciDial)
sed -i '/name=\\"phone_login\\" size=\\"10\\"/s/ value=\\"\\" *\/>/ value=\\"\\" placeholder=\\""._QXZ("Phone Login")."\\" \/>/' "$VICIDIAL_PHP"
sed -i '/name=\\"phone_pass\\" size=\\"10\\"/s/ value=\\"\\" *\/>/ value=\\"\\" placeholder=\\""._QXZ("Phone Password")."\\" \/>/' "$VICIDIAL_PHP"
info "Placeholders Phone Login añadidos en vicidial.php."
}
# --- Placeholders Re-Login (phone_login/phone_pass size=20) ---
has_relogin_placeholders() {
[[ -f "$VICIDIAL_PHP" ]] && grep -q 'phone_login.*size="20".*placeholder' "$VICIDIAL_PHP"
[[ -f "$VICIDIAL_PHP" ]] || return 1
grep -q 'name=\\"phone_login\\" size=\\"20\\".*placeholder' "$VICIDIAL_PHP"
}
install_relogin_placeholders() {
@ -643,14 +680,15 @@ install_relogin_placeholders() {
return 0
fi
[[ -f "${VICIDIAL_PHP}${BACKUP_SUFFIX}" ]] || save_pre_agc_backup "$VICIDIAL_PHP"
sed -i '/name=\\"phone_login\\" size=\\"20\\"/s/ value=\\"\$phone_login\\" \/>/ value=\\"\$phone_login\\" placeholder=\\""._QXZ("Phone Login")."\\" \/>/' "$VICIDIAL_PHP"
sed -i '/name=\\"phone_pass\\" size=\\"20\\"/s/ value=\\"\$phone_pass\\" \/>/ value=\\"\$phone_pass\\" placeholder=\\""._QXZ("Phone Password")."\\" \/>/' "$VICIDIAL_PHP"
sed -i '/name=\\"phone_login\\" size=\\"20\\"/s/ value=\\"\$phone_login\\" *\/>/ value=\\"\$phone_login\\" placeholder=\\""._QXZ("Phone Login")."\\" \/>/' "$VICIDIAL_PHP"
sed -i '/name=\\"phone_pass\\" size=\\"20\\"/s/ value=\\"\$phone_pass\\" *\/>/ value=\\"\$phone_pass\\" placeholder=\\""._QXZ("Phone Password")."\\" \/>/' "$VICIDIAL_PHP"
info "Placeholders Re-Login añadidos."
}
# --- Placeholders Campaign Login (VD_login/VD_pass) ---
has_campaign_placeholders() {
[[ -f "$VICIDIAL_PHP" ]] && grep -q 'VD_login.*placeholder.*User Login' "$VICIDIAL_PHP"
[[ -f "$VICIDIAL_PHP" ]] || return 1
grep -q 'name=\\"VD_login\\" size=\\"20\\".*placeholder' "$VICIDIAL_PHP"
}
install_campaign_placeholders() {
@ -660,8 +698,8 @@ install_campaign_placeholders() {
return 0
fi
[[ -f "${VICIDIAL_PHP}${BACKUP_SUFFIX}" ]] || save_pre_agc_backup "$VICIDIAL_PHP"
sed -i '/name=\\"VD_login\\" size=\\"20\\"/s/ value=\\"\$VD_login\\" \/>/ value=\\"\$VD_login\\" placeholder=\\""._QXZ("User Login")."\\" \/>/' "$VICIDIAL_PHP"
sed -i '/name=\\"VD_pass\\" size=\\"20\\"/s/ value=\\"\$VD_pass\\" \/>/ value=\\"\$VD_pass\\" placeholder=\\""._QXZ("User Password")."\\" \/>/' "$VICIDIAL_PHP"
sed -i '/name=\\"VD_login\\" size=\\"20\\"/s/ value=\\"\$VD_login\\" *\/>/ value=\\"\$VD_login\\" placeholder=\\""._QXZ("User Login")."\\" \/>/' "$VICIDIAL_PHP"
sed -i '/name=\\"VD_pass\\" size=\\"20\\"/s/ value=\\"\$VD_pass\\" *\/>/ value=\\"\$VD_pass\\" placeholder=\\""._QXZ("User Password")."\\" \/>/' "$VICIDIAL_PHP"
info "Placeholders Campaign Login añadidos."
}
Loading…
Cancel
Save