Asterisk / TrixBox - Telefonserver

From Q
Jump to navigation Jump to search

Contents

Basis Installation

Auf der offizielle TrixBox Page http://www.trixbox.org gibts das ISO Image zum Downloaden. Die Installation erfolgt vollautomatisch anhand der bootfähigen CD, lediglich die Sprache, Zeitzone und das Root Kennwort müssen eingestellt werden.

  • Also image runterladen
  • brennen
  • CD einlegen und ca. 30-60 min warten!

Basis Konfiguration

Ein volständiges Handbuch für A@H findet sich unter hier [1] ich werde hier nur die wichtigsten Punkte ansprechen.
Die Systemabsicherung bzw. das ändern der Passwörter sind sehr wichtige Schritte!
Es wäre ziemlich blöd dies zu überspringen oder die Standart Passwörter so zu belassen aus dem einfachen Grund da jedem diese Passwörter bekannt sind...

System Passwörter

Root Passwort ändern

# # passwd



Asterisk Manager Default Password ändern

Es müssen folgende zwei Dateien geändert werden.
Bitte beachten dass das gewählte Passwort in beide Dateien gleich sein muss!

# # nano -w /etc/asterisk/manager.conf



File: nano -w /etc/asterisk/manager.conf

...
[admin]
 secret = secret123password
 deny = 0.0.0.0/0.0.0.0
 permit = 127.0.0.1/255.255.255.0
 read = system,call,log,verbose,command,agent,user
 write = system,call,log,verbose,command,agent,user
...



# # nano -w /etc/amportal.conf



File: nano -w /etc/amportal.conf

...
 AMPMGRUSER=admin
 AMPMGRPASS=secret123password
...



FreePBX Administration Password ändern

dazu einfach im Browser "http://trixbox-IP-Adresse/admin" eingeben
Standard Banutzername: maint
Standard Passwort: password

oder direkt in der Konsole ändern:

# # passwd maint



Flash Operator Panel Password ändern

folgender Zeile suchen und ein eigenes Passwort eintragen.

File: nano -w /var/www/html/panel/op_server.cfg
code=passw0rd


MeetMe Password ändern

# # passwd-meetme



System Mail Password ändern

# # passwd admin



Sugar CRM Password ändern

  • GoTo "http://trixbox-IP-Adresse/"
  • Standard Banutzername: admin
  • Standard Passwort: password
  • unter "My Account" "Change Password" anklicken


Voicemail & Recordings (ARI) Password ändern

folgender Zeile suchen und ein eigenes Passwort eintragen.

File: nano -w /var/www/html/recordings/includes/main.conf.php
$ari_admin_password = "ari_password"; 

Configs anpassen

sip.conf

einige Dateien müssen manuell etwas abgeändert werden hier mal eine kleine Übersicht.

    • /etc/asterisk/sip_nat.conf
    • /etc/asterisk/capi.conf
    • /etc/asterisk/modules.conf
    • /dev/capi20
File: nano -w /etc/asterisk/sip_nat.conf.php

...
localnet = 192.168.0.0/255.255.255.0
externip = meinserver.mine.nu
...

Dieses Beispiel zeigt dass der Asterisk Server sich irgendwo im 192.168.0.xxx Netz befindet.
Die letzte Stelle muss auf jeden Fall eine null sein und der Rest einfach für das entsprechenden Netz anpassen.
Das Ganze wird benötigt wenn der Angerufene nicht gehört wird. Die gegenstelle versucht sonst auf die locale IP des Asterisk server zu Antworten was aber bei eine Private IP nicht funktionieren kann.

capi.conf

nur notwendig falls eine ISDN CAPI Karte verwendet wird z.B Eicon oder AVM Fritz! Die Dokumentation hierfür ist in diesem Artikel unter der Hardwarerubrik der entsprechende Karte zu finden.

modules.conf

Falls kein ISDN benutzt wird muss auch nichts in modules.conf geändert werden. Wird jedoch ISDN Hardware verwendet so ist die Dokumentation hierfür ist in diesem Artikel unter der Hardwarerubrik der entsprechende Karte zu finden.

ISDN Hardware

HFC Karten & Zaptel



Wir verwenden bei dieser Installation die modifizierten Junghanns Treiber (Bristuff und zusätzlich das Flroz HFC Patch.

TrixBox Aktuallisieren


Trixbox sollte auf dem aktuellsten Stand sein.

Updateskript Aktuallisieren

# # trixbox-update.sh



Trixbox Aktuallisieren

# # trixbox-update.sh update




Install Skript anpassen


Leider ist das Trixbox install Skript nicht ganz perfekt daher müssen einige Änderungen gemacht werden.

# # cd /usr/local/sbin



Mit Nano öffenen und folgendes Abschnitt ändern oder hinzufügen.

# # nano -w /usr/local/sbin/install-ZAPHFC



so ziemlich am ende der Datei sollte es Abschnitte geben die ca. so aussehen.

File: nano -w /usr/local/sbin/install-ZAPHFC
1.2.9 )
			ASTERISK_VERSION=1.2.9.1
			ZAPTEL_VERSION=1.2.6
			LIBPRI_VERSION=1.2.3
			VERSION_COMMENT=""
#			BRISTUFF_VERSION=bristuff-0.3.0-PRE-1q
			BRISTUFF_VERSION=bristuff-0.3.0-PRE-1r
			FLORZ_VERSION=zaphfc_0.3.0-PRE-1o_florz-12.diff.gz
			if [ $FLORZ_PATCH -a $FLORZ_TESTED ]
			then
			# set BRISTUFF_VERSION to the last tested version as per Florz's site 
				#	ASTERISK_VERSION=1.2.7.1
				#	ZAPTEL_VERSION=1.2.5
				#	LIBPRI_VERSION=1.2.2
				#	BRISTUFF_VERSION=bristuff-0.3.0-PRE-1o
					VERSION_COMMENT=""
			fi
			;;
		1.2.10 )
			ASTERISK_VERSION=1.2.10
			ZAPTEL_VERSION=1.2.7
			LIBPRI_VERSION=1.2.3
			VERSION_COMMENT=""
			BRISTUFF_VERSION=bristuff-0.3.0-PRE-1r
			FLORZ_VERSION=zaphfc_0.3.0-PRE-1o_florz-12.diff.gz
			if [ $FLORZ_PATCH -a $FLORZ_TESTED ]
			then
			# set BRISTUFF_VERSION to the last tested version as per Florz's site 
					# ASTERISK_VERSION=1.2.7.1
					# ZAPTEL_VERSION=1.2.5
					# LIBPRI_VERSION=1.2.2
					# BRISTUFF_VERSION=bristuff-0.3.0-PRE-1o
					VERSION_COMMENT=""



Skript ausführen


# # cd /usr/local/sbin


# # ./install-ZAPHFC -a 1.2.9 -m 0 -f t


File: Erläuterungen zu den Parametern

-a 1.2.9     Welche Version bzw welcher Kontext soll installiert werden. 

-m 0         NT oder TE modus für die HFC Karte
             -m 1      Karte 1 NT Mode
             -m 10     Karte 2 NT Mode, Karte 1 TE Mode
             -m 11     Karte 2 & 1 NT Mode
             -m 1100   Karte 4 & 3 NT und Karte 2 & 1 TE Mode

