Dieses Wiki ist ein Archiv bis 2023. Das aktuelle Wiki findet sich unter https://wiki.hamburg.ccc.de/

Difference between revisions of "VoIP:Vermittlung"

From CCCHHWiki
Jump to: navigation, search
m (Pfade im Makefile angepasst)
m (*nibble*)
Line 43: Line 43:
 
*** z.B. in /var/log/asterisk/messages
 
*** z.B. in /var/log/asterisk/messages
 
** Evtl. noch vserver starten?
 
** Evtl. noch vserver starten?
 +
</strike>
  
 +
<strong>Alt. TODO: Neues Backup-Verfahren einrichten. Mit Verschlüsselung?</strong>
 +
<strike>
 
* Unregelmäßige Backups nach /backup/backup/vermittlung/
 
* Unregelmäßige Backups nach /backup/backup/vermittlung/
 
** dort liegt ein kleines mkbackup.sh, das / und /srv als .tar.bz2.gpg sichert
 
** dort liegt ein kleines mkbackup.sh, das / und /srv als .tar.bz2.gpg sichert
Line 60: Line 63:
  
 
* Sourcen zur Asterisk-Installation in /usr/src/asterisk_pbx/
 
* Sourcen zur Asterisk-Installation in /usr/src/asterisk_pbx/
** Wir benutzen die jeweils die neueste "stable"
+
** Wir benutzen größtenteils die jeweils neueste "stable"
*** asterisk (http://www.asterisk.org/)
+
*** asterisk (http://www.asterisk.org/) in Version 1.2
 
*** zaptel (http://www.asterisk.org/)
 
*** zaptel (http://www.asterisk.org/)
 
*** mISDN (http://www.misdn.org/)
 
*** mISDN (http://www.misdn.org/)
Line 67: Line 70:
 
*** spandsp (http://www.soft-switch.org/)
 
*** spandsp (http://www.soft-switch.org/)
 
*** app_txfax, app_rxfax: http://www.soft-switch.org/downloads/snapshots/spandsp/test-apps-asterisk-1.2/
 
*** 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/
+
** 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"
 
** Installieren nach /usr/local/stow/$paketname-$version/, kein unüberlegtes "make install"
 
** mit stow -Dv <alt>, stow -v <neu> dann die Links aktualisieren
 
** mit stow -Dv <alt>, stow -v <neu> dann die Links aktualisieren
Line 83: Line 86:
 
===Update von Asterisk & Co.===
 
===Update von Asterisk & Co.===
 
Nach Kernelupdate müssen häufig zaptel und misdn neu übersetzt werden und die eine oder andere neue Version.
 
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 diese Reihenfolge kompiliert:
+
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
 
* Zaptel

Revision as of 17:30, 20 April 2008

Server-Dokumentation vermittlung.hamburg.ccc.de


Server

(Bild)

(Specs)


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
  • 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.<alt>
      • stow -v zaptel-1.2.<neu>


--- 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 <linux/module.h>
 #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.<alt>
      • stow -v mISDN-1.1.<neu>
  • 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.<alt>
      • stow -v mISDNuser-1.1.<neu>


  • 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.<alt>
      • stow -v spandsp-0.0.<neu>


  • 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.<alt>
      • stow -v asterisk-1.2.<neu>


  • chan_misdn
    • das in Asterisk 1.2 enthaltene chan_misdn wirft segfaults wegen double free nach Hangup
    • das tat es früher nicht. SMP-Foo?
    • im aktuellen chan_misdn sind if(needs_release) um die entsprechenden Aufrufe herum
    • http://www.beronet.com/downloads/chan_misdn/stable/chan_misdn.tar.gz
    • kompilieren: make MISDNUSERLIB=/usr/local/lib
      • wenn man chan_misdn auf einem Host kompilieren möchte, auf dem misdn lokal nicht installiert ist, muss man das Makefile anpassen. MISDNUSERLIB wird nur halbherzig verwendet, andere Pfade sind hart vorgegeben oder benutzen defaults
    • das neue chan_misdn.so installieren nach /usr/local/stow/asterisk-1.2.<neu>/lib/asterisk/modules/chan_misdn.so


Mail

  • Exim 4
    • Standard Debian-Paket (exim4-daemon-heavy)
    • Konfiguration in /etc/exim4/exim4.conf, keine automatische Frickelei mit conf.d
    • Einsatz als Backup-MX ist in /root/doc/README.postmaster beschrieben
  • ClamAV
    • aus Haegars Debian-Paket (aktuell: 0.90.3-0.sdinetB1)
    • Daemon lauscht auf /var/run/clamav/clamd.ctl, nicht über TCP
    • clamav-freshclam ist installiert und aktualisiert regelmäßig die Signatur-Datei
  • Spamassassin
    • aus Haegars Debian-Paket (aktuell: 3.2.1-0.sdinetB1)
    • Daemon lauscht auf /var/run/spamd/spamd.ctl, nicht über TCP
    • sa-update aktualisiert täglich die Tests

Sonstiges

  • ntpd
    • Bezieht die Zeit von mehreren nahegelegenen Stratum-2-Servern
  • Icecast
    • Für Streaming aus Asterisk-Konferenzen (app_ices)
    • Todo: Iceast als On-demand-Relay für Streams konfigurieren um Bandbreite zu schonen, wenn mehrere Personen demselben Stream über die Vermittlung lauschen

Todo

  • Software, die evtl. noch installiert werden könnte:
    • Apache mit dynamischen Geraffel - aber wozu?
    • Postgres/MySQL/sonstwas als Datenbank - aber wozu?
      • Hauke sagt: Dann können wir gleich eine bunte LDAP-Datenbank entwerfen und darin Mitglieder, Telefonnummern, etc. verwalten


Konfiguration

(Dinge, die nicht in README.root stehen)

Siehe VoIP:Konfiguration_neu für Asterisk-nahen Kram inkl. Fax, libtiff usw.