SlideShare una empresa de Scribd logo
1 de 2
Descargar para leer sin conexión
Sistemas de VOIP – MODULO II
                             Práctica 5 – Ing. José Córdova G.

 
                                 Asterisk Gateway Interface

                                           PARTE I

1.   Cree el archivo dicta.php que contendrá el código mostrado a continuación:

#!/usr/bin/php -q
<?php
// Esta línea es para que que haga no mantenga en un buffer el output
ob_implicit_flush(true);
set_time_limit(6);
error_reporting(0);
// Se abren los diferentes archivos (STDIN, STDOUT y un archivo de log del AGI)
$in = fopen("php://stdin","r");
$out = fopen("php://stdout","w");
$stdlog = fopen("/var/log/asterisk/my_agi.log", "w");
// Si debug es true, escribe en el archivo de log definido anteriormente
$debug = true;
// Toma el nombre del archivo con los números a dictar del primer parámetro
$archivo = $argv[1];
// Define la funcion read, que lee el input del STDIN
function read() {
  global $in, $debug, $stdlog;
  $input = str_replace("n", "", fgets($in, 4096));
  if ($debug) fputs($stdlog, "read: $inputn");
  return $input;
}
// Define la funcion write, que escribe el output en el STDOUT
function write($line) {
  global $debug, $stdlog, $out;
  if ($debug) fputs($stdlog, "write: $linen");
  fputs($out,$line."n");
  fflush($out);
}
// Lee el archivo que se paso como parametro
$lines = file($archivo);
// Reproduce los digitos contenidos en cada linea del mismo informando en el log del
foreach ($lines as $line) {
    $line=trim($line);
    for ($i=0;$i<strlen($line);$i++) {
          write("VERBOSE "REPRODUCIENDO DIGITO $line[$i]"");
          read();
          write("SAY DIGITS $line[$i] """);
          read();
       sleep(1);
    }
}
// Se cierran todos los handlers de archivos
fclose($in);
fclose($out);
fclose($stdlog);
exit; ?>




2.   Cree el archivo numeros.txt conteniendo números a ser leídos desde el script creado en el
     numeral anterior.
3.   Pruebe la ejecución del AGI de la siguiente manera:
Sistemas de VOIP – MODULO II
                             Práctica 5 – Ing. José Córdova G.

 
     exten => 200,1,Answer();
     exten => 200,2,AGI(dicta.php|/tmp/numeros.txt)
     exten => 200,3,Hangup()



                                          PARTE II

1. Cree una extensión para hacer un llamado a un script AGI escrito en PHP con la siguientes
   características:
            a. El script no recibe parámetros.
            b. Debe ejecutar:
                     i. Un Playback de el archivo demo-congrats.gsm
                    ii. Un Playback de los digitos 123456.



                                         PARTE III

1. Usando la configuración revisada en clase realice el ponchado de un cable T1 Crossover
   para ser utilizado en la practica de troncales digitales.

Más contenido relacionado

La actualidad más candente

Shell script
Shell scriptShell script
Shell scriptuniminuto
 
Ejercicios resuelto de shell script
Ejercicios resuelto  de shell scriptEjercicios resuelto  de shell script
Ejercicios resuelto de shell scriptYarlet Urda
 
Estructura basica de_un_programa_en_c_
Estructura basica de_un_programa_en_c_Estructura basica de_un_programa_en_c_
Estructura basica de_un_programa_en_c_oscar020615
 
Estructura basica de_c_
Estructura basica de_c_Estructura basica de_c_
Estructura basica de_c_LaishaXime
 
Taller de Shell Scripting
Taller de Shell ScriptingTaller de Shell Scripting
Taller de Shell ScriptingEnrique Verdes
 
Instrucciones lenguaje assembler
Instrucciones lenguaje assemblerInstrucciones lenguaje assembler
Instrucciones lenguaje assemblerANDREA
 
Semana 3 Fundamentos de Python(Funciones y Métodos)
Semana 3   Fundamentos de Python(Funciones y Métodos)Semana 3   Fundamentos de Python(Funciones y Métodos)
Semana 3 Fundamentos de Python(Funciones y Métodos)Richard Eliseo Mendoza Gafaro
 
