Benutzer-Werkzeuge

Webseiten-Werkzeuge

StrukturPunkt
Klaus Franken

voipworkshop:voip-slides

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
voipworkshop:voip-slides [09.10.2008 19:38]
kfr
voipworkshop:voip-slides [17.03.2011 17:57] (aktuell)
kfr [Offene Punkte]
Zeile 10: Zeile 10:
 ===== Links / Doku ===== ===== Links / Doku =====
   * http://​StrukturPunkt.de/​voipworkshop/ ​   * http://​StrukturPunkt.de/​voipworkshop/ ​
-    * noch mehr: http://​strukturpunkt.de/​intern/​asteriskdoku+    * noch mehr: http://​strukturpunkt.de/​doku/​asteriskdoku
   * http://​www.asterisk.org   * http://​www.asterisk.org
   * www.das-asterisk-buch.de/​1.0/​index.html   * www.das-asterisk-buch.de/​1.0/​index.html
Zeile 28: Zeile 28:
 ===== Was ist VoIP ? ===== ===== Was ist VoIP ? =====
  
 +  * "Voice over IP"
   * Telefonie, aber über "​Internet-Technik"​   * Telefonie, aber über "​Internet-Technik"​
   * => "​Internet-Telefonie"​   * => "​Internet-Telefonie"​
 +
 +===== Vorteile von VoIP  =====
 +{{:​voipworkshop:​telefonkabel.jpg?​600|}}
 +
  
 ===== Vorteile von VoIP  ===== ===== Vorteile von VoIP  =====
Zeile 83: Zeile 88:
   * nur wenig Paketverluste:​ 2-5%   * nur wenig Paketverluste:​ 2-5%
   * QOS bei gleichzeitiger Nutzung   * QOS bei gleichzeitiger Nutzung
- 
- 
- 
-===== VoIP drahtlos ?  ===== 
-Warum nicht WLAN benutzen? 
-  * vorhandene Infrastruktur benutzen 
-  * Roaming einfach über verschiedene Access-Points 
-  * gute Verschlüsselung 
-  * unschädlicher als DECT (:?:) 
- 
-... 
- 
-===== VoIP drahtlos ?  ===== 
-Warum nicht WLAN benutzen? 
- 
-Weils nicht zuverlässig klappt: 
-  * VoIP-WLAN Geräte unzuverlässig 
-  * kleine WLAN-Störungen fallen sofort auf 
-  * WLAN ist ohne weitere Eingriffe nicht für Echtzeit ausgelegt 
- 
-Aber es gibt VoIP-DECT Geräte. 
 ===== VoIP-Protokolle ===== ===== VoIP-Protokolle =====
   * SIP: Session Initiation Protocoll   * SIP: Session Initiation Protocoll
     * RTP: Realtime Protocoll     * RTP: Realtime Protocoll
       * macht bei NAT Ärger       * macht bei NAT Ärger
-  * STUN: bei NAT benutzen+  * STUN: bei NAT benutzen ​(nur bei NAT !)
   * H.323   * H.323
   * IAX (Inter-Asterisk-eXchange Protokoll)   * IAX (Inter-Asterisk-eXchange Protokoll)
Zeile 114: Zeile 98:
 =====VoIP Codecs ===== =====VoIP Codecs =====
  
-Was ist ein Codec?  +  * Was ist ein Codec?  
-  * Audio-Digitalisierung +    * Audio-Digitalisierung 
-    * welche Frequenzen +      * welche Frequenzen 
-    * Anzahl/​Grösse Pakete +      * Anzahl/​Grösse Pakete 
-    * Komprimierung+      * Komprimierung
   * Muss vom Endgerät unterstützt werden   * Muss vom Endgerät unterstützt werden
   * Umwandlung z.T. teuer (Rechenleistung)   * Umwandlung z.T. teuer (Rechenleistung)
Zeile 130: Zeile 114:
     * rechenintensiv     * rechenintensiv
     * Skype benutzt (nicht offene) Variante     * Skype benutzt (nicht offene) Variante
- 
 ===== Was ist eine Telefonanlage?​ ===== ===== Was ist eine Telefonanlage?​ =====
   * stellt Verbindung her zwischen externen Anruf und internen Telefon(en)   * stellt Verbindung her zwischen externen Anruf und internen Telefon(en)
