Como exportar el AstDB (Asterisk Database)

11 Ene

En algunas ocasiones nos hemos topado con clientes cuyo sistema empieza a hacer cosas… raras. Resulta que el call forward deja de funcionar correctamente, o que las llamadas se ciclan después de entrar al IVR y apuntar hacia alguna dirección. Esto lo hemos visto en casos con FreePBX/Elastix donde el equipo por alguna error (a veces falla de hardware) se traba y es necesario reiniciarlo físicamente, haciendo que archivos como el astdb se corrompan y queden incompletos. Esto ocasione que nuevos valores no puedan ser guardados en el astdb, o que valores viejos no puedan ser modificados.

Un síntoma típico de estos problemas es cambiar algún valor desde el GUI que ocasione que el AstDB cambie. Ejemplo: un nuevo speeddial del addressbook o activar/desactivar el call-waiting de alguna extensión. Si nos hemos preguntado: ¿por qué Asterisk no está guardando los valores que le doy? Esta es una probabilidad…

La solución más radical es la siguiente:

  1. Detener Asterisk
  2. Eliminar el archivo /var/lib/asterisk/astdb
  3. Reiniciar Asterisk

Con esto, Asterisk creará una nueva astdb desde cero, pero habremos perdido cualquier valor que ya existiera allí. Cualquier campo personalizado se perdió tras este paso.

¿Cómo podemos exportar los valores del astdb, a manera que podamos restaurarla en una nueva recién creada que no tiene estos errores?

Una respuesta a este problema fue crear un script que se conecte por el AMI y haga un dump en código bash que después se pueda usar para aplicarlo en cualquier otro momento. Este dump seria una serie de comandos que harían una conexión a Asterisk indicándole recrear los valores. El código es el siguiente:

[codesyntax lang=»php» title=»/var/lib/asterisk/agi-bin/astdb.php»]

#!/usr/bin/php -q
<?php
include «phpagi-asmanager.php»;

$user = ‘admin’;
$pass = ‘elastix456’;

$agi = new AGI_AsteriskManager();
$agi->connect(‘127.0.0.1’,$user,$pass);

$r = $agi->database_show();
$x = array();
echo «#!/bin/bashn»;
foreach ($r as $k => $v) {
echo «asterisk -rx ‘database put «.substr($k,1,strpos($k,’/’,2)-1) . ‘ ‘ .
substr($k,strpos($k,’/’,2)+1) . ‘ ‘.
«»$v»‘».
«n»;
}

?>

Hay que notar que en el código estoy incluyendo al archivo phpagi-asmanager.php el cual es un componente de la clase PHPAGI que existe en todas las distribuciones de FreePBX (y eso incluye a Elastix/Trixbox). Yo recomiendo colocar este código en un archivo como /var/lib/asterisk/agi-bin/astdb.php, ya que esa carpeta ya contiene la librería arriba mencionada.

Invocarlo es muy sencillo. Lo hacemos ejecutale y lo corremos:»

[codesyntax lang=»bash»]

chmod 755 /var/lib/asterisk/agi-bin/astdb.php
/var/lib/asterisk/agi-bin/astdb.php > /tmp/astdb.sh

[/codesyntax]

Tras ejectutar el comando anterior, tendremos un archivo astdb.sh dentro de la carpeta /tmp. Este archivo tendrá un contenido parecido al que sigue:

[codesyntax lang=»bash» title=»/tmp/astdb.sh»]

#!/bin/bash
asterisk -rx 'database put AMPUSER 100/cidname "Juan Perez"'
asterisk -rx 'database put AMPUSER 100/cidnum "100"'
asterisk -rx 'database put AMPUSER 100/device "100"'
asterisk -rx 'database put AMPUSER 100/followme/changecid "default"'
asterisk -rx 'database put AMPUSER 100/followme/ddial "DIRECT"'
asterisk -rx 'database put AMPUSER 100/followme/fixedcid ""'
asterisk -rx 'database put AMPUSER 100/followme/grpconf "DISABLED"'
asterisk -rx 'database put AMPUSER 100/followme/grplist "815#"'
asterisk -rx 'database put AMPUSER 100/followme/grptime "20"'
asterisk -rx 'database put AMPUSER 100/followme/prering "15"'
asterisk -rx 'database put AMPUSER 100/language "es"'

[/codesyntax]

