Coverbild des Asterisk Buches von Stefan Wintermeyer

Achtung: Dies ist ein Beta Test!

  • Bitte melden Sie Fehler! Siehe dazu die Beta-Test FAQ.
  • Besuchen Sie den Asterisk-Tag.org in Bremen und lassen Sie sich dort Ihr Buch von Stefan Wintermeyer signieren.
  • Bestellmoeglichkeiten fuer das gedruckte Buch: Amazon oder direkt beim Verlag

Asterisk Schulungen und Consulting vom Autor dieses Buches finden Sie auf http://www.amooma.de.


4.3. Globale Einstellungen

Die folgenden Parameter können nur im [general]-Teil definiert werden, sind also gültig für alle Channels. Sie können hier außerdem auch einige der in Abschnitt 4.4, „Channel-Einstellungen“ beschriebenen Einstellungen verwenden.

4.3.1. bandwidth

bandwidth = [low|medium|high]

Dient als Gruppierung verschiedener Soundcodecs. Auf diese Weise kann man einfacher bestimmte Situationen definieren. Das ist eine komfortable Alternative zu allow und disallow (Abschnitt 4.3.2, „allow).

high
Erlaubt alle Codecs: G.723.1, GSM, ulaw (G.711), alaw, G.726, ADPCM, slinear, LPC10, G.729, Speex, iLBC. Sollte nur bei Verbindungen ab 10 Mb/s verwendet werden.
medium
Verbietet die Codecs slinear, ulaw und alaw.
low
Verbietet zusätzlich die Codecs G.726 und ADPCM.

Beispiel:

bandwidth = low
disallow = lpc10   ; hat schlechte Qualität

4.3.2. allow

allow = [all|Name des Codecs]

Bestimmte Soundcodecs können gezielt erlaubt (allow) oder verboten (disallow) werden. Default ist allow=all. Die möglichen Codecs sind: g723.1, gsm, ulaw, alaw, g726, slinear, plc10, adpcm, g729, speex, ilbc, h261, h263 und der Platzhalter all. Siehe auch bandwidth (Abschnitt 4.3.1, „bandwidth) für eine komfortable Einstellung. allow und disallow können mehrmals verwendet werden und sind damit eine Ausnahme.

Beispiel:

disallow = all
allow = ulaw
allow = gsm

4.3.3. disallow

disallow = [all|Name des Codecs]

Siehe allow (Abschnitt 4.3.2, „allow).

4.3.4. codecpriority

codecpriority = [caller|host|disabled|reqonly]

Definiert, welcher Teilnehmer einer eingehenden Verbindung die höhere Priorität bei der Verhandlung des Soundcodecs hat. Default: host

caller
Der Anrufer hat Vorrang vor dem Host.
host
Der Host hat Vorrang vor dem Anrufer.
disabled
Codec-Präferenzen werden nicht berücksichtigt.
reqonly
Codec-Präferenzen werden ignoriert und der Anruf nur dann akzeptiert, wenn der angeforderte Codec verfügbar ist.

Beispiel:

codecpriority = caller

4.3.5. authdebug

authdebug = [yes|no]

Standardmäßig ist ein minimales Debugging bei der Autorisierung von IAX-Verbindungen eingestellt. Dies kann mit authdebug=no deaktiviert werden.

Beispiel:

authdebug = no

4.3.6. autokill

autokill = [yes|Timeout in Millisekunden]

Falls autokill nicht gesetzt ist, versucht Asterisk einen nicht erreichbaren Host sehr lange zu erreichen. Dies kann bei vielen gleichzeitigen Versuchen (auf mehreren Channels) zu Performanceproblemen führen. Mit autokill=yes wird die Verbindung nach 2000 Millisekunden abgebrochen. Alternativ kann man auch die Anzahl der Millisekunden angeben.

Beispiel:

autokill = 3500

4.3.7. amaflags

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 (Call Data Records / Call Detail Records / CDRs, im Dt. auch Kommunikationsdatensatz / KDS).

Mit omit werden keine Aufzeichnungen gemacht.

Beispiel:

amaflags = billing

4.3.8. bindaddr

bindaddr = [IP-Adresse]

Definiert die IP-Adresse, auf der Verbindungsanfragen beantwortet werden. Default: 0.0.0.0 für alle Adressen.

Beispiel:

bindaddr = 0.0.0.0

4.3.9. bindport

bindport = [Port-Nummer]

Definiert den Netzwerkport, auf dem Verbindungsanfragen beantwortet werden. Der Default-Port für IAX (IAX2!) ist 4569 (IAX Version 1: 5036).

Wichtig

Diese Einstellung muss immer vor dem bindaddr-Eintrag erfolgen!

Beispiel:

bindport = 4569

4.3.10. delayreject

delayreject = [yes|no]

Diese Einstellung kann auf yes gesetzt werden, um evtl. Brute-Force-Attacken (zum Passwortknacken) abzuschwächen. Dann wird nach jedem falschen Einlogversuch 1000 Millisekunden (also 1 Sekunde) gewartet, bis der nächste Versuch akzeptiert wird. Default: no

Beispiel:

delayreject = yes

4.3.11. language

language = [en|de|...]

Konfiguriert die Sprache für den entsprechenden Channel. Gobale Standardsprache ist Englisch. Die Sprache, die gesetzt ist, wird vom Kanal als Informationselement gesendet. Diese Einstellung wird auch von Anwendungen wie SayNumber() gelesen, die für verschiedene Sprachen unterschiedliche Sprachbausteine verwenden.

Beispiel:

language = de

4.3.12. mailboxdetail

mailboxdetail = [yes|no]

Wenn mailboxdetail auf yes gesetzt ist, wird dem Apparat des Mailboxbenutzers die Anzahl der neuen (und die der alten) Nachrichten übermittelt (zur Anzeige auf dem Display o.ä.). Ansonsten wird nur signalisiert, dass es neue Nachrichten gibt (ohne die Anzahl zu nennen).

Diese Einstellung ist bei neueren Asterisk-Versionen nicht mehr verfügbar. Mittlerweile verhält sich Asterisk immer (standardkonform) wie mailboxdetail=yes

Beispiel:

mailboxdetail = yes

4.3.13. tos

tos = [...]

ToS steht für „Type of Service“; das sind Flags im IP-Header, die von manchen Routern ausgelesen und befolgt werden. Damit kann das Routingverhalten optimiert werden. Die Empfehlung dieser Einstellung für IAX ist tos=ef. EF steht für Expedited Forwarding, also etwa Express-Übertragung, was nach geringer Latenz, geringer Verlustrate und wenig Jitter verlangt. Default ist none (wegen Rückwärts-Kompatibilität).

Die Vielzahl der möglichen Werte soll hier nicht weiter beschrieben werden, Interessierte seien auf die Spezifizierung von Differentiated Services in RFC 2474 und die IANA-DSCP[60] verwiesen. Hier nur ein ins Deutsch übersetzter Auszug aus der Asterisk beiliegenden Datei doc/README.tos (auch: doc/ip-tos.txt):

 

Die zusässigen Werte für die tos*-Einstellungen sind:

be (best effort, die normale, geringste Priorität), cs1, af11, af12, af13, cs2, af21, af22, af23, cs3, af31, af32, af33, cs4, af41, af42, af42, ef (expedited forwarding), lowdelay (geringe Latenz), throughput (Durchsatz), reliability (Zuverlässigkeit), mincost (geringste monetäre Kosten), none (wie be)

Außerdem kann man auch deren numerische Pendants angeben (z.B. tos=0x18).

Die Werte lowdelay, throughput, reliability, mincost und none sind veraltet und sollen nicht mehr verwendet werden, da sie das ToS-Byte nach dem alten „IP precedence“-Modell aus RFC 791 und 1349 setzen.

===========================================
Konfig.-         Parameter     Empfohlene
Datei                          Einstellung
-------------------------------------------
sip.conf         tos_sip       cs3
sip.conf         tos_audio     ef
sip.conf         tos_video     af41
-------------------------------------------
iax.conf         tos           ef
-------------------------------------------
iaxprov.conf     tos           ef
===========================================

Für den größtmöglichen Nutzen müssen Sie sicherstellen, dass Ihre Netzwerk-Hardware ToS unterstützt (ggf. aktivieren). Für Cisco-Geräte siehe „Enterprise QoS Solution Reference Network Design Guide[61] , für Linux-Systeme siehe „Linux Advanced Routing & Traffic Control HowTo[62].

 
 --doc/README.tos

Beispiel:

tos = ef

4.3.14. adsi

adsi = [yes|no]

ADSI (Analog Display Services Interface)[63] sind verschiedene Daten-Dienste für analoge Telefone mit einem Display, z.B. blinkende LED / Anzeige im Display bei wartenen Nachrichten etc.

Falls Sie kompatible Telefone haben, können Sie diese Dienst aktivieren.

Beispiel:

adsi = yes

4.3.15. register

register => username[:password]@remote-host

Ist unser Asterisk-Server nur über eine dynamische IP-Adresse erreichbar (also kein DNS, sondern nur eine IP-Adresse), so muss er sich bei jedem IP-Adresswechsel bei seiner Gegenstelle neu registieren, sonst weiß die Gegenstelle nicht, an welche IP-Adresse sie Gespräche durchstellen soll. Dazu wird register => verwendet.

Beachten Sie, dass register-Angaben nur benutzt werden, wenn das entfernte Ende Sie als Peer und host=dynamic eingestellt hat.

Das grundlegende Format einer Registerangabe sieht wie folgt aus:

register => username[:password]@remote-host

Alternativ können Sie durch die Einbettung des Namens eines geeigneten RSA-Schlüssels[64] in eckige Klammern ([]) einen RSA-Schlüssel spezifizieren:[65]

register => username:[rsa-key-name]@remote-host

Standardmäßig werden Registeranfragen über Port 4569 gesendet. Sie können aber durch Anhängen von :Portnummer (also z.B. :4444) an den Hostnamen explizit einen anderen angeben.



[63] wird per FSK (Frequency Shift Keying, dt.: Frequenzumtastung) übertragen

[64] Asterisk-RSA-Schlüssel finden sich normalerweise in /var/lib/asterisk/keys/. Sie können mittels des astkey-Skripts eigene Schlüssel generieren.

[65] Die eckigen Klammern sind hier Pflicht und nicht wie im Rest des Buches als Optionsangabe zu lesen.