Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
voip:asterisk:config [17.03.2010 21:55. ] – Dokumentation der sip.conf begonnen 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 |