Asterisk-Java

                          Stefan Reuter
                              reucon


                          29...
Asterisk


Was ist Asterisk?



  • freie Telefonanlage in C unter GNU GPL f¨r Linux, Solaris, BSD
                       ...
Asterisk


Asterisk bietet drei wesentliche Schnittstellen


  • AMI: Asterisk Manager Interface
      • Sicht auf das kom...
Asterisk


F¨higkeiten der Schnittstellen
 a

               Anwendungsfall                       AMI   AGI   IAX
        ...
Asterisk-Java


Asterisk-Java



  • Java-Bibliothek f¨r AMI und AGI unter Apache Lizenz
                     u
  • 100% J...
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 ...
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...
Asterisk-Java


Fragen?



                http://asterisk-java.org




   Stefan Reuter (reucon)           Asterisk-Java ...
Nächste SlideShare
Wird geladen in …5
×

Asterisk-Java at JUGC 2009-05-29

3.100 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie, News & Politik
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
3.100
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
28
Aktionen
Geteilt
0
Downloads
50
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Asterisk-Java at JUGC 2009-05-29

  1. 1. Asterisk-Java Stefan Reuter reucon 29. Mai 2009 Stefan Reuter (reucon) Asterisk-Java 29. Mai 2009 1/8
  2. 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. 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. 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. 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. 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. 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. 8. Asterisk-Java Fragen? http://asterisk-java.org Stefan Reuter (reucon) Asterisk-Java 29. Mai 2009 8/8

×