SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
Extendiendo Elastix
con AGI's
Que es un AGI?
• Asterisk Gateway Interface por sus siglas
en ingles
• Puede ser escrito en cualquier lenguaje
• Es ejecutado desde el dialplan
Ejemplos de uso de AGI's
• Encuestas automatizadas
• Consulta de saldos y pagos
• Encuestas de satisfacción
• Automatización de Pagos
Invocando un AGI
exten => 123,1,Answer()
same => n,AGI(hola.php)
same => n,Hangup()
Variables por defecto
• agi_request - Nombre del AGI
• agi_channel - Canal originante
• agi_language - Lenguaje del canal
• agi_type - Tipo de canal (SIP, IAX, Dahdi)
• agi_uniqueid - Unique id Llamada
• agi_callerid - Caller ID
• agi_dnid - DID
• agi_context - Contexto de origen
Invocando un AGI con variables
personalizadas
exten => 123,1,Answer()
same => n,Set(VAR1=456)
same => n,AGI(hola.php,${VAR1})
same => n,Hangup()
Programando un AGI - Elementos Básicos
#!/usr/bin/php -q
<?php
set_time_limit(30);
require_once "phpagi.php";
?>
Tiempo máximo de ejeccion
Inicio de código PHP
Importación de Libreria
Fin de código PHP
Programando un AGI - Conexión a BD
#!/usr/bin/php -q
<?php
set_time_limit(30);
require_once "phpagi.php";
$agi = new AGI();
$agi->answer();
$conexion = mysql_connect("host","user","pass") or die(mysql_error());
mysql_select_db($db, $conexion);
?>
Responde el canal
Realizamos Conexión a BD
Programando un AGI - Obteniendo Variables
#!/usr/bin/php -q
<?php
set_time_limit(30);
require_once "phpagi.php";
$agi = new AGI();
$agi->answer();
$conexion = mysql_connect("host","user","pass") or die(mysql_error());
mysql_select_db(encuesta, $conexion);
#Obtenemos CallerID
$callernum=$agi->get_variable("CALLERID(number)");
$callernum=$callernum['data'];
$var1=$argv[1];
?>
Obtenemos variable de canal
Variable Personalizada
Programando un AGI - El programa
$error=0;
$loop =0;
do{
$do=0;
$arr_answer = $agi->get_data("custom/q_survey",5000,1);
$answer = $arr_answer['result'];
if ($answer < 1 || $answer > 5) {
$agi->exec('playback',"custom/inv_answer");
$error ++;
$do=1;
}
if ($error > $loop) {
$agi->exec('playback',"custom/end_invalid");
$agi->hangup();
}
elseif($do == 0){
$row3 = mysql_query("INSERT INTO table_q (answer, caller_id) VALUES ('$answer', '$callernum') ");
$agi->exec('playback',"custom/end_survey");
$agi->hangup();
}
}while ($do == 1);
Audio Pregunta
Evento resuesta Inválida
Guardamos Resultado
Programando un AGI - Terminado
#!/usr/bin/php -q
<?php
set_time_limit(30);
require_once "phpagi.php";
$agi = new AGI();
$agi->answer();
$conexion = mysql_connect("host","user","pass") or die(mysql_error());
mysql_select_db(encuesta, $conexion);
#Obtenemos CallerID
$callernum=$agi->get_variable("CALLERID(number)");
$callernum=$callernum['data'];
$error=0;
do{
$do=0;
$arr_answer = $agi->get_data("custom/$q_survey",5000,1);
$answer = $arr_answer['result'];
if ($answer < $min_val || $answer > $max_val) {
$agi->exec('playback',"custom/$inv_answer");
$error ++;
$do=1;
}
if ($error > $loop) {
$agi->exec('playback',"custom/$end_invalid");
$agi->hangup();
}
elseif($do == 0){
$row3 = mysql_query("INSERT INTO $table (answer, caller_id) VALUES ('$answer', '$callernum') ");
$agi->exec('playback',"custom/$end_survey");
$agi->hangup();
}
}while ($do == 1);
?>
Programando un AGI - Consulta de Saldo
#!/usr/bin/php -q
<?php
set_time_limit(30);
require_once "phpagi.php";
$agi = new AGI();
$agi->answer();
$conexion = mysql_connect("host","user","pass") or die(mysql_error());
mysql_select_db(saldo, $conexion);
$arr_answer = $agi->get_data("custom/cliente",5000,10);
$answer = $arr_answer['result'];
$query_saldo = mysql_query("SELECT saldo FROM saldos WHERE id='$canswer' ");
$saldo = mysql_fetch_row($query_saldo);
$saldo = $saldo[0];
$agi->set_variable("SALDO", "$saldo");
?>
Solicitamos Numero Cliente
Consultamos Saldo
Asignamos Valor a Variable
Programando un AGI - Consulta de Saldo
exten => 123,1,AGI(saldo.php)
same => n,Playback(custom/susaldo)
same => n,SayNumber(${SALDO})
same => n,Playback(custom/pesos)
same => n,Hangup()
Programando un AGI - Consulta de Saldo
exten => 123,1,AGI(saldo.php)
same => n,Swift(Su saldo al día de hoy
es de ${SALDO} pesos, Gracias)
same => n,Hangup()
Gracias por su Atención!
Augusto Sepúlveda S.H.
Correo: augusto.sepulveda@nextortelecom.com
Skype: augustosep
Nextor Telecom
Leibnitz 47 - 105 G Salinas Varona 215
Col Anzurez, México DF Burocratas del Edo, Monterrey NL
+525514540020 +528114540020
http://www.vozero.mx
http://mangoanalytics.orghttp://www.nextortelecom.com

