Algunas veces como profesionales llegamos a un conmutador que ya tiene alguna configuración cargada y se nos pide que hagamos modificaciones. Imaginen que de pronto llegan a un callcenter de 100 posiciones que hace uso de Elastix/FreePBX y les dicen: «Queremos que todas las llamadas de todos los usuarios se graben», pero analizando las extensiones se dan cuenta que todas (o ninguna) tiene la grabación habilitada, y que la mayoría se encuentran en modo de grabación «On Demand», cuando ustedes lo que quieres es que sea «Always»
¿Cómo lo hacen? Espero que no piensen en ir extensión por extensión haciendo el cambio…
Para solucionar esto rápidamente, necesitamos hacer 2 cosas:
- Modificar la tabla de MySQL asterisk.users
- Modificar el Asterisk DB para que coincida con los valores que necesitamos
Y ambas las logramos fácilmente con el siguiente código (desde el Linux CLI):
[codesyntax lang=»bash» tab_width=»3″]
# Primero nos hacemos cargo del AstDB. Este ciclo se encarga de cambiar # a todos los usuarios que ya existen en el PBX for i in `asterisk -rx "database show"|grep recording|cut -d/ -f3` do asterisk -rx "database put AMPUSER $i/recording out=Always|in=Always" done # Y ahora actualizamos MySQL echo "UPDATE asterisk.users SET recording='out=Always|in=Always'" | mysql -peLaStIx.2oo7
[/codesyntax]
Este, junto con cualquier otro tip que les dé no debe ser tomado como una «receta» de cocina, ya que si no hacemos las cosas bien, podemos echar a perder algo. Asegúrate que entiendes el ciclo que se propone arriba así como el query que te planteo. Si le piensas bien, esto te puede servir para modificar de manera grupal cualquier cosa que quieras dentro de Elastix/FreePBX, sin que tengas que ir extensión por extensión. Solo falta encontrar la tabla y el valor adecuado y lo demás es muy sencillo.
¡Suerte!