Estos son una serie de comandos que podemos ejecutar para hacer que el nuevo Asterisk importe el contenido del AstDB anterior para tener acceso a la misma información que el anterior. ¿Por que no simplemente respaldamos el archivo /var/lib/asterisk/astdb? Porque al reemplazar el nuevo archivo sobreescribiríamos todo, y perderiamos cualquier personalización que hubiera en el viejo sistema. Además, si respaldamos un archivo dañado, lo único que conseguiríamos seria copiar el daño de nuevo.

Espero esto les sirva. A nosotros nos resolvió el problema de un cliente que no le permitía guardar nueva información (sus speeddials no podían ser editados ni podiamos agregar nuevos).

¡Suerte!

Nueva imagen para nuestro sitio

5 Ene

Para quien entró al sitio desde temprano habrá notado algo diferente, y es que por fin actualizamos nuestra página principal para que coincidiera con nuestros foros de discusión.

Durante los siguientes días estaremos haciendo algunos ajustes de apariencia, pero el contenido sigue siendo el mismo. Esperamos que a todos nuestros visitantes les agrade el cambio para tener ahora una imagen más personalizada.

¡Suerte!

¡Feliz año a todos! Tenemos nuevos cursos para 2012

3 Ene

El 2011 fue un año muy bueno: vimos la salida oficial de Asterisk 10, productos como Elastix/PiaF siguen madurando y nosotros tuvimos la oportunidad de capacitar a más de 80 personas en el ramo de Asterisk en el año que terminó. Queremos llegar a más profesionales del medio y por lo tanto, hacemos de conocimiento público las nuevas fechas que tenemos para nuestros cursos (en las 3 principales ciudades de México):

  • México, DF. 25, 26, 27 y 28 de enero 2012
  • Monterrey, Nuevo León. 15, 16 17 y 18 de febrero 2012
  • Guadalajara, Jalisco. 22, 23, 24 y 25 de febrero 2012

El temario para las 3 ciudades es exactamente el mismo y cubrimos desde una intruducción a Linux (para el que nunca ha usado este sistema operativo) hasta características avanzadas de Asterisk como lo son el uso de AGIs y el AMI.

Estamos ofreciendo un descuento para todos aquellos que reserven su lugar antes del 6/enero. Si desean más información, pueden visitar la página de nuestros cursos o bien ponerse en contacto con nosotros.

¡Feliz año a todos! Esperamos poder conocerlos a todos en persona.

¡Suerte!

T1s ISDN PRI con el medio arriba pero caídos en servicios

2 Dic

Vicidial con 150 posiciones en San Juan, PR


Nos por la mañana nos desmadrugó un cliente que tenemos en Puerto Rico (en México estamos 2 atrasados con respecto de ellos), indicándonos que los agentes no podian sacar llamadas al exterior en ocasiones. Algunas veces podían marcando manualmente, otras no.

Como antecedente, el cliente tiene 8 T1s en ISDN PRI, dándole un total de 23*8=184 canales totales. De ese total de canales, tiene 10 reservados en los primeros 2 T1s para solo inbound, y lo demás es outbound libre, de manera que los agentes toman cualquiera de los canales que estén disponibles para marcar al exterior.

Los T1s de salida estaban agrupados en uno solo, el grupo 0 (cero), con lo cual yo mandaba la llamada así:

[codesyntax lang=»php»]

exten => _787ZXXXXXX,n,Dial(DAHDI/r0/${EXTEN})

[/codesyntax]

De esta manera, no tengo que preocuparme por ver por cual canal mandar la llamada, sino que en round robin se irá rotando por el total de canales disponibles para outbound. En teoría todo está bien, pero…

Al momento de hacer pruebas, efectivamente, algunos agentes en ocasiones no podian sacarlas. El sistema no les daba error, sino que se quedaba en vacio, sin que nada apareciera o se escuchara. Si colgábamos y volviamos a marcar el mismo número, el resultado era diferente y la llamada ya pasaba.

¿Qué podía estar pasando?

Dedicimos probar uno por uno los T1s. Sin embargo, dado que sus canales estaban todos agrupados en uno solo, no nos era posible enviar llamadas que se distinguieran por cada uno de ellos. La solución fue modificar el chan_dahdi.conf para que se viera así:

[codesyntax lang=»bash»]

