SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
Intranet UniEE:
Interface de voz

IES Uni Eibar-Ermua y eFaber


          Noviembre de 2007, Ermua-Eibar
¿Qué es VoIP?
Ejemplos




           ... y 1000s más
La voz como interface


 Ventajas
 Popularidad
 Innovación
¿Como es posible?

Web stack (SO, BD, RoR)
VoIP (Asterisk)
Ancho de banda
Los IVR dejan mucho que desear
Asterisk (conceptos)
                   http://asterisk.org


Centralita Open Source
(PBX)
Protocolos: SIP, IAX
Proveedores
Componentes
Clientes VoIP                                DID

                SIP, IAX   SIP, IAX




           ZAP                    SIP, IAX


  Red PSTN                            Terminación
Cliente softphone
Cliente hardware
Números públicos
DID y SIP URI
Demo


 Acceso con el número público: 943 xxxxxx
Aspectos técnicos


Arquitectura
Proveedores
Stack de software
AGI y AMI


      Asterisk Gateway Interface
      Asterisk Manager Interface
Telegraph
     http://telegraph.rubyforge.org



             MVC
             respond_to
Telegraph y AGI

exten => 105, 1, AGI(agi://127.0.0.1/my_route?param1=value)



wants.voice do
 render_voice do |voice|
    voice.play “hello-world”
    voice.link_to_dtmf 'bank-lineitem-menu' do
      link 1, :action=>"new"
      link 2, :action=>"list"
      link 3, :action=>"index"
    end
 end
end
Demo
Ejemplo de voice view

def show_notas
      @alumno = Alumno.find_by_dni(params[:dni])
      @notas = @alumno.notas_ultima_evaluacion
end




                  <% @notas.each do |nota| %>
                    <tr>
                      <td class="list"><%= nota.asignatura %></td>
                      <td class="list"><%= nota.nota %></td>
                    </tr>
                    <% end %>
Uso de Telegraph
$ script/plugin install svn://rubyforge.org/var/svn/telegraph/trunk




en /etc/asterisk/extensions.conf:
exten => 777,1, AGI(agi://192.168.1.1:4574/alumnos/index)




en app/controllers/alumnos_controller.rb:
def index
      respond_to do |wants|
        wants.html { render }
        wants.voice {
          render_voice { |voice| voice.play_sound "hello-world" }
        }
      end
end
Telegraph: configuración

$ vi config/telegraph.yaml


  development:
    agi_server: 127.0.0.1
    agi_port: 4574
    ami_server: druby://localhost:9000
    outgoing_call_path: /var/spool/asterisk/outgoing
    wakeup_call_path: /var/spool/asterisk/wakeups
    sound_path: /var/lib/asterisk/sounds
    recording_path: /var/lib/asterisk/sounds



$ script/agi_server
respond_to

         def index
           respond_to do |wants|
             wants.html { render }
             wants.voice { render_voice }
           end
         end


       $ vi app/views/alumnos/index.voice


       voice.play_sound "hello-world"
index

# index.rhtml
<h1>Consultas</h1>
<ul>
  <li> <%= link_to "Faltas", :action=>"faltas" %> </li>
  <li> <%= link_to "Notas",   :action=>"notas" %> </li>
</ul>




                     # index.voice
                     voice.play_sound 'thank-you-for-calling'
                     voice.link_to_dtmf 'presione1-2' do
                       link 1, :controller => "alumnos", :action => "faltas"
                       link 2, :action => "notas"
                     end
formulario

# notas.rhtml
<h1>Consultar notas</h1>
<% form_tag '/alumnos/show_notas' do %>
  DNI: <%= text_field_tag 'dni' %>
  <%= submit_tag 'Ver notas' %>
<% end %>




                           # notas.voice
                           voice.form :url=>{:controller =>
                           'alumnos', :action=>'show_notas'} do |form|
                            form.numeric_input 'dni', 'dni', :max_digits=>8
                           end
resultados
# show_notas rhtml
<h3>Notas de <%= @alumno.nombre %></h3>
<table class="list">
  <% @notas.each do |nota| %>
  <tr>
    <td class="list"><%= nota.asignatura %></td>
    <td class="list"><%= nota.nota %></td>
  </tr>
  <% end %>
</table>


                                      # show.voice
                                      @notas.each do |nota|
                                          voice.play nota.asignatura.to_slug
                                          voice.play nota.nota
                                      end
                                      sleep 2.seconds
                                      voice.play "vm-goodbye"
No hay que pasarse


     Web vs Mobile web vs Voz
     ej: 466453.com
Links
 http://www.iesunibhi.com

 tel: 943 560009

 http://asterisk.org

 http://www.rubyonrails.org

 http://www.voip-info.org

 http://telegraph.rubyforge.org

 http://telegraph.rubyforge.org/wiki/wiki.pl?UsingAGI
Contacto:

IES Uni EE BHI              eFaber S.L.
Avenida Otaola, 29          Máximo Aguirre 11, 5 izq
20600 EIBAR                 48011 Bilbao
Telf: 943-20.84.44          Telf: 94 4723589
Fax: 943-20.31.96           E-mail: info@efaber.ney
E-mail: uni@iesunibhi.com   http://www.efaber.net
http://www.iesunibhi.com

Bº Ongarai s/n
48260 ERMUA (Bizkaia)
Telf: 943-17.62.57
Fax: 943-17.64.50
E-mail: uni@iesunibhi.com
http://www.iesunibhi.com

Mais conteúdo relacionado

Semelhante a Interface de voz

Twig avanzado (sf2Vigo)
Twig avanzado (sf2Vigo)Twig avanzado (sf2Vigo)
Twig avanzado (sf2Vigo)Javier Eguiluz
 
Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8Javier 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
 
Symfony: Domesticando las Vistas - decharlas
Symfony: Domesticando las Vistas - decharlasSymfony: Domesticando las Vistas - decharlas
Symfony: Domesticando las Vistas - decharlasDecharlas
 
Symfony: Domesticando las Vistas
Symfony: Domesticando las VistasSymfony: Domesticando las Vistas
Symfony: Domesticando las VistasJose Antonio Pio
 
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)lenny
 
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)INSIGNIA4U
 
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webGroovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webParadigma Digital
 
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsCambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsFátima Casaú Pérez
 
