A petición de los alumnos del curso de Telefonía IP con Asterisk , el cual tengo el gusto de dictar en la U. del Callao , aquí les dejo un pequeño manual de como configurar Realtime en Asterisk para la creación de extensiones sip desde una base de datos mysql.
1.-CREACION DE TABLA «sip_buddies»
Esta tabla es la cual va almacenar las extensiones sip, la menara mas sencilla de crearla es atravez de phpmyadmin , aqui les dejo el scrip
http://www.silcom.com.pe/soft/asterisk/sip_buddies.sql
2.- CONFIGURACION DE ASTERISK Y REALTIME
a) Ingresar a los archivos «res_mysql.conf» y «extconfig.conf» e ingresar la siguiente informacionrespectiva
#vi /etc/asterisk/res_mysql.conf
[general]
dbhost = 127.0.0.1 ;en caso de que Asterisk y mySQL compartan el mismo servidor.
dbname = mibasededatos
dbuser = miusuario
dbpass = micontrasena
dbport = 3306 ;puerto por defecto en mySQL
#vi /etc/asterisk/extconfig.conf
sipusers => mysql,asteriskcdr,sip_buddies
sippeers => mysql,asteriskcdr,sip_buddies
3) CONFIGURACIÓN DEL ARCHIVO «sip.conf»
#vi /etc/asterisk/sip.conf
[general]
language=es
context = micontexto
bindport = 5060
bindaddr = 0.0.0.0
srvlookup=yes
rtcachefriends=yes
disallow=all
allow=ulaw
allow=allaw
allow=gsm
4.- AGREGANDO EXTENSIONES SIP A LA BASE DE DATOS
Agregarmos las extensiones 101 y 102 a la tabla «sip_buddies» , esto lo pueden hacer desde phpmyadmin sin problema alguno , de la siguiente forma :
INSERT INTO sip_buddies (name, callerid, secret, host, context, mailbox, qualify, dtmfmode) VALUES (101, «101», 101, «dynamic», «micontexto», «101@default», «yes», «RFC2833»);
INSERT INTO sip_buddies (name, callerid, secret, host, context, mailbox, qualify, dtmfmode) VALUES (102, «102», 102, «dynamic», «micontexto», «102@default», «yes», «RFC2833»);
5.- CONFIGURANDO SOFPHONE PARA REGISTRO
A) Configurar un sofphone (el de su prefencia) para registrarlo como extension valida en el servidor asterisk , esta seria la configuracion usando ekiga
b) Verficar registro , si todo esta correcto al pulsar aceptar , el servidor Asterisk debera recibir la peticion de registro y lo consultara con la base de datos y tabla configurara , de la siguiente forma en el CLI de Asterisk:
Connected to Asterisk currently running on centralpbx1 (pid = 2234)
Verbosity is at least 13
— Remote UNIX connection
— Registered SIP ‘101’ at 192.168.1.101 port 5060 expires 3600
— Saved useragent «Ekiga/3.2.6» for peer 101
[May 1 08:10:15] NOTICE[2334]: chan_sip.c:12669 handle_response_peerpoke: Peer ‘101’ is now Reachable. (5ms / 2000ms)
Lo cual nos indica que la extension 101 , ha sido correctamente registrada , y lo podemos comprobar de la siguiente forma :
Asterisk *CLI>sip show peers
centralpbx1*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status Realtime
102/102 D 5060 UNREACHABLE
101/101 192.168.1.101 D 5060 OK (3 ms)
2 sip peers [Monitored: 1 online, 1 offline Unmonitored: 0 online, 0 offline]
6.- DESARROLLANDO EL DIALPLAN
a) Configurar el archivo «extensions.conf» de la siguiente forma :
#vi /etc/asterisk/extensions.conf
[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no
priorityjumping=no
[globals]
[ramales]
; Carga de datos via RealTime
switch => Realtime/@
;Comunicacion entre anexos
exten=>_102,1,Dial(SIP/102,10,Ttr)
exten=>_101,1,Dial(SIP/101,10,Ttr)
7.- REALIZAR PRUEBAS
Una vez configurado el dialplan , ingresar al CLI de Asterisk y ejecutar el comando «dialplan reload» , luego probar la comunicación entre los anexos 101 y 102 (evidentemente tienen que registrar el anexo 102 antes) , si todo esta correcto podran tener comunicacion entre las dos extensiones.
Tarea pendiente : Con esto ya podrian desarrollar una interface de usuario para ingresar extensiones a la base de datos.
Espero que les Sirva la información



Replica a Alejandro Cancelar la respuesta