Stoppt die Vorratsdatenspeicherung! Jetzt klicken & handeln!Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien:
Menu Content/Inhalt
Home arrow Thux Blog

IPv6 Privacy Extension auf OS X aktivieren

Ich frage mich wirklich warum auf Mac OS X die IPv6 Privacy Extension (RFC 4941) nicht per default aktiviert ist, das ist ja sogar unter Windows der Fall. Da ich auch auf Anhieb nicht bei Google das gefunden habe, wie man die IPv6 Privacy Extension Bootfest unter OS X konfiguriert, schreibe ich es einfach mal hier, vielleicht wird es dann bald in Google gelistet und der nächste muss weniger suchen.

Aktivieren tut man die Privacy Extension mit dem Befehl sysctl, so wie man es auch von anderen Unix´en und so gewohnt ist:

sudo sysctl -w net.inet6.ip6.use_tempaddr=1

Was mich nun stutzig gemacht hat ist, dass es unter OS X 10.5 keine /etc/sysctl.conf gibt, in der man sowas Eintragen kann, damit es beim nächsten booten auch angewendet wird. Dazu brauch man aber einfach nur die /etc/sysctl.conf erstellen, danach klappt es dann.

sudo vi /etc/sysctl.conf

und folgendes reinschreiben (Es dürfen keine leerzeichen um das = Zeichen verwendet werden)

net.inet6.ip6.use_tempaddr=1

Tags: , , , ,

Gut, dass hier niemand Kommentiert oder “won´t you blog about this song?”-Part II


Tags: , , ,

Projekt: Fritzbox einmotten PART III

So, da nun die Konfiguration komplett ist, erzähle ich nun von den Problemen die ich habe und wie es ausschaut auch mein Projekt scheitern lässt.

Das Problem ist folgendes, beim abnehmen des Hörers ist der Wählton kein gleichmäßiger Piepton sondern eher ein rythmischer Beat (Eigentlich auch cool, leider nicht in diesem Fall), die Sprachqualität ist bei ausgehenden Anrufen auch komplett davon durchsetzt, was sich dann aber in ein dauerhaften Knacken äussert. Bei eingehenden Telefonaten ist die Qualität in Ordnung.

Ich habe einige Zeit gebraucht um die Ursache zu finden und wurde beim blick in den Syslog fündig. Dort fand ich tausende Zeilen von dieser Sorte hier:

zaphfc: bchan rx fifo not enough bytes to receive! (z1=1493, z2=1486, wanted 8 got 7), probably a buffer overrun.

Das Problem, welches hinter der Messages steckt ist folgendes, die HFC-S Karte kommuniziert sehr rege mit dem System, sprich mit Interrupts in einer frequenz von 8kHz, also 8000 mal in der Sekunde oder alle 125 useks und das system kann die nicht alle verarbeiten und verwirft dann welche, was nicht weiter schlimm ist, wenn es nur wenige sind. Es sollten für eine gute Sprachqualität aber mind. 99,97% aller Interrupts erfolgreich verarbeitet werden, sonst wird das Knacken in der Leitung wahrnehmbar und mindert so die Sprachqualität. Auf meinem System werden leider nur gut 92% aller Interrupts erfolgreich verarbeitet und somit ist das nicht mehr zu gebrauchen.

Um das Problem in den Griff zu bekommen, habe ich viel im Internet rumgesucht und gelesen und einige Ansätze gefunden, die ich alle Ausprobiert habe. Der erste und meist erwähnte ist der sogenannte Florz Patch (siehe PART II), der einige Funktionen im zaphfc Treiber erweitert und auch das interrupthandling verbessert. Leider brachte der Patch nicht den erhofften Erfolg.

Mein nächster Ansatz war der CentOS Kernel, den ich im verdacht hatte. Da ich auch nicht den typischen Kernel (32 Bit ohne Xen) verwende den man für eine Asterisk üblicherweise benutzt, sondern, da ich ein 64Bit System installiert habe und auch Xen VM´s nutze, den entsprechenden Kernel, in meinem Fall der 2.6.18-128.1.6.el5xen x86_64. Deshalb habe ich dann angefangen mir einen eigenen Kernel zu bauen, der anders als der Default Kernel eine Time frequency von 1000 Hz statt 250 Hz nutzt, aber auch dieser Kernel brachte nicht den gewünschten Erfolg.