Construyendo tu ecosistema de desarrollo web
Construyendo tu ecosistema de desarrollo webConstruyendo tu ecosistema de desarrollo web
Construyendo tu ecosistema de desarrollo webAlfredo Fernández López
 
Servicios Rest con Jersey
Servicios Rest con Jersey Servicios Rest con Jersey
Servicios Rest con Jersey Vortexbird
 
Web services restful con JAX-RS
Web services restful con JAX-RSWeb services restful con JAX-RS
Web services restful con JAX-RSVortexbird
 

Semelhante a Interface de voz (20)

Twig avanzado (sf2Vigo)
Twig avanzado (sf2Vigo)Twig avanzado (sf2Vigo)
Twig avanzado (sf2Vigo)
 
Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8
 
Introducción a DJango
Introducción a DJangoIntroducción a DJango
Introducción a DJango
 
Desymfony 2011 - Twig
Desymfony 2011 - TwigDesymfony 2011 - Twig
Desymfony 2011 - Twig
 
Guiapractica de bd completa
Guiapractica de bd completaGuiapractica de bd completa
Guiapractica de bd completa
 
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...
 
Symfony: Domesticando las Vistas - decharlas
Symfony: Domesticando las Vistas - decharlasSymfony: Domesticando las Vistas - decharlas
Symfony: Domesticando las Vistas - decharlas
 
Symfony: Domesticando las Vistas
Symfony: Domesticando las VistasSymfony: Domesticando las Vistas
Symfony: Domesticando las Vistas
 
XML - Introducción
XML - IntroducciónXML - Introducción
XML - Introducción
 
Tecnologias Web Semantica
Tecnologias Web SemanticaTecnologias Web Semantica
Tecnologias Web Semantica
 
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
 
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
 
Introducción a Flask
Introducción a FlaskIntroducción a Flask
Introducción a Flask
 
Espacios de nombres en XML
Espacios de nombres en XMLEspacios de nombres en XML
Espacios de nombres en XML
 
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webGroovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
 
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsCambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
 
