5. Protocolos tradicionales
● MFC-R2
● E&M Wink
● Feature Group D
● FXS
● FXO
● GR-303
● Loopstart
● Groundstart
● Kewlstart
● MF and DTMF support
● Robbed-bit Signaling (RBS) Types
● E&M
6. Call Features
●Blind/Supervised Transfer
●Conference Bridging
●Supervised Transfer
●Do Not Disturb
●Text-to-Speech (via Festival)
●Three-way Calling
●Interactive Voice Response (IVR)
●Text To Speech
●Voicemail
Y mas, muchoo mas..
16. ¿Que es el manager? (AMI)
AMI: Asterisk manager interface
En pocas palabras,
Nos permite manejar Asterisk desde una aplicación externa.
17. Ejemplo:
Damos de alta un usuario
manager.conf
[usuario]
secret = password
read = system,call,log,verbose,command,config,read,write,user,dialplan,originate
write = system,call,log,verbose,command,config,read,write,user,dialplan,originate
18. Asterisk-java lib.
Compone de un conjunto de clases Java que permiten crear fácilmente
aplicaciones Java que interactúan con un servidor PBX Asterisk.
http://www.asterisk-java.org/
19. Arquitectura del manager.
→ Enviamos comandos
← Recibimos eventos/respuestas
- Usa el puerto 5028 de TCP
- Todo se transmite en texto plano. Pensado para poder ser
parseado.
Soporte TLS/SSL
21. Asterisk gateway interface (AGI)
Permite programar aplicaciones en lenguajes que no
sean nativos de Asterisk.
ActiveX, java, Pascal/ObjectPascal,Perl, PHP, Python,
Ruby, C, .NET.
Es usado comúnmente para programar rutinas
complejas.
Básicamente consiste en un script invocado desde el
dialplan al cual pueden pasarse parámetros.
22. DialPlan (extensions.conf)
[testAgi]
exten => 900,1,AGI(script-expedientes.agi, ${NROEXP}, ${SECTOR})
exten => 900,n,Hangup()
- ¿Y si quiero que mas de un Asterisk ejecute ese script?, lo puedo ejecutar
centralizadamente?
Si
- ¿Como?
23. FastAGI
Un Fast AGI nos permite ejecutar un proceso que se queda escuchando en un puerto
y realiza alguna tarea en particular.
Podemos pasarle argumentos, usando el formato HTTP.!
Veamos un ejemplo!
24. Programa java corriendo como proceso, implementa un FastAGI
public class Encuestar extends BaseAgiScript {
private static final Logger log =
Logger.getLogger(Encuestar.class);
@Override
public void service(AgiRequest arg0, AgiChannel arg1){
…....
//Consulto expediente en Base de datos.
}
DialPlan (extensions.conf)
[testFastAgi]
exten => 900,1,AGI(agi://localhost/core.Expediente?nroExpediente=${NROEXP})
exten => 900,n,Hangup()
25. Código Fuente
● GPL v2.
✔ Usar el software.
✔ Copiar y distribuir copias fieles o modificadas de programas
compilados o en código fuente
✔ Refiriendo al original
✔ Si esta compilado, dejando disponible el código fuente