Zeile 139: Zeile 122:
  
 Wer sagt, dass das was mit ISDN, DECT, GSM oder Analogleitungen zu tun haben muss? Wer sagt, dass das was mit ISDN, DECT, GSM oder Analogleitungen zu tun haben muss?
 +
 +Vokabel:
 +  * PBX (Private Branch Exchange)
  
 ===== Was ist Asterisk? ===== ===== Was ist Asterisk? =====
Zeile 160: Zeile 146:
   * welche Version?   * welche Version?
     * Stabil: 1.4     * Stabil: 1.4
-===== Asterisk ​Compilieren ​=====+===== Asterisk ​Abhängigkeiten ​=====
  
 Benötigte Pakete: Benötigte Pakete:
Zeile 168: Zeile 154:
     * (Debian)     * (Debian)
     * "​einfacher:"​ apt-get install build-essential libreadline5-dev     * "​einfacher:"​ apt-get install build-essential libreadline5-dev
 +===== Asterisk Compilieren ​ =====
 Download, Compile, Install: Download, Compile, Install:
 <​code>​ <​code>​
 cd /usr/src cd /usr/src
-wget http://ftp.digium.com/​pub/​asterisk/​asterisk-1.4-current.tar.gz+wget http://downloads.digium.com/​pub/​asterisk/​asterisk-1.4-current.tar.gz
 tar xvzf asterisk-1.4-current.tar.gz tar xvzf asterisk-1.4-current.tar.gz
 cd asterisk-1.4.21.1/​ (oder was auch immer …) cd asterisk-1.4.21.1/​ (oder was auch immer …)
Zeile 181: Zeile 167:
  
 Unter /​etc/​asterisk/​ **müssen** diverse Konfigurationsdateien vorhanden sein, am einfachsten mit "make samples"​ (s.u.) erstellen lassen. :!: Unter /​etc/​asterisk/​ **müssen** diverse Konfigurationsdateien vorhanden sein, am einfachsten mit "make samples"​ (s.u.) erstellen lassen. :!:
 +
 ===== Asterisk optionale Dinge ===== ===== Asterisk optionale Dinge =====
 Für Beispiel-Konfigfiles:​ Für Beispiel-Konfigfiles:​
Zeile 201: Zeile 188:
 language=de language=de
 </​code>​ </​code>​
-  *  vi /​etc/​asterisk/​extensions.conf +  ​* Alternative pro Call: 
-    *  exten => 2200,​1,​Set(LANGUAGE()=de) ​FIXME+    ​*  vi /​etc/​asterisk/​extensions.conf 
 +      *  exten => 2200,​1,​Set(LANGUAGE()=de)
  
 Ohne deutsche Sprachdateien Probleme beim Mailbox-System. Es wurde versucht Datei "​digits/​1F.ulaw"​ bzw "​1F.gsm"​ abzuspielen,​ die es aber nicht gibt (im Standard). Ohne deutsche Sprachdateien Probleme beim Mailbox-System. Es wurde versucht Datei "​digits/​1F.ulaw"​ bzw "​1F.gsm"​ abzuspielen,​ die es aber nicht gibt (im Standard).
Zeile 222: Zeile 210:
       * messages => notice,​warning,​error,​verbose       * messages => notice,​warning,​error,​verbose
     * Logfile: %%/​var/​log/​asterisk/​messages%%     * Logfile: %%/​var/​log/​asterisk/​messages%%
-===== Asterisk Administration ===== 
-  * %%asterisk -rx "core set verbose 9"%% # Verbose-Level hochsetzen 
-  * %%asterisk -rx "​module reload"​%% # lädt alle Konfigfiles neu ein 
-  * %%asterisk -rx "​restart gracefully"​%% # startet neu falls kein Channel geöffnet 
-  * %%asterisk -rx "sip show channels"​%% # zeigt aktive Channels 
-  * %%asterisk -rx "sip show peers"​%% # zeigt alle Peers 
-  * %%asterisk -rx "iax2 set debug"​%% # iax-Protocoll debuggen 
-  * %%asterisk -rx "iax2 set debug off"%% # iax-Protocoll nicht mehr debuggen 
-  * %%asterisk -rx "​dialplan show 123456@strukturpunkt_out"​%% # Zeige dialplan für extension@context (was wäre wenn...) 
  
 ===== Asterisk Praxis 1 ===== ===== Asterisk Praxis 1 =====