;;;;;;;;;;;;;;;;;;;;;;;;;
;; Llamadas de outbound
;;;;;;;;;;;;;;;;;;;;;;;;;
switchtype=national
context=trunkinbound
group=0,21
echocancel=yes
faxdetect=incoming
signalling=pri_cpe
channel =>13-23
group=0,22
channel =>38-47
group=0,23
channel =>49-71
group=0,24
channel =>73-95
group=0,25
channel => 97-119
group=0,28
channel => 169-191

;;;;;;;;;;;;;;;;;;;;;;;;;
;; Llamadas de outbound - Marcacion especial
;;;;;;;;;;;;;;;;;;;;;;;;;
switchtype=national
context=trunkinbound
group=1
echocancel=yes
faxdetect=incoming
signalling=pri_cpe
group = 1,26
channel =>121-143
group = 1,27
channel => 145-167

;;;;;;;;;;;;;;;;;;;;;;;;;
;; Llamadas de inbound
;;;;;;;;;;;;;;;;;;;;;;;;;
switchtype=national
context=trunkinbound
group=9
echocancel=yes
faxdetect=incoming
signalling=pri_cpe
channel =>1-12,25-37

[/codesyntax]

Observando el primer bloque de llamadas de outbound, veremos que los canales ahora siguen estando agrupados en el 0, pero también lo separé y cree los grupos 21-27.  De esta manera, yo puedo escoger cuando marcar por cada uno de esos grupos y saber si el T1 está mal (recordemos que en señalización están perfectos porque no tienen alarmas, pero administrativamente la telefónica no le está dando servicio por alguno de ellos). La parte de las llamadas la resolví con esto dentro del extensions.conf:

[codesyntax lang=»bash»]

exten => _8Z787ZXXXXXX,1,Dial(DAHDI/r2${EXTEN:1:1}/${EXTEN:2});

[/codesyntax]

La idea es que marcando por ejemplo, 81 + 10 digitos estamos obligando a que la llamada salga por el T1 1. Si marcáramos con 82 saldría por el 2 y así sucesivamente. Esto le da la opción al administrador de hacer un debug y determinar si las llamadas por allí son efectivamente válidas.

Tras unos intentos de llamada fue posible notar que los T1s 3 y 5 no tenían salida a pesar de no estar alarmados. Como el formato de round robin se brinca aquellos canales que están alarmados, la solución sencilla fue desconectar físicamente esos T1s y reportarlos con la telefónica. Cundo le restauren el servicio, el administrador podrá conectarlos nuevamente y probarlos con 83 u 85 para comprobar que esos si sirven.

En este momento, el callcenter está operando correctamente y los agentes hacen llamadas de manera normal. Ahora solo resta a la telefónica resolver el problema para que todo esté al 100%.

¡Suerte!

Nuestro último curso Asterisk del año: 7 al 10 de diciembre

30 Nov

Estamos en la recta final del año, un año que se fue muy rápidamente de nuestras manos pero afortunadamente, con muchas experiencias y mucho crecimiento en todo lo relacionado con el mundo del open source, en especial, Asterisk.

En este año tuvimos la oportunidad (hasta el momento) de capacitar a más de 80 profesionales del área que desearon iniciarse en el mundo de Asterisk a lo largo de 12 sesiones de curso tanto privadas como abiertas y, aunque ya estamos al final del recorrido, aún tenemos espacio para una última fecha de curso intensivo que tendremos en el Distrito Federal, durante los días del 7 al 10 de diciembre en nuestro horario habitual de 9 a 19 horas, con 32 horas totales de duración.

Si alguien requiere más información, lo invitamos a que exponga sus dudas a través de nuestro formulario de contacto, con la que inmediatamente le haremos llegar la información más detallada de nuestros cursos. Aún tenemos lugares para esta última fecha, y cabe resaltar que será la última en la que aún mantendremos nuestros precios del 2009.

Espero tener una vez más la oportunidad de interactuar con gente tan interesada en este mundo del VoIP como nosotros. Será un placer poderlos tener acompañándonos en una sesión más.

Saludos,

Día de campo con Elastix: armando la canasta de comunicaciones completa

4 Nov

Los equipos en sus cajas, antes que todo comenzara

