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 (Mail: minor version corrections)
(HowTo Update The GehFrickel)
Line 72: Line 72:
 
===Telefonvermittlung===
 
===Telefonvermittlung===
 
* Asterisk
 
* Asterisk
** Version 1.2.18
+
** Version 1.2.X
 
** siehe auch: (Link auf VOIP:Konfiguration)
 
** 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.
 +
 +
* 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:
 +
*** <code>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</code>
 +
** Verzeichnisstruktur anpassen
 +
*** dev löschen - ist eh leer
 +
*** etc löschen - zaptel.conf existiert schon
 +
*** lib/modules/... nach /lib/modules/.../extra
 +
*** <code>mv usr/* .; rmdir usr</code>
 +
** installieren nach /usr/local/stow/zaptel-1.2.xx
 +
*** <code>chown -R root.root</code>
 +
*** <code>stow -D -v zaptel-1.2.<alt></code>
 +
*** <code>stow -v zaptel-1.2.<neu></code>
 +
 +
 +
* mISDN
 +
** http://www.misdn.org/downloads/releases/
 +
** Patches:
 +
*** misdn_kmemcompat.patch: Kompatibilität zu Kernel 2.6.20
 +
*** ohne das gibts <strong>"error: too few arguments to function 'kmem_cache_create'"</strong>
 +
<pre>--- 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"
 +
</pre>
 +
** kompilieren:
 +
*** <code>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</code>
 +
** Verzeichnisstruktur anpassen
 +
*** etc löschen
 +
*** lib/modules/... nach /lib/modules/.../extra
 +
*** <code>mv usr/* .; rmdir usr</code>
 +
** installieren nach /usr/local/stow/mISDN-1.1.xx
 +
*** <code>chown -R root.root</code>
 +
*** <code>stow -D -v mISDN-1.1.<alt></code>
 +
*** <code>stow -v mISDN-1.1.<neu></code>
 +
 +
* mISDNuser
 +
** http://www.misdn.org/downloads/releases/
 +
** kompilieren:
 +
*** <code>nice make MISDNDIR=/usr/src/asterisk_pbx/install-misdn INSTALL_PREFIX=/usr/src/asterisk_pbx/install-misdnuser all install</code>
 +
*** 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
 +
*** <code>mv usr/* .; rmdir usr</code>
 +
** installieren nach /usr/local/stow/mISDNuser-1.1.xx
 +
*** <code>chown -R root.root</code>
 +
*** <code>stow -D -v mISDNuser-1.1.<alt></code>
 +
*** <code>stow -v mISDNuser-1.1.<neu></code>
 +
 +
 +
* 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:
 +
*** <code>./configure --enable-mmx --enable-sse</code>
 +
*** <code>nice make DESTDIR=/usr/src/asterisk_pbx/install-spandsp all install</code>
 +
*** mit -j 2 zerlegt sich manchmal der Make-Vorgang. merkwürden.
 +
** Verzeichnisstruktur anpassen
 +
*** <code>mv usr/local/* .; rm -r usr/</code>
 +
** installieren nach /usr/local/stow/spandsp-0.0.xx
 +
*** <code>chown -R root.root</code>
 +
*** <code>stow -D -v spandsp-0.0.<alt></code>
 +
*** <code>stow -v spandsp-0.0.<neu></code>
 +
 +
 +
* Asterisk
 +
** http://downloads.digium.com/pub/asterisk/
 +
** 1.2
 +
** Patches:
 +
*** app_fax_apps.patch: app_rxfax, app_txfax
 +
*** app_fax_makefile.patch
 +
*** chan_iax2_calleridprefix.patch
 +
*** chan_misdn_makefile.patch
 +
*** fileperms_apps.patch
 +
*** fileperms_voicemail.patch
 +
*** spandsp_header.patch
 +
** kompilieren:
 +
*** <code>nice make -j 2 all; make DESTDIR=/usr/src/asterisk_pbx/install-asterisk install</code>
 +
*** /etc/asterisk.makeopts:
 +
<pre>K6OPT  = -DK6OPT
 +
PROC  = pentium4
 +
</pre>
 +
** Verzeichnisstruktur anpassen
 +
*** etc löschen
 +
*** var löschen - ist alles schon vorhanden
 +
*** <code>mv usr/* .; rmdir usr</code>
 +
*** bin löschen - ist eh leer
 +
** Patch safe_asterisk
 +
*** Incorrect paths
 +
***
 +
<pre>--- 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
 +
*** <code>chown -R root.root</code>
 +
*** <code>stow -D -v asterisk-1.2.<alt></code>
 +
*** <code>stow -v asterisk-1.2.<neu></code>
 +
 +
* chan_misdn
 +
** http://www.beronet.com/downloads/chan_misdn/stable/chan_misdn.tar.gz
 +
  
 
===Mail===
 
===Mail===

Revision as of 08:47, 19 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 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.

  • 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
      • 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/* .; rmdir usr
      • bin löschen - ist eh leer
    • Patch safe_asterisk
      • Incorrect paths
--- 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"
    • 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>


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.