Zeile 256: Zeile 235:
  
   * Extensions: die angerufene Nummer (engl. "​Nebenstelle"​)   * Extensions: die angerufene Nummer (engl. "​Nebenstelle"​)
-  * extensions.conf:​ Dialplan+  * extensions.conf:​ Dialplan ​(Wählplan)
     * eine Art BASIC-Script     * eine Art BASIC-Script
   * Context: es kann mehrere Abschnitte geben   * Context: es kann mehrere Abschnitte geben
 +    * Default: %%default%%
 +    * man kann z.B. ein SIP-Anschluss einem anderen Context zuweisen, dann anderer Diaplan
 +    * man kann im Dialplan Context wechseln
 + 
 +
 +===== Asterisk Administration =====
 +  * %%asterisk -rx "core set verbose 9"%% # Verbose-Level hochsetzen
 +  * %%asterisk -rx "​module reload"​%% # lädt alle Konfigfiles neu ein
 +  * %%asterisk -rx "​restart gracefully"​%% # startet neu falls kein Channel geöffnet
 +  * %%asterisk -rx "sip show channels"​%% # zeigt aktive Channels
 +  * %%asterisk -rx "sip show peers"​%% # zeigt alle Peers
 +  * %%asterisk -rx "iax2 set debug"​%% # iax-Protocoll debuggen
 +  * %%asterisk -rx "iax2 set debug off"%% # iax-Protocoll nicht mehr debuggen
 +  * %%asterisk -rx "​dialplan show 123456@strukturpunkt_out"​%% # Zeige dialplan für extension@context (was wäre wenn...)
 +
  
 ===== Hallo Welt ===== ===== Hallo Welt =====
Zeile 271: Zeile 265:
 secret=1234 secret=1234
 host=dynamic host=dynamic
 +canreinvite=no # wegen NAT/kein NAT
 +
  
 [0002] [0002]
Zeile 277: Zeile 273:
 secret=1234 secret=1234
 host=dynamic host=dynamic
 +canreinvite=no # wegen NAT/kein NAT
 </​code>​ </​code>​
 +
 ===== Hallo Welt (3) ===== ===== Hallo Welt (3) =====
   * /​etc/​asterisk/​extensions.conf <​code>​   * /​etc/​asterisk/​extensions.conf <​code>​
Zeile 283: Zeile 281:
 include => demo; im Echtsystem entfernen! include => demo; im Echtsystem entfernen!
  
-exten => 1001,​1,​Dial(SIP/​1001+exten => 0001,​1,​Dial(SIP/​0001
-exten => 1001,n,Hangup() +exten => 0001,2,Hangup() 
-exten => 1002,​1,​Dial(SIP/​1002+exten => 0002,​1,​Dial(SIP/​0002
-exten => 1002,n,Hangup()+exten => 0002,2,Hangup()
 </​code>​ </​code>​
  
 Syntax: <​code>​exten => Extension,​Priorität,​Applikation</​code>​ Syntax: <​code>​exten => Extension,​Priorität,​Applikation</​code>​
  
-Priorität "​n"​ <=> "Zeile vorher+1"​+
 ===== Hallo Welt Zusammenfassung ===== ===== Hallo Welt Zusammenfassung =====
  
Zeile 303: Zeile 301:
  
 => Praxis => Praxis
 +===== extensions.conf =====
 +
 +Eine "​Programmzeile"​ besteht aus:
 +  * [context]
 +  * extension
 +    * "​Nebenstelle"​
 +    * die gewählte Nummer
 +  * Priorität
 +    * beginnt immer bei "​1"​ und muss einzeln hochgezählt werden (1,2,3,...)
 +  * Kommando und Parameter
 +
  
 ===== Die nächsten Schritte ===== ===== Die nächsten Schritte =====
   * extensions.conf vereinfachen:​   * extensions.conf vereinfachen:​
 +    * Priorität "​n"​ <=> "Zeile vorher+1"​
     * mit regex für 1nnn arbeiten => eine Zeile <​code>​     * mit regex für 1nnn arbeiten => eine Zeile <​code>​
 ; alle 4 stelligen Nr. mit 1nnn intern zustellen ; alle 4 stelligen Nr. mit 1nnn intern zustellen
Zeile 320: Zeile 330:
     * externe IAX-Registration s.u.     * externe IAX-Registration s.u.
     * externe IAX-Rauswahl s.u.     * externe IAX-Rauswahl s.u.
 +
 +
 +===== Dialplan Beispiel =====
 +
 +<​code>​
 +exten => 0099,​1,​Set(e1=0001)
 +exten => 0099,​n,​Set(e2=0002)
 +exten => 0099,​n,​Dial(SIP/​${e1},​5)
 +exten => 0099,​n,​Playback(transfer)
 +exten => 0099,​n,​Dial(SIP/​${e2},​5)
 +exten => 0099,​n,​Dial(SIP/​${e1},​5)
 +exten => 0099,​n,​Gosub(testMenu,​s,​1)
 +exten => 0099,​n,​Playback(auth-thankyou)
 +exten => 0099,​n,​Hangup()
 +
 +[testMenu]
 +exten => s,​1,​Background(demo-instruct)
 +exten => s,​n,​Return()
 +exten => 1,​1,​Playback(transfer)
 +exten => 1,​n,​Dial(SIP/​0001,​5)
 +exten => 1,​n,​Return()
 +exten => 2,​1,​Playback(transfer)
 +exten => 2,​n,​Dial(SIP/​0002,​5)
 +exten => 2,​n,​Return()
 +</​code>​
 +
  
 ===== externe SIP Einwahl ===== ===== externe SIP Einwahl =====
Zeile 390: Zeile 426:
 exten => _ZX.,​n,​Hangup exten => _ZX.,​n,​Hangup
 </​code>​ </​code>​
- 
 ===== Voicemail ===== ===== Voicemail =====
  
   * /​etc/​asterisk/​voicemail.conf <​code>​   * /​etc/​asterisk/​voicemail.conf <​code>​
 +[general]
 +format=wav
 +
 1001 => 1001,Klaus Franken,​Klaus.Franken@StrukturPunkt.de,,​serveremail=Klaus.Franken@StrukturPunkt.de 1001 => 1001,Klaus Franken,​Klaus.Franken@StrukturPunkt.de,,​serveremail=Klaus.Franken@StrukturPunkt.de
 </​code>​ </​code>​
Zeile 413: Zeile 451:
 exten => 9999,​3,​Dial(SIP/​1000&​SIP/​1001,​20) exten => 9999,​3,​Dial(SIP/​1000&​SIP/​1001,​20)
 </​code>​ </​code>​
 +
 +===== VoIP drahtlos ?  =====
 +Warum nicht WLAN benutzen?
 +  * vorhandene Infrastruktur benutzen
 +  * Roaming einfach über verschiedene Access-Points
 +  * gute Verschlüsselung
 +  * unschädlicher als DECT (:?:)
 +
 +...
 +
 +===== VoIP drahtlos ?  =====
 +Warum nicht WLAN benutzen?
 +
 +Weils nicht zuverlässig klappt:
 +  * VoIP-WLAN Geräte unzuverlässig
 +  * kleine WLAN-Störungen fallen sofort auf
 +  * WLAN ist ohne weitere Eingriffe nicht für Echtzeit ausgelegt
 +
 +Aber es gibt VoIP-DECT Geräte.
 ===== Offene Punkte ===== ===== Offene Punkte =====
   * SIP Zeichnung ?   * SIP Zeichnung ?
Zeile 420: Zeile 477:
   * www.testyourvoip.com   * www.testyourvoip.com
     * testet voip-Fähigkeit des Internetanschlusses im Browser (Java-Anwendung)     * testet voip-Fähigkeit des Internetanschlusses im Browser (Java-Anwendung)
 +  * Sicherheit
 +
voipworkshop/voip-slides.1223573883.txt.gz · Zuletzt geändert: 09.10.2008 19:38 von kfr

oeffentlich