Die folgenden Parameter können für die einzelnen Channel
definiert werden. Einige können aber auch im Abschnitt
[general]
verwendet werden.
type = [user|peer|friend]
Legt fest, ob es sich um eine Verbindung zu einem
user
(z.B. Benutzer-Endgerät, verbindet sich mit uns) oder
peer
(z.B. Gateway in ein anderes Asterisk-Netzwerk, zu dem
wir die Verbindung herstellen) handelt. friend
ist eine
Kurzschreibweise, um einen user
und einen peer
mit den gleichen Angaben zu definieren.
Beispiel:
type = peer
Wenn Sie nicht für alle User-Einträge
( Beispiel: [guest] type=user callerid="IAX-Gast-Benutzer" |
accountcode = [Abrechnungsnummer]
Der angegebene String wird als Dateiname für die
Abrechnungsdateien im Verzeichnis
/var/log/asterisk/cdr-csv/
benutzt. Verwenden Sie
daher nur Kleinbuchstaben, Ziffern, Bindestrich, Unterstrich.
Beispiel:
accountcode = iax-hausmeister
bandwidth = [low|medium|high]
bandwidth
dient als Gruppierung verschiedener
Soundcodecs. Auf diese Weise kann man einfacher bestimmte Situationen
definieren (siehe „bandwidth
“).
Beispiel:
bandwidth = low
allow = [all|Name des Codecs]
Bestimmte Soundcodecs können gezielt erlaubt
(allow
) oder verboten (disallow
) werden (siehe
„allow
“). Dabei ist zu beachten, das
evtl. im [general]
-Bereich erlaubte Codecs erst durch ein
disallow=all
wieder verboten werden müssen.
Diese Parameter sind nicht zu verwechseln mit
permit
und deny
(siehe „permit
“).
Beispiel:
disallow = all allow = ulaw allow = gsm
codecpriority = [caller|host|disabled|reqonly]
Definiert, welcher Teilnehmer der Verbindung die höhere
Priorität bei der Verhandlung des Soundcodecs hat (siehe „codecpriority
“).
Beispiel:
codecpriority = caller
amaflags = [default|omit|billing|documentation]
AMA ist die Abkürzung für „Automatic Message
Accounting“ und spezifiziert u.a. Standardmechanismen zur
Erzeugung und Übermittlung von Anrufprotokollen (CDRs) (siehe „amaflags
“).
Beispiel:
amaflags = documentation
callerid = [Name[ <Nummer>]]
Mit callerid
können Sie die angezeigte Caller-ID
für einen Nutzer oder ein Peer setzen. Wenn Sie ein Caller-ID-Feld für
einen Benutzer definieren, werden alle Anrufe, die auf diesem Kanal
eingehen, mit dieser Caller-ID verknüpft, unabhängig davon, was Ihnen
das andere Ende sendet. Das ist aus Sicherheitsgründen zu empfehlen
(außer, Sie vertrauen dem anderen Ende), da es sehr leicht möglich ist,
seine Caller-ID zu fälschen.
Beispiel:
callerid = "Mark Spencer" <(256) 428
6000>
host=[Host|dynamic]
Als host
wird entweder der Hostname oder die
IP-Adresse des anderen Rechners angegeben. Bei Hosts mit dynamisch
vergebenen (also wechselnden) IP-Adressen verwenden Sie den Sonderfall
host=dynamic
, vorzugsweise in Kombination mit der
Einstellung defaultip
(„defaultip
“).
Beispiele:
host = 192.168.0.201
host = dynamic
defaultip = [IP-Adresse]
Die defaultip
-Einstellung ergänzt
host=dynamic
(siehe „host
“). Ist ein Host noch nicht bei Ihrem
Server angemeldet, versucht Asterisk, Nachrichten an die hier definierte
Standard-IP-Adresse zu schicken.
Beispiel:
defaultip = 192.168.0.201
permit = IP-Adresse[/Netzmaske]
permit
und deny
erlauben und
beschränken die IP-Adressen, von denen Verbindungen zum entsprechenden
Eintrag möglich sind. Üblicherweise wird zuerst ein
deny=0.0.0.0/0.0.0.0
(alle verbieten) vorangestellt und
dann mit permit
die erlaubte IP-Adresse oder ein Bereich
von Adressen freigegeben. Die Reihenfolge von deny
und
permit
ist entscheidend, und beide können für mehrere
Hosts/Bereiche auch mehrfach auftreten. Wenn genau ein Host gemeint ist,
können Sie die Netzmaske (wäre 255.255.255.255
)
weglassen.
Dieses Beispiel erlaubt nur Verbindungen aus dem Bereich
192.168.0.*
(Netzmaske 24 Bits, Klasse
C-Netzwerk):
deny = 0.0.0.0/0.0.0.0 ; alle verbieten permit = 192.168.0.102/255.255.255.0 ; 192.168.0.* erlauben permit = 192.168.5.5 ; 192.168.5.5 erlauben
Alle erlauben bis auf 192.168.*.*
:
permit = 0.0.0.0/0.0.0.0 ; alle erlauben deny = 192.168.0.0/255.255.0.0 ; 192.168.*.* verbieten
Das nächste Beispiel ist nicht sinnvoll, da zuerst
192.168.0.0
- 192.168.0.127
verboten, dann
aber wieder alle erlaubt werden, was die erste
Regel überschreibt. So wird also nichts verboten:
deny = 192.168.0.0/255.255.255.127 permit = 0.0.0.0/0.0.0.0 ; alle erlauben
auth = [plaintext|md5|rsa]
Zum Identifizieren des anderen Peers/Users stehen 3 Methoden
zur Auswahl: plaintext
, md5
und
rsa
.
plaintext
secret
(„secret
“)
angegeben.md5
secret
(„secret
“)
angegeben.rsa
inkeys
(„inkeys
“) und outkeys
(„outkey
“) angegeben.Mit auth
legen Sie eine durch Komma getrennte
Liste von erlaubten Authentifizierungsmethoden fest.
Beispiel:
auth = rsa,md5
Wenn Sie weder auth
noch secret
angeben, bedeutet das, dass keine Authentifizierung notwendig
ist.
secret = [Passwort]
Legt das Passwort für die Authentifizierungsmethoden
plaintext
oder md5
fest (siehe „auth
“).
Beispiel:
secret = meinpasswort
inkeys = [rsa-key:rsa-key:...]
Legt für die Authentifizierungsmethode rsa
(siehe
„auth
“) den öffentlichen RSA-Schlüssel
des zu authentifizierenden Systems fest. Um mehr als einen RSA-Schlüssel
mit einer Benutzer-Kanaldefinition zu verknüpfen, trennen Sie die
Schlüsselnamen mit einem Doppelpunkt (:
). Jeder dieser
Schlüssel wird dann eine Verbindung für gültig erklären
können.
Diese Schlüssel müssen als Dateien so benannt sein:
/var/lib/asterisk/keys/
schluesselname
.pub
Beispiel:
inkeys = server-koblenz:server-bonn
outkey = [rsa-key]
Sie können die outkey
-Option verwenden, um sich
bei einem Peer mit Hilfe eines RSA-Schlüssels zu authentifizieren. Für
ausgehende Authentifizierung kann nur ein RSA-Schlüssel verwendet
werden. Der outkey
wird nicht verteilt, er ist Ihr privater
Schlüssel und sollte 3DES-verschlüsselt sein.
Diese Schlüssel müssen als Dateien so benannt sein:
/var/lib/asterisk/keys/
schluesselname
.key
Beispiel:
outkey = privater-schluessel
mailbox = [Mailboxname[@Mailbox-Context]]
Wenn Sie in einer Kanaldefinition einen Peer mit einer Mailbox
verknüpfen, wird Voicemail eine MWI (Message Waiting
Indication)-Nachricht an die Knoten am Ende dieses Kanals schicken.
Befindet sich die Mailboxnummer in einem anderen Voicemail-Context als
default
, können Sie sie als
angeben. Um
mehrere Mailboxen mit einem einzigen Peer zu verknüpfen, müssen Sie den
mailbox@context
mailbox
-Befehl mehrmals verwenden.
Beispiel:
mailbox = 1000
language = [en|de|...]
Konfiguriert die Sprache für den entsprechenden Channel. Die
Standardsprache ist Englisch. Diese Einstellung wird von verschiedenen
Anwendungen wie z.B. der Voicemailbox oder auch der Applikation
SayNumber()
verwendet, um unterschiedliche Sprachbausteine
zu benutzen.
Beispiel:
language = de
context = [Context]
Der Context dem Benutzer dieser Verbindung zugeordnet werden.
Beispiel:
context = default
regcontext = [Context]
Sie können einen Context definieren, der automatisch beim
ersten Registrieren eines Peers ausgeführt wird. Ist mit
regexten
keine Extension angegeben, so wird als
auszuführende Extension der Name des Peers benutzt. Dabei ist zu
beachten, dass Asterisk als Erstes automatisch ein NoOp
mit
der Priorität 1 ausführt. Als erste Priorität danach ist also die 2 zu
benutzen. Mehrere Contexte können nacheinander aufgeführt werden; als
Trennungszeichen wird ein &
verwendet.
Beispiel:
regcontext = from-iax
regexten = [Nummer]
Wird in Verbindung mit regcontext
verwendet, um
die Extension zu spezifizieren, die in dem konfigurierten Context
ausgeführt werden soll. Falls regexten
nicht explizit
konfiguriert ist, wird der Name des Peers als Extension
verwendet.
Beispiel:
regexten = 3000
jitterbuffer = [yes|no]
Schaltet den Jitter-Buffer an oder aus (dies gilt bei Verbindungen, bei denen Asterisk als Endgerät fungiert). Der Jitter-Buffer gleicht unterschiedliche Laufzeiten der IP-Pakete aus.
Der Jitter-Buffer hat evtl. Probleme bei eingeschaltetem
trunk
(siehe „trunk
“).
Beispiel:
jitterbuffer = yes
forcejitterbuffer = [yes|no]
Normalerweise ist es Aufgabe der Endgeräte einen Jitter-Buffer [91] zu realisieren. Sollte dies aus irgendeinem Grund nicht oder nur schlecht funktionieren (manche Geräte haben einen schlechten Jitter-Buffer), kann man diesen Buffer auch auf Asterisk als VoIP-Brücke aktivieren.
Beispiel:
forcejitterbuffer = yes
maxjitterbuffer = [Laenge in Millisekunden]
Mit diesem Parameter wird die maximale Größe des Jitter-Buffers eingestellt. Sie sollten diesen Wert i.d.R. nicht höher als 500 einstellen, sonst kann es zu Tonaussetzern kommen.
Beispiel:
maxjitterbuffer = 400
resyncthreshold=[Wert in Millisekunden]
Der Resynchronisierungs-Grenzwert wird benutzt, um den
Jitter-Buffer, im Falle der Erkennung einer signifikanten Änderung über
wenige Frames, neu zu takten/neu abzustimmen unter der Annahme, dass der
Veränderung eine Verwechslung von Zeitstempeln zugrunde liegt. Der
Resynchronisierungs-Grenzwert ist definiert als die gemessene Schwankung
plus dem Wert von resyncthreshold
, der in Millisekunden
angegeben wird.
Beispiel:
resyncthreshold = 800
trunk = [yes|no]
Asterisk kann bei IAX-Verbindungen zu einer bestimmten IP-Adresse (z.B. beim Verbinden von zwei Asterisk-Servern) alle Channels über einen Trunk versehen. Dadurch wird der Overhead von mehreren Verbindungen zu einer Adresse reduziert. Der Trunk-Modus funktioniert nur mit geeigneter Hardware (Digium Zaptel) oder entsprechender Emulationssoftware für timing-Zwecke.[92].
Bei der Version 1.2.x arbeitet der Jitter-Buffer (siehe „jitterbuffer
“) nicht gut bei eingeschaltetem
Trunk-Modus.
Beispiel:
trunk = yes
trunkfreq = [Wiederholrate in Millisekunden]
Mit trunkfreq
wird in Millisekunden angegeben, wie
oft Trunk-Nachrichten gesendet werden. Gilt nur, wenn
trunk=yes
gesetzt wurde.
Beispiel:
trunkfreq = 20
qualify = [yes|no|Zeit in Millisekunden]
Mit qualify=yes
werden in festen Zeitabständen
Ping-Nachrichten an die entfernten Peers gesendet, um herauszufinden, ob
sie verfügbar sind und welche Latenz zwischen den Antworten liegt. Die
Peers antworten mit Pong-Nachrichten. Ein Peer wird als nicht erreichbar
angesehen, wenn innerhalb von 2000 ms noch keine Antwort vorliegt (um
diese Voreinstellung zu ändern, setzen Sie qualify
auf die
entsprechende Anzahl an Millisekunden, die auf eine Anwort gewartet
werden soll). Einige Endgeräte (/Software) kommen nicht mit diesen
Nachrichten zurecht.
Beispiel:
qualify = yes
qualifysmoothing = [yes|no]
Stellt ein, ob für die Verfügbarkeitsprüfung durch
qualify
immer der Mittelwert der letzten beiden
Pong-Nachrichten verwendet werden soll. Hosts mit schlechter Verbindung
könnten sonst fälschlicherweise als nicht verfügbar eingestuft
werden.
Beispiel:
qualifysmoothing = yes
[91] Jitter bezieht sich auf die variierende Latenz zwischen den Datenpaketen. Bei zu großen Schwankungen kann es zu Tonausfällen kommen.
[92] Zum Beispiel das bei Asterisk enthaltene Kernel-Modul
ztdummy
oder zaprtc
von Junghanns (http://www.junghanns.net/downloads/).