Como personalizar conmutador Elastix cambiando las imagenes predeterminadas por nuestro propio logotipo.

Cuando instalamos nuestro propio conmutador Elastix, muchas veces queremos personalizarlo con logotipos propios.

A continuacion, les muestro como pueden personalizar su conmutador de una forma muy sencilla en donde solo debemos remplazar los archivos que corresponde a las imagenes que parece en la pagina de inicio cuando te pide usuario y contraseña y de la imagen de la pagina principal que se ubica en la parte superior derecha.

Nota: Esta guia esta probada en una instalacion con Elastix 2.5.0. y 4.

Antes de iniciar es necesario que tengas un programa para subir archivos a tu conmutador.  El programa que recomiendo es el winscp el cual podemos conectarnos al conmutador usando una conexion SSH. (no abarcare como utilizar el winscp).

Tambien recomiendo que tengas un programa de edicion de imagenes como el photoshop o el Gimp para dimensionar tu logotipo a las dimensiones que se ocupan.

Empezamos creando o editando un archivo de imagen con tu logotipo con las siguientes características:

  • Nombre: elastix_logo_mini.png
  • Dimensiones: 200 pixeles de ancho por 62 pixeles de alto (200×62)
  • Caracteristicas: Debe tener fondo transparente y que el formato sea PNG.

Ahora crea o edita una segundo archivo de imagen con tu logotipo con estas caracteristicas:

  •  Nombre: elastix_logo_mini2.png
  • Diensiones: 200  pixeles de ancho por 59 pixeles de alto (200×59)
  • Caracteristicas: Debe tener fondo transparente y que el formato sea PNG.

Una vez que tengas los dos archivos de imagen, con la ayuda de un programa de gestion de archivos como el winscp, conectate al conmutador y ubícate en la carpeta /var/www/html//themes/tenant/images/

Dentro de esa carpeta, estarán dos archivos con los mismos nombres que los dos archivos que acabas de crear.  Procede que renombrar los archivos.  Ejemplo:

elastix_logo_mini.png se renombra a elastix_logo_mini.png_resp

elastix_logo_mini2.png se renombra a elastix_logo_mini2.png_resp

Ya que estén los archivos que vienen por default renombrados, procede a copiar en la misma carpeta los archivos que creaste anteriormente.

Con esto ya estara realizado el cambio y cuando volvamos a entrar a nuestro conmutador, tendra un aspecto mas personalizado.

En caso de que desees regresar a como estaba originalmente, solo ocupas borrar los archivos que creaste y volver a renombrar los archivos originales.

 

Espero que esta guia les sea de utilidad.

Escrito por Miguel Angel Muzquiz

Como cambiar la contraseña de admin en Elastix desde terminal

En caso de que olvides la contraseña admin del portal web de Elastix, solo ocupas hacer lo siguiente:

1.- Logearse como root

2.- Pegar la la siguiente linea:
sqlite3 /var/www/db/acl.db "UPDATE acl_user SET md5_password = '`echo -n password|md5sum|cut -d ' ' -f 1`' WHERE name = 'admin'"

3.- Solo modifica la palabra password con la contraseña que deseas poner y das enter.

Con esto, se habrá cambiado la contraseña de admin.

Espero que esta información les sea útil.

Escrito por Miguel Angel Muzquiz

Como habilitar el soporte de videollamada en Elastix

Para habilitar el soporte de videollamada en Elastix, seguir los siguientes pasos:

1.- Desde la pagina WEB de Elastix, entrar a PBX>Tools>Asterisk File Editor>sip_general_custom.conf

2.-Agregar las siguientes lineas:

videosupport=yes ;habilita el soporte de video
maxcallbitrate=384 ;limita el ancho de banda
allow=h263 ;Permite utilizar el codec h253
allow=h264 ;Permite utilizar el codec h254

3.- Una vez que agreguen las lineas, hay dar click a «Save» y «Reload Elastix» para que se apliquen los cambios.

videosoporte1

 

Con esto, ya debe estar habilitado el soporte de videollamadas en nuestro conmutador Elastix.

Espero que la información les sea útil.

Escrito por Miguel Angel Muzquiz

Como instalar Webmin por medio de Yum

Para instalar Webmin en forma sencilla y no tener problemas en resolver las dependencias  durante la instalación podemos utilizar Yum en sistemas linux compatibles como Red Hat, Centos y sus derivados.

Antes de empezar continuar con este tutorial, es necesario que se tenga el paquete wget instalado.  Para asegurarse de que ya esta instalado, solo ejecute los siguiente:

yum install wget

Una vez que ya tengamos wget instalado, continuamos con el tutorial.

Para poder utilizar Yum es necesario declarar el repositorio  dentro de la carpeta /etc/yum.repos.d/.

A continuación muestro los pasos a seguir para su instalación.

-Ejecuta la siguiente linea desde la linea de comando:

vi /etc/yum.repos.d/webmin.repo

-Una vez dentro de Vim, oprime la tecla «i» para que entres en modo de edición y copia la siguientes lineas:

[Webmin]
name=Webmin Distribution Neutral
#baseurl=http://download.webmin.com/download/yum
mirrorlist=http://download.webmin.com/download/yum/mirrorlist
enabled=1

-Oprime «Esc» para salir de modo de edición y graba el archivo oprimiendo «:wr».  Para salir de Vim solo teclea «:q»

-Ahora es necesario descargar la firma o llave gpg para validar el repositorio e instalarlo.  Solo es necesario ejecutar las siguientes dos lineas de comando en donde la primera descarga la llave y en la siguiente la instala.

wget http://www.webmin.com/jcameron-key.asc
rpm --import jcameron-key.asc

-Con lo anterior ya es posible utilizar yum e instalar webmin tecleando lo siguiente:

yum install webmin

-Empezara el proceso de instalación y se resolverán todas las dependencias automaticamente.

-Para ingresar a webmin solo es necesario desde un navegador ingresar la siguiente direccion:

https://ip-del-servidor:10000

En donde «ip-del-servidor» es la ip del equipo en donde instalamos webmin y «10000» es el puerto en donde se ejecuta. El usuario y contraseña a utilizar es la de root. Una vez dentro de webmin puedes personalizar su acceso como cambiando el puerto por default, cambiar de usuario, reconfigurar iptables y utilizar SSL (https) al ingresar entre otras cosas.

En caso de que no aparezca la pagina, puede ser debido a que se tiene activado una configuración de firewall por lo que puedes probar borrando temporalmente las reglas con la siguiente linea:

iptables -F

Sobre el punto anterior, si el motivo en que no podia ingresar era por el firewall, asegúrate de configurar el firewall para que no tengas que hacer borrar o hacer flush a las reglas de iptables.

Para mayor información al respecto. puede ingresar a la siguiente liga:

http://www.webmin.com/rpm.html

 

Espero de que esta guía le sea util.

 

 

 

 

Devolver llamada en Elastix 2.5.0 utilizando Call Completion Supplementary Service (CCSS)

A veces nos encontramos con la situación de que debemos programar una función de que al marcar a una extensión y si esta este ocupada, poder marcar un codigo para que nos devuelva la llamada si la extensión colgó, como en algunos conmutadores análogos.

Para lograr esto, utilizamos las funcionalidades de Call Completion Supplementary Service (CCSS) que vienen apartir de asterisk 1.8 y que ya lo soporta Elastix 2.5.0.

La función que programaremos  monitoreará el status de la extensión que estamos marcando y cuando esta cuelgue nos regresara la llamada.  Su funcionamiento sera el siguiente;  cuando se marque a un numero que este ocupado, este inmediatamente se colgara por lo que es necesario que solo permita una llamada a la vez y en ese momento tecleamos el numero de la función que en este ejemplo es 30.  Al momento de teclear, nos sonara un «beep» que seria la señal de que se ejecuto la función y podemos colgar.  Al momento que la otra extensión cuelgue, no sonara nuestra extensión y al levantar el auricular se generara una llamada a la extensión que estábamos monitoreando.  En caso de cancelar la devolución de la llamada, marcaríamos 31.

-Para empezar debemos configurar la función en el archivo «extensions_custom.conf» por lo que entramos a «PBX>Herramientas>Editor Archivos Asterisk» y buscamos el archivo como lo muestra la siguiente imagen:

callback1

-Nos deberá aparecer como muestra la siguiente imagen a lo que le damos doble click al archivo:

callback2

 

-Dentro del archivo nos posicionamos al final del mismo y agregamos el siguiente código:

[app-callback]
exten => *30,1,CallCompletionRequest()
exten => *30,n,playback(beep)
exten => *30,n,Hangup()
exten => *31,1,CallCompletionCancel()
exten => *31,n,Hangup()

Nos deberá quedar como se muestra en la imagen:

callback4

-Ahora debemos incluir la función, por lo que nos posicionamos al inicio del mismo archivo y agregamos el siguiente código:

include => app-callback

Este código quedaría agregado como lo indica la imagen:

callback3

-Ahora debemos entrar a configurar el archivo «sip_custom_post.conf para agregar opciones extras a cada extensión que vayamos a configurar.  Las lineas que se agregarían por ejemplo a la extensión 201 seria:

[201](+)
cc_agent_policy=generic
cc_monitor_policy=generic
call-limit=1

En este punto es necesario aclarar que la linea call-limit=1 nos impedirá que se puedan hacer transferencias de llamadas ya que estamos indicando que solo se puede tener una llamada activa y para transferir se ocupa poner la llamada en espera para poder hacer la llamada de transferencia. Para solucionar esto, solo es necesario quitar la linea de las extensiones que ocupen las funciones de transferencia.  Esto también tendrá como consecuencia que la llamada entrante no se ira a colgado como se necesita para que se pueda ejecutar el código sino que estará sonando en espera que la extensión conteste o la cuelguen.  Es necesario que se le indique esto al operario de la extensión.

Tomando en cuenta la indicación anterior y teniendo varias extensiones configuradas, nos quedaría algo similar como la siguiente imagen:

callback5

-Por ultimo, es necesario que este habilitada la función llamada en espera en las opciones de las extensiones, como se indica en la imagen.

callback6

 

Con esto, solo queda aplicar los cambios ya sea reiniciando o aplicando en consola «amportal stop y «amportal start» y verificar que la función opere correctamente.

Para monitorear el funcionamiento o ver fallas puede entrar al CLI de Asterisk y teclear el siguiente comando:

cc report status

Para informacion extra sobre Call Completion Supplementary Service puede entrar a la siguiente liga:

https://wiki.asterisk.org/wiki/pages/viewpage.action?pageId=5243096

Espero que esta informacion le sea util.

Configurar llamadas de conmutador remoto a grupos de timbrado en Elastix 2.5.0

Si has configurado grupos de timbrado en Elastix 2.5.0,  puede que te hayas topado de que cuando marcas al grupo de timbrado desde un conmutador remoto enlazado por una troncal IAX , la llamada no se completa.

Para solucionar este problemas es necesario realizar un paso extra que en las versiones anteriores de Elastix 2.5.0 no era necesario y consiste en configurar una ruta entrante. Esto tiene logica ya que la llamada entrante viene desde una troncal y no desde una extensión local por lo que se debe manejar como una llamada externa.

Los pasos a seguir para realizar la configuración serian los siguientes:

-Crear una ruta Entrante ingresando «Inbound Routes» y dando click en «Add Incoming Route»

-En la opción DID Number, ponemos el numero del grupo de timbrado.

route_ringgroup1

-Al final de la pagina, configuramos el destino en «Set Destination» seleccionando «Ring Group» y despues el grupo de timbrado.

route_ringgroup2

-Aplicamos los cambios con «Submit» y con esto ya nos debe funcionar

Espero que esta guía les sea útil.

Configurar Apache en Elastix para que pida usuario y contraseña al acceder al portal web

A continuación se mostrara como configurar Apache en Elastix para que solicite usuario y contraseña cada vez que alguien intente ingresar al portal web.

Esto es conveniente en un conmutador Elastix ya que se añade una capa extra de seguridad y evita que pueda ser escaneado o indexado y que se pueda aprovechar alguna vulnerabilidad que tenga el código html.

-Para empezar con la configuración, ingresamos a la consola del servidor y tecleamos lo siguiente:

vim /etc/pam.d/su

-Una vez que entremos en el archivo, descomentamos la linea «auth    required    pam_wheel.so use_uid» y grabamos al salir como aparece en la imagen:

passwd_apache1
-Creamos el usuario que se utilizara para validar el ingreso a la pagina web.  Para este paso creamos un usuario Wheel y su nombre seria «admin».  En consola tecleamos lo siguiente:

adduser -G wheel -m -s /bin/bash admin

-Configuramos la contraseña:

passwd admin

-Ejecutamos la siguiente linea de comando para editar el archivo:

vim /etc/httpd/conf.d/elastix.conf

-Localizamos la linea » RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}» y agregamos el siguiente codigo:

AuthType Basic
AuthName "Acceso restringido"
AuthUserFile /usr/local/apache/wwwpasswd
Require user elastix admin

-Nos deberá quedar como se ve en la siguiente imagen, y grabamos:

passwd_apache2

 

-Añadimos el usuario a autenticación al apache y configuramos su contraseña ejecutando las siguientes lineas:

mkdir /usr/local/apache

htpasswd -c /usr/local/apache/wwwpasswd admin

-Por ultimo, reiniciamos el servicio de Apache para que se apliquen los cambios:

service httpd restart

-Con esto, ya podemos probar ingresando al porta de Elastix y que nos pida contraseña solo al ingresar al sitio.

passwd_apache3

Espero que esta guía les sea útil.

Hack thankuohoh – Alto volumen de llamadas de salida no deseadas.

El Hack thankuohoh genera un alto volumen de llamadas de salida en un conmutador Elastix el cual puede ocasionar que llegue un alto costo en la facturación de la linea.

El hack se aprovecha de una vulnerabilidad en el paquete A2billing de Elastix.  Al momento de revisar los reportes de llamadas aparecerá algo similar como la imagen:

thankuohoh

 

Este hack se puede detectar al revisar el archivo /etc/asterisk/extensions_custom.conf y encontrar las siguientes lineas:

[thanku-outcall]; thankuohoh
exten => _.,1,Macro(user-callerid,LIMIT,EXTERNAL,); thankuohoh
exten => _.,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}); thankuohoh
exten => _.,n,Set(_NODEST=); thankuohoh
exten => _.,n,Macro(dialout-trunk,2,${EXTEN},,on); thankuohoh
exten => _.,n,Macro(dialout-trunk,3,${EXTEN},,on); thankuohoh
exten => _.,n,Macro(dialout-trunk,4,${EXTEN},,on); thankuohoh
exten => _.,n,Macro(dialout-trunk,5,${EXTEN},,on); thankuohoh
exten => _.,n,Macro(dialout-trunk,6,${EXTEN},,on); thankuohoh
exten => _.,n,Macro(dialout-trunk,7,${EXTEN},,on); thankuohoh
exten => _.,n,Macro(dialout-trunk,8,${EXTEN},,on); thankuohoh
exten => _.,n,Macro(dialout-trunk,9,${EXTEN},,on); thankuohoh
exten => _.,n,Macro(outisbusy,); thankuohoh

Recomendaciones:

-Eliminar las lineas del archivo /etc/asterisk/extensions_custom.conf.  Lo puedes hacer por sesión de consola o desde la interfaz web de elastix desde el «Editor de archivos Asterisk»

 thankuohoh2

 

-Una vez que se elimino el código malicioso, se recomienda aplicar una capa de seguridad en el acceso web del portal como se indica en la siguiente liga:

Configurar Apache en Elastix para que pida usuario y contraseña al acceder al portal web

Para mayor información, puede ingresar al siguiente link:

http://bugs.elastix.org/view.php?id=2169

Espero que esta guía les sea útil.

Como quitar la doble solicitud de contraseña del pinset en Elastix 2.5.0

En la versión 2.5.0 de Elastix tiene el inconveniente de que si se utiliza la funcion «Pinset» para que pida la contraseña al hacer una llamada, esta la solicita dos veces.

Para solucionar temporalmente este inconveniente es necesario editar el archivo «extensions_additional.conf» y comentar 4 lineas que estan duplicadas.  A continuacion se muestra los pasos para realizarlo.

Lo primero que hay que hacer es entrar portal web de Elastix, entrar a PBX >Tools >Asterisk File Editor en donde nos mostrara los archivos de configuracion de Elastix.

Oprimimos el boton «Show Filter» como muestra la imagen…

pinset1

…y tecleamos el archivo a buscar que es «extensions_additional.conf» y damos click al archivo.

pinset2

Nos debe aparecer el contenido del archivo como lo muestra la imagen.

pinset3

Ahora ocupamos situarnos en la rutina «macro-pinset» por lo que oprimimos «Ctrl-F» para que nos salga la herramienta de buscar del navegador y tecleamos «»macro-pinset» para que nos situe en donde esta la rutina.

pinset4

Ahora procedemos a comentar con punto y coma (;) las 4 lineas que están repetidas que son las que están señaladas en la siguiente imagen:

pinset5

Por ultimo, le damos «Save» y «Reload Asterisk» y debera pedir una sola vez la contraseña.

El problema de esta solución es que como se esta editando un archivo additional, este se sobre escribirá y perderá los cambios manuales que hayan hecho cada vez que hagan un cambio en cualquier opción de la pagina web de Elastix, por lo que cada vez que modifiquen algo desde la pagina web, deberán editar al final el archivo.

Espero que esta guía les sea útil.

Escrito por Miguel Angel Muzquiz Lizarraga