Nachdem wir die Extension 1001 schon vom CLI aus aufgerufen haben, gehen wir jetzt den nächsten logischen Schritt und machen dies von einem SIP-Telefon aus. Wenn Sie kein Hardware-SIP-Telefon besitzen, können Sie auch Software-Telefone benutzen, die Sie aus dem Internet herunterladen und auf einem anderen Rechner installieren.
Warnung | |
---|---|
Wenn Sie zu Testzwecken ein Software-SIP-Telefon und den Asterisk-Server auf den gleichen Rechner installieren wollen, so müssen Sie beim SIP-Telefon den SIP-Port auf 5061 umstellen, da 5060 bereits von Asterisk benutzt wird. Ein Hardware-SIP-Telefon ist aber für den Anfänger vorzuziehen. Man sollte am Anfang immer so wenige Problemquellen wie möglich verbauen. |
Für das von uns benutzte SIP-Telefon muss in der
Asterisk-Konfiguration erst ein Account angelegt werden. Wie vorher mit
der extensions.conf
verschieben wir auch diesmal
die Beispieldatei mit mv sip.conf
/var/tmp/asterisk-etc-backup/ nach
/var/tmp/asterisk-etc-backup/
:
debian:/etc/asterisk# mv sip.conf /var/tmp/asterisk-etc-backup/
debian:/etc/asterisk#
Danach legen wir mit dem Editor eine neue
/etc/asterisk/sip.conf
an. Die befüllen wir mit
folgendem Inhalt:
[general] port=5060 bindaddr=0.0.0.0 [2000] type=friend secret=1234 host=dynamic
Das SIP-Telefon muss dann mit den hier angegebenen Daten konfiguriert werden:
User: 2000
Passwort: 1234
SIP-Registrar: IP-Adresse Ihres Asterisk-Servers
SIP-Proxy: IP-Adresse Ihres Asterisk-Servers
Tipp | |
---|---|
Bei manchen Telefonen ist es notwendig, alle verfügbaren
Felder notfalls mit |
Diesmal starten wir Asterisk direkt mit asterisk -vvvvvc im Verbose-Level 5:
debian:/etc/asterisk# asterisk -vvvvvc
Asterisk 1.4.21, Copyright (C) 1999 - 2008 Digium, Inc. and others.
[...]
Danach starten wir das SIP-Telefon neu und warten im CLI auf die Meldung, dass es sich beim Asterisk-Server registriert hat:
*CLI> -- Registered SIP ’2000’ at 47.6.3.4 port 5060 expires 120 -- Unregistered SIP ’2000’
Wenn Sie nun mit dem SIP-Telefon die 1001 anrufen, werden Sie von
Asterisk den Sprachbaustein hello-world.gsm
vorgespielt bekommen.
Da wir mit console dial eine Extension aufrufen
können und ein SIP-Telefon angeschlossen haben, sollten wir auch in der
Lage sein, dieses Telefon gezielt anzurufen. Dazu müssen wir in der
/etc/asterisk/extensions.conf
eine weitere
Extension einbauen:
[default] exten => 1001,1,Answer() exten => 1001,2,Playback(hello-world) exten => 1001,3,Hangup() exten => 2000,1,Dial(SIP/2000)
Jetzt müssen Sie Asterisk entweder mit stop now und asterisk -vvvvvc stoppen und starten oder mit einem dialplan reload im CLI den neuen Dialplan neu einlesen. Danach können Sie mit console dial 2000 vom CLI aus das SIP-Telefon anrufen:
*CLI> console dial 2000
Die Applikation Dial() kann eine Verbindung zu einem Telefon aufbauen. Dabei wird ein Parameter angegeben, der aus mindestens zwei Teilen besteht. Der erste, "SIP", steht für die Technologie, in unserem Beispiel das SIP-VoIP-Protokoll. Der zweite Parameter gibt das Ziel innerhalb dieses Protokolls an (hier die 2000). Bei Dial() ist kein Answer() und kein Hangup() notwendig. Da man ja gar nicht weiß, ob die Gegenstelle das Gespräch annimmt oder nicht, hat Dial() von den Asterisk-Entwicklern die Eigenintelligenz mitbekommen, um den Channel auf- und abzubauen.
Dass der Name der Extension 2000 mit dem angerufenen Ziel (dem SIP-Telefon mit dem SIP-Account 2000) übereinstimmt, ist genau genommen Zufall. Auch die folgende Extension wäre sinnvoll:
exten => 55,1,Dial(SIP/2000)
Jetzt kann mit console dial 55 das Telefon mit dem SIP-Account 2000 angerufen werden.
Da das Hash-Zeichen "#" in der Telefonie ein DTMF-Signal (Doppeltonmehrfrequenz-Signal) ist, kann es nicht als Signalzeichen für einen Kommentar benutzt werden. Deshalb werden Kommentare in den meisten Asterisk-Konfigurationsdateien mit einem Semikolon ";" eingeleitet. Beispiel:
[default] ; Die Extension 1001 wird als Funktionstest ; für alle Telefone benutzt. ; exten => 1001,1,Answer() ; abgehoben exten => 1001,2,Playback(hello-world) exten => 1001,3,Hangup() ; aufgelegt ; Mit der Extension 2000 wird zum SIP-Telefon ; 2000 verbunden. ; exten => 2000,1,Dial(SIP/2000)
AMOOCON 2010
Noch kein Ticket? Dann wird es Zeit. Nur noch wenige Tage.
- Infos unter www.amoocon.de.
- twitter.com/AMOOCON