Más contenido relacionado

La actualidad más candente

Windows attacks - AT is the new black
Windows attacks - AT is the new blackWindows attacks - AT is the new black
Windows attacks - AT is the new blackChris Gates
 
Introduction to Malware Analysis
Introduction to Malware AnalysisIntroduction to Malware Analysis
Introduction to Malware AnalysisAndrew McNicol
 
Clean Code: Chapter 3 Function
Clean Code: Chapter 3 FunctionClean Code: Chapter 3 Function
Clean Code: Chapter 3 FunctionKent Huang
 
Атаки на видеоконвертеры: год спустя
Атаки на видеоконвертеры: год спустяАтаки на видеоконвертеры: год спустя
Атаки на видеоконвертеры: год спустяPositive Hack Days
 
Locking the Throneroom 2.0
Locking the Throneroom 2.0Locking the Throneroom 2.0
Locking the Throneroom 2.0Mario Heiderich
 
OWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling PicklesOWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling PicklesChristopher Frohoff
 
Security and Viruses
Security and VirusesSecurity and Viruses
Security and VirusesAmrit Kaur
 
SAST vs. DAST: What’s the Best Method For Application Security Testing?
SAST vs. DAST: What’s the Best Method For Application Security Testing?SAST vs. DAST: What’s the Best Method For Application Security Testing?
SAST vs. DAST: What’s the Best Method For Application Security Testing?Cigital
 
ReCertifying Active Directory
ReCertifying Active DirectoryReCertifying Active Directory
ReCertifying Active DirectoryWill Schroeder
 
Bug Bounty Hunter Methodology - Nullcon 2016
Bug Bounty Hunter Methodology - Nullcon 2016Bug Bounty Hunter Methodology - Nullcon 2016
Bug Bounty Hunter Methodology - Nullcon 2016bugcrowd
 
Secure code
Secure codeSecure code
Secure codeddeogun
 
CSRF Attack and Its Prevention technique in ASP.NET MVC
CSRF Attack and Its Prevention technique in ASP.NET MVCCSRF Attack and Its Prevention technique in ASP.NET MVC
CSRF Attack and Its Prevention technique in ASP.NET MVCSuvash Shah
 
