Asterisk Grundkonfiguration

Asterisk Logo

Über die Konfigurationsdateien im Verzeichnis /etc/asterisk/ wird das Verhalten unserer Asteriskinstallation beinflusst.

Wir bearbeiten nun die einzelnen Konfigurationsdateien, die wir der Reihe nach durchgehen. Wie gewohnt bearbeiten wir die mitgelieferten Vorgabedateien und versehen diese mit entsprechenden Kommentaren. In aller Regel werden Kommentare in den Dateien mit einem Semikolon ; markiert. Somit können wir dann bei Bedarf die reinen Konfigurationsdaten mittels eines egrep-Aufrufes gerafft ausgeben.

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 „Gesprächigkeit“ unseres Asterisk-Servers zu erhöhen. Hierzu aktivieren wir die bereits vorhandene Option:

full => notice,warning,error,debug,verbose

Für den Regelbetrieb wird sich unsere Konfiguration aber auf nachfolgende Zeilen beschränken:

# egrep -v '(^\s+;|^;|^$)' /etc/asterisk/logger.conf
[general]
[logfiles]
console => notice,warning,error
messages => notice,warning,error

Den Modullademechanismus von Asterisk bestimmen wir über die Konfigurationsdatei modules.conf.

# egrep -v '(^\s+;|^;|^$)' /etc/asterisk/modules.conf 
[modules]
autoload=yes
preload => func_strings.so
noload => pbx_gtkconsole.so
load => res_musiconhold.so
noload => chan_alsa.so
noload => chan_console.so

Der Kanaltyp SIP1) 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 /etc/asterisk/sip.conf
; Django 17.03.2010 zentrale Rufnummer für den Voicemailserver
vmexten=60
; Django 17.03.2010 deutsche Promts für alle ausgeben
language=de

Die Gesamt-Konfiguration beschränkt sich demnach erst einmal auf:

# egrep -v '(^\s+;|^;|^$)' /etc/asterisk/sip.conf
[general]
context=default                 ; Default context for incoming calls
allowoverlap=no                 ; Disable overlap dialing support. (Default is yes)
bindport=5060                   ; UDP Port to bind to (SIP standard port for unencrypted UDP 
bindaddr=0.0.0.0                ; IP address to bind UDP listen socket to (0.0.0.0 binds to all)
tcpenable=no                    ; Enable server for incoming TCP connections (default is no)
tcpbindaddr=0.0.0.0             ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces)
srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
                                
vmexten=60
language=de
  
[authentication]
[basic-options](!)                ; a template
        dtmfmode=rfc2833
        context=from-office
        type=friend
[natted-phone](!,basic-options)   ; another template inheriting basic-options
        nat=yes
        canreinvite=no
        host=dynamic
[public-phone](!,basic-options)   ; another template inheriting basic-options
        nat=no
        canreinvite=yes
[my-codecs](!)                    ; a template for my preferred codecs
        disallow=all
        allow=ilbc
        allow=g729
        allow=gsm
        allow=g723
        allow=ulaw
[ulaw-phone](!)                   ; and another one for ulaw-only
        disallow=all
        allow=ulaw

Im zweiten Anlauf definieren wir uns nun unsere SIP-Endgeräte. Hierzu legen uns nun pro Endstelle einen Eintrag, nach folgendem Muster an.

[ID]
callerid="Name der Endstelle"
type="User-Type"
username="Username"
secret="Passwort"
mailbox="Mailboxrufnummer"
host="Host-Type"
domain="Registrar"
canreinvite="RTP-Medienstrom Definition"
callgroup="Call-Gruppe"
pickupgroup="Pickup-Gruppe"

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 <>, welche die Rufnummer umklammert wird die Nummer vom Namen anbgetrennt.

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 MWI2), also der Anzeigen von neuen Nachrichten am Endgerät via LED oder Displaynachricht.

host

Festlegung des Hostnamen bzw. Adresse des Endgerätes/Partners. dynamic gibt man an, wenn der Hostname bzw. die IP-Adresse des Hosts nicht bekannt ist, da diese Daten dynamisch vergeben werden.

domain

Festlegung des Domainnamens bzw. der IP-Adresse unseres Asterisk-Servers.

canreinvite

Normalerweise versucht der Asterisk-Server für den Mediendatenstrom (RTP3) ) 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 „geNATteten“ Netzwerk befinden, so muss der Server als Proxy fungieren. Mit der Option canreinvite kann kann nun der RTP-Datenstrom beeinflusst werden.

  • 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.

 callgroup=6,13-15       ; setzt die Gruppen 6, 13, 14 und 15

pickupgroup

Definiert die Pickup-Gruppe(n) für das Endgerät, über die in Verbindung mit dem vorgenannten callgroup-Definitionen Anrufe herangeholt (pick-up) erlaubt sein soll.

 pickupgroup=6,13-15     ; Pickup für die Gruppen 6, 13, 14 und 15 definieren