Con motivos del Elastix World que se está celebrando en estos momentos en la ciudad de México, quisimos armar un proyecto mixto que habíamos comentado en la oficina desde hace tiempo. Este proyecto consistiría en crear una solución demostrativa llave en mano de un sistema de comunicaciones basado totalmente en soluciones abiertas. Lo que buscábamos era lo siguiente:

  • Crear un sistema que fuera extremadamente portátil, de manera que pudiéramos demostrarlo ante los potenciales clientes para sistemas más robustos
  • El consumo total energético (PBX + switch + teléfonos) debe ser menor de 100W
  • Crear una prueba de concepto de VoIP, que demostrara la convergencia de soluciones con teléfonos análogos, teléfonos IP, teléfonos inalámbricos e interacción con líneas analógicas de la PSTN
  • Demostrar que es posible montar una solución de PBX completo (lineas, tarjetas, PC, switch) por menos de $1,000 USD
El proyecto comenzó con un viaje a nuestro supermercado local para conseguir un contenedor de plástico que nos permitiera la portabilidad así como la posibilidad de contener todo nuestro equipo. Encontramos uno que se adaptaba completamente a lo que buscábamos, y nos costó apenas $5 USD

Nuestra caja. Originalmente era un contenedor para guardar archivos

Para cuando decidimos hacer este proyecto, ya teniamos definido el hardware que queríamos utilizar. Para el PBX ocuparíamos una Acer Veriton VN281G-SD425L, la cual tiene 1 GB de RAM, Atom @ 1.8 Ghz, DD 250GB y Gigabit ethernet, además de ser la PC más pequeña que conocemos en el mercado actualmente. Como este equipo es ultra pequeño, el uso de tarjetas PCI no era una opción, así que le conectamos una Sangoma U100 para dar servicio a 2 puertos FXO:

El µPBX junto con su tarjeta U100

Al Veriton le instalamos Elastix 2.2 RC3 y funcionó de maravilla (tuvimos que usar un DVD externo ya que la unidad en si no trae almacenamiento óptico), así que procedimos a dejarla configurada con 30 extensiones y 2 lineas FXO, así como todos los detalles necesarios del plan de llamadas.
El siguiente paso fue empezar a organizar los componentes para darles una óptima colocación, procurando mantener la instalación lo más limpia y fácil de conectar posible. Decidimos utilizar velcro autoadherible, así no tendríamos que desgastar ninguno de los equipos de manera permanente en caso de que el proyecto no resultara, al tiempo que nos permitir re-organizar los diferentes dispositivos en caso de que lo necesitáramos.
Armar el equipo no fue demasiado complicado dadas las dimensiones de la caja (29 x 30 x 28 cms), pero nos emocionamos tanto armándola que no tomamos fotos durante el proceso. Aquí tenemos el resultado final:

Caja final y armada

Aquí el comparativo con un objeto de uso cotidiano:

 

El último paso fue permitir el paso de los cables de una manera sencilla hacia el exterior (energía, red y PSTN). Para ello hicimos un agujero en uno de los extremos de la caja utilizando un cautín convencional para hacer el perforado del plástico. Estos fueron los resultados:
Y ya por último tenemos la caja con los componentes fijos, los cables que salen libremente por donde deben y los teléfonos conectados (2 IPs, 2 inalámbricos, 1 analógico y 1 cable para la PSTN)

Vista aérea con la caja abierta

Vista frontal conectado

En resumen, nuestra maqueta es capaz de soportar lo siguiente:
  • 4 teléfonos IP con PoE
  • Hasta 8 teléfonos inalámbricos
  • 2 teléfonos análogos
  • 2 lineas análogas (FXO)
  • 30+ softphones
  • 15+ llamadas simultáneas
  • Y es totalmente portable:
Pero… ¿y cuanto cuesta armar una solución así?
  • Acer Veriton: $270 USD
  • Elastix: $0 USD
  • Switch Cisco SDP208: $170 USD
  • Cisco PAP2T:  $69 USD
  • Teléfono Yealink T20P (2): $190 USD
  • Aastra MBU400: $299 USD
  • Sangoma U100: $140 USD
  • Teléfono analógico: $10 USD
  • Barra de contactos, caja y cables: $10 USD
  • Total: $1,158 USD
Algunas notas:
  • Es obvio que nos salimos de nuestro presupuesto de $1,000 USD, pero la MBU400 fue agregado de última hora. Sin ella, el costo del sistema habria sido de $859 USD.
  • En la foto aparece que utilizamos un Cisco SPA504G como segundo teléfono. Esto lo hicimos para demostrar la interactividad entre marcas, pero en los precios optamos por Yealink por ser la opción más económica
