Installation

Basis: Ubuntu Server LTS 14.04 (64bit empfohlen) http://releases.ubuntu.com/14.04/

Bei einer Installation mit mehr als einem Netzwerkinterface (eth0,eth1) sollte das Haupt-Telefon-Netz immer auf eth0 liegen. Externe Verbindungen zu anderen Netzwerken oder das Interface mit der default-Route zum Hauptgateway sollte dann auf eth1 oder höher liegen.
Gründe dafür sind Eigenheiten vom Linux-Kernel bei der Behandlung z.B. von ausgehenden UDP-SIP Paketen die möglicherweise eine falsche Quelladresse beim Versenden erhalten und so nicht wieder korrekt beantwortet werden können.
Probleme die dadurch entstehen sind beispielsweise fehlende Displayinformationen bei den Endgeräten (verpasste Anrufe, …). Falls es keine andere Möglichkeit gibt gilt es zwingend den sofia-bindhost vom ucwared auf eine feste IP zu konfigurieren. Bei Fragen zu dem Thema wenden Sie sich bitte an unseren Support.

Beim Einrichten des VM-Guest gibt es folgendes zu beachten:

  1. Keine automatischen Updates, diese können dazu führen, dass Ubuntu wichtige Komponenten der UCware im laufenden Betrieb neustartet!
  2. Etwa 4GB RAM sind ausreichend
  3. Beim Einsatz von VMware sollten die VMware Tools installiert sein. Das lässt ich problemlos im Gast erledigen mit sudo apt-get install open-vm-tools
  4. Ebenfalls beim Einsatz von VMware bitte unbedingt die Option Uhrzeit des Gastsystems mit Host synchronisieren deaktiviert lassen

Asterisk-Server mit UCware installieren

Hinweis: Viele der folgenden Befehle lassen sich nur als root ausführen. Ubuntu sieht vor, dafür den Befehl sudo zu nutzen!

Den UCware Paketserver in die /etc/apt/sources.list hinzufügen

# echo deb https://user:pass@packages.ucware.de/ubuntu/ucware-4.2 trusty main > /etc/apt/sources.list.d/ucware.list
# echo deb https://user:pass@packages.ucware.de/ubuntu/ucware-firmware trusty main >> /etc/apt/sources.list.d/ucware.list
# apt-get install curl
# curl https://user:pass@packages.ucware.de/ubuntu/ucware-4.2/pubkey.gpg | apt-key add -

Die Zugangsdaten user:pass müssen ersetzt werden durch die Zugangsdaten des jeweiligen Endkunden. Die Zugangsdaten können für jeden Endkunden im Partnerportal eingetragen werden.

Pakete auf den neuesten Stand bringen

# apt-get clean && apt-get update && apt-get upgrade

WICHTIG: wenn der Kernel upgedated wurde: Neustarten (da sonst bei der weiteren Installation u.U. die Kernelmodule für DAHDI nicht richtig compiliert werden)

UCware installieren

# apt-get install postfix ntp ntpdate bind9 isc-dhcp-server ucware dahdi-dkms ucware-core

ITU-T telephone code: 49 (für Deutschland)
Postfix Configuration: Internet Site oder lokaler Smarthost

Sollte bei der Installation eine der beiden Fehlermeldungen

/etc/default/astbuttond not found. Please install astbuttond and rerun ucware-setup-asterisk
/etc/default/asterisk not found. Please install asterisk and rerun ucware-setup-asterisk

auftauchen, ist Asterisk noch nicht vollständig oder nicht korrekt installiert. Sobald Asterisk korrekt installiert ist, können notwendige Änderungen an den genannten Dateien mit /usr/sbin/ucware-setup-asterisk nachgeholt werden.

Datenbank einrichten

Datenbanknutzerrechte eintragen:

$ mysql -uroot -p
[...]
mysql> GRANT ALL ON `asterisk`.* TO 'ucware'@'localhost' IDENTIFIED BY 'geheim';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL ON `asterisk`.* TO 'ucware'@'%' IDENTIFIED BY 'geheim';
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW GRANTS FOR 'ucware'@'localhost';
+---------------------------------------------------------------------------------------------------------------------+
| Grants for ucware@localhost                                                                                         |
+---------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'ucware'@'localhost' IDENTIFIED BY PASSWORD '*462366917EEDD1970A48E87D8EF59EB67D2CA26F'       |
| GRANT ALL PRIVILEGES ON `asterisk`.* TO 'ucware'@'localhost'                                                        |
+---------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> SHOW GRANTS FOR 'ucware'@'%';
+-------------------------------------------------------------------------------------------------------------+
| Grants for ucware@%                                                                                   |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'ucware'@'%' IDENTIFIED BY PASSWORD '*462366917EEDD1970A48E87D8EF59EB67D2CA26F' |
| GRANT ALL PRIVILEGES ON `asterisk`.* TO 'ucware'@'%'                                                  |
+-------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> exit
Bye

Datenbanknutzerrechte überprüfen:

$ mysql -u ucware -p -e 'SELECT "ok"'
Enter password:
+----+
| ok |
+----+
| ok |
+----+

Datenbank installieren

cat /usr/share/ucware/db/asterisk.sql | mysql -uroot -p

Nameserver konfigurieren

Den lokalen Nameserver in der /etc/resolv.conf vor den vorhandenen Eintrag schreiben:

[...]
nameserver 127.0.0.1
[...]

In der /etc/bind/named.conf.local folgende Zeile hinzufügen/Auskommentieren:

[...]
include "/etc/bind/zones.rfc1918";
[...]

In der /etc/bind/named.conf.options werden die firmeninternen DNS Server bei Forwarders eingetragen

[...]
forwarders {
   10.0.200.3;
   10.0.200.2;
};
[...]

Falls die eingetragenen Forwarder kein DNSSEC unterstützen, muss hier zusätzlich die Option dnssec-validation von auto auf no gestellt werden.

Nameserver neu starten:

service bind9 restart

Nameserver überprüfen:

nslookup www.belnet.de

NTP Server konfigurieren

NTP Dienst stoppen:

service ntp stop

Einen gültigen NTP-Server die /etc/ntp.conf hinzufügen.

server ptbtime2.ptb.de
server pool.ntp.org
server 10.0.200.2

Manche Telefone akzeptieren nur korrekt konfigurierte NTP-Server. Dazu muss der Upstream bis zum Stratum 0 stimmen. Überprüfen lässt sich das mit ntpdate -d <IP des NTP-Servers>. Frisch gestartete NTP-Server benötigen einige Zeit (> 15 Minuten) bis die Synchronisation stabil ist.

Initial Zeit setzen:

ntpdate pool.ntp.org

NTP Dienst starten:

service ntp start

Überprüfen welcher NTP Server benutzt wird:

ntpq -p

DHCP-Server konfigurieren

10.04: /etc/dhcp3/dhcpd.conf
14.04: /etc/dhcp/dhcpd.conf

Die DHCP-Konfiguration anhand passender Beispielkonfiguration von UCware anpassen. (z.B.: /usr/share/doc/ucware-core/misc/dhcpd-3-example.conf.gz)

10.04

service dhcp3-server restart

14.04

service isc-dhcp-server restart

Postfix konfigurieren

Wenn nur an interne Adressen versendet werden soll reicht es einen relayhost einzutragen

Die Grundkonfiguration wird in der Datei /etc/postfix/main.cf festgehalten. Wird ein Smart-/Relayhost eingesetzt, müssen dort noch einige Zeilen ergänzt werden:

smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noplaintext noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password