Estructura Básica para C++
Estructura Básica para C++Estructura Básica para C++
Estructura Básica para C++pilgrim15
 
Deteccion de Ciclos en c
Deteccion de Ciclos en cDeteccion de Ciclos en c
Deteccion de Ciclos en cAbraham
 
Estructuras de control en la POO
Estructuras de control en la POOEstructuras de control en la POO
Estructuras de control en la POOAmado Arcaya
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de controlLismirabal
 
Semana 2 Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
Semana 2   Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)Semana 2   Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
Semana 2 Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)Richard Eliseo Mendoza Gafaro
 

La actualidad más candente (18)

Shell script
Shell scriptShell script
Shell script
 
Ejercicios resuelto de shell script
Ejercicios resuelto  de shell scriptEjercicios resuelto  de shell script
Ejercicios resuelto de shell script
 
Estructura basica de_un_programa_en_c_
Estructura basica de_un_programa_en_c_Estructura basica de_un_programa_en_c_
Estructura basica de_un_programa_en_c_
 
Estructura basica de_c_
Estructura basica de_c_Estructura basica de_c_
Estructura basica de_c_
 
Analizador Léxico en C++
Analizador Léxico en C++Analizador Léxico en C++
Analizador Léxico en C++
 
Taller de Shell Scripting
Taller de Shell ScriptingTaller de Shell Scripting
Taller de Shell Scripting
 
The linux shell. Shell Scripting desde 0
The linux shell. Shell Scripting desde 0The linux shell. Shell Scripting desde 0
The linux shell. Shell Scripting desde 0
 
Instrucciones lenguaje assembler
Instrucciones lenguaje assemblerInstrucciones lenguaje assembler
Instrucciones lenguaje assembler
 
Semana 3 Fundamentos de Python(Funciones y Métodos)
Semana 3   Fundamentos de Python(Funciones y Métodos)Semana 3   Fundamentos de Python(Funciones y Métodos)
Semana 3 Fundamentos de Python(Funciones y Métodos)
 
Estructura Básica para C++
Estructura Básica para C++Estructura Básica para C++
Estructura Básica para C++
 
Deteccion de Ciclos en c
Deteccion de Ciclos en cDeteccion de Ciclos en c
Deteccion de Ciclos en c
 
Charla Mysql
Charla MysqlCharla Mysql
Charla Mysql
 
Php curso03
Php   curso03Php   curso03
Php curso03
 
Estructuras de control en la POO
Estructuras de control en la POOEstructuras de control en la POO
Estructuras de control en la POO
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Semana 2 Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
Semana 2   Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)Semana 2   Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
Semana 2 Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
 
Scripts
ScriptsScripts
Scripts
 
Tarea sesion3
Tarea sesion3Tarea sesion3
Tarea sesion3
 

Destacado

MATLAB Febrero - Practica 3
MATLAB Febrero - Practica 3MATLAB Febrero - Practica 3
MATLAB Febrero - Practica 3Jose Cordova
 
MATLAB Febrero - Practica 4
MATLAB Febrero - Practica 4MATLAB Febrero - Practica 4
MATLAB Febrero - Practica 4Jose Cordova
 
Practica 2 - VOIP II
Practica 2 - VOIP IIPractica 2 - VOIP II
Practica 2 - VOIP IIJose Cordova
 
MATLAB Febrero - Practica 2
MATLAB Febrero - Practica 2MATLAB Febrero - Practica 2
MATLAB Febrero - Practica 2Jose Cordova
 
MATLAB Marzo - Examen
MATLAB Marzo - ExamenMATLAB Marzo - Examen
MATLAB Marzo - ExamenJose Cordova
 
MATLAB Examen Junio 2010
MATLAB Examen Junio 2010MATLAB Examen Junio 2010
MATLAB Examen Junio 2010Jose Cordova
 
Practica 1 - VOIP II
Practica 1 - VOIP IIPractica 1 - VOIP II
Practica 1 - VOIP IIJose Cordova
 
EF - Indice de Libertad Economica 2006
EF - Indice de Libertad Economica 2006EF - Indice de Libertad Economica 2006
EF - Indice de Libertad Economica 2006Jose Cordova
 