Ids 006 computer worms
Ids 006 computer wormsIds 006 computer worms
Ids 006 computer wormsjyoti_lakhani
 
Polyglot payloads in practice by avlidienbrunn at HackPra
Polyglot payloads in practice by avlidienbrunn at HackPraPolyglot payloads in practice by avlidienbrunn at HackPra
Polyglot payloads in practice by avlidienbrunn at HackPraMathias Karlsson
 
An introduction to Rust: the modern programming language to develop safe and ...
An introduction to Rust: the modern programming language to develop safe and ...An introduction to Rust: the modern programming language to develop safe and ...
An introduction to Rust: the modern programming language to develop safe and ...Claudio Capobianco
 

La actualidad más candente (20)

ActiveRecord & ARel
ActiveRecord & ARelActiveRecord & ARel
ActiveRecord & ARel
 
Windows attacks - AT is the new black
Windows attacks - AT is the new blackWindows attacks - AT is the new black
Windows attacks - AT is the new black
 
Sql injection attack
Sql injection attackSql injection attack
Sql injection attack
 
Introduction to Malware Analysis
Introduction to Malware AnalysisIntroduction to Malware Analysis
Introduction to Malware Analysis
 
ReVaulting! Decryption and opportunities
ReVaulting! Decryption and opportunitiesReVaulting! Decryption and opportunities
ReVaulting! Decryption and opportunities
 
Clean Code: Chapter 3 Function
Clean Code: Chapter 3 FunctionClean Code: Chapter 3 Function
Clean Code: Chapter 3 Function
 
The Rise of Ransomware
The Rise of RansomwareThe Rise of Ransomware
The Rise of Ransomware
 
Атаки на видеоконвертеры: год спустя
Атаки на видеоконвертеры: год спустяАтаки на видеоконвертеры: год спустя
Атаки на видеоконвертеры: год спустя
 
Pentesting Android Apps
Pentesting Android AppsPentesting Android Apps
Pentesting Android Apps
 
Locking the Throneroom 2.0
Locking the Throneroom 2.0Locking the Throneroom 2.0
Locking the Throneroom 2.0
 
OWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling PicklesOWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling Pickles
 
Security and Viruses
Security and VirusesSecurity and Viruses
Security and Viruses
 
SAST vs. DAST: What’s the Best Method For Application Security Testing?
SAST vs. DAST: What’s the Best Method For Application Security Testing?SAST vs. DAST: What’s the Best Method For Application Security Testing?
SAST vs. DAST: What’s the Best Method For Application Security Testing?
 
ReCertifying Active Directory
ReCertifying Active DirectoryReCertifying Active Directory
ReCertifying Active Directory
 
Bug Bounty Hunter Methodology - Nullcon 2016
Bug Bounty Hunter Methodology - Nullcon 2016Bug Bounty Hunter Methodology - Nullcon 2016
Bug Bounty Hunter Methodology - Nullcon 2016
 
Secure code
Secure codeSecure code
Secure code
 
CSRF Attack and Its Prevention technique in ASP.NET MVC
CSRF Attack and Its Prevention technique in ASP.NET MVCCSRF Attack and Its Prevention technique in ASP.NET MVC
CSRF Attack and Its Prevention technique in ASP.NET MVC
 
Ids 006 computer worms
Ids 006 computer wormsIds 006 computer worms
Ids 006 computer worms
 
Polyglot payloads in practice by avlidienbrunn at HackPra
Polyglot payloads in practice by avlidienbrunn at HackPraPolyglot payloads in practice by avlidienbrunn at HackPra
Polyglot payloads in practice by avlidienbrunn at HackPra
 
An introduction to Rust: the modern programming language to develop safe and ...
An introduction to Rust: the modern programming language to develop safe and ...An introduction to Rust: the modern programming language to develop safe and ...
An introduction to Rust: the modern programming language to develop safe and ...
 

Destacado