Construyendo tu ecosistema de desarrollo web
Construyendo tu ecosistema de desarrollo webConstruyendo tu ecosistema de desarrollo web
Construyendo tu ecosistema de desarrollo web
 
Servicios Rest con Jersey
Servicios Rest con Jersey Servicios Rest con Jersey
Servicios Rest con Jersey
 
Web services restful con JAX-RS
Web services restful con JAX-RSWeb services restful con JAX-RS
Web services restful con JAX-RS
 
Sesión Virtual
Sesión VirtualSesión Virtual
Sesión Virtual
 

Mais de Svet Ivantchev

Machne Learning and Human Learning (2013).
Machne Learning and Human Learning (2013).Machne Learning and Human Learning (2013).
Machne Learning and Human Learning (2013).Svet Ivantchev
 
Big Data: 
Some Questions in its Use in Applied Economics (2017)
Big Data: 
Some Questions in its Use in Applied Economics (2017)Big Data: 
Some Questions in its Use in Applied Economics (2017)
Big Data: 
Some Questions in its Use in Applied Economics (2017)Svet Ivantchev
 
Introducción a Elixir
Introducción a ElixirIntroducción a Elixir
Introducción a ElixirSvet Ivantchev
 
Gaztea Tech Robotica 2016
Gaztea Tech Robotica 2016Gaztea Tech Robotica 2016
Gaztea Tech Robotica 2016Svet Ivantchev
 
Gaztea Tech 2015: 4. GT Drawbot Control
Gaztea Tech 2015: 4. GT Drawbot ControlGaztea Tech 2015: 4. GT Drawbot Control
Gaztea Tech 2015: 4. GT Drawbot ControlSvet Ivantchev
 
Gaztea Tech 2015: 3. Processing y Firmata
Gaztea Tech 2015: 3. Processing y FirmataGaztea Tech 2015: 3. Processing y Firmata
Gaztea Tech 2015: 3. Processing y FirmataSvet Ivantchev
 
Gaztea Tech 2015: 2. El GT DrawBot
Gaztea Tech 2015: 2. El GT DrawBotGaztea Tech 2015: 2. El GT DrawBot
Gaztea Tech 2015: 2. El GT DrawBotSvet Ivantchev
 
Gaztea Tech 2015: 1. Introducción al Arduino
Gaztea Tech 2015: 1. Introducción al ArduinoGaztea Tech 2015: 1. Introducción al Arduino
Gaztea Tech 2015: 1. Introducción al ArduinoSvet Ivantchev
 
Learning Analytics and Online Learning: New Oportunities?
Learning Analytics and Online Learning: New Oportunities?Learning Analytics and Online Learning: New Oportunities?
Learning Analytics and Online Learning: New Oportunities?Svet Ivantchev
 
How Machine Learning and Big Data can Help Us with the Human Learning
How Machine Learning and Big Data can Help Us with the Human LearningHow Machine Learning and Big Data can Help Us with the Human Learning
How Machine Learning and Big Data can Help Us with the Human LearningSvet Ivantchev
 
Libros electrónicos IV: ePub 2
Libros electrónicos IV: ePub 2Libros electrónicos IV: ePub 2
Libros electrónicos IV: ePub 2Svet Ivantchev
 
Libros electrónicos III
Libros electrónicos IIILibros electrónicos III
Libros electrónicos IIISvet Ivantchev
 
Libros electrónicos II - ePub
Libros electrónicos II - ePubLibros electrónicos II - ePub
Libros electrónicos II - ePubSvet Ivantchev
 
Libros electrónicos I
Libros electrónicos ILibros electrónicos I
Libros electrónicos ISvet Ivantchev
 
Cloud Computing: Just Do It
Cloud Computing: Just Do ItCloud Computing: Just Do It
Cloud Computing: Just Do ItSvet Ivantchev
 
Cloud Computing: What it is, DOs and DON'Ts
Cloud Computing: What it is, DOs and DON'TsCloud Computing: What it is, DOs and DON'Ts
Cloud Computing: What it is, DOs and DON'TsSvet Ivantchev
 
Los mitos de la innovación
Los mitos de la innovaciónLos mitos de la innovación
Los mitos de la innovaciónSvet Ivantchev
 

Mais de Svet Ivantchev (20)

Machne Learning and Human Learning (2013).
Machne Learning and Human Learning (2013).Machne Learning and Human Learning (2013).
Machne Learning and Human Learning (2013).
 
Big Data: 
Some Questions in its Use in Applied Economics (2017)
Big Data: 
Some Questions in its Use in Applied Economics (2017)Big Data: 
Some Questions in its Use in Applied Economics (2017)
Big Data: 
Some Questions in its Use in Applied Economics (2017)
 
Introducción a Elixir
Introducción a ElixirIntroducción a Elixir
Introducción a Elixir
 
Gaztea Tech Robotica 2016
Gaztea Tech Robotica 2016Gaztea Tech Robotica 2016
Gaztea Tech Robotica 2016
 
Gaztea Tech 2015: 4. GT Drawbot Control
Gaztea Tech 2015: 4. GT Drawbot ControlGaztea Tech 2015: 4. GT Drawbot Control
Gaztea Tech 2015: 4. GT Drawbot Control
 
Gaztea Tech 2015: 3. Processing y Firmata
Gaztea Tech 2015: 3. Processing y FirmataGaztea Tech 2015: 3. Processing y Firmata
Gaztea Tech 2015: 3. Processing y Firmata
 
Gaztea Tech 2015: 2. El GT DrawBot
Gaztea Tech 2015: 2. El GT DrawBotGaztea Tech 2015: 2. El GT DrawBot
Gaztea Tech 2015: 2. El GT DrawBot
 
Gaztea Tech 2015: 1. Introducción al Arduino
Gaztea Tech 2015: 1. Introducción al ArduinoGaztea Tech 2015: 1. Introducción al Arduino
Gaztea Tech 2015: 1. Introducción al Arduino
 
Learning Analytics and Online Learning: New Oportunities?
Learning Analytics and Online Learning: New Oportunities?Learning Analytics and Online Learning: New Oportunities?
Learning Analytics and Online Learning: New Oportunities?
 
How Machine Learning and Big Data can Help Us with the Human Learning
How Machine Learning and Big Data can Help Us with the Human LearningHow Machine Learning and Big Data can Help Us with the Human Learning
How Machine Learning and Big Data can Help Us with the Human Learning
 
Vienen los Drones!
Vienen los Drones!Vienen los Drones!
Vienen los Drones!
 
Data Science
Data ScienceData Science
Data Science
 
Libros electrónicos IV: ePub 2
Libros electrónicos IV: ePub 2Libros electrónicos IV: ePub 2
Libros electrónicos IV: ePub 2
 
Libros electrónicos III
Libros electrónicos IIILibros electrónicos III
Libros electrónicos III
 
Libros electrónicos II - ePub
Libros electrónicos II - ePubLibros electrónicos II - ePub
Libros electrónicos II - ePub
 
Libros electrónicos I
Libros electrónicos ILibros electrónicos I
Libros electrónicos I
 
Cloud Computing: Just Do It
Cloud Computing: Just Do ItCloud Computing: Just Do It
Cloud Computing: Just Do It
 
Cloud Computing: What it is, DOs and DON'Ts
Cloud Computing: What it is, DOs and DON'TsCloud Computing: What it is, DOs and DON'Ts
Cloud Computing: What it is, DOs and DON'Ts
 
BigData
BigDataBigData
BigData
 
Los mitos de la innovación
Los mitos de la innovaciónLos mitos de la innovación
Los mitos de la innovación
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 

Último (11)

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 