Practica 3 Modified
Practica 3 ModifiedPractica 3 Modified
Practica 3 ModifiedJose Cordova
 
VOIP Practica 2 - Marzo
VOIP Practica 2 - MarzoVOIP Practica 2 - Marzo
VOIP Practica 2 - MarzoJose Cordova
 
VOIP Practica 1 - Marzo
VOIP Practica 1 - MarzoVOIP Practica 1 - Marzo
VOIP Practica 1 - MarzoJose Cordova
 
Using Asterisk to Create "Her"
Using Asterisk to Create "Her"Using Asterisk to Create "Her"
Using Asterisk to Create "Her"Mojo Lingo
 
MATLAB Examen - Enero
MATLAB Examen - EneroMATLAB Examen - Enero
MATLAB Examen - EneroJose Cordova
 
MATLAB - Practica 1 Junio 2010
MATLAB - Practica 1 Junio 2010MATLAB - Practica 1 Junio 2010
MATLAB - Practica 1 Junio 2010Jose Cordova
 

Destacado (20)

Practica 6
Practica 6Practica 6
Practica 6
 
MATLAB Febrero - Practica 3
MATLAB Febrero - Practica 3MATLAB Febrero - Practica 3
MATLAB Febrero - Practica 3
 
Practica 4
Practica 4Practica 4
Practica 4
 
MATLAB Febrero - Practica 4
MATLAB Febrero - Practica 4MATLAB Febrero - Practica 4
MATLAB Febrero - Practica 4
 
Practica 8
Practica 8Practica 8
Practica 8
 
Practica 2 - VOIP II
Practica 2 - VOIP IIPractica 2 - VOIP II
Practica 2 - VOIP II
 
MATLAB Febrero - Practica 2
MATLAB Febrero - Practica 2MATLAB Febrero - Practica 2
MATLAB Febrero - Practica 2
 
MATLAB Marzo - Examen
MATLAB Marzo - ExamenMATLAB Marzo - Examen
MATLAB Marzo - Examen
 
MATLAB Examen Junio 2010
MATLAB Examen Junio 2010MATLAB Examen Junio 2010
MATLAB Examen Junio 2010
 
Practica 1 - VOIP II
Practica 1 - VOIP IIPractica 1 - VOIP II
Practica 1 - VOIP II
 
EF - Indice de Libertad Economica 2006
EF - Indice de Libertad Economica 2006EF - Indice de Libertad Economica 2006
EF - Indice de Libertad Economica 2006
 
Practica 3 Modified
Practica 3 ModifiedPractica 3 Modified
Practica 3 Modified
 
VOIP Practica 2 - Marzo
VOIP Practica 2 - MarzoVOIP Practica 2 - Marzo
VOIP Practica 2 - Marzo
 
Cohon Gene
Cohon GeneCohon Gene
Cohon Gene
 
VOIP Practica 1 - Marzo
VOIP Practica 1 - MarzoVOIP Practica 1 - Marzo
VOIP Practica 1 - Marzo
 
VOIP II
VOIP IIVOIP II
VOIP II
 
Using Asterisk to Create "Her"
Using Asterisk to Create "Her"Using Asterisk to Create "Her"
Using Asterisk to Create "Her"
 
Asterisk World (January 2014) - Taking Enterprise Telephony into the Web World
Asterisk World (January 2014) - Taking Enterprise Telephony into the Web WorldAsterisk World (January 2014) - Taking Enterprise Telephony into the Web World
Asterisk World (January 2014) - Taking Enterprise Telephony into the Web World
 
MATLAB Examen - Enero
MATLAB Examen - EneroMATLAB Examen - Enero
MATLAB Examen - Enero
 
MATLAB - Practica 1 Junio 2010
MATLAB - Practica 1 Junio 2010MATLAB - Practica 1 Junio 2010
MATLAB - Practica 1 Junio 2010
 

Similar a Practica 5 (20)

procesos
procesosprocesos
procesos
 
Evidencia: Sesión Virtual Funciones PHP
Evidencia: Sesión Virtual Funciones PHPEvidencia: Sesión Virtual Funciones PHP
Evidencia: Sesión Virtual Funciones PHP
 
Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3
 
