Hagamos que México crezca..

Prefiere el consumo de lo Hecho en México

Prefiere el consumo de lo Hecho en México
BúsquedaHagamos que México crezca..
![]() Prefiere el consumo de lo Hecho en México Posts Recientes
Conversación |
Agregando múltiples extensiones y cuentas SIP a FreePBX..Hace unos días me pidieron un conmutador de voz sobre IP con más de 150 extensiones VoIP, por lo que me puse a ver como insertar 200 extensiones configuradas en el conmutador mediante un script de forma automática siguiendo un patrón recursivo ya que no había prácticamente cambios en las extensiones más que el número de la extensión, password y correo de voz, de tal forma que si hacía esto a mano me iba a llevar algunos minutos con posibles errores de captura humanos.
Lo primero que se me ocurrió es generar un script que agregara las cuentas SIP a /etc/asterisk/sip_custom.conf y las extensiones en /etc/asterisk/extensions_custom.conf, el detalle que habría es que FreePBX no podría manejarlas desde el módulo de extensions, ni tampoco flash panel podría operarlas, por lo que se me ocurrió insertar la información de las cuentas en la base de datos de freepbx y luego dejar que freepbx leyera la información de la base de datos para que generara los archivos correspondientes. Básicamente hay 3 tablas de la base de datos de FreePBX que se relacionan con las cuentas SIP, extensiones y correos de voz. La tabla users se refiere a la configuración de la extensión del usuario tal como grabación de llamadas, tiempo de espera para mandar a correo de voz cuándo le marquen, nombre SIP, correo de voz, etc.. La tabla SIP tiene la información detallada de la cuenta SIP configurada, tal como cuenta, contraseña, codec permitidos y no permitidos, contexto, dtmfmode, etc.. La tabla devices se refiere al tipo de dispotivo si es SIP, IAX, etc. Entonces por ejemplo si quisiera agregar manualmente la extensión 109 tendría que ejecutar las siguientes consultas sql.
INSERT INTO users VALUES(109,, 'SIP 109','default', '45', , 'out=Adhoc|in=Adhoc', , 'anonimo', DEFAULT); INSERT INTO sip VALUES("109", "dtmfmode", "rfc2833", "0" ); INSERT INTO sip VALUES("109", "canreinvite", "no", "0" ); INSERT INTO sip VALUES("109", "dial", "SIP/109", "0" ); INSERT INTO sip VALUES("109", "secret", "109", "0" ); INSERT INTO sip VALUES("109", "type", "friend ", "0" ); INSERT INTO sip VALUES("109", "host", "dynamic", "0" ); INSERT INTO sip VALUES("109", "nat", "yes", "0" ); INSERT INTO sip VALUES("109", "port", "5060", "0" ); INSERT INTO sip VALUES("109", "qualify", "yes", "0" ); INSERT INTO sip VALUES("109", "callgroup ", "1", "0" ); INSERT INTO sip VALUES("109", "pickupgroup", "1", "0" ); INSERT INTO sip VALUES("109", "disallow", "all", "0" ); INSERT INTO sip VALUES("109", "allow", "g711u&g729&gsm", "0" ); INSERT INTO sip VALUES("109", "context", "from-internal ", "0" ); INSERT INTO sip VALUES("109", "accountcode", "109", "0" ); INSERT INTO sip VALUES("109", "mailbox", "109@default", "0" ); INSERT INTO sip VALUES("109", "deny", "0.0.0.0/0.0.0.0", "0" ); INSERT INTO sip VALUES("109", "permit ", "0.0.0.0/0.0.0.0", "0" ); INSERT INTO sip VALUES("109", "account", "109", "0" ); INSERT INTO sip VALUES("109", "callerid", "device <109> ", "0" ); INSERT INTO sip VALUES("109", "record_in ", "Adhoc ", "0" ); INSERT INTO sip VALUES("109", "record_out", "Adhoc", "0"); INSERT INTO devices VALUES('109', 'sip', 'SIP/109', 'fixed', '109', 'SIP 109', ); Entonces en el script solo se requirió generar consultas similares a las anteriores al vuelo, indicándole solo de que rango a que rango se configurarían las extensiones. Obviamente para algo simple como agregar n extensiones no es complicado, pero cuándo se requiere una configuración específica por extensión también podría usarse un script pero sería algo más complejo. Lo interesante en la tabla sip son los keywords, estos no deben tener espacios en blanco que si no al momento de decirle a freepbx que genere los archivos de configuración de asterisk, tomaría solo los keywords correctos, pero al momento de hacer pruebas no funcionarían las extensiones, por eso es importante que los keywords de la tabla sip no tengan espacios en blanco al igual que los valores dónde no lo requieran.
Fuentes XML de comentario: RSS | Atom
|
Nube de EtiquetasEventosEncuestaComentarios Recientes
|
Dejar un comentario