-f t         Florz`s Patch installieren
             -f t      tested
             -f u      untested

Konfiguration anpassen


Spezifische Änderungen für die HFC Karten

modules.conf


File: nano -w /etc/asterisk/modules.conf

[modules]

autoload=yes
noload=>app_trunkisavail.so   ;diese Zeile gleich nach autoload=yes eintragen


zapata.conf


folgende zeile in zapata.conf aus kommentieren. Dadurch wird verhindert das Trixbox die eigenen zapata Einstellungen verwendet und nicht die von uns installierten.

File: nano -w /etc/asterisk/zapata.conf

...
;Include AMP configs
;#include zapata_aditional.conf
...

zapata-BRI-HFC.conf


Je nach dem was für eine Anschlußart man verwendet müss dies in zapata-BRI-HFC.conf angepasst werden.

File: nano -w /etc/asterisk/zapata-BRI-HFC.conf

...
signalling=bri_cpe                   ;ISDN Anlagenanschluß

signalling=bri_cpe_ptmp              ;ISDN Mehrgeräteanschluß
...

zaptel

Ich verwende eine HFC Karte mit nur einem BRI Kanal diese dokumentation zählt auch nur für die 1 - 4 BRI Kanal Karten in dem Fall müssen alle Module bis auf das letzte "zaphfc" mit "#" deaktiviert werden.

Falls jedoch eine PRI Karte verwendet wird so muss das entsprechende Modul ausgewählt werden.

File: nano -w /etc/sysconfig/zaptel

TELEPHONY=yes
#DEBUG=yes

# Un-comment as per your requirements; modules to load/unload
# genzaptelconf will populate this file

#Module Name                      Hardware
#MODULES="$MODULES tor2"        # T400P - Quad Span T1 Card
                                # E400P - Quad Span E1 Card

#MODULES="$MODULES wct4xxp"     # TE405P - Quad Span T1/E1 Card (5v version)
                                # TE410P - Quad Span T1/E1 Card (3.3v version)

#MODULES="$MODULES wct1xxp"     # T100P - Single Span T1 Card
                                # E100P - Single Span E1 Card

#MODULES="$MODULES wcte11xp"    # TE110P - Single Span T1/E1 Card

#MODULES="$MODULES wcfxo"       # X100P - Single port FXO interface
                                # X101P - Single port FXO interface

#MODULES="$MODULES wctdm"       # TDM400P - Modular FXS/FXO interface (1-4 ports)
#MODULES="$MODULES wcfxs"       # either above or this

#MODULES="$MODULES wcusb"       # S100U - Single port FXS USB Interface
#MODULES="$MODULES wcfxsusb"    # either above or this

#MODULES="$MODULES torisa"      # Old Tormenta1 ISA Card

#MODULES="$MODULES ztdummy"     # UHCI USB Zaptel Timing Only Interface

MODULES="$MODULES zaphfc"       # HFC PCI Card Support


Fertigstellen und Prüfen


Um die Installation abzuschließen muss der Server gebootet werden.


# # reboot




die Funktion der Karten kann mit folgendem Befehl geprüft werden.

# # cat /proc/zaptel*



File: cat /proc/zaptel*

[root@linux ~]# cat /proc/zaptel/*

Span 1: ZTHFC1 "HFC-S PCI A ISDN card 0 [TE] layer 1 ACTIVATED (F7)" AMI/CCS
           1 ZTHFC1/0/1 Clear (In use)
           2 ZTHFC1/0/2 Clear (In use)
           3 ZTHFC1/0/3 HDLCFCS (In use)

Span 2: ZTHFC2 "HFC-S PCI A ISDN card 1 [TE] layer 1 DEACTIVATED (F7)" AMI/CCS
           4 ZTHFC2/0/1 Clear (In use)
           5 ZTHFC2/0/2 Clear (In use)
           6 ZTHFC2/0/3 HDLCFCS (In use)

[root@linux ~]#




Um herauszufinden welche Karte welche ist genügt es einfach das ISDN Kabel zu entfernen.
In meinem Beispiel sieht man das nur eine Karte als Aktiv markiert wird die andere ist eben nicht angeschlossen.

NT & TE Modus Ändern


Der Modus der Karte lässt sich bequem ändern.

Dazu einfach das Skript ausführen und folgende Parameter verwenden:

# # cd /usr/local/sbin


# # ./install-ZAPHFC -C -R -m 11 -f t


File: Erläuterungen zu den Parametern

-C           nur konfigurieren nicht kompiliern.

-R           überschreibe die Konfigurationsdatei /etc/asterisk/zapata-BRI-HFC.conf

-m 11         NT oder TE modus für die HFC Karte
             -m 1      Karte 1 NT Mode
             -m 10     Karte 2 NT Mode, Karte 1 TE Mode
             -m 11     Karte 2 & 1 NT Mode
             -m 1100   Karte 4 & 3 NT und Karte 2 & 1 TE Mode

-f t         Florz`s Patch installieren
             -f t      tested
             -f u      untested



Prüfen oder alles geklappt hat:

# # cat /proc/zaptel*


NT Mode und ISDN Telefone

Um ein ISDN Tel. direkt an der ISDN Karte zu verwenden muss diese in erster Linie als NT Konfiguriert werden.
des weiteren gibt es da noch ein kleines Probelm bzgl. der Stromversorgung. Die meisten ISDN Tel. weden über die 40v ISDN Leiung mit Strom versorgt und besitzen deshalb auch kein Netzteil. Solch ein Tel. würde direkt an der Karte nicht funktionieren da diese keine Spannung liefert.

Der Trick mit dem NTBA

Ein NTBA hat zwei RJ45 Buchsen und eine S0 Klemmleiste.
an den RJ45 Buchsen können bis zu 2 und max 8 Endgeräte angeschlossen werden.
man nehme ein altes ISDN Kabel und schneide ein Stecker ab. Die einzelnen Dräte sind wie folgt (siehe Bild) anzuklemmen.

Bild:Beispiel.jpg

AVM Fritz

Installation Eicon Diva Karten

Bitte beachten, dass es hierbei nur um die A@H unter CentOS funktionalität und Installation handelt. Viele Schritte sind jedoch ziemlich ähnlich und könnten daher auch unter andere Distributionen eingesetzt werden.

Die Eicon Karten werden alle gleich installiert.

Voraussetzungen & Abhänigkeiten



Die Asterisk@Home Software heißt jetzt TrixBox. Durch die Umstellung ist ein Symlink auf den aktuellen Kernel zu setzen.

# # ln -s /usr/src/kernels/2.6.9-34.EL-smp-i686 /usr/src/linux



Installation der Pakette


Um Chan-CAPI installieren zu können muss folgendes archiv in /usr/include/asterisk/ kopiert werden

# # mkdir /usr/include/asterisk


# # wget http://zulasch.zu.funpic.de/asterisk.rar


Datei entpacken und nur die einzelnen Dateien ins asterisk Verzeichniss kopieren.
dann die rpm Pakette wie folgt installieren

# # rpm -i libstdc++-devel-3.4.5-2.i386.rpm


# # rpm -i gcc-c++-3.4.5-2.i386.rpm


# # rpm -i divas4linux_EICON-105.541-1.i386.rpm



dann die libcapi Headers entpacken & installieren:

# # tar xfvz libcapi20-3-cm.tar.gz


# # cd libcapi20-3-cm


# # ./configure


# # make


# # make install



und noch die A@H CAPI Treiber:

# # tar xfvz chan_capi-cm-0.6.5.tar.gz


# # cd chan_capi-cm-0.6.5


# # make


# # make install


# # make install_config


Installation des Eicon Diva Treibers

# # cd /usr/lib/eicon/divas/src/


# # ./Build



nun noch die Konfiguration der ISDN Karte

# # cd /usr/lib/eicon/divas/


# # ./Config



Die Config ist selbsterklären und kann auch ohne Änderungen!
Anschließend die Karte starten.

# # cd /usr/lib/eicon/divas/


# # ./Start



und testen ob alles Funktioniert

# # capiinfo


dies sollte einige Infos über die Karte und Anzahl der Kanäle ausgeben ist dies der Fall wurde alles richtig gemacht!

CAPI Konfiguration

hier sind folgende punkte zu beachten:

  • der context [ISDN1] darf nicht interfaces heißen
  • es müssen die MSN Nr. Eingetragen werden
  • der Context muss in context=from-pstn geändert werden.
  • die Änderungen der capi.conf wirken sich oft nur nach einem Neustart des Asterisks aus!


File: nano -w /etc/asterisk/capi.conf
; CAPI config

; general section

[general]
nationalprefix=0
internationalprefix=00
rxgain=0.8
txgain=0.8
language=de      ;set default language
;ulaw=yes        ;set this, if you live in u-law world instead of a-law

; interface sections ...

[ISDN1]          ;this example interface gets name 'ISDN1' and may be any
                 ;name not starting with 'g' or 'contr'.
