SlideShare ist ein Scribd-Unternehmen logo
Asterisk-Java

                          Stefan Reuter
                              reucon


                          29. Mai 2009




Stefan Reuter (reucon)      Asterisk-Java   29. Mai 2009   1/8
Asterisk


Was ist Asterisk?



  • freie Telefonanlage in C unter GNU GPL f¨r Linux, Solaris, BSD
                                            u
  • unterst¨tzt VoIP, analoge sowie ISDN BRI und PRI Anschl¨sse
           u                                               u
  • Anwendungen:
      • Anrufbeantworter
      • Telefonkonferenzen
      • Anfrufverteilung im Call-Center mit Warteschleife
      • Sprachaufzeichnung
      • Sprachdialoge (IVR)
  • zahlreiche Distributionen wie AsteriskNOW, FreePBX, Trixbox oder
    Gemeinschaft




   Stefan Reuter (reucon)       Asterisk-Java             29. Mai 2009   2/8
Asterisk


Asterisk bietet drei wesentliche Schnittstellen


  • AMI: Asterisk Manager Interface
      • Sicht auf das komplette System
      • Alle Anrufe, Nebenstellen, Konferenzen, Agenten
      • Events, Actions und Responses
      • Typische Anwendung: Click to Call, Dashboard
  • AGI: Asterisk Gateway Interface
      • Analog zu (Fast-)CGI uber TCP
                              ¨
      • Ablaufsteuerung f¨r einen Anruf
                         u
      • Abspielen von Voiceprompts, Erkennen von DTMF, Spracherkennung
      • Typische Anwendung: Sprachdialogsystem (IVR)
  • IAX: Inter Asterisk Exchange Protocol
      • Zugriff auf Mediastream eines Anrufs
      • Typische Anwendung: Softphone



   Stefan Reuter (reucon)        Asterisk-Java             29. Mai 2009   3/8
Asterisk


F¨higkeiten der Schnittstellen
 a

               Anwendungsfall                       AMI   AGI   IAX
               Anruf initiieren                                 
               Anruf weiterleiten                              
               Aktive Anrufe abfragen                
               Status Nebenstelle abfragen           
               Aufzeichnung starten/stoppen              
               Mediadaten empfangen                             
               Dialplan ver¨ndern
                             a                      
               Act as IVR application                     
               Act as soft phone                                
               Act as endpoint/caller                          
               Click to call                        
               Dashboard                            


   Stefan Reuter (reucon)           Asterisk-Java                 29. Mai 2009   4/8
Asterisk-Java


Asterisk-Java



  • Java-Bibliothek f¨r AMI und AGI unter Apache Lizenz
                     u
  • 100% Java, Kommunikation uber TCP/IP
                             ¨
  • vereinfachte Nutzung von AMI durch stateful Live API
  • unterst¨tzt Java 6 ScriptEngines f¨r die Entwicklung von AGIs
           u                          u
    (JavaScript, Groovy, JRuby, Jython, PHP, ...)
  • einfache Integration in Container wie Spring, Tomcat oder JBoss
  • In Vorbereitung: Unterst¨tzung von IAX
                            u




   Stefan Reuter (reucon)           Asterisk-Java          29. Mai 2009   5/8
Asterisk-Java


Beispiel: AMI

public c l a s s HelloAmi
{
  p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s )
  {
     A s t e r i s k S e r v e r pbx ;
     pbx = new D e f a u l t A s t e r i s k S e r v e r (
         ” pbx . e x a m p l e . com” , ” u s e r ” , ” p a s s ” ) ;

        pbx . o r i g i n a t e T o E x t e n s i o n (
          ” SIP / phone −01” ,                          // Q u e l l e
          ” n a t i o n a l ” , ” 0221123456 ” , 1 , // Z i e l
          20000 L ) ;                                   // Timeout
    }
}

    Stefan Reuter (reucon)               Asterisk-Java                  29. Mai 2009   6/8
Asterisk-Java


Beispiel: AGI


p u b l i c c l a s s H e l l o A g i S c r i p t implements A g i S c r i p t
{
   public void s e r v i c e ( AgiRequest request ,
                                       AgiChannel channel )
       throws A g i E x c e p t i o n
   {
        channel . answer ( ) ;
        channel . streamFile (” h e l l o ” ) ;
        c h a n n e l . hangup ( ) ;
   }
}



    Stefan Reuter (reucon)              Asterisk-Java                 29. Mai 2009   7/8
Asterisk-Java


Fragen?



                http://asterisk-java.org




   Stefan Reuter (reucon)           Asterisk-Java   29. Mai 2009   8/8

Weitere ähnliche Inhalte

Andere mochten auch

Rollos tomo 2-Alfa y Omega
Rollos tomo 2-Alfa y OmegaRollos tomo 2-Alfa y Omega
Rollos tomo 2-Alfa y Omega
Anuario Bardales
 
