5.5. Die Grundkonfiguration

Als Erstes wird die Telefonanlage so konfiguriert, dass alle Teilnehmer intern miteinander telefonieren können und jeder eine persönliche Voicemailbox hat. Danach kann die Anlage mit einzelnen Bausteinen erweitert werden.

5.5.1. sip.conf für fast 100 Teilnehmer

Der Aufbau einer /etc/asterisk/sip.conf für 2 Teilnehmer unterscheidet sich nicht vom Aufbau für 100 Teilnehmer. In der sip.conf müssen alle SIP-Telefone eingetragen werden. Im Folgenden finden Sie die gekürzte Fassung der Konfigurationsdatei sip.conf für die Apfelmus GmbH. Kommentare werden hier immer mit ; eingeleitet. Diese Konfigurationsdatei ist analog zum Beispiel in Kapitel 2, Hello World aufgebaut. Bei der Auswahl der Rufnummern wurden an die Teilnehmer vornehmlich Nummern vergeben, die nicht auf die Ziffer 0 enden. Der Grund hierfür ist, dass die Endziffer 0 an späterer Stelle für die Zuteilung von Gruppenrufnummern dienen soll. Lediglich beim Hausmeister wurde eine Ausnahme gemacht, da für ihn keine Gruppenrufnummer vorgesehen ist.
[general]
port = 5060
bindaddr = 0.0.0.0
context = sonstige

; Hausmeister
;
[150]  ; normales Telefon im Büro
context=hausmeister
secret=1234
callerid="Hausmeister" <150>
type=friend
host=dynamic

[151]  ; Mobiltelefon
context=hausmeister
secret=1234
callerid="Hausmeister" <150>
type=friend
host=dynamic

; Interne IT-Abteilung
;
[161]  ; Mitarbeiter 1
context=it
secret=1234
type=friend
host=dynamic

[162]  ; Mitarbeiter 2
context=it
secret=1234
type=friend
host=dynamic

[165]  ; Mobiles Telefon
context=it
secret=1234
type=friend
host=dynamic

; Geschäftsführung
;
[201]  ; Geschäftsführer 1
context=geschaeftsfuehrung
secret=1234
type=friend
host=dynamic

[202]  ; Geschäftsführer 2
context=geschaeftsfuehrung
secret=1234
type=friend
host=dynamic

; Sekretariat
;
[231]  ; Assistentin 1
context=sekretariat
secret=1234
type=friend
host=dynamic

[232]  ; Assistentin 2
context=sekretariat
secret=1234
type=friend
host=dynamic

[233]  ; Assistentin 3
context=sekretariat
secret=1234
type=friend
host=dynamic

; Verkauf National
;
[301]  ; Verkäufer 1
context=verkauf-national
secret=1234
type=friend
host=dynamic

[302]  ; Verkäufer 2
context=verkauf-national
secret=1234
type=friend
host=dynamic

[303]  ; Verkäufer 3
context=verkauf-national
secret=1234
type=friend
host=dynamic

[304]  ; Verkäufer 4
context=verkauf-national
secret=1234
type=friend
host=dynamic

[305]  ; Verkäufer 5
context=verkauf-national
secret=1234
type=friend
host=dynamic

[306]  ; Verkäufer 6
context=verkauf-national
secret=1234
type=friend
host=dynamic

; Verkauf Ausland
;
[351]  ; Verkäufer 1
context=verkauf-ausland
secret=1234
type=friend
host=dynamic

[352]  ; Verkäufer 2
context=verkauf-ausland
secret=1234
type=friend
host=dynamic

[353]  ; Verkäufer 3
context=verkauf-ausland
secret=1234
type=friend
host=dynamic

[354]  ; Verkäufer 4
context=verkauf-ausland
secret=1234
type=friend
host=dynamic

; Versand
;
[401]  ; Mitarbeiter 1
context=versand
secret=1234
type=friend
host=dynamic

; die weiteren 9 Einträge für den 
; Versand sind hier ausgelassen.

; Produktion
;
[501]  ; Mitarbeiter 1
context=produktion
secret=1234
type=friend
host=dynamic

; die weiteren 49 Einträge für die 
; Produktion sind hier ausgelassen.
Wer die sip.conf komfortabler mit Templates gestalten will, findet im Anhang G, Konfigurations-Templates weitere Informationen dazu.

CallerID

In der sip.conf kommt zweimal die Variable callerid vor. Mit dieser Variable wird festgelegt, was beim Angerufenen auf dem Display angezeigt wird. Im konkreten Beispiel:
callerid = "Hausmeister" <150>
Dies sagt aus, dass sich beide Telefone (150 und 151) mit der Caller-ID 150 und dem Text Hausmeister zu erkennen geben. Dadurch ist sichergestellt, dass Rückrufe immer nur auf die 150 gehen.

5.5.2. Der Wählplan (Dialplan)