Somit ergibt sich für unsere grundlegende Erstinstallation folgende Konfiguration.

# egrep -v '(^\s+;|^;|^$)' /etc/asterisk/sip.conf
[general]
context=default                 ; Default context for incoming calls
allowoverlap=no                 ; Disable overlap dialing support. (Default is yes)
bindport=5060                   ; UDP Port to bind to (SIP standard port for unencrypted UDP 
bindaddr=0.0.0.0                ; IP address to bind UDP listen socket to (0.0.0.0 binds to all)
tcpenable=no                    ; Enable server for incoming TCP connections (default is no)
tcpbindaddr=0.0.0.0             ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces)
srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
                                
vmexten=60
language=de
  
[authentication]
[basic-options](!)                ; a template
        dtmfmode=rfc2833
        context=from-office
        type=friend
[natted-phone](!,basic-options)   ; another template inheriting basic-options
        nat=yes
        canreinvite=no
        host=dynamic
[public-phone](!,basic-options)   ; another template inheriting basic-options
        nat=no
        canreinvite=yes
[my-codecs](!)                    ; a template for my preferred codecs
        disallow=all
        allow=ilbc
        allow=g729
        allow=gsm
        allow=g723
        allow=ulaw
[ulaw-phone](!)                   ; and another one for ulaw-only
        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
Asterisk 1.6.0.26, Copyright (C) 1999 - 2010 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
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' for details.
=========================================================================
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.

asterisk*CLI> sip show peers
Name/username              Host            Dyn Nat ACL Port     Status     
14/14                      (Unspecified)    D          5060     Unmonitored 
13/13                      (Unspecified)    D          5060     Unmonitored 
12/12                      (Unspecified)    D          5060     Unmonitored 
11/11                      (Unspecified)    D          5060     Unmonitored
4 sip peers [Monitored: 0 online, 0 offline Unmonitored: 4 online, 0 offline]

Sobald sich das erste SIP-Endgerät am Asterisk-Server erfolgreich angemeldet hat, wird uns dies auf der Konsole entsprechend gemeldet.

  1. - Registered SIP '14' at 192.168.10.61 port 5060

Eine erneute Abfrage der peers zeigt nun den angemeldteten Teilnehmer.

asterisk*CLI> sip show peers
Name/username              Host            Dyn Nat ACL Port     Status     
14/14                      192.168.1.61     D          5060     Unmonitored 
13/13                      (Unspecified)    D          5060     Unmonitored 
12/12                      (Unspecified)    D          5060     Unmonitored 
11/11                      (Unspecified)    D          5060     Unmonitored 
4 sip peers [Monitored: 0 online, 0 offline Unmonitored: 4 online, 0 offline]

Die Details unseres Users 14 können wir uns mit Hilfe des Befehls sip show peer ausgeben lassen.

asterisk*CLI> sip show peer 14
asterisk*CLI> 

  * Name       : 14
  Secret       : <Set>
  MD5Secret    : <Not set>
  Context      : default
  Subscr.Cont. : <Not set>
  Language     : de
  AMA flags    : Unknown
  Transfer mode: open
  CallingPres  : Presentation Allowed, Not Screened
  Callgroup    : 1
  Pickupgroup  : 1
  Mailbox      : 14
  VM Extension : 60
  LastMsgsSent : 32767/65535
  Call limit   : 0
  Dynamic      : Yes
  Callerid     : "Test" <14>
  MaxCallBR    : 384 kbps
  Expire       : 2689
  Insecure     : no
  Nat          : RFC3581
  ACL          : No
  T.38 support : No
  T.38 EC mode : Unknown
  T.38 MaxDtgrm: -1
  CanReinvite  : No
  PromiscRedir : No
  User=Phone   : No
  Video Support: No
  Text Support : No
  Ign SDP ver  : No
  Trust RPID   : No
  Send RPID    : No
  Subscriptions: Yes
  Overlap dial : No
  DTMFmode     : rfc2833
  Timer T1     : 500
  Timer B      : 32000
  ToHost       : 
  Addr->IP     : 192.168.1.61 Port 5060
  Defaddr->IP  : 0.0.0.0 Port 5060
  Transport    : UDP
  Def. Username: 14
  SIP Options  : (none)
  Codecs       : 0x8000e (gsm|ulaw|alaw|h263)
  Codec Order  : (none)
  Auto-Framing :  No 
  100 on REG   : No
  Status       : Unmonitored
  Useragent    : snom360/6.5.15
  Reg. Contact : sip:14@192.168.1.61:5060;line=6xwyo7k7
  Qualify Freq : 60000 ms
  Sess-Timers  : Accept
  Sess-Refresh : uas
  Sess-Expires : 1800 secs
  Min-Sess     : 90 secs

1)
Session Initiation Protokoll
2)
Message Waiting Indication
3)
Real Time Protocol
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • voip/asterisk/config.txt
  • Zuletzt geändert: 19.03.2010 20:11.
  • von django