Impactia: análisis de la producción científica del SSPA en la Biblioteca Vir...
Impactia: análisis de la producción científica del SSPA  en la Biblioteca Vir...Impactia: análisis de la producción científica del SSPA  en la Biblioteca Vir...
Impactia: análisis de la producción científica del SSPA en la Biblioteca Vir...
Biblioteca Virtual del Sistema Sanitario Publico de Andalucia (BV-SSPA)
 
Eyaculación Precoz en Boston Medical Group
Eyaculación Precoz en Boston Medical GroupEyaculación Precoz en Boston Medical Group
Eyaculación Precoz en Boston Medical Group
BMG Latinoamérica
 
Ferrovial Presentación Inversores 2011
Ferrovial Presentación Inversores 2011Ferrovial Presentación Inversores 2011
Ferrovial Presentación Inversores 2011
Ferrovial
 
BOA Members Directory
BOA Members DirectoryBOA Members Directory
BOA Members Directory
dowsongary
 
GHM Eclatec B.V. presentatie
GHM Eclatec B.V. presentatieGHM Eclatec B.V. presentatie
GHM Eclatec B.V. presentatie
GHMEclatec
 
Tablas de multiplicar
Tablas de multiplicarTablas de multiplicar
Tablas de multiplicar
Luis Fernando
 
como ser padres en el siglo XXI
como ser padres en el siglo XXIcomo ser padres en el siglo XXI
como ser padres en el siglo XXI
UCV
 
El uso de las Webquest como herramienta para el fortalecimiento de la lectoes...
El uso de las Webquest como herramienta para el fortalecimiento de la lectoes...El uso de las Webquest como herramienta para el fortalecimiento de la lectoes...
El uso de las Webquest como herramienta para el fortalecimiento de la lectoes...
sofia0928
 
infografia adidas
infografia adidasinfografia adidas
infografia adidas
Rogger Rendon
 
school2.@ México
school2.@ Méxicoschool2.@ México
school2.@ México
Begoña Fernández Palma
 
08 OEE Red Diamond AUG15
08 OEE Red Diamond AUG1508 OEE Red Diamond AUG15
08 OEE Red Diamond AUG15
Angela McClain Wilkins
 
Investment platform
Investment platformInvestment platform
Investment platform
Louis van der Merwe
 
Educacion prohibida por Yahaira Betancourt
Educacion prohibida por Yahaira BetancourtEducacion prohibida por Yahaira Betancourt
Educacion prohibida por Yahaira Betancourt
yahairabetancourt
 
Dogma y rituales de la alta magia primera parte
Dogma y rituales de la alta magia primera parteDogma y rituales de la alta magia primera parte
Dogma y rituales de la alta magia primera parte
lapsus37angelus
 
Always-on Digital Marketing: 7 Things We've Learned by Zeus Jones
Always-on Digital Marketing: 7 Things We've Learned by Zeus JonesAlways-on Digital Marketing: 7 Things We've Learned by Zeus Jones
Always-on Digital Marketing: 7 Things We've Learned by Zeus Jones
Zeus Jones
 

Andere mochten auch (16)

Rollos tomo 2-Alfa y Omega
Rollos tomo 2-Alfa y OmegaRollos tomo 2-Alfa y Omega
Rollos tomo 2-Alfa y Omega
 
Impactia: análisis de la producción científica del SSPA en la Biblioteca Vir...
Impactia: análisis de la producción científica del SSPA  en la Biblioteca Vir...Impactia: análisis de la producción científica del SSPA  en la Biblioteca Vir...
Impactia: análisis de la producción científica del SSPA en la Biblioteca Vir...
 
Eyaculación Precoz en Boston Medical Group
Eyaculación Precoz en Boston Medical GroupEyaculación Precoz en Boston Medical Group
Eyaculación Precoz en Boston Medical Group
 
Ferrovial Presentación Inversores 2011
Ferrovial Presentación Inversores 2011Ferrovial Presentación Inversores 2011
Ferrovial Presentación Inversores 2011
 
BOA Members Directory
BOA Members DirectoryBOA Members Directory
BOA Members Directory
 
GHM Eclatec B.V. presentatie
GHM Eclatec B.V. presentatieGHM Eclatec B.V. presentatie
GHM Eclatec B.V. presentatie
 
Tablas de multiplicar
Tablas de multiplicarTablas de multiplicar
Tablas de multiplicar
 
como ser padres en el siglo XXI
como ser padres en el siglo XXIcomo ser padres en el siglo XXI
como ser padres en el siglo XXI
 
El uso de las Webquest como herramienta para el fortalecimiento de la lectoes...
El uso de las Webquest como herramienta para el fortalecimiento de la lectoes...El uso de las Webquest como herramienta para el fortalecimiento de la lectoes...
El uso de las Webquest como herramienta para el fortalecimiento de la lectoes...
 
infografia adidas
infografia adidasinfografia adidas
infografia adidas
 
school2.@ México
school2.@ Méxicoschool2.@ México
school2.@ México
 
