Listado de la etiqueta: elastix

Issabel – Error 500 con Smarty

Hacía tiempo que no instalaba una PBX con Issabel desde 0. Ya estando a mediados del 2021, creí que el proceso iba a salir redondo, y no se iba a presentar ningún problema. Que pena enterarme que sigue teniendo algunos bugs.

Esta vez, luego de terminar la instalación, y actualizar paquetes (yum update), al ingresar al portar web tenía un error 500.

Por ello lo primero que debes hacer es ir a ver logs:

tail -f /var/log/httpd/ssl_error_log

Un error se repetía con cada intento de acceso que realizaba:

[Sun Jun 13 11:51:43.298260 2021] [:error] [pid 1312] [client 172.0.4.102:52760] PHP Fatal error: Uncaught –> Smarty: unable to create directory /var/www/html/var/templates_c <– \n thrown in /usr/share/php/Smarty/sysplugins/smarty_internal_runtime_writefile.php on line 51

Lo primero que debes hacer es entender el mismo:

smarty_internal_runtime_writefile.php

Es el encargado de escribir la cache en su directorio destino. Aquí te das la idea es que una cuestión de permisos

unable to create directory /var/www/html/var/templates_c

Aquí confirmamos la teoría de cúal es el directorio que no tiene permisos (o que no existe)

La solución es bastante sencilla:

  • Creamos el directorio
  • Le damos permisos
mkdir /var/www/html/var/templates_c
chmod 777 /var/www/html/var/templates_c

Con esto debería ser mas que suficiente para solucionar el problema.

No graba en las transferencias

El siguiente problema fue detectado en un Elastix 4.0 con Asterisk 11.24. No descartó que persista en Issabel, pero habría que confirmar.

El origen de la cuestión es que las grabaciones no incluía las transferencias. Para ser más claro, una llamada entrante (IN) que era dirigida hacia una cola (queue), es atendida por un coordinador. Luego este la vuelve a transferir, y en ese momento que realiza el corte (hangup), ya que alguien lo atendía del otro lado, la grabación se cortaba.

Esto puntualmente tiene que ver con una propiedad de asterisk (herencia), la cúal no estaba seteada. La forma de correguirlo es agregando la siguiente línea en el archivo: extensions_override_freepbx.conf (o extensions_override_elastix.conf)

Dependiente de tu versión deberías verificar en cúal de esos dos archivos agregar la línea

1-Haz backup de tu archivo

cp /etc/asterisk/extensions_override_freepbx.conf /etc/asterisk/extensions_override_freepbx.conf.bak

2-Busca la siguiente línea

exten => s,n(record),MixMonitor(${MIXMON_DIR}${CALLFILENAME}.${MIXMON_FORMAT},,${MIXMON_POST})

3-Agregá al final de esta (y en una nueva línea) , lo siguiente

exten => s,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)

4-Reinicia el servicio del asterisk

sudo service asterisk restart

o ingresa a la consola del asterisk y haz un reinicio por aplicación

Stopping and Restarting Asterisk From The CLI – Asterisk Project – Asterisk Project Wiki

core restart gracefully

Listo!!!

A partir de ahora, la llamada inicial, contendrá en la grabación todas las transferencias que puede haber sufrido, hasta el último corte (Tanto del cliente o del agente) que haya transcurrido.

Renovar certificado de Elastix o Issabel

La aparición de asterisk como alternativa a las centrales telefónicas pagas motivo la creación de diferentes aplicaciones que tomaran como base este servicio, y facilitarán su administración mediante interfaces web. Este es el caso de AsteriskNow, hoy FreePBX (https://www.freepbx.org/). Continuando con esta idea hubo empresas que aprovecharon esta idea, y crearon una aplicación que trabajara sobre el esquema anterior. Así fue que Palos Santos Solutions de la mano de Edgar Landivar fundaron Elastix.

Hoy Elastix ya desaparecido del mercado, y con la lenta continuación del proyecto a través de Issabel (https://www.issabel.org/) es que seguimos usando ambas distro de esta PBX. Lo que resulta muy común que luego de varios años de tener nuestras plantas en producción ya tendremos nuestros certificados SSL vencidos, y recibimos el molesto mensaje de advertencia por parte de nuestros navegadores.

Estos son los simples pasos para generar un nuevo certificado SSL para nuestra PBX con Elastix o Issabel

Crear un nuevo certificado

Lo primero que haremos es generar nuestro nueva key. En este punto nos solicitará un password.

openssl genrsa -des3 -out server.key 1024

A partir de este pediremos el certificado autoafirmado. Deberemos completar los datos de nuestra organización.

openssl req -new -key server.key -out server.csr
openssl x509 -req -days 730 -in /root/server.csr -signkey /root/server.key -out /root/server.crt

Ahora podremos reemplazar nuestra key y certificado actual. Si tienes duda de donde están puedes verificar en: /etc/httpd/conf.d/ssl.conf

(opcional) hacemos un backup de la key y el certificado actual

 cp /etc/pki/tls/private/localhost.key /etc/pki/tls/private/localhost.key.bakcp /etc/pki/tls/certs/localhost.crt /etc/pki/tls/certs/localhost.crt.bak

Reemplazamos los mismos

cp server.key /etc/pki/tls/private/localhost.key
cp server.crt /etc/pki/tls/certs/localhost.crt
Reiniciamos el servicio. En este momento nos solicitará el password que usamos antes en la key
service httpd restart

Ya está listo.