Encuestas telefónicas automáticas por IVR en Elastix con iSurveyX
Encuestas telefónicas automáticas por IVR en Elastix con iSurveyXEncuestas telefónicas automáticas por IVR en Elastix con iSurveyX
Encuestas telefónicas automáticas por IVR en Elastix con iSurveyXPaloSanto Solutions
 
Asterisk en los Call Centers - Encuesta Satisfacción clientes
Asterisk en los Call Centers - Encuesta Satisfacción clientesAsterisk en los Call Centers - Encuesta Satisfacción clientes
Asterisk en los Call Centers - Encuesta Satisfacción clientesFrancesco Prior
 
Charla sobre Desarrollo de Aplicaciones en Asterisk con AGI para el ENLI 2012
Charla sobre Desarrollo de Aplicaciones en Asterisk con AGI para el ENLI 2012Charla sobre Desarrollo de Aplicaciones en Asterisk con AGI para el ENLI 2012
Charla sobre Desarrollo de Aplicaciones en Asterisk con AGI para el ENLI 2012Rommel León
 
Cómo configurar notificaciones en Elastix: Correos, Llamadas, SMS
Cómo configurar notificaciones en Elastix: Correos, Llamadas, SMSCómo configurar notificaciones en Elastix: Correos, Llamadas, SMS
Cómo configurar notificaciones en Elastix: Correos, Llamadas, SMSPaloSanto Solutions
 
Manual instalación y configuración de elastix para comnutación telefónica
Manual instalación y configuración de elastix para comnutación telefónicaManual instalación y configuración de elastix para comnutación telefónica
Manual instalación y configuración de elastix para comnutación telefónicaEloy Aguilar Cardona
 
Creación e implementación de una central telefónica VoIp en la institución de...
Creación e implementación de una central telefónica VoIp en la institución de...Creación e implementación de una central telefónica VoIp en la institución de...
Creación e implementación de una central telefónica VoIp en la institución de...Sentir Digital
 
Protegiendo SIP y SSH con Fail2ban en Elastix
Protegiendo SIP y SSH con Fail2ban en ElastixProtegiendo SIP y SSH con Fail2ban en Elastix
Protegiendo SIP y SSH con Fail2ban en ElastixPaloSanto Solutions
 
Escarbando en el módulo Security de Elastix
Escarbando en el módulo Security de ElastixEscarbando en el módulo Security de Elastix
Escarbando en el módulo Security de ElastixPaloSanto Solutions
 
Cheatsheet de Freemat
Cheatsheet de FreematCheatsheet de Freemat
Cheatsheet de FreematJose Perez
 
Riyalu swaliheeen pdf
Riyalu swaliheeen pdfRiyalu swaliheeen pdf
Riyalu swaliheeen pdfshabeel pn
 

Destacado (20)

Encuestas telefónicas automáticas por IVR en Elastix con iSurveyX
Encuestas telefónicas automáticas por IVR en Elastix con iSurveyXEncuestas telefónicas automáticas por IVR en Elastix con iSurveyX
Encuestas telefónicas automáticas por IVR en Elastix con iSurveyX
 
Asterisk en los Call Centers - Encuesta Satisfacción clientes
Asterisk en los Call Centers - Encuesta Satisfacción clientesAsterisk en los Call Centers - Encuesta Satisfacción clientes
Asterisk en los Call Centers - Encuesta Satisfacción clientes
 
Charla sobre Desarrollo de Aplicaciones en Asterisk con AGI para el ENLI 2012
Charla sobre Desarrollo de Aplicaciones en Asterisk con AGI para el ENLI 2012Charla sobre Desarrollo de Aplicaciones en Asterisk con AGI para el ENLI 2012
Charla sobre Desarrollo de Aplicaciones en Asterisk con AGI para el ENLI 2012
 
laboratorios elaxtix
laboratorios elaxtixlaboratorios elaxtix
laboratorios elaxtix
 
Cómo configurar notificaciones en Elastix: Correos, Llamadas, SMS
Cómo configurar notificaciones en Elastix: Correos, Llamadas, SMSCómo configurar notificaciones en Elastix: Correos, Llamadas, SMS
Cómo configurar notificaciones en Elastix: Correos, Llamadas, SMS
 
Manual instalación y configuración de elastix para comnutación telefónica
Manual instalación y configuración de elastix para comnutación telefónicaManual instalación y configuración de elastix para comnutación telefónica
Manual instalación y configuración de elastix para comnutación telefónica
 
Elastix manual
Elastix manualElastix manual
Elastix manual
 
Call Center en Elastix
Call Center en ElastixCall Center en Elastix
Call Center en Elastix
 
Elastix slide book-ect(1)
Elastix  slide book-ect(1)Elastix  slide book-ect(1)
Elastix slide book-ect(1)
 
Programacion para televisión digital - mhp
Programacion para televisión digital - mhpProgramacion para televisión digital - mhp
Programacion para televisión digital - mhp
 
Integrando Elastix con Cepstral
Integrando Elastix con CepstralIntegrando Elastix con Cepstral
Integrando Elastix con Cepstral
 
Creación e implementación de una central telefónica VoIp en la institución de...
Creación e implementación de una central telefónica VoIp en la institución de...Creación e implementación de una central telefónica VoIp en la institución de...
Creación e implementación de una central telefónica VoIp en la institución de...
 
Protegiendo SIP y SSH con Fail2ban en Elastix
Protegiendo SIP y SSH con Fail2ban en ElastixProtegiendo SIP y SSH con Fail2ban en Elastix
Protegiendo SIP y SSH con Fail2ban en Elastix
 
Escarbando en el módulo Security de Elastix
Escarbando en el módulo Security de ElastixEscarbando en el módulo Security de Elastix
Escarbando en el módulo Security de Elastix
 
Curso alfresco 2010
Curso alfresco 2010Curso alfresco 2010
Curso alfresco 2010
 
SEMANA INNOVACUN
SEMANA INNOVACUNSEMANA INNOVACUN
SEMANA INNOVACUN
 
Precios curso 13 14
Precios curso 13 14Precios curso 13 14
Precios curso 13 14
 
Hoja de vida royman
Hoja de  vida royman Hoja de  vida royman
Hoja de vida royman
 
Cheatsheet de Freemat
Cheatsheet de FreematCheatsheet de Freemat
Cheatsheet de Freemat
 
Riyalu swaliheeen pdf
Riyalu swaliheeen pdfRiyalu swaliheeen pdf
Riyalu swaliheeen pdf
 

Similar a Extendiendo Elastix: AGIs para encuestas y consultas de datos

Silex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPSilex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPJavier Eguiluz
 
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...betabeers
 
Escribir plugins para Nagios en Perl
Escribir plugins para Nagios en PerlEscribir plugins para Nagios en Perl
Escribir plugins para Nagios en PerlJose Luis Martínez
 
Un mundo sin if. generics al rescate
Un mundo sin if. generics al rescateUn mundo sin if. generics al rescate
Un mundo sin if. generics al rescateGermán Küber
 

Similar a Extendiendo Elastix: AGIs para encuestas y consultas de datos (7)

Silex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPSilex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHP
 
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
 
Escribir plugins para Nagios en Perl
Escribir plugins para Nagios en PerlEscribir plugins para Nagios en Perl
Escribir plugins para Nagios en Perl
 
Practica 8
Practica 8Practica 8
Practica 8
 
04.3.asterisk agi
04.3.asterisk agi04.3.asterisk agi
04.3.asterisk agi
 
Un mundo sin if. generics al rescate
Un mundo sin if. generics al rescateUn mundo sin if. generics al rescate
Un mundo sin if. generics al rescate
 
Php2
Php2 Php2
Php2
 

Más de PaloSanto Solutions

Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...PaloSanto Solutions
 
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?PaloSanto Solutions
 
Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...PaloSanto Solutions
 
Queuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadasQueuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadasPaloSanto Solutions
 
La evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadasLa evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadasPaloSanto Solutions
 
Integrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyXIntegrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyXPaloSanto Solutions
 
Usando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTUsando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTPaloSanto Solutions
 
Todo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBXTodo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBXPaloSanto Solutions
 
Gestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMSGestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMSPaloSanto Solutions
 
Escalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIPEscalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIPPaloSanto Solutions
 
Elastix unified communications server cookbook
Elastix unified communications server cookbookElastix unified communications server cookbook
Elastix unified communications server cookbookPaloSanto Solutions
 
Seguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detalladoSeguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detalladoPaloSanto Solutions
 
Dynamic calls with Text To Speech
Dynamic calls with Text To SpeechDynamic calls with Text To Speech
Dynamic calls with Text To SpeechPaloSanto Solutions
 
Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)PaloSanto Solutions
 
Building a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsBuilding a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsPaloSanto Solutions
 
Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia PaloSanto Solutions
 
Módulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de ElastixMódulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de ElastixPaloSanto Solutions
 

Más de PaloSanto Solutions (20)

Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
 
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
 
Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...
 
Queuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadasQueuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadas
 
La evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadasLa evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadas
 
WebRTC … ¡vamos a discar!
WebRTC … ¡vamos a discar!WebRTC … ¡vamos a discar!
WebRTC … ¡vamos a discar!
 
Integrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyXIntegrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyX
 
Usando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTUsando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MT
 
Todo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBXTodo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBX
 
Gestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMSGestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMS
 
Escalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIPEscalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIP
 
Elastix unified communications server cookbook
Elastix unified communications server cookbookElastix unified communications server cookbook
Elastix unified communications server cookbook
 
Seguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detalladoSeguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detallado
 
Dynamic calls with Text To Speech
Dynamic calls with Text To SpeechDynamic calls with Text To Speech
Dynamic calls with Text To Speech
 
Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)
 
Building a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsBuilding a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communications
 
Asterisk: the future is at REST
Asterisk: the future is at RESTAsterisk: the future is at REST
Asterisk: the future is at REST
 
Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia
 
Voicemail Avanzado
Voicemail AvanzadoVoicemail Avanzado
Voicemail Avanzado
 
Módulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de ElastixMódulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de Elastix
 

Último

tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 

Último (20)

tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 