Curso c ii
Curso c iiCurso c ii
Curso c ii
 
Tutorial C++
Tutorial C++Tutorial C++
Tutorial C++
 
Ficheros C++
Ficheros C++Ficheros C++
Ficheros C++
 
Procesos
ProcesosProcesos
Procesos
 
Lecture 37
Lecture 37Lecture 37
Lecture 37
 
Procesos
ProcesosProcesos
Procesos
 
A1 u1-16230227
A1 u1-16230227A1 u1-16230227
A1 u1-16230227
 
Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
 
Programa
ProgramaPrograma
Programa
 
Funciones en C.docx
Funciones en C.docxFunciones en C.docx
Funciones en C.docx
 
Funciones C (gnu/linux)
Funciones C (gnu/linux)Funciones C (gnu/linux)
Funciones C (gnu/linux)
 
Tarea pagweb
Tarea pagwebTarea pagweb
Tarea pagweb
 
The original hacker Nro 1
The original hacker Nro 1The original hacker Nro 1
The original hacker Nro 1
 
Programacion iv sesion11 php
Programacion iv sesion11 phpProgramacion iv sesion11 php
Programacion iv sesion11 php
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
Usando flex en Windows
Usando flex en WindowsUsando flex en Windows
Usando flex en Windows
 
Viernes Tecnicos DTrace
Viernes Tecnicos DTraceViernes Tecnicos DTrace
Viernes Tecnicos DTrace
 

Practica 5

  • 1. Sistemas de VOIP – MODULO II Práctica 5 – Ing. José Córdova G.   Asterisk Gateway Interface PARTE I 1. Cree el archivo dicta.php que contendrá el código mostrado a continuación: #!/usr/bin/php -q <?php // Esta línea es para que que haga no mantenga en un buffer el output ob_implicit_flush(true); set_time_limit(6); error_reporting(0); // Se abren los diferentes archivos (STDIN, STDOUT y un archivo de log del AGI) $in = fopen("php://stdin","r"); $out = fopen("php://stdout","w"); $stdlog = fopen("/var/log/asterisk/my_agi.log", "w"); // Si debug es true, escribe en el archivo de log definido anteriormente $debug = true; // Toma el nombre del archivo con los números a dictar del primer parámetro $archivo = $argv[1]; // Define la funcion read, que lee el input del STDIN function read() { global $in, $debug, $stdlog; $input = str_replace("n", "", fgets($in, 4096)); if ($debug) fputs($stdlog, "read: $inputn"); return $input; } // Define la funcion write, que escribe el output en el STDOUT function write($line) { global $debug, $stdlog, $out; if ($debug) fputs($stdlog, "write: $linen"); fputs($out,$line."n"); fflush($out); } // Lee el archivo que se paso como parametro $lines = file($archivo); // Reproduce los digitos contenidos en cada linea del mismo informando en el log del foreach ($lines as $line) { $line=trim($line); for ($i=0;$i<strlen($line);$i++) { write("VERBOSE "REPRODUCIENDO DIGITO $line[$i]""); read(); write("SAY DIGITS $line[$i] """); read(); sleep(1); } } // Se cierran todos los handlers de archivos fclose($in); fclose($out); fclose($stdlog); exit; ?> 2. Cree el archivo numeros.txt conteniendo números a ser leídos desde el script creado en el numeral anterior. 3. Pruebe la ejecución del AGI de la siguiente manera:
  • 2. Sistemas de VOIP – MODULO II Práctica 5 – Ing. José Córdova G.   exten => 200,1,Answer(); exten => 200,2,AGI(dicta.php|/tmp/numeros.txt) exten => 200,3,Hangup() PARTE II 1. Cree una extensión para hacer un llamado a un script AGI escrito en PHP con la siguientes características: a. El script no recibe parámetros. b. Debe ejecutar: i. Un Playback de el archivo demo-congrats.gsm ii. Un Playback de los digitos 123456. PARTE III 1. Usando la configuración revisada en clase realice el ponchado de un cable T1 Crossover para ser utilizado en la practica de troncales digitales.