Ein BIOS Update half auch nicht weiter.

Deshalb habe ich nun auf meinen ausgemusterten P4 den ich hier noch rumstehen habe, auch ein CentOS 5 64 Bit mit Xen installiert um herauszufinden, ob es sich um ein Hardware oder Software Problem handelt, bevor ich anfange noch 27 Kernels zu bauen. Ich habe also CentOS installiert, die 2. HFC-S Karte die ich hier noch rumliegen habe eingebaut und angefangen Asterisk Bristuff zu bauen. So konnte ich auch gleich noch das HowTo im PART II anpassen, da ich festgestellt habe, dass es so nicht ganz komplett war.

Nachdem ich alles fertig gebaut habe und den zaphfc Treiber geladen habe, kam der spannende Moment und siehe da, keine buffer overrun oder underrun Meldungen im Syslog. Also Konfig rüber kopiert, NTBA & Telefon angeschlossen und schauen ob es funktioniert. Nachdem ich Asterisk gestartet habe und den Hörer abgenommen habe, siehe da ein Wahlton so wie er sein sollte. Noch ein paar weitere Test mit ein- und ausgehenden Anrufen zeigten, dass alles Super funktioniert und die Sprachqualität war auch 1A, obwohl nun auch ein paar Buffer overrun Meldungen im Log auftauchten, aber immer blos 2 Stück im Abstand von jeweils 10 Minuten, was ich als vertetbar halte, da ja ansonsten alles Tutti war.

Mein Linux Homeserver auf dem die Asterisk laufen sollte, ist ein Atom PC zwecks geringem Energie verbrauch, was mir auch wichtig ist, wenn der schon 24/7 laufen soll. Deshalb kann ich jedem nur davon abraten das Intel Mainbaord mit Atom 330 D945GCLF2 für eine Asterisk installation zu nutzen, zumindest wenn man eine Lösung mit HFC-S Karten favorisiert.

Und so kann ich leider meine Fritzbox noch nicht in Rente schicken und muss nun hoffen, dass es vielleicht bald ein BIOS Update gibt, welches das Problem beseitigt.

Als nächstes werde ich es probieren einen SIP Proxy auf meinem OpenWRT Router zu installieren, um zumindest das Problem der Nichterreichbarkeit mit der Fritzbox in den Griff zu bekommen.

Stay tuned!!!11elf!

P.S. Falls hier mal ein Asterisk Profi oder jemand der vielleicht noch einen Tip für mich hat, zufällig auf diese Seite stößt, ich freue mich über jeden Kommentar.

Tags: , , , , , ,

Projekt: Fritzbox einmotten PART II

So nun kommen wir zum Praktischen Teil…

Ich habe einen Linux Rechner mit CentOS 5 in dem die HFC-S ISDN-Karte eingesteckt ist.

$ lspci |grep HFC
04:00.0 Network controller: Cologne Chip Designs GmbH ISDN network controller [HFC-PCI] (rev 02) 

An die Karte wird dann das ISDN Cross-Kabel gesteckt und mit dem NTBA an deren S0-BUS Dose verbunden. Ein üblicher NTBA hat 2 S0-Bus Dosen, die auch gebraucht werden, da in die 2. das ISDN-Telefon eingesteckt werden muss. Der NTBA muss nun noch mit Strom versorgt werden. Das ist auch die Aufgabe des NTBA, den S0-Bus mit der nötigen Spannung zu versorgen, da ansonsten nur die ISDN-Karte und das Telefon am Bus hängen und beides passive Geräte sind.

(Internet)=—SIP—=(Netzwerkkarte ! Linux PC ! HFC-S Karte)=—ISDN S0—=(NTBA)=—=(ISDN Telefon)

So die Hardware ist nun komplett eingerichtet, nun folgt die Software:

Damit die Software erfolgreich kompiliert werden kann sind ein paar kleine Vorbereitungen von nöten.
Als erstes sollte sicher gestellt sein, dass die Entwicklerwerkzeuge installiert sind, wenn nicht, dann hilft ein einfaches:

$ yum groupinstall “Development Tools”

Und ein paar Zusätzliche Devel RPM´s sind ebenfalls noch erforderlich:

$ yum install libtermcap-devel ncurses-devel openssl-devel zlib-devel newt-devel

