====== Alte Telefonvermittlung: Server ======
===== Hardware für Asteriskserver =====
* Server aus der Hardwarespende von pirx
* Dell Poweredge
* 2,4GHz Xeon
* 1GB RAM
* 2x 36GB SCSI-Platten im Software-RAID
* CD-ROM Laufwerk
* dazu 2x HFC-S PCI-ISDN-Karten von irgendwo.
===== Konfiguration =====
==== Ansprechpartner ====
Der Verteiler für allgemeine Anfragen, die mit der Telefonvermittlung zu tun haben, ist: frollein(at)vermittlung.hamburg.ccc.de (Hauke, Bayer, Pirx, Ali. Wer mag, darf sich in /etc/aliases gerne selber hinzufügen)\\
Mail an **postmaster** und **faxmaster** wird von Hauke gelesen.\\
Mail an **root** wird an Hauke und den Bayern verteilt (wer mag, darf sich in /etc/aliases gerne selber hinzufügen).\\
**Sudo-Accounts** haben:
* Ali (ali(at)hamburg.ccc.de)
* Bayer (bayer(at)hamburg.ccc.de)
* Haegar (haegar(at)ccc.de)
* Hauke (packbart(at)hamburg.ccc.de)
* Pirx (pirx(at)ccc.de)
==== README.root ====
(wichtige Dinge, die man wissen sollte, kommen noch in diesen Abschnitt)
* Reboot: Die vermittlung hat ein Crypto-Root. Die initrd wartet auf 212.12.50.213:61391 auf eine SSL-Verbindung über die die Passphrase übertragen wird.
* Die Verbindung kann mit ''%%openssl s_client%%'', ''%%socat%%'', ''%%telnet-ssl%%'' o.ä. hergestellt werden
* Ich verwende z.B.: ''%%{ echo -n "Password: "; socat STDIN,echo=0 OPENSSL:212.12.50.213:61391,verify=1,cafile=/home/packbart/vermittlung.cert; }%%''
* Die Passphrase befindet sich in der Mappe im Hängeordner
* Eine Umstellung auf SSH ist geplant, siehe http://www.debian-administration.org/articles/579
**Alt. TODO: Neues Crypto-Root beschreiben. Das will ich aber noch auf SSH umstellen.**
* Reboot: Die verschlüsselte Partition /srv wird nicht automatisch gestartet
* Nach Reboot einloggen und als root ''%%mount /srv%%'' aufrufen
* GPG-Passphrase befindet sich in der Mappe
* Danach ''%%/etc/init.d/exim4 start%%'' und ''%%/etc/init.d/asterisk start%%'' aufrufen
* Wenn asterisk sofort stirbt, den Restart-Zyklus mit ''%%killall safe_asterisk%%'' o.ä. abbrechen und Fehler suchen
* z.B. in /var/log/asterisk/messages
* Evtl. noch vserver starten?
**Alt. TODO: Neues Backup-Verfahren einrichten. Mit Verschlüsselung?**
* Unregelmäßige Backups nach /backup/backup/vermittlung/
* dort liegt ein kleines mkbackup.sh, das / und /srv als .tar.bz2.gpg sichert
* Backups werden mit dem GPG Public Key von "root" verschlüsselt
* GPG-Passphrase befindet sich in der Mappe
* Backup von pubring.gpg und secring.gpg in .gnupg/
* Die Backups sollten evtl. auf einem anderen Server oder auch offsite gesichert werden
* Eine CD mit Public und Private Keys sollte in den Safe
* Austausch verschlüsselter Backups übers VPN? Hamburg sichert Hannover und Berlin, Hannover sichert Hamburg und Berlin, etc.
* Notizen zu wichtigen Wartungsmaßnahmen finden sich in /root/doc/
* doku-sync der Faxe und Voicemails auf doku.ccc.de läuft per cron um 02,23,42 Minuten
* Neue SIP-Accounts sollten in /etc/asterisk/accounts/$fnord/sip.conf angelegt werden
* Anleitung zum Anlegen neuer Accounts mit Fax und Voicemail in /root/doc/doku-sync.txt
* Sourcen zur Asterisk-Installation in /usr/src/asterisk_pbx/
* Wir benutzen größtenteils die jeweils neueste "stable"
* asterisk (http://www.asterisk.org/) in Version 1.2
* zaptel (http://www.asterisk.org/)
* mISDN (http://www.misdn.org/)
* mISDNuser (http://www.misdn.org/)
* spandsp (http://www.soft-switch.org/)
* app_txfax, app_rxfax: http://www.soft-switch.org/downloads/snapshots/spandsp/test-apps-asterisk-1.2/
* Patches in /usr/src/asterisk_pbx/asterisk_patches/ oder http://www.hamburg.ccc.de/~packbart/asterisk/patches/1.2-vermittlung/
* Installieren nach /usr/local/stow/$paketname-$version/, kein unüberlegtes "make install"
* mit stow -Dv , stow -v dann die Links aktualisieren
* Haegar kompiliert gelegentlich einen neuen Kernel
* mISDN- und Zaptel-Module müssen ggf. mit den neuen Kernel-Sourcen gebaut und installiert werden
==== Installierte Software ====
* Die Auswahl installierter Debian-Pakete wird immer mal mit ''%%dpkg --get-selections%%'' in /root/doc/dpkg-selections dokumentiert.
=== Telefonvermittlung ===
* Asterisk
* Version 1.2.X
* siehe auch: (Link auf VOIP:Konfiguration)
=== Update von Asterisk & Co. ===
Nach Kernelupdate müssen häufig zaptel und misdn neu übersetzt werden und die eine oder andere neue Version. Die einzelnen Komponenten werden nach dem Kernel in folgender Reihenfolge kompiliert. Patches mit kleineren Anpassungen liegen in /usr/src/asterisk_pbx/asterisk_patches/ oder unter http://www.hamburg.ccc.de/~packbart/asterisk/patches/1.2-vermittlung/
* Zaptel
* http://downloads.digium.com/pub/zaptel/
* 1.2
* Patches:
* zaptel_nodev.patch: keine Devices im Install-Verzeichnis anlegen
* Devices existieren bereits mit owner asterisk.asterisk
* Alternative Möglichkeit root.dialout, vielleicht besser?
* kompilieren:
* ''%%nice make -j 2 KVERS=2.6.20 KSRC=/usr/src/kernel/2.6.20-vermittlung/linux DESTDIR=/usr/src/asterisk_pbx/install-zaptel all install%%''
* Verzeichnisstruktur anpassen
* dev löschen - ist eh leer
* etc löschen - zaptel.conf existiert schon
* lib/modules/... nach /lib/modules/.../extra
* ''%%mv usr/* .; rmdir usr%%''
* installieren nach /usr/local/stow/zaptel-1.2.xx
* ''%%chown -R root.root%%''
* ''%%stow -D -v zaptel-1.2.%%''
* ''%%stow -v zaptel-1.2.%%''
* mISDN
* http://www.misdn.org/downloads/releases/
* Patches:
* misdn_kmemcompat.patch: Kompatibilität zu Kernel 2.6.20
* ohne das gibts **"error: too few arguments to function 'kmem_cache_create'"**
--- mISDN-1_1_7_2/drivers/isdn/hardware/mISDN/capi.c 2008-01-18 10:24:49.000000000 +0100
+++ mISDN-1_1_7_2-vermittlung/drivers/isdn/hardware/mISDN/capi.c 2008-04-19 07:52:44.000000000 +0200
@@ -2,6 +2,8 @@
*
*/
+#define MISDN_COMPAT_KMEMCACHE 1
+
#include
#include "core.h"
#include "m_capi.h"
* kompilieren:
* ''%%nice make -j 2 KVERS=2.6.20 LINUX=/usr/src/kernel/2.6.20-vermittlung/linux LINUX_SOURCE=/usr/src/kernel/2.6.20-vermittlung/linux DEPMOD=/bin/true MODULES_UPDATE=/bin/true UPDATE_MODULES=/bin/true INSTALL_PREFIX=/usr/src/asterisk_pbx/install-misdn all install%%''
* Verzeichnisstruktur anpassen
* etc löschen
* lib/modules/... nach /lib/modules/.../extra
* ''%%mv usr/* .; rmdir usr%%''
* installieren nach /usr/local/stow/mISDN-1.1.xx
* ''%%chown -R root.root%%''
* ''%%stow -D -v mISDN-1.1.%%''
* ''%%stow -v mISDN-1.1.%%''
* mISDNuser
* http://www.misdn.org/downloads/releases/
* kompilieren:
* ''%%nice make MISDNDIR=/usr/src/asterisk_pbx/install-misdn INSTALL_PREFIX=/usr/src/asterisk_pbx/install-misdnuser all install%%''
* irgendwo stimmen die Abhängigkeiten im Makefile nicht, mit -j 2 braucht man zwei Durchgänge wegen "No rule to make target `lib/libtenovis.a'"
* Verzeichnisstruktur anpassen
* ''%%mv usr/* .; rmdir usr%%''
* installieren nach /usr/local/stow/mISDNuser-1.1.xx
* ''%%chown -R root.root%%''
* ''%%stow -D -v mISDNuser-1.1.%%''
* ''%%stow -v mISDNuser-1.1.%%''
* WENN man Asterisk auf einem anderen Host kompilieren möchte, ohne mISDN lokal zu installieren, muss man install-misdn/* und install-misdnuser/* in ein Verzeichnis install-misdnboth/ zusammenkopieren.
* spandsp
* http://www.soft-switch.org/downloads/spandsp/
* 0.0.4
* kompilieren:
* ''%%./configure --enable-mmx --enable-sse%%''
* ''%%nice make DESTDIR=/usr/src/asterisk_pbx/install-spandsp all install%%''
* mit -j 2 zerlegt sich manchmal der Make-Vorgang. merkwürden.
* Verzeichnisstruktur anpassen
* ''%%mv usr/local/* .; rm -r usr/%%''
* installieren nach /usr/local/stow/spandsp-0.0.xx
* ''%%chown -R root.root%%''
* ''%%stow -D -v spandsp-0.0.%%''
* ''%%stow -v spandsp-0.0.%%''
* Asterisk
* http://downloads.digium.com/pub/asterisk/
* 1.2
* Patches:
* app_fax_apps.patch: app_rxfax, app_txfax
* app_fax_makefile.patch
* asterisk_makefile_paths.patch
* chan_iax2_calleridprefix.patch
* chan_misdn_makefile.patch
* fileperms_apps.patch
* fileperms_voicemail.patch
* spandsp_header.patch
* kompilieren:
* ''%%nice make -j 2 all; make DESTDIR=/usr/src/asterisk_pbx/install-asterisk install%%''
* /etc/asterisk.makeopts:
K6OPT = -DK6OPT
PROC = pentium4
* Verzeichnisstruktur anpassen
* etc löschen
* var löschen - ist alles schon vorhanden
* ''%%mv usr/local/* .; rm -r usr%%''
* bin löschen - ist eh leer
* installieren nach /usr/local/stow/asterisk-1.2.xx
* ''%%chown -R root.root%%''
* ''%%stow -D -v asterisk-1.2.%%''