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
(Kurze Beschreibung des neuen Crypto-Roots. Soll noch ersetzt werden.)
m (Pfade im Makefile angepasst)
Line 170: Line 170:
 
*** app_fax_apps.patch: app_rxfax, app_txfax
 
*** app_fax_apps.patch: app_rxfax, app_txfax
 
*** app_fax_makefile.patch
 
*** app_fax_makefile.patch
 +
*** asterisk_makefile_paths.patch
 
*** chan_iax2_calleridprefix.patch
 
*** chan_iax2_calleridprefix.patch
 
*** chan_misdn_makefile.patch
 
*** chan_misdn_makefile.patch
Line 184: Line 185:
 
*** etc löschen
 
*** etc löschen
 
*** var löschen - ist alles schon vorhanden
 
*** var löschen - ist alles schon vorhanden
*** <code>mv usr/* .; rmdir usr</code>
+
*** <code>mv usr/local/* .; rm -r usr</code>
 
*** bin löschen - ist eh leer
 
*** bin löschen - ist eh leer
** safe_asterisk patchen
 
*** Die Pfade sind falsch
 
*** --- sbin/safe_asterisk.orig    2008-04-19 09:40:47.000000000 +0200
 
+++ sbin/safe_asterisk  2008-04-19 09:40:58.000000000 +0200
 
@@ -5,8 +5,8 @@
 
#NOTIFY=ben@alkaloid.net      # Who to notify about crashes
 
MACHINE=`hostname`      # To specify which machine has crashed when getting the mail
 
DUMPDROP=/tmp
 
-ASTSBINDIR=/usr/sbin
 
-ASTPIDFILE=/var/run/asterisk.pid
 
+ASTSBINDIR=/usr/local/sbin
 
+ASTPIDFILE=/var/run/asterisk/asterisk.pid
 
 
#
 
# Don't fork when running "safely"
 
</pre>
 
 
** installieren nach /usr/local/stow/asterisk-1.2.xx
 
** installieren nach /usr/local/stow/asterisk-1.2.xx
 
*** <code>chown -R root.root</code>
 
*** <code>chown -R root.root</code>

Revision as of 17:18, 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?
  • 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 diese Reihenfolge kompiliert:

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