Ich bin mir nicht 100%ig sicher ob das reicht, wenn das bauen von Asterisk fehlschlägt sollten folgende RPM´s helfen:

  • libtiff-devel
  • postgresql-devel
  • postgresql-server
  • libogg-devel
  • libvorbis-devel
  • libtool-ltdl-devel
  • sqlite-devel
  • qt-devel
  • kdelibs-devel
  • gtk2-devel
  • alsa-lib-devel
  • unixODBC-devel
  • curl-devel

Ausserdem muss SeLinux disabled sein, damit Asterisk erfolgreich gebaut werden kann, dazu einfach die Datei /etc/sysconfig/selinux editieren und die Zeile SELINUX=enforcing zu SELINUX=disabled ändern. Danach ist ein reboot erforderlich.

Zusätzlich werden die Kernel Quellen für den installierten Kernel benötigt

$ yum install kernel-devel kernel-xen-devel

Nun muss noch ein Link erstellt werden /usr/src/linux-2.6 der auf die richtigen Kernel Quellen zeigt

$ cd /usr/src
$ ln -s kernels/`uname -r `-`uname -m`/ linux-2.6

Jetzt wird es ernst, es geht nun ans bauen und installieren von Asterisk, dazu muss man sich das Bristuff Paket von http://www.junghanns.net/en/home.html herunterladen und installieren.

$ wget http://www.junghanns.net/downloads/bristuff-0.3.0-PRE-1y-u.tar.gz
$ tar xzvf bristuff-0.3.0-PRE-1y-u.tar.gz
$ cd bristuff-0.3.0-PRE-1y-u
$ ./install.sh

Bei dem ./install.sh wird alles was noch benötigt wird, wie die Asterisk Software selbst etc. automatisch mit heruntergeladen und kompiliert. Wenn am Ende folgende Meldung ausgegeben, war das alles Erfolgreich.

+—- Asterisk Installation Complete ——-+
+                                           +
+    YOU MUST READ THE SECURITY DOCUMENT    +
+                                           +
+ Asterisk has successfully been installed. +
+ If you would like to install the sample   +
+ configuration files (overwriting any      +
+ existing config files), run:              +
+                                           +
+               make samples                +
+                                           +
+—————–  or ———————+
+                                           +
+ You can go ahead and install the asterisk +
+ program documentation now or later run:   +
+                                           +
+              make progdocs                +
+                                           +
+ **Note** This requires that you have      +
+ doxygen installed on your local system    +
+——————————————-+

****************************************************
ASTERISK installed.
BRIstuff Installation finished.
****************************************************

Wenn man das nun alles zum ersten mal gemacht hat, dann sollte man noch die Sample Konfigurations-Dateien installieren mit:

$ cd asterisk
$ make samples

Da nun alles installiert ist, geht´s ans konfigurieren. Als erstes kümmern wir uns um die /etc/zaptel.conf , in der Datei werden die Parameter für die HFC-S ISDN Karte definiert und sollte wie folgt aussehen:

# hfc-s pci a span definition
# most of the values should be bogus because we are not really zaptel
loadzone=nl
defaultzone=nl

span=1,1,3,ccs,ami
bchan=1-2
dchan=3

Nun kann man auch schon das Kernel Module für die Karte laden, welches auf den Namen zaphfc hört.

$ modprobe zaphfc modes=1
$ ztcfg -vvvv

Das modes=1 sagt dem Treiber, dass die Karte im NT Modus arbeiten soll, das ist der Modus um einen internen S0-Bus dadran zu betrieben und das ztcfg -vvvv zeigt die Konfiguration der Karte und ggf. Fehler an.

Jetzt geht es an die Konfiguration der Asterisk, dazu wechseln wir in das Verzeichnis /etc/asterisk . Da gibt es nun eine Menge an Konfigurations-Dateien, aber wir brauchen lediglich 3 davon anfassen, der Rest kann so bleiben wie er ist. Die 3 für uns Interesanten Dateien sind die zapata.conf, welches der Asterisk erzählt, wie mit der HFC-S ISDN Karte umzugehen ist. In der Datei sip.conf wird der SIP Zugang zu Sipgate konfiguriert und in der Datei extensions.conf werden die sogenannten Extensions konfiguriert, welches Asterisk sagt, wie alles zusammen spielen soll.

