IAXmodem ist eine Software, die ein Modem simuliert, und dieses Asterisk mit dem IAX2-Protokoll zur Verfügung stellt. Alle Schritte in diesem Kapitel werden als User root ausgeführt.
Um IAXmodem installieren zu können, benötigen wir noch einige Debian-Packete, die mit apt-get -y install g++ libtiff-tools libtiff4 libtiff4-dev installiert werden.
debian:~# apt-get -y install g++ libtiff-tools libtiff4 libtiff4-dev Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden zusätzlichen Pakete werden installiert: g++ libjpeg62 libjpeg62-dev libtiffxx0 zlib1g-dev [...] Richte zlib1g-dev ein (1.2.2-4.sarge.2) ... Richte libtiff4-dev ein (3.7.2-7) ... debian:~#
Zum Installieren der Sourcen wechseln wir mit cd /usr/src wieder in das entsprechende Verzeichnis:
debian:~# cd /usr/src debian:/usr/src#
Die Sourcen zu IAXmodem können mit einem normalen Browser auf der Webseite http://iaxmodem.sourceforge.net heruntergeladen werden (in diesem Beispiel ist es die Version 0.3.0). Nach dem Download muss der TarBall in das Verzeichnis /usr/src kopiert und mit tar -xzf iaxmodem-0.3.0.tar.gz enpackt werden.
debian:/usr/src# tar -xvzf iaxmodem-0.3.0.tar.gz iaxmodem-0.3.0/ iaxmodem-0.3.0/iaxmodem.c iaxmodem-0.3.0/iaxmodem.init.debian iaxmodem-0.3.0/Makefile.in iaxmodem-0.3.0/CHANGES iaxmodem-0.3.0/lib/ iaxmodem-0.3.0/lib/spandsp/ iaxmodem-0.3.0/lib/spandsp/Makefile.am [...] iaxmodem-0.3.0/TODO iaxmodem-0.3.0/FAQ iaxmodem-0.3.0/build iaxmodem-0.3.0/iaxmodem.init.fedora debian:/usr/src#
Mit cd iaxmodem-0.3.0 in das neue Verzeichnis wechseln.
debian:/usr/src# cd iaxmodem-0.3.0 debian:/usr/src/iaxmodem-0.3.0#
Un danach mit dem Befehl ./configure && make kompilieren.
debian:/usr/src/iaxmodem-0.3.0# ./configure && make checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking for gcc... gcc [...] cc -DMODEMVER=\"0.3.0\" -DDSPVER=\"spandsp-0.0.3-snapshot-20070223+\" -DIAXVER=\"libiax2-0.2.3-CVS-20060222+\" -Wall -g -DSTATICLIBS -DUSE_UNIX98_PTY -std=c99 -Ilib/libiax2/src -Ilib/spandsp/src -c iaxmodem.c cc -DMODEMVER=\"0.3.0\" -DDSPVER=\"spandsp-0.0.3-snapshot-20070223+\" -DIAXVER=\"libiax2-0.2.3-CVS-20060222+\" -Wall -g -DSTATICLIBS -DUSE_UNIX98_PTY -std=c99 -Ilib/libiax2/src -Ilib/spandsp/src iaxmodem.o lib/spandsp/src/.libs/libspandsp.a lib/libiax2/src/.libs/libiax.a -o iaxmodem -lm -lutil -ltiff [...] debian:/usr/src/iaxmodem-0.3.0#
Das dabei entstehende Binary iaxmodem kopieren wir zum Schluss mit
cp iaxmodem /usr/bin/ ins Verzeichnis
/usr/bin.
debian:/usr/src/iaxmodem-0.3.0# cp iaxmodem /usr/bin/ debian:/usr/src/iaxmodem-0.3.0#
Jetzt kommen wir zur Konfiguration des Modems. IAXmodem sucht
seine Konfiguration im Verzeichnis /etc/iaxmodem
.
Dieses müssen wir jetzt mit mkdir /etc/iaxmodem
anlegen
debian:/usr/src/iaxmodem-0.3.0# mkdir /etc/iaxmodem debian:/usr/src/iaxmodem-0.3.0#
Und mit touch /etc/iaxmodem/ttyIAX0 in ihm eine Datei erzeugen, in der die Konfiguration steht.
debian:/usr/src/iaxmodem-0.3.0# touch /etc/iaxmodem/ttyIAX0 debian:/usr/src/iaxmodem-0.3.0#
In dieser Datei müssen folgende Parameter angegeben werden:
device
- Das ist das Device, das im
/dev
Verzeichnis angelegt wird. Über dieses Device kann später Hylafax auf das Modem zugreifen. Der Name des Devices ist frei wählbar, wir halten uns aber an die allgemeinen Konventionen und nennen es äquivalent zum Device für die serielle Schnittstelle ttyIAX0. owner
- Das ist der Eigentümer des Devices in der Form
. Es sollte derselbe User und dieselbe Gruppe sein, unter der Hylafax laufen soll.user
:group
port
- Der Port, auf dem das IAXmodem lauscht. Da Asterisk auf Port 4569 auf IAX2-Verbindungen hört, sollte man hier einen anderen Port verwenden, z.B. 4570.
refresh
- Das Intervall, nach dem sich das Modem erneut bei Asterisk registriert. Wenn dieses auf 0 steht, registriert sich das Modem nicht bei Asterisk.
server
- Der Server, auf dem der Asterisk läuft. Wenn der Server derselbe ist, auf dem auch das IAXmodem läuft, steht hier die lokale Adresse 127.0.0.1.
peername
- Der Name, unter dem sich das IAXmodem bei Asterisk registriert.
secret
- Das Passwort zur Registrierung am Asterisk
codec
- Der Codec, der vom IAXmodem verwendet wird. Erlaubt
sind hier
alaw
,ulaw
undslinear
. Andere machen hier auch wenig Sinn, da diese komprimieren und die Übertragung dadurch nicht verlustfrei ist. Bei reiner Sprachübertragung wirkt sich das für einen Menschen nicht negativ aus, bei Faxübertragungen aber hätte es störende Fehler zur Folge.
Mit einem beliebigen Editor (z.B. vi) schreiben wir die folgende
Konfiguration in die Datei
/etc/iaxmodem/ttyIAX0
device /dev/ttyIAX0 owner uucp:uucp mode 660 port 4570 refresh 50 server 127.0.0.1 peername iaxmodem secret password codec alaw
Jetzt ist das IAXmodem fertig konfiguriert und muss gestartet
werden. Dies geschieht am besten über den init-Prozess. Also fügen wir
mit echo "IA00:23:respawn:/usr/bin/iaxmodem ttyIAX0" >>
/etc/inittab den entsprechenden Eintrag der Datei
/etc/inittab
hinzu:
debian:/usr/src/iaxmodem-0.3.0# echo "IA00:23:respawn:/usr/bin/iaxmodem ttyIAX0" >> /etc/inittab debian:/usr/src/iaxmodem-0.3.0#
Wobei ttyIAX0
der Name der
Konfigurationsdatei unter /etc/iaxmodem
ist.
Zum Faxempfang benötigen man einen getty, der am IAXmodem auf
Verbindungen lauscht. Das erreicht man ganz einfach durch einen weiteren
Eintrag in der Datei /etc/inittab
. Dieser kann mit
echo "mo00:23:respawn:/usr/sbin/faxgetty ttyIAX0" >>
/etc/inittab erstellt werden.
mo00:23:respawn:/usr/local/sbin/faxgetty ttyIAX0
Damit iaxmodem in die Logdateien schreiben kann, legen wir den Ordner mit mkdir /var/log/iaxmodem/ an und erstellen die Logdateien ttyIAX0 und iaxmodem mit jeweils dem Befehl touch /var/log/iaxmodem/ttyIAX0 und touch /var/log/iaxmodem/iaxmodem.
debian:/usr/src/iaxmodem-0.3.0# mkdir /var/log/iaxmodem/ debian:/usr/src/iaxmodem-0.3.0# touch /var/log/iaxmodem/ttyIAX0 debian:/usr/src/iaxmodem-0.3.0# touch /var/log/iaxmodem/iaxmodem debian:/usr/src/iaxmodem-0.3.0#
Um ganz sicher zu gehen rebooten wir jetzt noch einmal mit shutdown -r now den Rechner, damit init auch das IAXmodem richtig startet.
debian:/usr/src/iaxmodem-0.3.0# shutdown -r now Broadcast message from root@debian (pts/1) (Sat May 5 00:15:49 2007): The system is going down for reboot NOW! debian:/usr/src/iaxmodem-0.3.0#
$Revision:473 $
Beta-Version!
2.0 Entwickler-Version des Asterisk Buches. Die 1.0 stabile Version ist natürlich noch online. Die 2.0er Version enthält viele Neuerungen, ist aber noch nicht 100% fehlerfrei. Im Zweifelsfall bitte auf die 1.0er Version gehen.
Bitte melden Sie Fehler und Feedback zur neuen 2.0er Version per E-Mail an den Autor.
Asterisk-Tag.org 2008
Auf der Asterisk-Tag.org Webseite finden Sie die Folien und Videos der Vorträge.