Notizen zur asterisk-Konfiguration
Als erstes wollen wir ein SIP-Telefon mit unserem asterisk
verbinden. Es soll heraus telefonieren können, eingehende Rufe annehmen können, es bekommt eine Mailbox (die allerdings erst im nächsten Artikel) und es kann angenommene Rufe weitervermitteln:
[1234]
username=1234
secret=keins1234
callerid=Testuser <1234>
host=dynamic
type=friend
Läuft der asterisk
schon (und ggf. produktiv), so sollte er nicht komplett restartet werden aufgrund dieser Änderung; ein sip reload
am CLI tut’s auch. Nun kann ein SIP-Client verbunden werden; nachdem man ihm die nötigen Daten eingefüttert hat, sollte er sich prompt am CLI melden. ACHTUNG: die meisten SIP-Clients erweisen sich als extrem zickig und sollten nach jeglicher Änderung der Konfiguration beendet und neu gestartet werden! Eine gute Ausgabe sieht in etwa so aus:
Registered SIP '1234' at 192.168.y.x port 62530 expires 3600
-- Saved useragent "X-Lite release 1010i stamp 39418" for peer 1234
Nachdem wir dieses erfolgreich hinter uns gebracht haben, wollen wir natürlich eine erste Verbindung erstellen. Die nächsten Testläufe erfolgen alle asterisk
-intern, d.h. wir nutzen erst einmal keine Verbindung zur Außenwelt! Zum Testen erstellen wir eine Mini-Dialanweisung, die uns ein Soundfile abspielt. Dazu ist ein wenig Vorarbeit nötig:
Der Wählplan hat die absolut unangenehme Eigenschaft, enorm groß zu werden – da blickt man ab einem gewissen Punkt kaum noch durch. Deshalb hacken wir ihn in Stücke und fangen bei Null an – mit einer leeren extensions.conf
in /etc/asterisk
. Außerdem legen wir einen Ordner an, in dem wir all unsere extensions
-Bruchstücke unterbringen werden – wir nennen ihn der Einfachheit halber Extensions (ja, mit großem E, dann geht das Expandieren schneller, jedenfalls bei mir).
## file: "extensions.conf"
#include Extensions/demo.conf
[default]
include => demo
## file: "Extensions/demo.conf"
[demo]
exten => 666,1,Answer
exten => 666,n,Wait(1)
exten => 666,n,Playback(tt-weasels)
exten => 666,n,Wait(1)
exten => 666,n,Hangup
Nach einem dialplan reload
am CLI des asterisk
kann die gerade definierte Rufnummer gewählt werden. Am CLI (ggf. core set verbose 17
aufrufen) könnt ihr beobachten, was abgeht:
Executing [666@default:1] Answer("SIP/1234-081df5b0", "") in new stack
-- Executing [666@default:2] Wait("SIP/1234-081df5b0", "1") in new stack
-- Executing [666@default:3] Playback("SIP/1234-081df5b0", "tt-weasels") in new stack
-- Playing 'tt-weasels' (language 'de')
-- Executing [666@default:4] Wait("SIP/1234-081df5b0", "1") in new stack
-- Executing [666@default:5] Hangup("SIP/1234-081df5b0", "") in new stack
== Spawn extension (default, 666, 5) exited non-zero on 'SIP/1234-081df5b0'
Glückwunsch! Wir haben uns nun einen Grundstock erarbeitet, auf den wir aufsetzen können. Entsprechend können nun weitere Kontexte definiert und häppchenweise auf verschiedene Files verteilt und eingebunden werden. Wichtig ist nun, dass für den User mit der Rufnummer 1234 eine entsprechende Wahlregel definiert wird, die initial in etwa so ausschaut:
exten => 1234,1,Dial(SIP/1234)
Hintergrundbild: 849x 500px, Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten