iax.conf steht immer der
Eintrag [general]. Ähnlich wie bei der
sip.conf werden im [general]-Abschnitt
allgemeine Parameter übergeben. Darunter kommt dann die Definition der
einzelnen Channels.ast1 und ast2. Jede
Anlage soll in der Lage sein, Gespräche an die andere Anlage mit dem
IAX-Protokoll zu übermitteln. Dazu wird eine Vorwahl benutzt. Die
Vorwahl 0901 verbindet zur Anlage ast1, und
0902 verbindet zur Anlage ast2. Die Anlage
ast1 besitzt in diesem Beispiel die IP-Adresse
192.168.0.101 und die Anlage ast2 die
IP-Adresse 192.168.0.102.iax.conf enthält folgende Konfiguration:
[ast2] type = friend host = 192.168.0.102 secret = 1234 context = test-telefone permit = 0.0.0.0/0.0.0.0Die
extensions.conf enthält folgende Konfiguration:
[via-asterisk2] exten => 09021000,1,Dial(IAX2/ast2/1000) exten => 09021001,1,Dial(IAX2/ast2/1001) ; ^ ^ ^ ^ ; | | | | ; virt.Vorwahl ext Verbindung ext
iax.conf enthält folgende Konfiguration:
[ast1] type = friend host = 192.168.0.101 secret = 1234 context = test-telefone permit = 0.0.0.0/0.0.0.0Die
extensions.conf enthält folgende Konfiguration:
[via-asterisk1] exten => 09011000,1,Dial(IAX2/ast1/1000) exten => 09011001,1,Dial(IAX2/ast1/1001)
[general]-Teil
definiert werden, sind also gültig für alle Channels. Sie können hier
außerdem auch einige der in „Channel-Einstellungen“
beschriebenen Einstellungen verwenden.bandwidthbandwidth = [low|medium|high]allow und disallow
(„allow“).highmediumlowbandwidth = low disallow = lpc10 ; hat schlechte Qualität
allowallow = [all|Name des Codecs]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 („bandwidth“)
für eine komfortable Einstellung. allow und
disallow können mehrmals verwendet werden und sind damit
eine Ausnahme.disallow = all allow = ulaw allow = gsm
codecprioritycodecpriority = [caller|host|disabled|reqonly]host.callerhostdisabledreqonlycodecpriority = callerauthdebugauthdebug = [yes|no]authdebug=no deaktiviert werden.authdebug = noautokillautokill = [yes|Timeout in Millisekunden]autokill nicht gesetzt ist, versucht
Asterisk einen nicht erreichbaren Host sehr lange zu erreichen. Dies
kann bei vielen gleichzeitigen Versuchen (auf mehreren Channels) zu
Performance-Problemen führen. Mit autokill=yes wird die
Verbindung nach 2000 Millisekunden abgebrochen. Alternativ kann man auch
die Anzahl der Millisekunden angeben.autokill = 3500amaflagsamaflags = [default|omit|billing|documentation]omit werden keine Aufzeichnungen
gemacht.amaflags = billingbindaddrbindaddr = [IP-Adresse]0.0.0.0 für alle
Adressen.bindaddr = 0.0.0.0bindportbindport = [Port-Nummer]bindaddr-Eintrag erfolgen!bindport = 4569delayrejectdelayreject = [yes|no]yes gesetzt werden, um
eventuelle 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.delayreject = yeslanguagelanguage = [en|de|...]SayNumber() gelesen, die für
verschiedene Sprachen unterschiedliche Sprachbausteine
verwenden.language = demailboxdetailmailboxdetail = [yes|no]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.mailboxdetail=yes.mailboxdetail = yestostos = [...]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 der
Rückwärtskompatibilität).doc/README.tos
(1.2) / doc/ip-tos.txt (1.4):Die zulä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 =========================================== | ||
--doc/ip-tos.txt | ||
tos = efadsiadsi = [yes|no]adsi = yesregisterregister => username[:password]@remote-hostregister =>
verwendet.register-Angaben nur benutzt
werden, wenn das entfernte Ende Sie als Peer und
host=dynamic eingestellt hat.register =>
username[:password]@remote-host[]) setzen, einen
RSA-Schlüssel spezifizieren:[48]register =>
username:[rsa-key-name]@remote-host:Portnummer (also z. B.
:4444) an den Hostnamen explizit einen anderen
angeben.[general] verwendet werden.typetype = [user|peer|friend]user (z. B. einem Benutzer-Endgerät, das sich mit uns
verbindet) oder einem peer (z. B. einem 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.type = peertype=user) IP-basierte Zugangsbeschränkungen (siehe
„permit“) definiert haben, müssen Sie
in der iax.conf einen Eintrag
[guest] haben, bei dem Sie weder auth noch
secret angeben. Andernfalls können sich beliebige User
verbinden, indem sie ein Passwort erraten.[guest] type=user callerid="IAX-Gast-Benutzer"
accountcodeaccountcode = [Abrechnungsnummer]/var/log/asterisk/cdr-csv/ benutzt. Verwenden Sie
daher nur Kleinbuchstaben, Ziffern, den Bindestrich und den
Unterstrich.accountcode = iax-hausmeisterbandwidthbandwidth = [low|medium|high]bandwidth dient als Gruppierung verschiedener
Soundcodecs. Auf diese Weise kann man einfacher bestimmte Situationen
definieren (siehe „bandwidth“).bandwidth = lowallowallow = [all|Name des Codecs]allow) oder verboten (disallow) werden (siehe
„allow“). Dabei ist zu beachten, das
eventuell im [general]-Bereich erlaubte Codecs erst durch
ein disallow=all wieder verboten werden müssen.disallow = all allow = ulaw allow = gsm
codecprioritycodecpriority = [caller|host|disabled|reqonly]codecpriority“).codecpriority = calleramaflagsamaflags = [default|omit|billing|documentation]amaflags“).amaflags = documentationcalleridcallerid = [Name[ <Nummer>]]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.callerid = "Mark Spencer" <(256) 428
6000>hosthost=[Host|dynamic]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“).host = 192.168.0.201host = dynamicdefaultipdefaultip = [IP-Adresse]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.defaultip = 192.168.0.201permitpermit = 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.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
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
192.168.0.0 bis 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
authauth = [plaintext|md5|rsa]plaintext, md5 und
rsa.plaintextsecret („secret“) angegeben.md5secret („secret“)
angegeben.rsaauth legen Sie eine durch Komma getrennte
Liste von erlaubten Authentifizierungsmethoden fest.auth = rsa,md5auth noch secret
angeben, bedeutet das, dass keine Authentifizierung notwendig
ist.inkeysinkeys = [rsa-key:rsa-key:...]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./var/lib/asterisk/keys/schluesselname.pubinkeys = server-koblenz:server-bonnoutkeyoutkey = [rsa-key]outkey-Option verwenden, um sich
bei einem Peer mithilfe 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./var/lib/asterisk/keys/schluesselname.keyoutkey = privater-schluesselmailboxmailbox = [Mailboxname[@Mailbox-Context]]default, können Sie sie als
mailbox@context angeben. Um
mehrere Mailboxen mit einem einzigen Peer zu verknüpfen, müssen Sie den
mailbox-Befehl mehrmals verwenden.mailbox = 1000languagelanguage = [en|de|...]SayNumber() verwendet, um unterschiedliche Sprachbausteine
zu benutzen.language = decontextcontext = [Context]context = defaultregcontextregcontext = [Context]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.regcontext = from-iaxregextenregexten = [Nummer]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.regexten = 3000jitterbufferjitterbuffer = [yes|no]trunk (siehe „trunk“).jitterbuffer = yesforcejitterbufferforcejitterbuffer = [yes|no]forcejitterbuffer = yesmaxjitterbuffermaxjitterbuffer = [Laenge in Millisekunden]maxjitterbuffer = 400resyncthresholdresyncthreshold=[Wert in Millisekunden]resyncthreshold, der in
Millisekunden angegeben wird.resyncthreshold = 800trunktrunk = [yes|no]jitterbuffer“) nicht gut bei eingeschaltetem
Trunk-Modus.trunk = yestrunkfreqtrunkfreq = [Wiederholrate in Millisekunden]trunkfreq wird in Millisekunden angegeben, wie
oft Trunk-Nachrichten gesendet werden. Gilt nur, wenn
trunk=yes gesetzt wurde.trunkfreq = 20qualifyqualify = [yes|no|Zeit in Millisekunden]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 (bzw. deren Software) kommen nicht mit
diesen Nachrichten zurecht.qualify = yesqualifysmoothingqualifysmoothing = [yes|no]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.qualifysmoothing = yes/var/lib/asterisk/keys/. Sie können mittels des
astkey-Skripts eigene Schlüssel
generieren.[50] Zum Beispiel das bei Asterisk enthaltene Kernel-Modul
ztdummy oder zaprtc von Junghanns (http://www.junghanns.net/downloads/).