08 OEE Red Diamond AUG15
08 OEE Red Diamond AUG1508 OEE Red Diamond AUG15
08 OEE Red Diamond AUG15
 
Investment platform
Investment platformInvestment platform
Investment platform
 
Educacion prohibida por Yahaira Betancourt
Educacion prohibida por Yahaira BetancourtEducacion prohibida por Yahaira Betancourt
Educacion prohibida por Yahaira Betancourt
 
Dogma y rituales de la alta magia primera parte
Dogma y rituales de la alta magia primera parteDogma y rituales de la alta magia primera parte
Dogma y rituales de la alta magia primera parte
 
Always-on Digital Marketing: 7 Things We've Learned by Zeus Jones
Always-on Digital Marketing: 7 Things We've Learned by Zeus JonesAlways-on Digital Marketing: 7 Things We've Learned by Zeus Jones
Always-on Digital Marketing: 7 Things We've Learned by Zeus Jones
 

Asterisk-Java at JUGC 2009-05-29

  • 1. Asterisk-Java Stefan Reuter reucon 29. Mai 2009 Stefan Reuter (reucon) Asterisk-Java 29. Mai 2009 1/8
  • 2. Asterisk Was ist Asterisk? • freie Telefonanlage in C unter GNU GPL f¨r Linux, Solaris, BSD u • unterst¨tzt VoIP, analoge sowie ISDN BRI und PRI Anschl¨sse u u • Anwendungen: • Anrufbeantworter • Telefonkonferenzen • Anfrufverteilung im Call-Center mit Warteschleife • Sprachaufzeichnung • Sprachdialoge (IVR) • zahlreiche Distributionen wie AsteriskNOW, FreePBX, Trixbox oder Gemeinschaft Stefan Reuter (reucon) Asterisk-Java 29. Mai 2009 2/8
  • 3. Asterisk Asterisk bietet drei wesentliche Schnittstellen • AMI: Asterisk Manager Interface • Sicht auf das komplette System • Alle Anrufe, Nebenstellen, Konferenzen, Agenten • Events, Actions und Responses • Typische Anwendung: Click to Call, Dashboard • AGI: Asterisk Gateway Interface • Analog zu (Fast-)CGI uber TCP ¨ • Ablaufsteuerung f¨r einen Anruf u • Abspielen von Voiceprompts, Erkennen von DTMF, Spracherkennung • Typische Anwendung: Sprachdialogsystem (IVR) • IAX: Inter Asterisk Exchange Protocol • Zugriff auf Mediastream eines Anrufs • Typische Anwendung: Softphone Stefan Reuter (reucon) Asterisk-Java 29. Mai 2009 3/8
  • 4. Asterisk F¨higkeiten der Schnittstellen a Anwendungsfall AMI AGI IAX Anruf initiieren Anruf weiterleiten Aktive Anrufe abfragen Status Nebenstelle abfragen Aufzeichnung starten/stoppen Mediadaten empfangen Dialplan ver¨ndern a Act as IVR application Act as soft phone Act as endpoint/caller Click to call Dashboard Stefan Reuter (reucon) Asterisk-Java 29. Mai 2009 4/8
  • 5. Asterisk-Java Asterisk-Java • Java-Bibliothek f¨r AMI und AGI unter Apache Lizenz u • 100% Java, Kommunikation uber TCP/IP ¨ • vereinfachte Nutzung von AMI durch stateful Live API • unterst¨tzt Java 6 ScriptEngines f¨r die Entwicklung von AGIs u u (JavaScript, Groovy, JRuby, Jython, PHP, ...) • einfache Integration in Container wie Spring, Tomcat oder JBoss • In Vorbereitung: Unterst¨tzung von IAX u Stefan Reuter (reucon) Asterisk-Java 29. Mai 2009 5/8
  • 6. Asterisk-Java Beispiel: AMI public c l a s s HelloAmi { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { A s t e r i s k S e r v e r pbx ; pbx = new D e f a u l t A s t e r i s k S e r v e r ( ” pbx . e x a m p l e . com” , ” u s e r ” , ” p a s s ” ) ; pbx . o r i g i n a t e T o E x t e n s i o n ( ” SIP / phone −01” , // Q u e l l e ” n a t i o n a l ” , ” 0221123456 ” , 1 , // Z i e l 20000 L ) ; // Timeout } } Stefan Reuter (reucon) Asterisk-Java 29. Mai 2009 6/8
  • 7. Asterisk-Java Beispiel: AGI p u b l i c c l a s s H e l l o A g i S c r i p t implements A g i S c r i p t { public void s e r v i c e ( AgiRequest request , AgiChannel channel ) throws A g i E x c e p t i o n { channel . answer ( ) ; channel . streamFile (” h e l l o ” ) ; c h a n n e l . hangup ( ) ; } } Stefan Reuter (reucon) Asterisk-Java 29. Mai 2009 7/8
  • 8. Asterisk-Java Fragen? http://asterisk-java.org Stefan Reuter (reucon) Asterisk-Java 29. Mai 2009 8/8