;ntmode=yes      ;if isdn card operates in nt mode, set this to yes
isdnmode=msn     ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
                 ;when using NT-mode, 'DID' should be set in any case
incomingmsn=10,11
msn=10,11
;defaultcid=123  ;set a default caller id to that interface for dial-out,
                 ;this caller id will be used when dial option 'd' is set.
;controller=0    ;ISDN4BSD default
;controller=7    ;ISDN4BSD USB default
controller=1     ;capi controller number to use
group=1          ;dialout group
;prefix=0        ;set a prefix to calling number on incoming calls
softdtmf=on      ;enable/disable software dtmf detection, recommended for AVM cards
relaxdtmf=on     ;in addition to softdtmf, you can use relaxed dtmf detection
accountcode=     ;Asterisk accountcode to use in CDRs
context=from-pstn  ;context for incoming calls
;holdtype=hold   ;when Asterisk puts the call on hold, ISDN HOLD will be used. If
                 ;set to 'local' (default value), no hold is done and Asterisk may
                 ;play MOH.
;immediate=yes   ;DID: immediate start of pbx with extension 's' if no digits were
                 ;     received on incoming call (no destination number yet)
                 ;MSN: start pbx on CONNECT_IND and don't wait for SETUP/SENDING-COMPLETE.
                 ;     info like REDIRECTINGNUMBER may be lost, but this is necessary for
                 ;     drivers/pbx/telco which does not send SETUP or SENDING-COMPLETE.
;echosquelch=1   ;_VERY_PRIMITIVE_ echo suppression
;echocancel=yes  ;EICON DIVA SERVER (CAPI) echo cancelation
                 ;(possible values: 'no', 'yes', 'force', 'g164', 'g165') 
echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
;echotail=64     ;echo cancel tail setting
;bridge=yes      ;native bridging (CAPI line interconnect) if available
;callgroup=1     ;Asterisk call group
;language=de     ;set language for this device (overwrites default language)
devices=2        ;number of concurrent calls on this controller
                 ;(2 makes sense for single BRI, 30 for PRI)


nun müssen noch die CAPI Module Verfügbar gemacht werden:

File: nano -w /etc/asterisk/modules.conf
.
.
.
[modules]
.
.
.
load => chan_capi.so
.
.
.
[global]
chan_capi.so=yes




Damit Asterisk CAPI unterstüzung hat müssen die Rechte der Datei capi20 angepasst werden.

# # chmod 777 /dev/capi20


Leider ist diese Einstellung beim nä reboot weg, daher habe ich die Befehlszeile einfach im ampoertal Startskript hinzugefügt somit wird das bei jedem neustart angepasst.

Asterisk neustarten:

# # amportal restart


freePBX Konfiguration

dazu im freePBX WebGui einloggen und alle benötigte Module installieren und aktivieren.
wer schnell einen A@H aufsetzen möchte kann kann auch alles installieren.

SIP Extensions Anlegen

damit das Telefonieren möglich ist müssen User sogenante "extensions" eingerichtet werden.
Setup -> Extensions -> SIP

ADD EXTENSION

Extension Number:       30               Die neue SIP Nr. des Teilnehmers.

EXTENSION OPTIONS

Display Name:           sip30            Der Name wird am Display des angerufenden angezeigt.
Coubound CID:           10               Die MSN über die Raustelefoniert wird MUSS in /etc/capi.conf angegeben werden.
Record In/Out:          optional         Gespräche aufnehmen, nie / immer / auf Abruf

DEVICE OPTIONS

Secret:                 sip30pw          Password für sip30
dtmfmode:               rfc2833          DTMF Töne

VOICE MAIL (optional)

Voicemail password:     1111             Passwort für die Mailbox darf nur Zahlen enthalten.
Email:                  email@domain.de
Pager email:            pager@domain.de
Email attachment:       no               Email Anhang ja / nein
Play CID:               no               Anrufer ID (z.B. 30) ansagen? ja / nein
PLay Envelop:           no               ?
Delete Vmail:           no               ?
vm options:             
vm context:             default          der default context im rufnummernplan /etc/asterisk/extensions.conf