Falls das Versenden nur per Klartext-Übermittlung des Kennworts funktioniert, muss das Wort noplaintext aus der zweiten Zeile entfernt werden. Die Datei sasl_password exisitiert noch nicht, sie muss angelegt werden. Man kann sie in einem normalen Editor erstellen und dann nach /etc/postfix/ hochladen. In ihr müssen folgende Werte für das Authentifizieren am Smarthost vorkommen: Name des Ziel-SMTP-Servers, der Benutzername, das Kennwort. Das sieht dann etwa so aus und muss mit diesem Syntax hinterlegt sein:

Smtp.bel.local mail.benutzer@belnet.de:Passwort

Anschliessend muss Postfix neu gestartet und die Datenbank erzeugt oder erneuert werden. Sie nennt sich sasl_password.db und wird mit folgendem Befehl erzeugt:

service postfix restart
postmap /etc/postfix/sasl_password

Danach nicht vergessen, Postfix neu zu starten und das war es dann eigentlich schon.

Dahdi installieren und konfigurieren

modprobe dahdi_dummy
dahdi_genconf

Jetzt kann /etc/dahdi/system.conf editiert werden und für loadzone und defaultzone der Wert „de“ eingestellt werden.

service dahdi restart

Vorhandene pre-4.0 Datenbank updaten

Falls die Datenbank einer bereits vorhandenen Installation übernommen werden soll, müssen die folgende Datenbank-Updates ausgeführt werden. Bei einer Neuinstallation kann dieser Abschnitt übersprungen werden.

cat /usr/share/ucware/db/UPGRADE-DB-post-v3.sql | mysql -u root -p -f

Wenn KWS Provisioning verwendet wird, muss zusätzlich folgendes Datenbank-Update installiert werden

cat /usr/share/ucware/db/UPGRADE-DB-post-v3_1_0.sql | mysql -u root -p -f

Seit UCware 4.2 werden Datenbank-Updates mithilfe des Scripts /opt/ucware/sbin/update-db durchgeführt.

Konfigurationsdateien editieren

nano /etc/ucware/ucware.php
INSTALLATION_TYPE

Hier kann zwischen „single“ und „cluster“ gewählt werden. Bei einer Installation mit einem Server kann die Voreinstellung single beibehalten werden.

DB_MASTER_HOST

Bei einem entfernten Datenbankserver muss hier die IP-Adresse des Servers eingetragen werden, ansonsten 127.0.0.1.

DB_MASTER_PWD

Hier muss das Kennwort des MySQL-Benutzers ucware eingetragen werden.

DB_SLAVE_PWD

Hier muss ebenfalls das Kennwort des MySQL-Benutzers ucware eingetragen werden.

PROV_HOST

Hier muss die IP-Adresse des Servers eingetragen werden.

$CANONIZE_INTL_PREFIX   = '000'; 

Die 3 0en sind wichtig, da das + durch diesen Wert ersetzt wird.

$NTP_SERVER
$NTP_OFFSET
$NTP_USE_DST

Für Telefone die ihre NTP Informationen nicht per DHCP beziehen können (Samsung, Polycom, Panasonic) müssen diese Werte ebenfalls gesetzt werden.

$VLAN_USE
$VLAN_PHONE_ID
$VLAN_PHONE_PRIORITY

$VLAN_PC_ID
$VLAN_PC_PRIORITY

Wenn VLans verwendet werden müssen die entsprechenden Parameter ebenfalls angepasst werden.

CALL_INIT_FROM_NET

Hier müssen alle lokal verwendeten Subnetze eingetragen werden.

EMAIL_ADDRESS und EMAIL_NAME

Hier müssen die gewünschten Absenderdaten für die Voicemailbenachrichtigung eingetragen werden. Falls der UCwared mit installiert wurde, sind noch folgende Variablen zu konfigurieren:

BUTTONDAEMON_USE

Variable auf „true“ setzen, wenn der UCwared verwandt wird

BUTTONDAEMON_HOST

Hier muss die IP-Adresse des Servers eingetragen werden. Falls der Server im Cluster mit anderen UCware Servern laufen soll, muss außerdem in /opt/ucware/etc/listen-to-ip die IP-Adresse des lokalen UCware Servers eingetragen werden. ……