Interface de voz

  • 1. Intranet UniEE: Interface de voz IES Uni Eibar-Ermua y eFaber Noviembre de 2007, Ermua-Eibar
  • 3. Ejemplos ... y 1000s más
  • 4. La voz como interface Ventajas Popularidad Innovación
  • 5. ¿Como es posible? Web stack (SO, BD, RoR) VoIP (Asterisk) Ancho de banda Los IVR dejan mucho que desear
  • 6. Asterisk (conceptos) http://asterisk.org Centralita Open Source (PBX) Protocolos: SIP, IAX Proveedores
  • 7. Componentes Clientes VoIP DID SIP, IAX SIP, IAX ZAP SIP, IAX Red PSTN Terminación
  • 11. DID y SIP URI
  • 12. Demo Acceso con el número público: 943 xxxxxx
  • 14. AGI y AMI Asterisk Gateway Interface Asterisk Manager Interface
  • 15. Telegraph http://telegraph.rubyforge.org MVC respond_to
  • 16. Telegraph y AGI exten => 105, 1, AGI(agi://127.0.0.1/my_route?param1=value) wants.voice do render_voice do |voice| voice.play “hello-world” voice.link_to_dtmf 'bank-lineitem-menu' do link 1, :action=>"new" link 2, :action=>"list" link 3, :action=>"index" end end end
  • 17. Demo
  • 18.
  • 19.
  • 20. Ejemplo de voice view def show_notas @alumno = Alumno.find_by_dni(params[:dni]) @notas = @alumno.notas_ultima_evaluacion end <% @notas.each do |nota| %> <tr> <td class="list"><%= nota.asignatura %></td> <td class="list"><%= nota.nota %></td> </tr> <% end %>
  • 21. Uso de Telegraph $ script/plugin install svn://rubyforge.org/var/svn/telegraph/trunk en /etc/asterisk/extensions.conf: exten => 777,1, AGI(agi://192.168.1.1:4574/alumnos/index) en app/controllers/alumnos_controller.rb: def index respond_to do |wants| wants.html { render } wants.voice { render_voice { |voice| voice.play_sound "hello-world" } } end end
  • 22. Telegraph: configuración $ vi config/telegraph.yaml development: agi_server: 127.0.0.1 agi_port: 4574 ami_server: druby://localhost:9000 outgoing_call_path: /var/spool/asterisk/outgoing wakeup_call_path: /var/spool/asterisk/wakeups sound_path: /var/lib/asterisk/sounds recording_path: /var/lib/asterisk/sounds $ script/agi_server
  • 23. respond_to def index respond_to do |wants| wants.html { render } wants.voice { render_voice } end end $ vi app/views/alumnos/index.voice voice.play_sound "hello-world"
  • 24. index # index.rhtml <h1>Consultas</h1> <ul> <li> <%= link_to "Faltas", :action=>"faltas" %> </li> <li> <%= link_to "Notas", :action=>"notas" %> </li> </ul> # index.voice voice.play_sound 'thank-you-for-calling' voice.link_to_dtmf 'presione1-2' do link 1, :controller => "alumnos", :action => "faltas" link 2, :action => "notas" end
  • 25. formulario # notas.rhtml <h1>Consultar notas</h1> <% form_tag '/alumnos/show_notas' do %> DNI: <%= text_field_tag 'dni' %> <%= submit_tag 'Ver notas' %> <% end %> # notas.voice voice.form :url=>{:controller => 'alumnos', :action=>'show_notas'} do |form| form.numeric_input 'dni', 'dni', :max_digits=>8 end
  • 26. resultados # show_notas rhtml <h3>Notas de <%= @alumno.nombre %></h3> <table class="list"> <% @notas.each do |nota| %> <tr> <td class="list"><%= nota.asignatura %></td> <td class="list"><%= nota.nota %></td> </tr> <% end %> </table> # show.voice @notas.each do |nota| voice.play nota.asignatura.to_slug voice.play nota.nota end sleep 2.seconds voice.play "vm-goodbye"
  • 27.
  • 28.
  • 29. No hay que pasarse Web vs Mobile web vs Voz ej: 466453.com
  • 30. Links http://www.iesunibhi.com tel: 943 560009 http://asterisk.org http://www.rubyonrails.org http://www.voip-info.org http://telegraph.rubyforge.org http://telegraph.rubyforge.org/wiki/wiki.pl?UsingAGI
  • 31. Contacto: IES Uni EE BHI eFaber S.L. Avenida Otaola, 29 Máximo Aguirre 11, 5 izq 20600 EIBAR 48011 Bilbao Telf: 943-20.84.44 Telf: 94 4723589 Fax: 943-20.31.96 E-mail: info@efaber.ney E-mail: uni@iesunibhi.com http://www.efaber.net http://www.iesunibhi.com Bº Ongarai s/n 48260 ERMUA (Bizkaia) Telf: 943-17.62.57 Fax: 943-17.64.50 E-mail: uni@iesunibhi.com http://www.iesunibhi.com