So, jetzt noch einen User anlegen und schon kann man untereinander VoIP`en.

Trunks

Was sind Trunks?

Trunks sind Hauptleitungen die externe Gespräche weiterrouten.
z.B. nutzt ein SIP Trunk dazu, eine Verbindung über Asterisk aus Heilbronn nach Berlin herzustellen.
Je nach dem wie man das Trunk einrichtet können verschiedene Optionen konfiguriert werden.
Da Asterisk nicht wissen kann welchen Trunk er jetzt nehmen soll gibts sogenannte Dial Rules oder auch Pattern genannt.

Pattern

0      =         Patter
|      =         das Patter wird nicht mitgewählt.
.      =         Zahlen Buchstaben und Zeichen
X      =         genau eine Ziffer zwischen 0 und 9
N      =         genau eine Ziffer zwischen 2 und 9
Z      =         genau eine Ziffer zwischen 1 und 9
[14-6] =         Steht für die Zahlen 1,4,5,6 (quasi 1 und 4 bis 6)

Um über sipgate mit der null als Vorwahl zu telefonieren sieht dann so aus:

0|.              alles was mit eine null anfängt gefolgt von eine beliebige Zeichenmenge
                 dies ergibt: "0 07132 999999" oder "0 SIP-ID@sipgate.de"   

oder etwas komplizierter

03445|XXXXX      Die länge ist erstmal auf max. 10 Zahlen begrenzt. 
                 die gewählte Nummer muss mit 03445 beginnen damit das Pattern aktiv ist.
                 somit lassen sich Einschränkungen sehr leicht definieren.

03445+Z.         Alles was mit eine 1-9 beginnt bekommt automatisch die Vorwahl
                 03445 hinzugefügt. 445566 ergibt dann 03445 445566
 

SIP Trunk

Die eigentliche Telefonie über VoIP erfolgt üblicherweise über einen SIP Provider.
in Deutschland gibts da so einige: Die Konfiguration ist meistens gleich jedoch kann es vorkommen dass manche Provider bestimmte Einstellungen verlangen

Sip Provider: 

PBX-Network
QSC AG
Axxeso Telecommunications Ltd. 
beroNet 
CANISTEC 
dus.net
sipbase.com 
VoipGATE
sipgate
nikotel




Setup -> Trunks -> Add SIP Trunk




SIPGATE TRUNK


GENERAL SETTINGS

Outbound Caller ID: 	     SIP-ID
Maximum channels:            "leer"

	 	
OUTGOING DIAL RULES

Dial Rules: 	             2|.
Dial rules wizards: 	     "leer"
Outbound Dial Prefix: 	     "leer"

OUTGOING SETTINGS

Trunk Name:                  sipgate 	 	

PEER Details:                fromuser=SIP-ID
                             fromdomain=sipgate.de
                             host=sipgate.de
                             nat=yes
                             qualify=yes
                             secret=SIP-Passwort
                             type=friend
                             username=SIP-ID
                             insecure=very


INCOMING SETTINGS

USER Context: 	             sipgate-in	

USER Details:                context=from-trunk
                             secret=SIP-Passwort
                             type=user

REGISTRATION

Register String:             SIP-ID:SIP-Passwort@sipgate.de/SIP-ID

Die SIP-ID und das SIP-Passwort sind auf der sipgate.de seite under dem Punkt "Meine Daten"
zu finden und sind nicht identisch mit den Anmeldedaten für die sipgate.de Webseite!


Falls Probleme bei eingehende Anrufe entstehen sollte unter General Settings folgende Funktion geändert werden.

...
Allow Anonymous Inbound SIP Calls?       YES
...





QSC IP-EXTENDED TRUNK


GENERAL SETTINGS

Outbound Caller ID: 	     QSC-Rufnummer
Maximum channels:            "leer"

	 	
OUTGOING DIAL RULES

Dial Rules: 	             1|.
Dial rules wizards: 	     "leer"
Outbound Dial Prefix: 	     "leer"

OUTGOING SETTINGS

Trunk Name:                  QSC 	 	

PEER Details:                allow=ulaw&alaw
                             auth=QSC-Passwort
                             canredirect=no
                             context=from-pstn
                             disallow=all
                             dtmfmode=rfc2833
                             fromdomain=sip.qsc.de
                             host=sip.qsc.de
                             insecure=very
                             nat=yes
                             secret=QSC-Passwort
                             type=friend
                             username=QSC-Rufnummer




INCOMING SETTINGS

USER Context: 	             QSC-in	

USER Details:                context=from-trunk
                             secret=QSC-Passwort
                             type=user
                             fromuser=QSC-Rufnummer
                             host=sip.qsc.de
                             qualify=yes
                             username=QSC-Rufnummer


REGISTRATION

Register String:             QSC-Rufnummer:QSC-Passwort@sip.qsc.de/QSC-Rufnummer



Probleme mit QSC IP Phonie Extended



Bei nutzung von QSC-IP Extended muss unbedingt die Outbound CID für jede Nebenstelle im folgenden Format eingetragen werden.

...
Outbound CID                 QSC-Vorwahl + QSC-Rufnummer + Nebenstelle

Beispiel:

Bei eine QSC-Vorwahl und Rufnummer 07131 - 123456 mit Nebenstellen von 100 - 199 würde die Outbound CID so aussehen:

für die Nebenstelle 150:
07131123456150

für die Nebenstelle 151:
07131123456151

usw...




Falls Probleme bei eingehende Anrufe entstehen, sollte unter General Settings folgende Funktion geändert werden.

...
Allow Anonymous Inbound SIP Calls?       YES
...



Über FreePBX werden eingehende Anrufe nicht an die entsprechende Nebenstelle geroutet. Das Problem habe ich folgendermaßen gelöst:



Man erstellt eine Datei (falls nicht schon vorhanden) mit dem Namen "extensions_custom.conf" im Ordner /etc/asterisk/ mit folgendem Inhalt:

File: nano -w /etc/asterisk/extensions_custom.conf

[custom-qscincoming]

exten => 07131123456,1,NoOp
exten => 07131123456,2,Set(tmpcid=${CUT(SIP_HEADER(TO),':',2)})
exten => 07131123456,3,Set(BNUMBER=${CUT(tmpcid,'@',1)})
exten => 07131123456,4,Goto(from-pstn,${BNUMBER},1)

Ganz wichtig!!! Im freePBX müss eine Route mit der Hauptrufnummer eingetragen werden.

DID-Number:                     07131123456      (QSC-Vorwahl + QSC-Rufnummer ohne Nebenstelle)

...

Set Destination:
Custom-App:                     custom-qscincoming,0123456789,1

(Ankommende Anrufe landen nun zum custom-qscincoming context und wieder zurück zur freePBX) 


alle anderen Einstellungen so belassen.




Nun müssen im freePBX die ankommenden Routen wie gehabt an die gewünschte Nebenstelle angepasst werden:
Unter "Inbound-Route" -> "Add New Route" erstellen.


DID-Number:                     07131123456150      (QSC-Vorwahl + QSC-Rufnummer + Nebenstelle)

...

Set Destination:
Core:                           150                 (Ankommende Anrufe von der Nr.07131123456150 an die NS 150 routen) 


alle anderen Einstellungen so belassen.

IAX

Idealerweise wird ein Asterisk über das IAX oder IAX2 Protokoll angebunden.
Der Unterschied zum SIP ist dass IAX weniger Ports benotigt und etwas unkomplizierter arbeitet.
Für SIP werden ca. 2-6 Ports für die Verbindung und ein Protrange von mehrere hundert Ports für die eigentliche Sprachübertragung.
dies macht ein Firmennetzwerk nicht gerade sicher.
Das IAX Protokoll wurde entwickelt um zwei oder mehrere Asterisk Server zu Verbinden. Ich möchte hier kurz zwei Arten von IAX Verbindungen erklären. Eigentlich sind beide Arten eins und dasselbe nur für die Verständlichkeit erkläre ich beide:
Es Handelt sich dabei um eine Verbindung zu einem Provider (IAX Provider Trunk) und zum zweiten eine Verbindung mit einem anderen EIGENEN Asterisk Server z.B. in eine Aussenstelle.


IAX Provider Trunk

Damit wir eine Verbindung zu unserem Provider einrichten können muss unser Provider IAX2 Protokolle unterstüzen. Mit anderen Worte gesagt er muss einen Asterisk laufen haben.


Setup -> Trunks -> Add IAX2 Trunk


GENERAL SETTINGS

Outbound Caller ID: 	     IAX-ID
Maximum channels:            "leer"

	 	
OUTGOING DIAL RULES

Dial Rules: 	             3|.
Dial rules wizards: 	     "leer"
Outbound Dial Prefix: 	     "leer"

OUTGOING SETTINGS

Trunk Name:                  pbx-network	 	

PEER Details:                disallow=all
                             allow=alaw
                             allow=ulaw
                             host=iax.pbx-network.de
                             qualify=yes
                             secret=IAX-Passwort
                             type=peer
                             username=IAX-ID


INCOMING SETTINGS

USER Context: 	           IAX-ID	

USER Details:                context=from-trunk
                             type=user
                             disallow=all
                             allow=alaw
                             allow=ulaw

REGISTRATION

Register String:             IAX-ID:IAX-Passwort@iax.pbx-network.de

IAX Verbindung zwischen 2 Asterisk Server

Man kann zwei Asterisk Server miteinander verbinden um so kostenlose Gespräche zwischen den einzelnen Servern zu realisieren.
damit z.B eine Aussenstelle kostenlos erreicht werden kann.


Konfiguration des Servers in der Zentrale:


GENERAL SETTINGS

Outbound Caller ID:          obelisk        Name des Servers in der Zentrale.
Max. Channels:               "leer"

OUTGOING DIAL RULES

Dial Rules:                  9|.            Es muss die 9 als Amtskennziffer gewählt werden und diesen Trunk zu nutzen.
Dial Rule Wizards:           "leer"
Outbound Dial Prefix:        "leer"


OUTGOING SETTINGS

Trunk Name:                  obelisk
Peer Details:                auth=md5
                             host=dynamic
                             secret=PASSWORT
                             type=peer
                             username=obelisk

INCOMING SETTINGS

User Context:                ASTERISK-OBELISK
User Details:                type=user

REGISTRATION

Register String:             asterisk:PASSWORT@IP_add_OBELISK



Konfiguration des Servers in der Aussenstelle:


GENERAL SETTINGS

Outbound Caller ID:          asterisk        Name des Servers in der Zentrale.
Max. Channels:               "leer"

OUTGOING DIAL RULES

Dial Rules:                  9|.            Es muss die 9 als Amtskennziffer gewählt werden und diesen Trunk zu nutzen.
Dial Rule Wizards:           "leer"
Outbound Dial Prefix:        "leer"


OUTGOING SETTINGS

Trunk Name:                  obelisk
Peer Details:                auth=md5
                             host=dynamic
                             secret=PASSWORT
                             type=peer
                             username=asterisk

INCOMING SETTINGS

User Context:                ASTERISK-OBELISK
User Details:                type=user

REGISTRATION

Register String:             obelisk:PASSWORT@IP_add_ASTERISK


ISDN Trunk

Damit die Sipteilnehmer über ISDN telefonieren können, wird ein Trunk benötigt.
Setup ->; Trunks -> Add Custon Trunk

GENERAL SETTINGS

Outbound CID:           10                Die MSN über die Raustelefoniert wird MUSS in /etc/capi.conf angegeben werden.
Maximum Channels:       "leer"            leer lassen für keine Begrenzung 

OUTGOING DIAL RULES

Dial Rules:             1|.               alles anfagend mit 1 gefolgt von beliebig vielen Zahlen, nutzt die ISDN Leitung.
Outbound Dial Prefix:   "leer"            hier könnte man eine 0 "null" für Amt, oder 0173 für D2 eintragen...

OUTGOING SETTINGS

Custom Dial String:     CAPI/ISDN1/$OUTNUM$

der Custom Dial String ist wie folgt aufgebaut:
CAPI: gehe über CAPI
ISDN1: so heisst der ISDN Controller in /etc/asterisk/capi.conf
$OUTNUM$: Variable die die Tel. Nr. übernimmt die gewählt wird

Damit die Hauptleitung funktioniert muss ein Routing eingerichtet werden.

Outbound Routes

Damit die Hauptleitung funktioniert muss ein Routing eingerichtet werden.


Route Name: 	 	ISDN-out
Dial Patters:           1|.               1 vorwählen um die ISDN Leitung zu nutzen.
Trunk Sequence:         CAPI.. oder SIP.. hier einfach das gewünschte Trunk auswählen.

Inbound Routes


DID Number:             13                Die Nr. die angerufen wird (MSN, SIP-Nr,....)
Caller ID Nr.           071125455         Die nummer von der aus abgerufen wird. ist dieser Wert                                               gesetzt werden nur Anrufe von diese Nr. durchgestellt. 
Privacy Manager:        yes               Hat der Anrufer keine Rufnummerübermitlung muss er seine                                             Tel.Nr. über die Tastatus des Telefons eingeben.
Set Destination:        SP20              Wo soll der Anruf durchgestelltwerden.

DISA

Was ist DISA?
Direct Inward System Access
Damit können Telefone über den Asterisk-Server telefonieren obwohl diese
nicht direkt an ihm angeschlossen sind!

z.B. kann ein ISDN Tel. das an der TK-Anlage angeschlossen ist über sipgate ein Gespräch aufbauen.
dies Funtioniert so:

  • DISA konfigurieren dass alle Gespräche, ankommend über die CAPI Schnittstelle auf die MSN 11, ein Freizeichen bekommen.
  • von einem ISDN Tel. die MSN 11 anrufen.
  • Asterisk nimmt ab.
  • ein Freizeichen ist zu hören.
  • gewünschte Nr. wählen
  • Asterisk vermittelt an die gewählte nr.


und hier noch die Konfiguration
Setup -> DISA -> Add DISA

ADD DISA
DISA name:        sipgate-out              Eindeutiger Name wählen
Pin:              1111                     Pin zur Authentifizierung
Caller ID:        11                       MSN die angerufen wird
Context:          from-internal            Context im Rufnummernplan an wem das übergeben wird.


IVR

bedeuted Interactive Voice Responce system also ein Voicemenu!
Ganz interessant, zB in meinem Fall, die strato Flatrate für`s Mobilfunk...
Ich habe mir eine Custom Extension angelegt die eine Weiterleitung auf meinem Handy hat dies sieht folgendermaßen aus:

Extensions -> Custom


eigentlich sind alle Einstellungen egal und können leer gelassen werden bis auf folgende:

...
Extension Number:  50
Display Name:      zulasch
...

...
DEVICE OPTIONS
Dial:              SIP/STRATO-out/0173123123
...

Hinweis: der "STRATO-out" ist das was beim einrichten des Trunks als OUTGOING Name eingegeben wurde!

Redundanz

Heartbeat

Heartbeat wird dazu genutzt die Funktion eines Servers zu überwachen und bei Ausfall auf einen zweiten Server umzuschalten. Es wird unterschieden zwischen Masterserver und Standbyslave. Zwischen den beiden Servern wird ein

Heartbeat, also ein Herzschlag ständig ausgetauscht. Dabei kann die Frequenz dieses Herzschlags frei eingestellt werden. Antwortet der Masterserver nach einer definierten Zeit nicht auf einen Heartbeat des Standbyslaves, nimmt der Standbyslave an dass der Masterserver nicht verfügbar ist. Der Standbyslave übernimmt die Aufgaben des Masters und greift sich die virtuelle IP, auf der vorher der Masterserver erreichbar war. Dies bewirkt eine gleichbleibende Erreichbarkeit für die Clients, die Dienste auf dem Masterserver benutzen.

Heartbeat sorgt auch dafür, dass der Masterserver seine eigentlichen Aufgaben nach Funktionswiederherstellung neu aufnimmt, und der Standbyslave wieder in Bereitschaft geht.

Konfiguration von Heartbeat

Zuerst muss man sich entscheiden ob man einen seriellen Heartbeat oder einen Heartbeat über das lokale Netzwerk (Crosslink) wählt. Wenn man sich für die serielle Verbindung entscheidet, benötigt man ein Nullmodemkabel. Nach Anschließen des Kabels überprüft man mit folgenden Befehlen ob die serielle Verbindung funktioniert:

Auf dem Masterserver:

# # cat < /dev/ttyS0


Auf dem Standbyslave:

# # echo "hello heartbeat" > /dev/ttyS0


Man sollte sehen wie die Nachrichten vom Master geechot werden.

Man stellt die erste Maschine (Master) auf 172.17.10.10, die zweite (Slave) auf 172.17.10.20. Es ist sicherzustellen, dass beide Maschinen wissen wo sich die andere befindet. Dies wird durch einen Eintrag in der /etc/hosts erledigt.

Ein Auszug aus


File: nano -w /etc/hosts

172.17.10.10 master 
172.17.10.20 slave

(Wenn man zwei Netzwerkkarten in den Servern hat, kann man mit einem Crosslinkkabel wie oben erwähnt einen nicht-seriellen Heartbeat bereitstellen)

Man installiert Heartbeat sowohl auf dem Master, als auch auf dem Slave:

# # rpm -i heartbeat-0.4.9.2-1.i386.rpm


[Nicht die Version 1.0.1 verwenden, weil diese stontih, pils, udp-snmp, libcrypto.... benötigt ]

Man erstellt eine Datei /etc/ha/ha.cf (/var/log/ha-log) auf dem Master und auf dem Slave.


File: nano -w /etc/ha/ha.cf

logfile /var/log/ha-log
keepalive 2
deadtime 10
serial  /dev/ttyS0
node master
node slave

Zu beachten ist /etc/ha/haresources .Der Inhalt muss genau gleich sein auf Master und Slave. In der haresources wird die virtuelle IP festgelegt. Wenn der Slave diesen Eintrag sieht weiß er, dass er solange der Master verfügbar ist keinen Failover auslösen soll.
Zudem wird noch festgelegt welche Dienste gestartet bzw. beendet werden sollen, in dem Fall apache und mon.


File: nano -w /etc/ha/haresources

master 172.17.10.30 apache mon

Man erstellt /etc/ha/authkeys (Mit gleichem Inhalt auf beiden Nodes):


File: nano -w /etc/ha/authkeys

auth 1
1 crc

Man lädt hier http://www.kernel.org/software/mon die mon packages runter und befolgt alle Schritte sowohl auf dem Master, als auch auf dem Slave.

Die Installation der Pakete erfolgt in /etc/ha.d/mon

# # cd /etc/ha.d


# # tar xzvf mon-0.99.2.tar.gz


# # mv mon-0.99.2.tar.gz mon


Mon setzt einige externe Perlmodule vorraus. Also benutzt man den nächstgelegenen CPAN Mirror oder benutzt folgende Links:

http://search.cpan.org/author/PRYAN/Period-1.20/
http://search.cpan.org/CPAN/authors/id/J/JH/JHI/Time-HiRes-1.42.tar.gz
http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/Convert-BER-1.3101.tar.gz%20
http://search.cpan.org/CPAN/authors/id/T/TR/TROCKIJ/Mon-0.11.tar.gz%20

Die Packages werden entpackt und danach installiert:

# # perl Makefile.pl


# # make


# # make test


# # make install


Einrichtung von Mon

Man erstellt eine /etc/ha.d/mon/mon.cf.

Dieses Script wird versuchen die /test.html vom Apache Webserver alle 30 Sekunden zu laden. Es versucht darüberhinaus den Router zu pingen, um zu testen ob eine Verbindung besteht oder unterbrochen ist. Man ersetzt die 172.17.10.254 mit der Routeradresse die man überwachen will, oder man kommentiert die ganze Routerüberwachung einfach aus, falls man das nicht möchte. operator@yourdomain.com wird mit der eigenen Emailadresse ersetzt.

Als ergänzender Kommentar lässt sich sagen, dass man mit der Pingüberwachung natürlich auch die generelle Verfügbarkeit eines Servers und somit auch von Asterisk überwachen kann.

In die mon.cf werden folgende Zeilen eingetragen:


File: nano -w /etc/ha.d/mon/mon.cf
/etc/ha.d/mon/mon.cf

cfbasedir   = /etc/ha.d/mon/etc
alertdir    = /etc/ha.d/mon/alert.d
mondir      = /etc/ha.d/mon/mon.d
statedir        = /etc/ha.d/mon/state.d
logdir = /var/log/
maxprocs    = 20
histlength = 100
randstart = 10s

authtype = getpwnam

hostgroup web-fe 172.17.10.30
hostgroup routers 172.17.10.254

watch web-fe
    service http
        interval 30s
        monitor http.monitor -p 80 -u /test.html
        allow_empty_group
        period wd {Mon-Sun}
            alert bring-ha-down.alert -S "web server node member down" \
operator@yourdomain.com
            upalert mail.alert -S "web server is back up" \
operator@yourdomain.com
            alertevery 600s
                alertafter 2
watch routers
    service ping
        interval 10s
        monitor ping.monitor
        allow_empty_group
        period wd {Mon-Sun}
            alert bring-ha-down.alert -S "node member NIC down" \
operator@yourdomain.com
            upalert mail.alert -S "web server is back up" \
operator@yourdomain.com
            alertevery 10s

Wie man in der alert section oben sehen kann, habe ich ein alert script definiert, welches bring-ha-down.alert heißt.

Man erstellt dieses Script hier: /etc/ha.d/mon/alert.d/bring-ha-down.alert. Es wird den mail alert aufrufen und dann

heartbeat auf dieser Node beenden. Man muss es ausführbar machen.

/etc/ha.d/mon/alert.d/bring-ha-down.alert

/etc/ha.d/mon/alert.d/mail.alert $* /etc/rc.d/heartbeat stop


An dieser Stelle kopiert man üblicherweise das ganze /etc/ha.d/mon Verzeichnis einfach auf den Slave.

Apache

Man ändert die httpd.conf (üblicherweise /usr/local/apache/conf/httpd.conf oder /etc/httpd/httpd.conf)und erstellt einen virtuellen Host wie folgt: (ersetzen mit passenden Einstellungen)

Aussschnitt von

File: nano -w httpd.conf
httpd.conf

NameVirtualHost 172.17.10.30
<VirtualHost 172.17.10.30>
    ServerAdmin operator@yourdomain.com
    DocumentRoot /usr/local/apache2/htdocs/
    ServerName yourserver.yourdomain.com
    ErrorLog logs/test-errors_log
    CustomLog logs/test-access_log common
</VirtualHost>

Wenn diese Node aktiv ist, wird Apache auf 172.17.10.30 test.html lauschen.

Man erstellt ein test.html file im httproot, welchs den Text Master auf der Node1 und den Text Slave auf der Node2 enthält und setzt dieses in den webroot (/usr/local/apache/htdocs or similar).

Auf diese Weise kann man leicht erkennen, welche Node gerade aktiv ist.

Start scripts

Man erstellt /etc/ha.d/mon/mon-start.


File: nano -w /etc/ha.d/mon/mon-start
/etc/ha.d/mon/mon-start

#!/bin/bash
MON_HOME=/etc/ha.d/mon

case "$1" in
    start)
        if [ -f $MON_HOME/mon.pid ]; then
                echo "mon already started"
                exit
        fi
        echo "Starting Mon"
    $MON_HOME/mon -c $MON_HOME/mon.cf -L $MON_HOME -P $MON_HOME/mon.pid &
        ;;
    stop)
    if [ -f $MON_HOME/mon.pid ]; then
    echo "Stopping Mon"
        kill -9 `cat $MON_HOME/mon.pid`
        rm  -f $MON_HOME/mon.pid
    else
        echo "no server pid, server doesn't seem to run"
    fi

    ;;
    status)
        echo "doing good"
        ;;
    *)
    echo "Usage: $0 {start|stop|status|reload|restart}"
    exit 1
esac
exit 0

Während des Startvorgangs wird Heartbeat in /etc/rc.de/init.d oder /etc/ha.d/resource.d nach seinen Resourcescripts suchen. In /etc/ha.d/resource.d sind Links zu erstellen

# # cd /etc/ha.d/resource.d


# # ln -s ../mon/mon-start mon


# # ln -s /etc/rc.d/apache apache


Gut, jetzt weiß Heartbeat wie es mon und apache starten und stoppen kann. Man muss überprüfen ob man Startscripts ähnlich diesem hat: start scripts

Den Cluster starten

Jetzt wo Heartbeat konfiguriert ist, wird es apache und mon auf dem Master starten. Auf dem Slave wird Heartbeat bei laufendem Master gestartet wodurch es automatisch in den Standby geht und geduldig wartet bis der Master down geht und der Slave zu seinem Auftritt kommt.

# # /etc/rc.d/heartbeat start


Man führt denselben Befehl auf dem Slave aus

Man schaut sich den Log des Masters an /var/log/ha-log. Folgender ist ein guter Log:

/var/log/ha-log

heartbeat: ... info: Configuration validated. Starting heartbeat 0.4.9.2
heartbeat: ... info: heartbeat: version 0.4.9.2
heartbeat: ... info: Heartbeat generation: 7
heartbeat: ... notice: Starting serial heartbeat on tty /dev/ttyS0
heartbeat: ... info: Local status now set to: 'up'
heartbeat: ... info: Local status now set to: 'active'
heartbeat: ... info: Heartbeat restart on node master
heartbeat: ... info: Node master: status up
heartbeat: ... info: Running /etc/ha.d/rc.d/status status
heartbeat: ... info: Running /etc/ha.d/resource.d/IPaddr 172.17.10.30 status
heartbeat: ... info: Node master: status active
heartbeat: ... info: Resource acquisition completed.
heartbeat: ... info: Running /etc/ha.d/rc.d/status status
heartbeat: ... info: Running /etc/ha.d/rc.d/ip-request ip-request
heartbeat: ... info: Running /etc/ha.d/resource.d/IPaddr 172.17.10.30 status
heartbeat: ... info: Acquiring resource group: master 172.17.10.30 apache mon
heartbeat: ... info: Running /etc/ha.d/resource.d/IPaddr 172.17.10.30 start
heartbeat: ... info: ifconfig eth0:0 172.17.10.30 netmask 255.255.0.0  \
 broadcast 172.17.255.255
heartbeat: ... info: Sending Gratuitous Arp for 172.17.10.30 on eth0:0 [eth0]
heartbeat: ... info: Running /etc/ha.d/resource.d/apache  start
heartbeat: ... info: Running /etc/ha.d/resource.d/mon  start

Hier sind einige häufigere Troubleshooting Scenarios:

heartbeat: ... ERROR: Bad permissions on keyfile [/etc/ha.d/authkeys], 600 recommended.

Fehlerbehebung durch chmod 600 /etc/ha.d/authkeys

heartbeat: ... ERROR: Current node [mastah] not in configuration

Überprüfung des Hostnames notwendig, welcher identisch sein muss mit dem der in /etc/ha.d/ha.cf und /etc/ha.d/haresources definiert wurde.

heartbeat: ... Cannot locate resource script apache heartbeat: ... Cannot locate resource script mon

Es ist sicherzustellen dass in /etc/rc.d/init.d oder /etc/ha.d/resource.d Startscripte vorhanden sind, die das Start/Stop Argument nehmen und ausführbar sind. Vielleicht sollte man die Scripte manuell ausprobieren.

Wenn mon Heartbeat sofort beendet, bedeutet das möglicherweise dass man den http ping oder router ping nicht richtig konfiguriert hat und mon daher denkt, dass keine Antwort kommt.

Man muss überprüfen dass Heartbeat die virtuelle IP Adresse hochbringt. Folgendermaßen sollte der Master aussehen:

# ifconfig -a
eth0:0    Link encap:Ethernet  HWaddr ....
          inet addr:172.17.10.30  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:11 Base address:0x1000

Test mit verschiedenen Failoverszenarios

Wenn man so weit gekommen ist.. gut! Jetzt können wir uns Zeit zum ausprobieren nehmen und den Master einstampfen. Apache lauscht jetzt auf der virtuellen IP Adresse, also geht man mit dem Browser seiner Wahl auf http://172.17.10.30/test.html und sollte dann logischerweise eine Seite sehen wo "Master" steht.

1. Ausschalten des Masters oder einen init 1 durchführen, um aus dem Multiuserrunlevel rauszukommen Es sollte ca. 10 Sekunden dauert bis der Slave festgestellt hat, dass der Master down ist. Recht bald danach wird man im log des Slaves folgendes sehen:

heartbeat: ... WARN: node master: is dead
heartbeat: ... info: Link master:/dev/ttyS0 dead.
heartbeat: ... info: Link master:eth1 dead.
heartbeat: ... info: Running /etc/ha.d/rc.d/status status
heartbeat: ... info: Running /etc/ha.d/rc.d/ifstat ifstat
heartbeat: ... info: Running /etc/ha.d/rc.d/ifstat ifstat
heartbeat: ... info: Taking over resource group 172.17.10.30
heartbeat: ... info: Acquiring resource group: master 172.17.10.30 apache mon
heartbeat: ... info: Running /etc/ha.d/resource.d/IPaddr 172.17.10.30 start
heartbeat: ... info: ifconfig eth0:0 172.17.10.30 netmask 255.255.0.0 \
 broadcast 172.17.255.255
heartbeat: ... info: Sending Gratuitous Arp for 172.17.10.30 on eth0:0 [eth0]
heartbeat: ... info: Running /etc/ha.d/resource.d/apache  start
heartbeat: ... info: Running /etc/ha.d/resource.d/mon  start

Man führt einen ifconfig -a durch, um zu sehen ob der Slave die IP Adresse übernommen hat.

Mit dem Browser wieder auf die http://172.17.10.30/test.html. Dort sollte jetzt ein "Slave" stehen.

Man startet den Master wieder um zum normalen Betrieb überzugehen. Heartbeat starten falls nötig

2. Ausführen von /etc/rc.d/apache stop auf dem Master.

Nach einer Weile (die in mon.cf definiert wird) wird man in /var/log/messages auf dem Master folgendes lesen können:

Feb 21 18:10:13 master mon[28334]: failure for web-fe http 1045879813 172.17.10.30

Mon wird das bemerken und das Alert Script aufrufen welches Heartbeat runterfährt. Das ist gleichbedeutend zu einer Nichterreichbarkeit von Apache und es dauert 10 Sekunden bis mon realisiert hat, dass es den Server nicht mehr pingen kann. Daher wird mon Heartbeat runterfahren.

Man überprüft das Log auf dem Slave um zu sehen, dass er die virtuelle IP Adresse hochgebracht hat.

In einer produktivem Umgebung würde man dann den Master reparieren, und Heartbeat nach erfolgter Reparatur wieder starten, wodurch der Slave die Resourcen freigibt.

Clustering

Load Balance

DUNDi

DUNDi wird verwendet um Dialpläne mit anderen Asterisk Servern zu teilen. Das wichtigste Feature ist die Sicherstellung der Erreichbarkeit eines SIP-Geräts, egal an welchem Asterisk Server die Anmeldung erfolgt ist.

Beispiel:

Wir verwenden zwei Asterisk Server (PBX1,PBX2) und zwei SIP-Geräte (SIP1,SIP2). Gerät SIP1 registriert sich auf PBX1 und Gerät SIP2 auf PBX2.

Beim Informationsaustausch zwischen den Asterisk Servern kommt DUNDi ins Spiel.

Um den dynamischen Peer Austausch zu aktivieren, wird in der sip.conf ein neuer Kontext angelegt.


File: nano -w /etc/asterisk/sip.conf
[general]
regcontext=sipregistration (kann auch anders benannt werden)

Funktion: Sobald ein SIP-Gerät sich beim Asterisk Server anmeldet, wird es in diesem dynamischen Kontext hinterlegt. Das bedeutet dass der Asteriskserver eine dynamische Liste der gerade angemeldeten SIP-Geräte erstellt.

In der extentions.conf müssen keine Änderungen vorgenommen werden!

Wichtig: regcontext=sipregistration muss in jedem Asterisk Server des Clusters eingetragen werden!

In PBX Trunks einen neuen IAX2 Trunk anlegen:

[priv]
type=friend
dbsecret=dundi/secret
context=incomingdundi

Funktion: Es wird festgelegt, wie sich die Asterisk Server untereinander verständigen sollen.



File: nano -w /etc/asterisk/dundi.conf

[general]
cachetime=5 (alle 5 Sekunden SIP Geräte Registrierung abgleichen)
ttl=2 (Wir wollen nicht hinter einen PBX schauen, also wird das Limit auf 2 Hops begrenzt)

[mappings]
priv => sipregistration,0,IAX2,priv:${SECRET}@192.168.0.1(von PBX1)/${NUMBER},nopartial

;Die Identität eines Asterisk Servers anhand der MAC Adresse definiert.

entityid=01:01:01:01:01:01         MAC von PBX1

; Peer section - Festlegen mit welchen PBXen der Asterisk peeren soll

[02:02:02:02:02:02]                MAX von PBX2
model = symetric
host = 192.168.0.2                 IP von PBX2
inkey = dundi
outkey = dundi
include = priv
permit = priv
qualify = yes
oder = primary

;Hinweis: Für alle am Peering teilnehmenden Asterisk PBXen sollte das selbe Out/In-Key gewählt werden.


Einrichtung der PBX2

Alle Werte gleich übernehmen, IP und MAC jeweils vertauscht eintragen (PBX1 IP = PBX2 IP usw.)



File: nano -w /etc/asterisk/dundi.conf

[general]
cachetime=5 (alle 5 Sekunden SIP Geräte Registrierung abgleichen)
ttl=2 (Wir wollen nicht hinter einen PBX schauen, also wird das Limit auf 2 Hops begrenzt)

[mappings]
priv => sipregistration,0,IAX2,priv:${SECRET}@192.168.0.2(von PBX2)/${NUMBER},nopartial

;Die Identität eines Asterisk Servers anhand der MAC Adresse definiert.

entityid=02:02:02:02:02:02         MAC von PBX2

; Peer section - Festlegen mit welchen PBXen der Asterisk peeren soll

[01:01:01:01:01:01]                MAC von PBX1
model = symetric
host = 192.168.0.1                 IP von PBX1
inkey = dundi
outkey = dundi
include = priv
permit = priv
qualify = yes
oder = primary

;Hinweis: Für alle am Peering teilnehmenden Asterisk PBXen sollte das selbe Out/In-Key gewählt werden.

Features

Telefoniedienste

- passwortgeschützter Anrufbeantworter
- Sprachnachrichten über den Webbrowser abhören
- optische Anzeige bei Nachrichteneingang
- Konferenzräume
- Anrufweiterleitung
- Anrufumleitung
- Anrufe halten
- Anrufe wiederaufnehmen
- Schaltmöglichkeit für Erreichbarkeit / Nichterreichbarkeit
- Anrufannahme an jedem Telefon innerhalb einer definierten Gruppe (Pickup Call)
- Anrufweiterleitung falls besetzt
- Anrufweiterleitung falls keine Antwort erfolgt

Verwaltung

- Administration über Weboberfläche
- Einrichtung von Gruppen
- Einrichtung von Warteschleifen
- Einrichtung von automatischen Ansagen außerhalb der Geschäftszeiten
- Einrichtung der Regeln, wie mit Anrufen verfahren werden soll
- Definition der Ziele eines kommenden Anrufs

Einrichtung der Endgeräte

Siemens C450 IP

Am Mobilteil des C450 IP lässt sich die Displaysprache, die automatische Rufannahme, die Sprachlautstärke, Klingeltöne, Stummschaltung und einiges mehr einrichten.

Die Voice over IP Einstellungen werden über Menü -> Einstellungen -> Basis -> VoIP-Konfiguration getroffen.

Notwendige Einträge hierbei sind:

- Benutzername (CallerID)
- Anmeldename (Zugangsdaten von Asterisk)
- Anmeldepasswort (Zugangsdaten von Asterisk)

Die Zuordnung der IP Adresse der Basis erfolgt automatisch über DHCP oder kann manuell gesetzt werden.