Globale Variablen erzeugen

Wenn der Datenbankzugriff eingerichtet und in die Konfigurationsdatei ucware.php eingetragen ist, muss einmal das Skript

/opt/ucware/sbin/gs-lua-globals-gen

ausgeführt werden. Danach mit

chown asterisk.asterisk /opt/ucware/etc/asterisk/lua/e-globals.lua

die Datei /opt/ucware/etc/asterisk/lua/e-globals.lua für den Benutzer asterisk schreibbar machen.

UCware Daemon installieren und konfigurieren

Installationsanleitung UCware Daemon

Jetzt muss der UCware Daemon installiert und konfiguriert werden. Der UCware Daemon wird für Display-Benachrichtigungen und für bestimmte Tastenprovisionierungen benötigt.

Webinterface testen

Nun können wir die Weboberfläche testen indem wir http://[IP-Adresse des Servers]/ucware im Web-Browser aufrufen. Standardbenutzer ist supervisor mit Passwort 123.

Manager-API konfigurieren

Unter Administration→Asterisk-Manager folgende Punkte aktivieren:

extstated.conf
gscc.conf
ucwared.conf
uevg.conf

Dann die Dateien unter /etc/ucware/asterisk/manager.conf.d-enabled jeweils prüfen ob in den Konfigurationsdateien für das jeweilige Netzwerk bzw. die IP eine passende permit= Zeile existiert!

Hosts konfigurieren

Bevor der UCware Server richtig funktionieren kann, müssen der Hostname und die IP-Adresse des installierten Systems in der UCware Weboberfläche konfiguriert werden. Hierzu wählt man im Abschnitt System der Web-GUI den Punkt Hosts und trägt dort den Hostnamen und die IP-Adresse des Servers im Eintrag mit der ID 1 ein.

Die Konfiguration dieser IP-Adresse ist zwingend wichtig! Bitte berücksichtigen Sie diese Änderung ebenfalls bei nachträglich notwendigen IP-Adressänderungen des Servers.

Dialplan generieren und laden

Zum Schluss kann der Dialplan neu geladen werden, indem man die Buttons „Dialplan neu laden“ und „Asterisk neu laden“ im Hauptmenü Administration, Untermenüpunkt Reload verwendet oder auf der Konsole folgender Befehl ausgeführt.

/opt/ucware/sbin/gs-ast-dialplan-reload --generate

Um später aus der Weboberfläche den Dialplan neu laden zu können, muss für den user root mit ssh-keygen ein SSH-Key erzeugt werden und in die authorized_keys des users root eingetragen werden:

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

Gateways konfigurieren

Unter Routen lassen sich Gateways anlegen und zu Gruppen hinzufügen. Innerhalb einer Gruppe lassen sich mit regulären Ausdrücken Teile ein- und ausgehender Rufnummern ersetzen.

SIP-Gateways

Die Zuordnung zu einer Gateway-Gruppe wird in den Einstellungen des zuzuordnenden Gateways vorgenommen, die entsprechende Einstellung heißt Gruppe.

Gateway-Gruppen

Die Suchen/Ersetzen-Muster folgen PCRE-Regeln. Die in diesem Zusammenhang wichtigste Funktion ist die Möglichkeit, Teile des gefundenen Musters in der ersetzten Zeichenkette wiederzuverwenden: Teile des Suchmusters, die sich in runden Klammern befinden, lassen in die Ersetzen-Zeichenkette als $1 für die erste Klammergruppe, $2 für die zweite Klammergruppe usw. einsetzen.

In dem gezeigten Beispiel sind alle drei Suchen/Ersetzen-Muster gesetzt. Wird ein Muster nicht gesetzt, findet auch keine Ersetzung statt. Die drei Beispiele nutzen als Vorwahl 531, als Kopfnummer 2144 und drei- bis vierstellige Durchwahlen.