Fangen wir also erstmal mit der zapata.conf an, die wie folgt aussehen muss:

[channels]

;—————————————————————————-
;NT-Karte fuer ISDN-Telefonanlage im Mehrgeraete-Anschluss
;—————————————————————————-
;language=de
switchtype = euroisdn
signalling = bri_net_ptmp

pridialplan = dynamic
prilocaldialplan = local
nationalprefix = 0
internationalprefix = 00

echocancel = yes
echotraining=100
echocancelwhenbridged=yes

immediate = no
overlapdial=yes
group = 1
context = default
channel => 1-2

Und nun die sip.conf. Hier muss der String SIP-ID durch die Sipgate ID und der String SIPPASS durch dass Sipgate SIP Passwort erstetzt werden:

[general]
port = 5060
bindaddr = 0.0.0.0
; IP des externen Gateways, hier eintragen, wenn feste IP vorliegt
; externip = 0.0.0.0
; Netzadresse LAN
Localnet = 192.168.1.0/255.255.255.0
srvlookup = yes
context = default
disallow=all
allow=ulaw
allow=alaw
allow=gsm

register => SIP-ID: Diese E-Mail Adresse ist gegen Spam Bots geschützt, Sie müssen Javascript aktivieren, damit Sie sie sehen können /SIP-ID
; Das Leerzeichen zwischen ID: und SIPPASS kommt von der Blogging Software und muss weg
canreinvite=no

[sipgate]
type=friend
username=SIP-ID
secret=SIPPASS
host=sipgate.de
fromuser=SIP-ID
from=SIP-ID
context=default
canreinvite=no
insecure=very
nat=no
dtmfmode=info

Und zuguter letzt die extensions.conf, hier muss ebenfalls der String SIP-ID durch die Sipgate ID, welches ebenfalls die einkommende Telefonnummer ist, ausgetauscht werden.

[general]
static=yes
writeprotect=no
[globals]
IAXINFO=guest   ; IAXtel username/password
[default]
exten =>
SIP-ID,1,Dial(Zap/g1/${EXTEN})
exten =>
SIP-ID,2,Hangup

exten => _X.,1,Dial(SIP/${EXTEN}@sipgate,60)
exten => _X.,2,Congestion
exten => _X.,3,Busy
exten => _X.,4,Hangup

Die Zeile
exten => SIP-ID,1,Dial(Zap/g1/${EXTEN})
sagt der Asterisk, dass alle eingehenden Anrufe auf der Nummer SIP-ID an die erste HFC-S ISDN Karte ausgegeben werden soll und die Zeile
exten => _X.,1,Dial(SIP/${EXTEN}@sipgate,60)
sagt, dass alle (_X) gewählten nummern, über sipgate rausgehen sollen.

So die Konfiguration ist nun Abgeschlossen und Asterisk kann gestartet werden, da wir beim ersten mal auch sehen wollen ob das alles klappt machen wir das wie folgt:

$ asterisk -vvvvc

Wenn nun Asterisk ohne Fehler gestartet wurde sind wir in der Console von Asterisk und können nun mit ein paar befehlen sehen ob alles funktioniert. So zeigt uns

CLI> sip show registry

ob die Anmeldung am Sipgate SIP Server geklappt hat. Ein

CLI> pri show span 1

zeigt den span 1, welches die HFC-S ISDN Karte ist.

Nun kann man einfach mal am Telefon probieren ob man raus telefonieren kann, wenn das klappt sollte man nochmal sein Handy zur Hand nehmen und testen ob das rein telefonieren ebenfalls funktioniert und ob die Sprachqualität gut ist.

Wenn das auch erfolgreich war, sind wir nun fertig und haben eine Lösung, welche die Firtzbox wunderbar ersetzt und unendlich erweiterbar ist.

TIP 1: Wenn das bauen von Asterisk bzw. bristuff mit ./install.sh fehlschlug, ist es ratsam den Ordner komplett zu löschen und neu zu entpacken, mir scheint so das die make clean Routinen nicht so wirklich sauber aufräumen.

TIP 2: Taucht beim Betrieb im Syslog oder im dmesg folgender Fehler auf:

zaphfc: bchan rx fifo not enough bytes to receive! (z1=1493, z2=1486, wanted 8 got 7), probably a buffer overrun.