Extendiendo Elastix: AGIs para encuestas y consultas de datos

  • 2. Que es un AGI? • Asterisk Gateway Interface por sus siglas en ingles • Puede ser escrito en cualquier lenguaje • Es ejecutado desde el dialplan
  • 3. Ejemplos de uso de AGI's • Encuestas automatizadas • Consulta de saldos y pagos • Encuestas de satisfacción • Automatización de Pagos
  • 4. Invocando un AGI exten => 123,1,Answer() same => n,AGI(hola.php) same => n,Hangup()
  • 5. Variables por defecto • agi_request - Nombre del AGI • agi_channel - Canal originante • agi_language - Lenguaje del canal • agi_type - Tipo de canal (SIP, IAX, Dahdi) • agi_uniqueid - Unique id Llamada • agi_callerid - Caller ID • agi_dnid - DID • agi_context - Contexto de origen
  • 6. Invocando un AGI con variables personalizadas exten => 123,1,Answer() same => n,Set(VAR1=456) same => n,AGI(hola.php,${VAR1}) same => n,Hangup()
  • 7. Programando un AGI - Elementos Básicos #!/usr/bin/php -q <?php set_time_limit(30); require_once "phpagi.php"; ?> Tiempo máximo de ejeccion Inicio de código PHP Importación de Libreria Fin de código PHP
  • 8. Programando un AGI - Conexión a BD #!/usr/bin/php -q <?php set_time_limit(30); require_once "phpagi.php"; $agi = new AGI(); $agi->answer(); $conexion = mysql_connect("host","user","pass") or die(mysql_error()); mysql_select_db($db, $conexion); ?> Responde el canal Realizamos Conexión a BD
  • 9. Programando un AGI - Obteniendo Variables #!/usr/bin/php -q <?php set_time_limit(30); require_once "phpagi.php"; $agi = new AGI(); $agi->answer(); $conexion = mysql_connect("host","user","pass") or die(mysql_error()); mysql_select_db(encuesta, $conexion); #Obtenemos CallerID $callernum=$agi->get_variable("CALLERID(number)"); $callernum=$callernum['data']; $var1=$argv[1]; ?> Obtenemos variable de canal Variable Personalizada
  • 10. Programando un AGI - El programa $error=0; $loop =0; do{ $do=0; $arr_answer = $agi->get_data("custom/q_survey",5000,1); $answer = $arr_answer['result']; if ($answer < 1 || $answer > 5) { $agi->exec('playback',"custom/inv_answer"); $error ++; $do=1; } if ($error > $loop) { $agi->exec('playback',"custom/end_invalid"); $agi->hangup(); } elseif($do == 0){ $row3 = mysql_query("INSERT INTO table_q (answer, caller_id) VALUES ('$answer', '$callernum') "); $agi->exec('playback',"custom/end_survey"); $agi->hangup(); } }while ($do == 1); Audio Pregunta Evento resuesta Inválida Guardamos Resultado
  • 11. Programando un AGI - Terminado #!/usr/bin/php -q <?php set_time_limit(30); require_once "phpagi.php"; $agi = new AGI(); $agi->answer(); $conexion = mysql_connect("host","user","pass") or die(mysql_error()); mysql_select_db(encuesta, $conexion); #Obtenemos CallerID $callernum=$agi->get_variable("CALLERID(number)"); $callernum=$callernum['data']; $error=0; do{ $do=0; $arr_answer = $agi->get_data("custom/$q_survey",5000,1); $answer = $arr_answer['result']; if ($answer < $min_val || $answer > $max_val) { $agi->exec('playback',"custom/$inv_answer"); $error ++; $do=1; } if ($error > $loop) { $agi->exec('playback',"custom/$end_invalid"); $agi->hangup(); } elseif($do == 0){ $row3 = mysql_query("INSERT INTO $table (answer, caller_id) VALUES ('$answer', '$callernum') "); $agi->exec('playback',"custom/$end_survey"); $agi->hangup(); } }while ($do == 1); ?>
  • 12. Programando un AGI - Consulta de Saldo #!/usr/bin/php -q <?php set_time_limit(30); require_once "phpagi.php"; $agi = new AGI(); $agi->answer(); $conexion = mysql_connect("host","user","pass") or die(mysql_error()); mysql_select_db(saldo, $conexion); $arr_answer = $agi->get_data("custom/cliente",5000,10); $answer = $arr_answer['result']; $query_saldo = mysql_query("SELECT saldo FROM saldos WHERE id='$canswer' "); $saldo = mysql_fetch_row($query_saldo); $saldo = $saldo[0]; $agi->set_variable("SALDO", "$saldo"); ?> Solicitamos Numero Cliente Consultamos Saldo Asignamos Valor a Variable
  • 13. Programando un AGI - Consulta de Saldo exten => 123,1,AGI(saldo.php) same => n,Playback(custom/susaldo) same => n,SayNumber(${SALDO}) same => n,Playback(custom/pesos) same => n,Hangup()
  • 14. Programando un AGI - Consulta de Saldo exten => 123,1,AGI(saldo.php) same => n,Swift(Su saldo al día de hoy es de ${SALDO} pesos, Gracias) same => n,Hangup()
  • 15. Gracias por su Atención! Augusto Sepúlveda S.H. Correo: augusto.sepulveda@nextortelecom.com Skype: augustosep Nextor Telecom Leibnitz 47 - 105 G Salinas Varona 215 Col Anzurez, México DF Burocratas del Edo, Monterrey NL +525514540020 +528114540020 http://www.vozero.mx http://mangoanalytics.orghttp://www.nextortelecom.com