Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| voip:asterisk:config [17.03.2010 21:12. ] – angelegt django | voip:asterisk:config [19.03.2010 20:11. ] (aktuell) – django | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Asterisk Grundkonfiguration ====== | ||
| + | {{voip: | ||
| + | \\ | ||
| + | Über die Konfigurationsdateien im Verzeichnis // | ||
| + | \\ | ||
| + | Wir bearbeiten nun die einzelnen Konfigurationsdateien, | ||
| + | |||
| + | ===== logger.conf ===== | ||
| + | In der Datei **logger.conf** werden folgende Daten der Log-Einträge unseres Asterisk-Servers definiert: | ||
| + | * Art | ||
| + | * Format | ||
| + | * Umfang | ||
| + | Bei der Erstinstallation bzw. bei umfangreichen Test kann es hilfreich sein, die "// | ||
| + | full => notice, | ||
| + | Für den Regelbetrieb wird sich unsere Konfiguration aber auf nachfolgende Zeilen beschränken: | ||
| + | # egrep -v ' | ||
| + | < | ||
| + | [logfiles] | ||
| + | console => notice, | ||
| + | messages => notice, | ||
| + | ===== modules.conf ===== | ||
| + | Den Modullademechanismus von Asterisk bestimmen wir über die Konfigurationsdatei **modules.conf**. | ||
| + | # egrep -v ' | ||
| + | < | ||
| + | autoload=yes | ||
| + | preload => func_strings.so | ||
| + | noload => pbx_gtkconsole.so | ||
| + | load => res_musiconhold.so | ||
| + | noload => chan_alsa.so | ||
| + | noload => chan_console.so</ | ||
| + | ===== sip.conf ===== | ||
| + | ==== general ==== | ||
| + | Der Kanaltyp **SIP**((**S**ession **I**nitiation **P**rotokoll)) wird über die zentrale Konfigurationsdatei **sip.con** definiert.\\ | ||
| + | Im ersten Schritt definieren wir erst einmal den Voicemailserver-Port und auch aktivieren die deutschen Sprachprompts. | ||
| + | # vim / | ||
| + | < | ||
| + | vmexten=60</ | ||
| + | < | ||
| + | language=de</ | ||
| + | Die Gesamt-Konfiguration beschränkt sich demnach erst einmal auf: | ||
| + | # egrep -v ' | ||
| + | < | ||
| + | context=default | ||
| + | allowoverlap=no | ||
| + | bindport=5060 | ||
| + | bindaddr=0.0.0.0 | ||
| + | tcpenable=no | ||
| + | tcpbindaddr=0.0.0.0 | ||
| + | srvlookup=yes | ||
| + | | ||
| + | vmexten=60 | ||
| + | language=de | ||
| + | | ||
| + | [authentication] | ||
| + | [basic-options](!) | ||
| + | dtmfmode=rfc2833 | ||
| + | context=from-office | ||
| + | type=friend | ||
| + | [natted-phone](!, | ||
| + | nat=yes | ||
| + | canreinvite=no | ||
| + | host=dynamic | ||
| + | [public-phone](!, | ||
| + | nat=no | ||
| + | canreinvite=yes | ||
| + | [my-codecs](!) | ||
| + | disallow=all | ||
| + | allow=ilbc | ||
| + | allow=g729 | ||
| + | allow=gsm | ||
| + | allow=g723 | ||
| + | allow=ulaw | ||
| + | [ulaw-phone](!) | ||
| + | disallow=all | ||
| + | allow=ulaw</ | ||
| + | ==== phones ==== | ||
| + | Im zweiten Anlauf definieren wir uns nun unsere SIP-Endgeräte. Hierzu legen uns nun pro Endstelle einen Eintrag, nach folgendem Muster an. | ||
| + | < | ||
| + | callerid=" | ||
| + | type=" | ||
| + | username=" | ||
| + | secret=" | ||
| + | mailbox=" | ||
| + | host=" | ||
| + | domain=" | ||
| + | canreinvite=" | ||
| + | callgroup=" | ||
| + | pickupgroup=" | ||
| + | |||
| + | ---- | ||
| + | |||
| + | Im einzelnen haben die Parameter folgende Bedeutung: | ||
| + | === [ID] === | ||
| + | **ID** des SIP-Teilnehmers mit welcher dieser Teilnehmer beim Asterisk-Server bekannt ist. Neben einer reinen numerischen Angabe kann man auch mit Namen und/oder alphanumerischen Kombinationen arbeiten. Der Übersichtlichkeit halber empfiehlt es sich, die ID analog der Rufnummer zu verwenden. | ||
| + | === callerid === | ||
| + | Überschreibt vom Gerät gesendete die Caller-ID. Diese CallerID besteht in der Regel aus zwei Teilen, dem CallerIDName und CallerIDNum. Mit Hilfe der spitzen Klammern **<> | ||
| + | === type === | ||
| + | Über den **type** wird festgelegt, in welcher Richtung der Teilnehmer Verbindungen aufbauen kann/darf. Folgende Richtungen sind festlegbar: | ||
| + | * Asterisk ⇔ friend | ||
| + | * Asterisk ⇒ peer | ||
| + | * Asterisk ⇐ user | ||
| + | Ein **user** kann also _nur_ anrufen, ein **peer** _nur_ angerufen werden und ein **friend** darf beides. | ||
| + | === username === | ||
| + | Username, mit dem sich das Endgerät bei der Anmeldung beim Asterisk-Server meldet. | ||
| + | === secret === | ||
| + | Passwort, welches das Endgerät zusammen mit dem vorgenannten Username bei der Anmeldung am Asterisk-Server verwendet. | ||
| + | === mailbox === | ||
| + | Definition der Mailbox-Nummer die dem Endgerät zugeordnet werden soll. Dieser Eintrag wird auch für die MWI((**M**essage **W**aiting **I**ndication)), | ||
| + | === host === | ||
| + | Festlegung des Hostnamen bzw. Adresse des Endgerätes/ | ||
| + | === domain === | ||
| + | Festlegung des Domainnamens bzw. der IP-Adresse unseres Asterisk-Servers. | ||
| + | === canreinvite === | ||
| + | Normalerweise versucht der Asterisk-Server für den Mediendatenstrom (RTP((**R**eal **T**ime **P**rotocol)) ) den direkten Weg von Teilnehmer **A** zum Teilnehmer **B** einzuschlagen. Soll der Astrisk-Server auf Eingaben während des Gespräches reagieren, oder wenn sich die Geräte in einem "// | ||
| + | * **yes** (default) Normale Einstellung. Asterisk versucht, den direkten RTP-Datenstrom zwischen den beiden Partnern zu etablieren. | ||
| + | * **nonat** Den RTP-Medienstrom nur umleiten, wenn sich die Teilnehmer __nicht__ hinter einem NAT befinden und dies für den Asterisk-Server erkennbar ist. | ||
| + | * **update** Zum Umleiten sollen anstatt INVITE- UPDATE-Pakete verwendet werden. | ||
| + | === callgroup === | ||
| + | Definition einer oder mehrerer Call-Groups für das Endgerät. Mehrere Gruppen werden dabei mittels Komma und eine Reihe von Gruppen mit einem Minus **-** getrennt. Es können insgasamt 64 Gruppen, von **0** bis **63** definiert werden. | ||
| + | | ||
| + | === pickupgroup === | ||
| + | Definiert die Pickup-Gruppe(n) für das Endgerät, über die in Verbindung mit dem vorgenannten **callgroup**-Definitionen Anrufe herangeholt (// | ||
| + | | ||
| + | |||
| + | ---- | ||
| + | |||
| + | Somit ergibt sich für unsere grundlegende Erstinstallation folgende Konfiguration. | ||
| + | # egrep -v ' | ||
| + | < | ||
| + | context=default | ||
| + | allowoverlap=no | ||
| + | bindport=5060 | ||
| + | bindaddr=0.0.0.0 | ||
| + | tcpenable=no | ||
| + | tcpbindaddr=0.0.0.0 | ||
| + | srvlookup=yes | ||
| + | | ||
| + | vmexten=60 | ||
| + | language=de | ||
| + | | ||
| + | [authentication] | ||
| + | [basic-options](!) | ||
| + | dtmfmode=rfc2833 | ||
| + | context=from-office | ||
| + | type=friend | ||
| + | [natted-phone](!, | ||
| + | nat=yes | ||
| + | canreinvite=no | ||
| + | host=dynamic | ||
| + | [public-phone](!, | ||
| + | nat=no | ||
| + | canreinvite=yes | ||
| + | [my-codecs](!) | ||
| + | disallow=all | ||
| + | allow=ilbc | ||
| + | allow=g729 | ||
| + | allow=gsm | ||
| + | allow=g723 | ||
| + | allow=ulaw | ||
| + | [ulaw-phone](!) | ||
| + | disallow=all | ||
| + | allow=ulaw | ||
| + | [11] | ||
| + | callerid=Testr <11> | ||
| + | type=friend | ||
| + | username=11 | ||
| + | secret=12qwasyx | ||
| + | mailbox=11 | ||
| + | host=dynamic | ||
| + | domain=192.168.1.1 | ||
| + | canreinvite=no | ||
| + | language=de | ||
| + | callgroup=1 | ||
| + | pickupgroup=1 | ||
| + | [12] | ||
| + | callerid=Test <12> | ||
| + | type=friend | ||
| + | username=12 | ||
| + | secret=yaq12wsx | ||
| + | mailbox=12 | ||
| + | host=dynamic | ||
| + | domain=192.168.1.1 | ||
| + | canreinvite=no | ||
| + | callgroup=1 | ||
| + | pickupgroup=1 | ||
| + | [13] | ||
| + | callerid=Test <13> | ||
| + | type=friend | ||
| + | username=13 | ||
| + | secret=xsw21qay | ||
| + | mailbox=13 | ||
| + | host=dynamic | ||
| + | domain=192.168.1.1 | ||
| + | canreinvite=no | ||
| + | callgroup=1 | ||
| + | pickupgroup=1 | ||
| + | [14] | ||
| + | callerid=Test <14> | ||
| + | type=friend | ||
| + | username=14 | ||
| + | secret=21wqsaxy | ||
| + | mailbox=14 | ||
| + | host=dynamic | ||
| + | domain=192.168.1.1 | ||
| + | canreinvite=no | ||
| + | callgroup=1 | ||
| + | pickupgroup=1</ | ||
| + | Sollte der Server noch nicht gestartet worden sein, holen wir dies nun nach. | ||
| + | # service asterisk start | ||
| + | Anschließend verbinden wir uns mit der Asterisk-Konsole mit folgendem Aufruf: | ||
| + | # asterisk -r | ||
| + | < | ||
| + | Created by Mark Spencer < | ||
| + | Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' | ||
| + | This is free software, with components licensed under the GNU General Public | ||
| + | License version 2 and other licenses; you are welcome to redistribute it under | ||
| + | certain conditions. Type 'core show license' | ||
| + | ========================================================================= | ||
| + | Connected to Asterisk 1.6.0.26 currently running on office (pid = 15522) | ||
| + | Verbosity is at least 3 | ||
| + | asterisk*CLI></ | ||
| + | Unsere zuvor definierten SIP-Teilnehmerkönnen wir uns nun mit der Abfrage **sip show peers** anzeigen lassen. | ||
| + | < | ||
| + | Name/ | ||
| + | 14/14 (Unspecified) | ||
| + | 13/13 (Unspecified) | ||
| + | 12/12 (Unspecified) | ||
| + | 11/11 (Unspecified) | ||
| + | 4 sip peers [Monitored: 0 online, 0 offline Unmonitored: | ||
| + | Sobald sich das erste SIP-Endgerät am Asterisk-Server erfolgreich angemeldet hat, wird uns dies auf der Konsole entsprechend gemeldet. | ||
| + | -- Registered SIP ' | ||
| + | Eine erneute Abfrage der peers zeigt nun den angemeldteten Teilnehmer. | ||
| + | < | ||
| + | Name/ | ||
| + | 14/14 192.168.1.61 | ||
| + | 13/13 (Unspecified) | ||
| + | 12/12 (Unspecified) | ||
| + | 11/11 (Unspecified) | ||
| + | 4 sip peers [Monitored: 0 online, 0 offline Unmonitored: | ||
| + | Die Details unseres Users //14// können wir uns mit Hilfe des Befehls **sip show peer** ausgeben lassen. | ||
| + | < | ||
| + | asterisk*CLI> | ||
| + | |||
| + | * Name : 14 | ||
| + | Secret | ||
| + | MD5Secret | ||
| + | Context | ||
| + | Subscr.Cont. : <Not set> | ||
| + | Language | ||
| + | AMA flags : Unknown | ||
| + | Transfer mode: open | ||
| + | CallingPres | ||
| + | Callgroup | ||
| + | Pickupgroup | ||
| + | Mailbox | ||
| + | VM Extension : 60 | ||
| + | LastMsgsSent : 32767/65535 | ||
| + | Call limit : 0 | ||
| + | Dynamic | ||
| + | Callerid | ||
| + | MaxCallBR | ||
| + | Expire | ||
| + | Insecure | ||
| + | Nat : RFC3581 | ||
| + | ACL : No | ||
| + | T.38 support : No | ||
| + | T.38 EC mode : Unknown | ||
| + | T.38 MaxDtgrm: -1 | ||
| + | CanReinvite | ||
| + | PromiscRedir : No | ||
| + | User=Phone | ||
| + | Video Support: No | ||
| + | Text Support : No | ||
| + | Ign SDP ver : No | ||
| + | Trust RPID : No | ||
| + | Send RPID : No | ||
| + | Subscriptions: | ||
| + | Overlap dial : No | ||
| + | DTMFmode | ||
| + | Timer T1 : 500 | ||
| + | Timer B : 32000 | ||
| + | ToHost | ||
| + | Addr-> | ||
| + | Defaddr-> | ||
| + | Transport | ||
| + | Def. Username: 14 | ||
| + | SIP Options | ||
| + | Codecs | ||
| + | Codec Order : (none) | ||
| + | Auto-Framing : No | ||
| + | 100 on REG : No | ||
| + | Status | ||
| + | Useragent | ||
| + | Reg. Contact : sip: | ||
| + | Qualify Freq : 60000 ms | ||
| + | Sess-Timers | ||
| + | Sess-Refresh : uas | ||
| + | Sess-Expires : 1800 secs | ||
| + | Min-Sess | ||