Menü -> Einstellungen -> Basis -> VoIP-Konfiguration -> IP-Konfiguration

Eine weitere Konfigurationsmöglichkeit ist das eingebaute Webinterface, wodurch die Einrichtung am PC vorgenommen werden kann.

Im Webinterface erfolgt der Eintrag der IP-Konfiguration ebenso wie über das Mobilteil (IP Adresse statisch oder dynamisch, Subnetzmaske, Gateway, bevorzugter DNS Server.

Nach Einrichtung der Verbindungseinstellungen erfolgt die Konfiguration des SIP Zugangs.

- Eintragen des Anmeldenamens (Asteriskaccount)
- Eintragen des Anmeldepassworts (Asteriskaccount)
- Eintragen des Benutzernamens (CallerID)
- Eintrag der Domäne (z.b. 23424@sipprovider.de)
- Eintrag der Realm (IP Adresse von Asterisk)
- Eintrag des angezeigten Namens (optional)
- Proxyserveradresse (IP von Asterisk)
- Serverport (Default 5060)
- Registrarserver (IP von Asterisk)
- Registrarserverport (Default 5060)
- Sipports (Default 5060)
- RTPports (Default 5004)

Nach Eintragung der benötigten Daten ist das Telefon in der Lage, eine Verbindung zu Asterisk herzustellen. Das Telefon muss noch in Asterisk angelegt werden mit Benutzeraccount (sofern noch nicht geschehen) und in den Dialplan/Extentions eingebaut werden.


Elmeg IP-290

Der Anschluss ans Lan erfolgt beim Elmeg über eine RJ-45 Buchse.

Wenn das verwendete Netzwerk DHCP unterstützt, kann es durch wählen von "An" aktiviert werden. Wird "Aus" gewählt werden verschiedene Einstellungen manuell abgefragt.

- IP-Adresse auswählen. Bei Nichtverwendung von DHCP kommt eine statische IP Adresse zum Einsatz - Subnetmask / Netzmaske - IP Gateway - DNS Server - Rufton auswählen - Zeitzone auswählen

Auswählen des ersten Accounts mit Hilfe des Anmeldungsassistenten.

Falls dem Telefon keine Nummer zugeteilt ist, wird man aufgefordert das Benutzerkürzel einzugeben welches aus der Telefonnummer gefolgt von einem @ sowie der Adresse des SIP Registrarservers besteht.

Die Eingabe des Benutzerkürzels bestätigt man mit der OK Taste. Danach versucht das Telefon sich am angegebenen Registrarserver anzumelden. Wenn unten nicht mehr NR im Display steht (NR=Not registered), dann war die Anmeldung am Server erfolgreich.

Thomson ST2030-EU-S

Kurzfassung:

Der Anschluss erfolgt über 10/100 Mbit RJ-45 ans Lan oder an einen PC. PoE wird unterstützt, sodass das IP-Telefon über das Lan mit Strom versorgt wird. Wird PoE nicht verwendet, muss ein Netzteil verwendet werden.

Das Telefon wird über das eingebaute Webinterface konfiguriert. Mit dem Webbrowser auf die Adresse des Telefons gehen (z.b. 192.168.0.1).

Danach gibt man das Defaultlogin und Passwort ein (administrator)/(784518)

In den Netzwerksettings trägt man den zuständigen DHCP Server ein, oder vergibt eine statische Adresse.

Im Punkt Profile wird ein Profil selektiert und die notwendigen Daten bezüglich der verwendeten PBX eingetragen. (IP Adresse von Asterisk, SIPaccount, Ports)

Lange Fassung:

Installationsvorraussetzungen:

Funktionierender Asterisk mit angelegten Usern und Extensions

Auf der Rückseite des Telefons finden sich drei RJ-45 Schnittstellen die als PC, Lan und Ext bezeichnet sind.Das Netzwerkkabel welches das Telefon mit dem lokalen Lan verbinden soll, kommt in die Lan Buchse. Die Ext Schnittstelle ist für Hardwareerweiterungen, und damit vorerst unwichtig.

Es gibt zwei Möglichkeiten wie man das Thomson ST2030IP konfigurieren kann. Die erste Möglichkeit besteht darin, das Telefon direkt zu konfigurieren, wobei der zweite Weg wohl bequemer ist: Die Konfiguration über das Webinterface. Es gibt außerdem zwei Level von Zugriffsmöglichkeiten, den user und den administrator.

Konfiguration über das Telefon

Am Telefon werden die Einstellungen mit 3 Softbuttons getroffen. Um Änderungen zu machen, verwendet man die große OK Taste oder den Menüknopf worauf die Auswahl aus user, admin und options erscheint. Der user bereich ist nicht passwortgeschützt und zum Personalisieren des Telefons gedacht. Defaultsystempin ist übrigens die 0000.

Im option Bereich kann man anrufspezifische Einstellungen ändern, z.b. Anrufweiterleitung oder Anrufabweisen. Außerdem findet sich hier die Möglichkeit das Gerät zu resetten.

Im administrator Bereich ist default ein Kennwort vergeben (784518) und folgende Einstellungen können in diesem Menü getroffen werden.

- Änderung der Netzwerkeinstellungen (fixed-IP, DHCP, Netzmaske, DNS)
- NTP Server Setup
- SIP Konfiguration. Bis zu vier verschiedene Profile, respektive Konten lassen sich an dieser Stelle definieren die aus folgenden Einstellungen bestehen:

- Profilname
- Name
- Proxyserver
- Registrarserver
- Registrar ID
- Registrar PW
- Display Name
- Telefonnummer

Außerdem gibt es hier die Möglichkeit das Telefon auf die Werkseinstellungen zurückzusetzen.

Konfiguration über das Webinterface

Als user braucht man kein Passwort und selbstverständlich sind die Rechte eingeschränkt. Man kann grundlegende Telefoniedienste konfigurieren.

Der Administrator hat volle Zugriffsrechte aber der Zugang zum Admininterface ist nicht so einfach. Als erstes loggt man sich im Webinterface als user oder administrator ein und hat user Rechte. Danach startet man das Telefon neu, während man noch eingeloggt ist. Man wird bemerken dass neue Funktionen zugänglich sind, und ein Promt für Benutzername und Passwort erscheint. Default ist "administrator" und "784518". Jetzt kann man Änderungen vornehmen.

Thomson ST2030 für Asterisk konfigurieren

Den OK oder menu Knopf drücken. Danach den mittleren Softkey betätigen um in den Administrator Bereich zu gelangen. Das Defaultpasswort hierfür ist 784518. Dann geht man in den Networking Bereich und trägt die IP Adresse, Subnetzmaske, Default Gateway und DNS Server ein.

Wenn dieser Vorgang abgeschlossen ist, geht man zurück in die Hauptadministration und in das SIP Konfigurationsmenü. Hier wählt man das gewünschte Profil aus, in diesem Fall das Profil 1. Es werden der Name der auf dem Telefondisplay erscheinen soll eingetragen, sowie die IP Adresse des SIP Proxy Servers und des SIP Registrar Servers (entspricht der IP Adresse des Asteriskservers). Die nächsten Einträge sind Registrar ID (Login für Asterisk) und Registrar Passwort (Asteriskpasswort). Dieser Account wurde vorher für das Telefon auf dem Asteriskserver definiert. Der letzte Eintrag ist TelNbr der mit dem Login für Asterisk bzw. der Registrar ID identisch ist. Danach ist das Telefon konfiguriert und einsatzbereit.


Bekannte Probleme und Lösungen


Ausgehende Gespräche
Anrufer hört die ersten Sekunden nichts!

Ein Anruf kommt zwar zustande aber der Angerufene hört die ersten Sekunden nichts. Dies ist meistens fatal da meinsten die Ansage bzw. Name gesprochen wird. Das Problem liegt an den sogenannten "r" was für "Ring" steht. Asterisk simuliert einen Klingelzeichen das u.U auch noch nach dem der Anrufer abnimmt abgespielt wird.

Die Lösung !

Im FreePBX Admininterface unter Setup und General Settings.

Asterisk Dial command options:                 t

Asterisk Outbound Dial command options:        t