Könnte der Florz Patch helfen, den gibt es hier: http://zaphfc.florz.dyndns.org/ . Beim patchen mittels

$ zcat zaphfc_0.3.0-PRE-1y-l_florz-12.1.diff.gz |patch -p1

muss man den Pfad zur zaphfc.c und zaphfc.h anpassen, da der Patch nicht auf die aktuellste Bristuff Version gelinkt ist, aber dann ist das patchen erfolgreich.

Im dritten Teil erzähle ich davon, was bei mir nicht funktioniert und warum ich mir die Haare raufe

Tags: , , , , , ,

Projekt: Fritzbox einmotten PART I

Es ist zum Haare raufen…. (Wo sind nun eigentlich meine Smilies hin? - Wohl weggelaufen - Egal)

Aber erstmal die Geschichte von Anfang an.

Ich habe seit einigen Jahren keinen Telefonanschluss mehr nur noch DSL, da ich aber gerne noch ein Festnetz Telefon haben möchte und das mit meinem Siemens Gigaset SX353 isdn habe ich seit einigen Jahren einen VOIP Account bei Sipgate. Ich konnte damals sogar meine Nummer dorthin portieren, soweit so gut. Um nun mein Siemens Gigaset SX353 via SIP zu nutzen, habe ich vor einigen Jahren günstig über ebay eine Fritzbox Fon 5012 erworben, das ist so ziemlich die kleinste Fritzbox die es gibt, ohne Analog Ausgänge nur mit einem ISDN S0 Bus. Das reichte ja auch vollkommen für meine Zwecke, denn als Router benutze ich die eh nicht, da mag ich meinem Linksys mit OpenWRT nicht missen. Darum steht die Fritzbox bei hinterm Router im internen Netzwerk und ist nur dazu da um SIP zu ISDN “umzuwandeln”.

Nur leider verabschiedet sich hin und wieder die Verbindung der Fritzbox zum Sipserver von Sipgate. Das kann man leider auch nicht wirklich überwachen und deswegen merkt man es erst, wenn man das nächste mal raustelefonieren möchte. Da ich aber recht selten Telefoniere mit dem Festnetztelefon kommt das schon mal vor, dass man dann auch einige Tage nicht erreichbar ist, was mich wirklich nervt.

Da das so ein recht unbefriedigender Zustand ist und ich auch gerne den Strom, den die Fritzbox verbraucht gerne mir Sparen würde und ich zuhause seit einiger Zeit wieder einen “richtigen” Linux Rechner habe der 24/7 läuft (Ich habe meine NSLU2 ausgemustert), dachte ich mir, baue ich mir mit Asterisk und einer HFC-S ISDN-Karte eine Software Lösung um die Fritzbox einmotten zu können.

Da ich sogut wie alles was man Hardware technisch für die Asterisk Lösung braucht rumliegen habe, ist die Lösung für mich auch noch kostenlos, was den Reiz dieser Lösung erhöht.

Die Zutaten:

- Eine HFC-S ISDN-Karte (Davon hab ich 2 Stück rumliegen)
- Einen NTBA (Davon hab ich sogar 3 Stück rumliegen - k.A. wo die alle herkommen)
- Ein ISDN-Crosskabel (Das habe ich mir aus einem CAT5 Kabel gebastelt)
- Eine Anleitung Z.B. diese hier und diese dort

Meine Lösung unterscheidet sich halt nur in dem Punkt von den oben verlinkten Anleitungen, dass ich auf den ISDN Anschluss verzichte und alle telefonate über SIP abwickeln möchte.

Ein HowTo, die Konfiguration und der Anfang meiner Leidensgeschichte folgt dann in PART II

Tags: , , , , , ,

Fahrrad Checker

Die Berliner Polizei hat angekündigt zwischen dem 1. April und dem 13. April vermehrt Fahrradkontrollen durchzuführen. Das es in den 2 Wochen mehr Kontrollen gibt als sonst war ja abzusehen, aber die Jungs meinen es anscheinend wirklich ernst.

Auf meinen guten 5 Km Arbeitsweg gab es heute gleich 2 Kontrollen. Von mir wollten die aber zum Glück nichts, mal schauen ob die nun wirklich bis zum 13. so weitermachen und ob sie mir auch noch Ihre Kelle vors Fahrrad werfen.

Tags: , ,