En conclusión, este equipo fue fabricado con intenciones de ser un equipo demostrativo multimarca, que pudiéramos transportar fácilmente para demostrar el uso de un IP PBX basado en open source (Elastix) en la mayoría de los escenarios. Logramos mantener un consumo bajo de energía y una excelente prueba de concepto de como podemos meter muchísimas funcionalidades en una pequeña caja, desde teléfonos inalámbricos hasta teléfonos IP, todo alimentado por PoE para reducir el cableado al mínimo. Sabemos que el equipo tiene sus limitantes y que para escenarios más grandes no sería realizable tener algo de este tamaño, pero ese no era el objetivo del proyecto, y terminamos con una maqueta que nos hizo recordar como armábamos los proyectos de electrónica mientras que estábamos en la universidad.
¡Ah! Lo olvidaba: todos los componentes utilizados (excepto la caja de plástico) pueden encontrarlos en nuestra tienda en línea.
¡Suerte!

Inseguridad en Elastix: estadísticas actualizadas (México)

3 Nov

Hace algunos meses publiqué un artículo sobre estadísticas de inseguridad en Elastix y los resultados fueron bastante alarmantes, ya que el estudio claramente indicaba que quienes se habían encargado de instalar los sistemas no habían seguido muchos de los consejos básicos de seguridad tales como no exponer el HTTPS a internet ni mucho menos cambiar las contraseñas default puestas. Por tal motivo, durante este año se reportaron múltiples casos de empresas  a los que les habían cometido algún tipo de fraude telefónico, representando pérdidas de varios cientos o miles de dólares en tan solo una noche.

Hoy, con motivo del inicio del Elastix World precisamente en México, decidí repetir el ejercicio para hacer un comparativo de como han cambiado los números desde aquel entonces. Aquí mis resultados obtenidos:

Los resultados fueron:

– Total de equipos escaneados (en México): 27.8 millones
– Total de equipos con puerto TCP 443 expuesto: 67,887
– Total de equipos con puerto TCP 443 expuesto y que usan Elastix: 336

De los equipos con Elastix expuesto:

– Presentan algún tipo de vulnerabilidad descubierta: 102 (27.87%)
– Tienen acceso mediante UDP 5060 (SIP):  102 (27.87%)
– Tienen alguna contraseña default en FreePBX: 82 (22.40%)
– Siguen usando ‘palosanto’ como contraseña de Elastix: 9 (2.46%)
– No han parchado la vulnerabilidad del ‘asteriskuser’: 120 (32.79%)
– Usan la misma contraseña para FreePBX y para Elastix: 4 (1.09%)
– Utilizan una versión muy vieja de FreePBX (2.5 o menor): 43 (11.75%)

De los equipos con vulnerabilidades que permiten acceso:

– Se detectaron extensiones completas (usuarios, contraseñas y correos electrónicos) de 1,192 personas

Tomen en cuenta que todos estos números son reales, ya que el estudio fue conducido sobre equipos en producción durante la noche del 2/noviembre/2011.

Tras analizar los números, es posible ver que ha habido una notable mejoría. Sin embargo, muchas empresas siguen desprevenidas contra ataques por no seguir simples reglas de seguridad básicas (las cuales se mencionan en el artículo inicial)

Ahora, tras los números, mi opinión personal: ¿Es Elastix una herramienta insegura? No, no lo es. Ha tenido sus vulnerabilidades relacionadas con las herramientas que incorpora (tal como FreePBX), pero todos estos males podrían haberse resuelto si tan solo los «administradores» que las instalaron hubieran tomado 5 minutos extras en asegurar su conmutador después de haber hecho la instalación. De hecho, creo que el principal problema de las herramientas que hacen la labor de instalación más sencilla (tal como Elastix lo es), es que cualquier persona piensa que por meter un CD y dar unos cuantos clicks ya terminó todo, cuando realmente se requiere preparación y conocimiento detrás de cada acción para saber lo que se está haciendo. Desafortunadamente, personas con este perfil son las que le dan una mala reputación a los sistemas VoIP (y a quienes nos encargamos de ofrecerlos), haciendo que se genere desconfianza para muchos por culpa de tan solo algunos.

Una vez más, no me queda recomendarles mas que asegurar sus equipos. Hoy más que nunca, los fraudes telefónicos están a la orden del día.

¡Suerte!

Como agregar contextos personalizados en todos los servidores de un cluster con Vicidial

