Wer sagt, dass es was mit ISDN, GSM, UMTS oder Analogleitungen zu tun haben muss?
Hardware:
Bandbreite:
Qualität:
Wer sagt, dass das Hardware sein muss?
Wer sagt, dass das was mit ISDN, DECT, GSM oder Analogleitungen zu tun haben muss?
Vokabel:
Benötigte Pakete:
Download, Compile, Install:
cd /usr/src wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz tar xvzf asterisk-1.4-current.tar.gz cd asterisk-1.4.21.1/ (oder was auch immer …) ./configure make make install
Unter /etc/asterisk/ müssen diverse Konfigurationsdateien vorhanden sein, am einfachsten mit „make samples“ (s.u.) erstellen lassen.
Für Beispiel-Konfigfiles:
make samples
Deutsche Sprachdateien:
[general] ... 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).
asterisk
asterisk -r core set verbose 9
Ziel: Jedes Team eigener Asterisk-Server (noch ohne Clients).
Channels: die Verbindung zwischen zwei Punkten (in unserem Fall sind das meistens menschliche Gesprächsteilnehmer). Es gibt folgende Channel-Arten:
Die Unterscheidung der Begriffe Peer, User und Friend ist in der Asterisk-Dokumentation nicht immer leicht verständlich dargestellt und wird daher auch teilweise falsch auf manchen Webseiten wiedergegeben. Die folgende Tabelle zeigt die jeweiligen Funktionen:
Ein Peer kann also nur angerufen werden, ein User nur anrufen und ein Friend kann beides.
Ziel: Asterisk mit zwei SIP-Clients x001 und x002, die sich gegenseitig anrufen können
[0001] type=friend context=default secret=1234 host=dynamic canreinvite=no # wegen NAT/kein NAT [0002] type=friend context=default secret=1234 host=dynamic canreinvite=no # wegen NAT/kein NAT
[default] include => demo; im Echtsystem entfernen! exten => 0001,1,Dial(SIP/0001) exten => 0001,2,Hangup() exten => 0002,1,Dial(SIP/0002) exten => 0002,2,Hangup()
Syntax:
exten => Extension,Priorität,Applikation
asterisk -rx "module reload"
Fehlermeldungen beachten, bei Fehler keine Aktivierung!
⇒ Praxis
Eine „Programmzeile“ besteht aus:
; alle 4 stelligen Nr. mit 1nnn intern zustellen
exten => _1XXX,1,SetCallerID(BlaFasel)
exten => _1XXX,n,Dial(SIP/${EXTEN})
exten => _1XXX,n,Hangup
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()
Vor.: externer SIP-Provider, Daten
sip.conf:
register => Benutzer:Passwort@sip.provider.de/1001
1001: Ziel-Extension
Vor. externer SIP-Provider
sip.conf:
[ext-sip-account] type=friend context=default (FIXME) username=Benutzer fromuser=Benutzer secret=Passwort host=sip.provider.de fromdomain=sip.provider.de qualify=yes insecure=very nat=yes
extensions.conf
; exern mit Vorwahl
exten => _0.,n,Dial(SIP/${EXTEN}@ext-sip-account)
; extern ohne Vorwahl
exten => _ZX.,n,Dial(SIP/0911${EXTEN}@ext-sip-account)
register => Benutzer:Password@iax.simply-connect.de ... [Benutzer] type=user username=Benutzer host=iax.simply-connect.de secret=Password ; wird an die Extension "Benutzer" weitergeleitet
; Anruf (aus iax.conf) an SIP-Account leiten: exten => Benutzer,1,Goto(1001,1) exten => Benutzer,n,Hangup
[1001] ... context=context-1001
[context-1001]
; extern ohne Vorwahl
exten => _ZX.,1,SetCallerID(StrukturPunkt/Franken)
exten => _ZX.,n,Dial(IAX2/Benutzer:Password@iax.simply-connect.de/0911${EXTEN})
exten => _ZX.,n,Hangup[general] format=wav 1001 => 1001,Klaus Franken,Klaus.Franken@StrukturPunkt.de,,serveremail=Klaus.Franken@StrukturPunkt.de
exten => 1001,1,Dial(SIP/1001,20)
; nach 20 Sek. auf Voicemail leiten:
exten => 1001,n,VoiceMail(1001)
exten => 1001,n,Hangup()
</code>
* /etc/asterisk/extensions.conf <code>
; voicemail anhören:
exten => 9000,1,VoiceMailMain(${CALLERID(num)},s)exten => 9999,3,Dial(SIP/1000&SIP/1001,20)
Warum nicht WLAN benutzen?
…
Warum nicht WLAN benutzen?
Weils nicht zuverlässig klappt:
Aber es gibt VoIP-DECT Geräte.