1. Insertar un usuario SIP
Creamos la tabla con el script:
INSERT INTO sip_conf (name, context, host, language, nat, secret, type, username)
VALUES ('2121010','babbage','dynamic','en','yes','babbage','friend','2121010');
Luego para probar esta configuracion entramos a la consola de asterisk:
*CLI> realtime load sippeers name 2121010
y debe mostrar:
Column Name Column Value
-------------------- --------------------
id 1
name 2121010
canreinvite yes
context babbage
host dynamic
language en
nat yes
secret babbage
type friend
username 2121010
disallow all
allow g729
allow ilbc
allow gsm
allow ulaw
allow alaw
regseconds 0
cancallforward yes
2. Insertar un dialplan basico de prueba
Ahora se crea un dialplan muy básico, y consiste en que el usuario marca 2121001 y la contestadora le responde con hello-world. Para ello cargamos las siguientes sentencias sql.
INSERT INTO extensions_conf VALUES (1, 'babbage_context', '2121001', 1, 'Answer', '');
INSERT INTO extensions_conf VALUES (2, 'babbage_context', '2121001', 2, 'Playback', 'hello-world');
INSERT INTO extensions_conf VALUES (3, 'babbage_context', '2121001', 3, 'Hangup');
y de esta manera se crea el dialplan que se quería.
Ahora lo que falta y que es MUY IMPORTANTE, y es decirle al archivo extensions.conf que la lectura no la haga directamente en ese archivo sino que desde la base de datos especificamente de la tabla extensions_conf
Editar archivo: extensions.conf
[babbage]
switch => Realtime/babbage_context@extensions
donde:
babbage es el context que fue definido para el usuario creado, babbage_context es el contexto creado en nuestra tabla extensions_conf
extensions es la familia creada para acceder a la base de datos, via ODBC (ver extconfig.conf)
Luego se reinicia asterisk, tanto el sistema como el extensions
*CLI> reload
*CLI> extensions reload
Y listo, ahora se deberá ir al teléfono y marcar el 2121010. Debemos escuchar hello world, despues de 2 segundos de haber marcado.
* IMPORTANTE, de haber algun problema y no podemos escuchar el hello-world, creamos un dialplan en extensions.conf (de forma estática) y lo probamos para descartar otro tipo de problemas.
[babbage]
exten => 2121001,1,Answer()
exten => 2121001,2,Playback(hello-world)
exten => 2121001,3,Hangup()
Prueba de Voicemail en ODBC-ASTERISK
Debemos crear un mailbox y asociarlo a un usuario determinado. Para ello debes usar el siguiente codigo sql.
INSERT INTO voicemail_users VALUES ('babbage-voicemail', 2121012,1111,'Patricio Valle',' pvalle.asterisk@gmail.com','pvalle.asterisk@gmail.com');
Una vez hecho esto, editamos el archivo /etc/asterisk/voicemail.conf :
[general]
searchcontexts=yes
Ya se esta en condiciones de agregar el mailbox tanto a un usuario, y para hacer la prueba agregar un menu de lectura de voicemails en el dialplan.
Modificar en base de datos, usuario con nombre: 2121011, se agrega en el campo mailbox: 2121011@babbage-voicemail
y luego modificamos en la base de datos, el dialplan (tabla extensions_conf), agregando un nuevo registro:
INSERT INTO extensions_conf VALUES (4, 'babbage_context', '2121002', 1, 'VoiceMailMain', 's2121011@babbage-voicemail');
Listo, ahora en el teléfono de prueba, se marca el numero 2112002, y si todo esta bien la operadora dictara un menu para revisar nuestro correo.
Ahora que ya está todo funcionando se puede agregar el código PHP, para la administración vía WEB (adminv5.tar.gz).