13 Oct

Hoy me di a la tarea de implementar un plan de llamadas personalizado en un cluster de Vicidial: mi cliente no quería que existiera la posibilidad de que los agentes marcaran manualmente desde su X-Lite, y al tratarse de un entorno de múltiples servidores, a la larga resultaría complicado mantener por separado cada uno de los archivos extensions.conf de los servidores.

¿Cuál es entonces la mejor manera para crear contextos de plan de llamadas que aparezcan en TODOS los servidores instalados en un cluster de Vicidial sin tener el problema de replicar manualmente los cambios?

La respuesta viene con las últimas versiones de Vici (2.2+) ya que bajo Admin -> System settings viene un espacio interesante donde podemos agregar planes de llamadas personalizados: el Custom Dialplan Entry.

Custom Dialplan Entry para Vicidial

Sin embargo, hay un problema, y es que todo lo colocado en esta caja se escribe dentro del contexto [vicidial-auto], por lo que si decidimos ingresar contextos por separado, romperiamos la funcionalidad del plan de llamadas automático de Vici, pero el truco es más sencillo de lo que se cree. Solo tenemos que iniciar y terminar nuestro bloque con las siguientes líneas:

[codesyntax lang=»bash»]

include => vicidial-auto2

; Este es mi contexto personalizado
[agentes]
exten => _ZXXX,1,Dial(SIP/${EXTEN})
; Fin de mi contexto personalizado

[vicidial-auto2]

[/codesyntax]

¿Qué logramos hacer con esto? Hacemos que nuestro cluster genere todos los contextos personalizados que metamos en medio de nuestras lineas, pero además, no rompemos la funcionalidad de Vici porque la línea de include => vicidial-auto2 hace que la inclusión del contexto [vicidial-auto2] sea transparente, de manera que no rompemos ninguna de las funcionalidades del sistema, y evitamos tener que administrar una linea de comandos para que la exportación de la configuración sea más transparente.

Este truco me sacó de un problema que sé que a la larga, se habría perdido el control de la administración tarde o temprano.

¡Suerte!

¡Inauguramos nuestra tienda en línea!

5 Oct

Tienda VoIPEl día de hoy damos por iniciado el proyecto que llevamos algunos meses cocinando: nuestra tienda en línea de equipo VoIP. Obviamente, todo el equipo que ofrecemos es compatible con Asterisk, por lo que no habría ningún problema por instalarlo y echarlo a andar en tu nuevo proyecto o en tu conmutador SIP ya existente.

Al navegar en la tienda encontrarán productos de marcas como Digium, Aastra, Yealink, Cisco, Sangoma y Polycom. Conforme cubramos más territorio en términos de nuevos productos los iremos agregando al catálogo, pero por lo pronto ya pueden conocer los equipos que manejamos y que enviamos a todo México.

Pueden acceder a nuestra tienda en línea usando este link o bien, dando click en la pestaña que aparece en el extremo superior derecho.

 

Recuperar la contraseña de FreePBX

3 Oct

Muchos han pedido un tutorial de como recuperar la contraseña de FreePBX, lo cual es bastante sencillo una vez que tienes la contraseña de root de Linux. Asumiendo esto, el proceso a seguir es bastante fácil, solo hay que cambiar los passwords desde MySQL. Aquí pongo los comandos directos para hacerlo desde el CLI de Linux (estamos asumiendo que el password de root de MySQL es eLaStIx.2oo7)

Si tienes FreePBX 2.5 o inferior:

[codesyntax lang=»bash»]
echo «UPDATE asterisk.ampusers SET password=’minuevopass’ WHERE username = ‘admin'» | mysql -peLaStIx.2oo7 asterisk
[/codesyntax]

Si tienes FreePBX 2.6 o superior

[codesyntax lang=»bash»]

echo "UPDATE asterisk.ampusers SET password_sha1=SHA1('minuevopass') WHERE username = 'admin'" | mysql -peLaStIx.2oo7 asterisk

[/codesyntax]

Con FreePBX 2.6+ la contraseña se guarda como hash SHA1, por lo que no es posible recuperarla. Sin embargo, en versiones anteriores se guardaba en texto plano, por lo que un simple SELECT nos revelaria cual era la contraseña que teniamos.

OJO: obviamente es necesario cambiar «minuevopass» por lo que queramos que sea nuestra nueva contraseña

¡Suerte!