Im Kapitel 2, Hello World haben wir schon einen einfachen Dialplan für zwei Telefone erstellt. Diesmal haben wir jedoch deutlich mehr Teilnehmer, und obwohl es im Grunde lediglich Fleißarbeit bedeutet, ist die Pflege einer Konfiguration mit einigen Hundert Teilnehmern zeitaufwendig. Deshalb benutzen wir in der extensions.conf die in Abschnitt 3.3, „Pattern Matching“ beschriebenen Patterns und die in Abschnitt 3.4, „Includes im Dialplan“ beschriebenen Includes.

Die extensions.conf für die Apfelmus GmbH

Der für die Apfelmus GmbH passende Rufnummernplan[22] lässt sich wie folgt in eine übersichtliche extensions.conf übertragen:
[sonstige]

[hausmeister]
include => interne-gespraeche
include => voicemailsystem-komfort

[it]
include => interne-gespraeche
include => voicemailsystem-komfort
;
; Aus Debugging-Gründen ist es für
; die IT-Abteilung teilweise nützlich,
; auf alle Voicemailboxen zugreifen 
; zu können.
;
include => voicemailsystem-normal

[geschaeftsfuehrung]
include => interne-gespraeche
include => voicemailsystem-komfort

[sekretariat]
include => interne-gespraeche
include => voicemailsystem-komfort

[verkauf-national]
include => interne-gespraeche
include => voicemailsystem-komfort

[verkauf-ausland]
include => interne-gespraeche
include => voicemailsystem-komfort

[versand]
include => interne-gespraeche
include => voicemailsystem-komfort

[produktion]
include => interne-gespraeche
include => voicemailsystem-komfort

[interne-gespraeche]
exten => _[1-5]XX,1,Dial(SIP/${EXTEN},60)
exten => _[1-5]XX,2,VoiceMail(${EXTEN},u)

[voicemailsystem-komfort]
;
; Der User muss nicht die Nummer der 
; Voicemailbox eingeben.
;
exten => 800,1,VoicemailMain(${CALLERID(num)})

[voicemailsystem-normal]
exten => 801,1,VoicemailMain()
Der Context [interne-gespraeche] definiert, dass alle Anrufe an die Nummern 100 bis 599 mit dem Programm Dial() auch mit dieser Nebenstelle verbunden werden. Wer die 800 anruft, bekommt die Voicemailbox für sein eigenes Telefon. Nur die IT-Abteilung kann die 801 anrufen und wird dann vom System erst nach der gewünschten Nebenstelle (Extension) gefragt. Da die IT-Abteilung auch den internen Support der Telefonanlage zur Verfügung stellt, benötigt sie diese Funktion zur Störungsermittlung (Debugging).
Schwarze Löcher im Rufnummernplan
Genau genommen müsste dieser Dialplan noch etwas komplexer sein, da es ja laut Rufnummernplan Bereiche gibt (z. B. 270 bis 299), die gar nicht mit Telefonen belegt sind. Da wir dies nicht beachten, kann es zu Missverständnissen kommen. Ein Anrufer kann eine nicht vergebene Rufnummer anrufen und dort auf dem Anrufbeantworter eine Nachricht hinterlassen. Diese Nachricht würde aber nie abgehört werden. Um dies zu vermeiden, müsste man korrekterweise den Context [interne-gespraeche] wie folgt gestalten:
[interne-gespraeche]
exten => _1[5-6]X,1,Dial(SIP/${EXTEN},60)
exten => _1[5-6]X,2,VoiceMail(${EXTEN},u)

exten => _2[0-6]X,1,Dial(SIP/${EXTEN},60)
exten => _2[0-6]X,2,VoiceMail(${EXTEN},u)

exten => _[358]XX,1,Dial(SIP/${EXTEN},60)
exten => _[358]XX,2,VoiceMail(${EXTEN},u)

exten => _4[0-4]X,1,Dial(SIP/${EXTEN},60)
exten => _4[0-4]X,2,VoiceMail(${EXTEN},u)
Wir verzichten bei der Apfelmus GmbH der Einfachheit halber auf diese ausführlichere Variante und benutzen nur den folgenden Context:
[interne-gespraeche]
exten => _[1-5]XX,1,Dial(SIP/${EXTEN},60)
exten => _[1-5]XX,2,VoiceMail(${EXTEN},u)

voicemail.conf

Die voicemail.conf bleibt so, wie schon in Abschnitt 2.5.1, „... und jetzt mit einem Anrufbeantworter“ beschrieben. Es werden einfach nur ein paar Einträge mehr eingefügt:
[general]
format = gsm
serveremail = voicemail@apfelmus-gmbh.de
maxmessage = 600

[local]
150 => 999999,Hans Hausmeister,hausmeister@apfelmus-gmbh.de
200 => 999999,Ernst Wichtig,ernst.wichtig@apfelmus-gmbh.de
201 => 999999,Hans Toll,hans.toll@apfelmus-gmbh.de

; Ich verzichte hier darauf, die restlichen Einträge aufzulisten, sie sind analog zu den aufgeführten Zeilen


[22] Mit Ausnahme der Notrufnummern, die wir später behandeln, da wir jetzt noch keine Verbindung zur Außenwelt eingerichtet haben.