Ausgehende Caller-ID: Bei abgehenden Anrufen wird die vom Telefon signalisierte, drei- oder vierstellige (Quell-)Durchwahl durch <Vorwahl><Kopfnummer><Durchwahl> ersetzt.

Eingehende Durchwahl: Diese Regel wird angewendet auf die Zielrufnummer bei eingehenden Anrufen. Im Beispiel wird vom Gateway die Rufnummer ohne Vorwahl (also <Kopfnummer><Durchwahl>) signalisiert. Die ist aber intern nicht erreichbar, die Telefone hören nur auf die Durchwahl. Deshalb wird die Rufnummer ersetzt durch die Durchwahl.

Eingehende Caller-ID: Diese Regel wird angewendet auf die Quellrufnummer bei eingehenden Anrufen. In unserem Beispiel muss externen Nummern eine Null vorangestellt werden (Amtsholung). Damit externe eingehende Nummern direkt weiterverarbeitet werden können (z.B. verpasste Anrufe zurückrufen), werden diese Rufnummern ersetzt durch 0<Rufnummer>.

Zusätzliche snom Provisionierungs-Optionen

Alternative Optionen die noch bei BEL NET genutzt werden sind:

transfer_on_hangup_non_pots on
use_backlight always

Je nach Telefontyp wird die Einstellung use_backlight ignoriert. Stattdessen lässt sich das gewünschte Ziel mit Kombinationen der folgenden Einstellungen erreichen:

backlight Helligkeit wenn aktiv (3 bis 15)
backlight_idle Helligkeit wenn untätig (0 bis 15)
dim_timer Timeout bis Display gedimmt wird (in Sek)

Die erste Konfiguration verändert das HOLD-TRANSFER Verhalten zum gewohnten Standard (neue Firmware-Versionen von Snom reagieren „seltsam“), die zweite lässt das Display dauerhaft leuchten damit kein An-Aus blinken stattfindet.

Dazu unter Provisionierung→Parameter ein neues Profil anlegen (falls noch nicht vorhanden). Anschließend für die jeweiligen Telefon-Typen die o.g. Optionen als Parameter (bei Parameter und Wert) eintragen.

Anschließend muss (auch da falls nicht vorhanden) unter Provisioning→Provisioning-Grp. eine neue Gruppe mit dem Provisionierungs-Parameter-Profil angelegt werden. Dieses Profil kann bzw. muss dann bei allen betreffenden Benutzern über Administration→Benutzer→Provisionierungs-Gruppe ausgewählt werden. Nach einem Neustart der Telefone sind die Optionen aktiviert.

Panasonic-DECT Provisionierung

Für die Panasonic-DECT Provisionierung ist der ucware-tftpserver als Dienst notwendig und muss aus dem Repository installiert werden.

apt-get install ucware-tftpserver

Dieser Dienst lässt sich per

service ucware-tftpserver start

starten (oder je nach Parameter auch stoppen).

Für die Aktivierung der Provisionierung ist es nötig in der Datei /etc/ucware/ucware.php den Parameter

$PANASONIC_DECT_PROV_ENABLED          = true;

zu erweitern.

Um in der Weboberfläche unter „Provisionierung→Panasonic DECT“ die Funktion „DECT Handgeräte Telefonbuch aktualisieren“ nutzen zu können, legen Sie bitte einen User mit dem Benutzernamen „panasonic-dect-master“ an. Als Rufnummer bietet sich z.B. die „999998“ an.
Dieser Benutzer ist für die Synchronisierung der Telefonbücher zwingend notwendig und wird in der Provisionierung automatisch an die DECT-Master-Station gebunden.

Ist der Punkt „Panasonic DECT“ nicht in der Navigationsleiste zu finden, muss er erst aktiviert werden. Dazu unter „Administration→GUI“ die Gruppe „admin_gui“ bearbeiten und in der Gruppe „Provisioning“ den Punkt „Panasonic DECT“ aktivieren.