Asterisk@home-misdn

aus PUG, der Penguin User Group
Wechseln zu: Navigation, Suche

Outdated

Diese Seite dient nur noch als Referenz und wird nicht mehr gepflegt.

Asterisk

Diese TK-Anlagensoftware kann mit verschiedenen Karten verwendet werden, so dass ISDN Endgeräte oder auch analoge Endgeräte angeschlossen werden können.

In diesem Beitrag geht um die Installation von Astrisk@home 2.0 (aktuell nur als Beta) mit hfcpci Karten (z.B. Creatix). Asterisk@home 2.x bringt nun gleich einen Kernel aus dem 2.6.x Tree mit, was die weitere Arbeit wesentlich erleichtert.

Asterisk@home ist schnell installiert: CD reinschieben und booten. Es wird ohne jede Frage die erste Festplatte formatiert (mit ext3) und ein bootfähiges System installiert. Die Probleme beginnen jedoch mit der Konfiguration.

Bei dem Beispielserver handelt es sich um einem P3 PC mit Adaptec SCSI Adapter und einer SCSI Platte. Es sind 2 Netzwerkkarten vorhanden, eine davon soll später für einen DSL Anschluss verwendet werden, die andere Karte wird für das LAN verwendet. Desweiteren sind 2 hfcpci ISDN Karten vorhanden, eine soll im NT Mode laufen und die andere Karte im TE Mode. Damit Asterisk@home mit diesen Karten etwas anfangen kann, sind noch einige Downloads nötig:

Treiber

Da wir sowieso einen neuen Kernel bauen müssen, nehmen wir gleich die neuste Version, die kernel.org im Stable Tree zu bieten hat. Der wird nun, wie üblich mit tar xvjf linux-2.6.14.tar.bz2 ausgepackt. Die chan_misdn Installfiles gibt es bei http://www.beronet.com/downloads

Es werden weiterhin chan_misdn, mISDN und mISDNuser gebraucht, zunächst nur chan_misdn gebraucht, die mISDN Archive werden während des Make autmatisch geholt. Dazu muss nur make im chan_misdn Verzeichnis ausgeführt werden. Das chan_misdn Makefile sorgt nun dafür, dass die passende mISDN Version geholt und installiert wird. Mit mkinitrd /boot/initrd-2.6.14 2.6.14 wird noch die Initrd erstellt. Nun noch /boot/grub/menu.cfg bearbeiten und den neuen Kernel dort eintragen.

booten

Jetzt sollte sich der neue Kernel melden. Es gibt jetzt noch ein paar unfreundliche Meldungen, dass zaptel nicht geladen werden kann, das kann man jetzt erstmal getrost ignorieren. Damit die nächsten Schritte erfolgreich sind, müssen noch ein paar Softlinks gesetzt werden:

1. cd /usr/src 2. ln -s linux-2.6.13 linux-2.6 3. ln -s linux-2.6.13 linux


Userspace Tools

Jetzt muss noch mISDNuser compiliert werden, damit das funktioniert, sind jedoch noch ein paar Vorarbeiten zu erledigen:

1. cd /usr/include 2. mv linux linux.orig 3. ln -s /usr/src/linux/include/linux

cd /usr/src/mISDNuser; make sollte ohne Errors ablaufen.

chan_misdn

Ganz wichtig: Versionen vor 0.2.1-RC5 lassen sich nicht compilieren.

/etc/init.d/misdn-init config sollte nun eine Datei /etc/misdn-init.conf anlegen. Diese muss noch bearbeitet werden. Meist muss nur te_ptmp=1 nt_ptmp=2 unter "Port settings" eingetragen werden. Die alten Einstellungen sollten dort auskommentiert werden. /etc/init.d/misdn-init start sollte die Karten dann richtig konfigurieren. In /var/log/messages sollte dann in etwa

Oct 25 06:59:49 asterisk1 kernel: Modular ISDN Stack core $Revision: 1.23 $
Oct 25 06:59:49 asterisk1 kernel: ISDN L1 driver version 1.11
Oct 25 06:59:50 asterisk1 kernel: ISDN L2 driver version 1.19
Oct 25 06:59:50 asterisk1 kernel: mISDN: DSS1 Rev. 1.26
Oct 25 06:59:50 asterisk1 kernel: mISDN_dsp: Audio DSP  Rev. 1.10 (debug=0xf)
Oct 25 06:59:50 asterisk1 kernel: mISDN: HFC-PCI driver Rev. 1.38
Oct 25 06:59:50 asterisk1 kernel: ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 5
Oct 25 06:59:50 asterisk1 kernel: PCI: setting IRQ 5 as level-triggered
Oct 25 06:59:50 asterisk1 kernel: ACPI: PCI Interrupt 0000:00:0a.0[A] -> Link [LNKC] -> GSI 5 (level, low) -> IRQ 5
Oct 25 06:59:50 asterisk1 kernel: mISDN: HFC-PCI card manufacturer: CCD/Billion/Asuscom card name: 2BD0
Oct 25 06:59:51 asterisk1 kernel: HFC-PCI: defined at mem 0xe08ec000 fifo 0xde958000(0x1e958000) IRQ 5 HZ 250
Oct 25 06:59:51 asterisk1 kernel: spin_lock_adr=defaa064 now(e0999d05)
Oct 25 06:59:51 asterisk1 kernel: busy_lock_adr=defaa068 now(e0999d05)
Oct 25 06:59:51 asterisk1 kernel: HFC_PCI: resetting HFC ChipId(30)
Oct 25 06:59:51 asterisk1 kernel: HFC PCI: IRQ 5 count 35
Oct 25 06:59:51 asterisk1 kernel: mISDN: HFC-PCI driver Rev. 1.38
Oct 25 06:59:51 asterisk1 kernel: ACPI: PCI Interrupt 0000:00:0b.0[A] -> Link [LNKD] -> GSI 10 (level, low) -> IRQ 10
Oct 25 06:59:51 asterisk1 kernel: mISDN: HFC-PCI card manufacturer: CCD/Billion/Asuscom card name: 2BD0
Oct 25 06:59:51 asterisk1 kernel: HFC-PCI: defined at mem 0xe08ee000 fifo 0xde968000(0x1e968000) IRQ 10 HZ 250
Oct 25 06:59:51 asterisk1 kernel: spin_lock_adr=de822064 now(e0999d05)
Oct 25 06:59:52 asterisk1 kernel: busy_lock_adr=de822068 now(e0999d05)
Oct 25 06:59:52 asterisk1 kernel: HFC_PCI: resetting HFC ChipId(30)
Oct 25 06:59:52 asterisk1 kernel: HFC PCI: IRQ 10 count 3
Oct 25 06:59:52 asterisk1 kernel: mISDN: HFC-PCI driver Rev. 1.38
Oct 25 06:59:52 asterisk1 kernel: HFC-PCI: No more PCI cards found
Oct 25 06:59:52 asterisk1 kernel: HFC 2 cards installed

zu finden sein. Steht da was von "INTERNAL ERROR...<blahfasel>", dann ist möglicherweise die Karte tot oder irgendwas passt nicht im System.

misdn.conf

Asterisk@home hat bereits vorgegebene Contexts, diese muss chan_misdn natürlich auch kennen:

[intern]
; define your ports, e.g. 1,2 (depends on mISDN-driver loading order)
ports=2
; context where to go to when incoming Call on one of the above ports
;context=Intern
context=from-internal

[extern]
; again port defs
ports=1
; again a context for incomming calls
;context=Extern1
context=from-pstn
; msns for te ports, listen on those numbers on the above ports, and
; indicate the incoming calls to asterisk
; here you can give a comma seperated list or simply an '*' for
; any msn.
msns=*

Mit from-pstn sind Verbindungen zum Telekom Netz gemeint, mit from-internal ist das interne Netz gemeint.

Damit die ganze mISDN Geschichte auch bootfest wird, muss noch
cd /etc/rc3.d; ln -s ../init.d/misdn-init S08misdn-init
gemacht werden.

zaptel

Die Fehlermeldung von zaptel beruht auf der Tatsache, dass der zaptel Treiber in unserem neuen Kernel noch nicht installiert ist. Mit cd /usr/src/zaptel; make clean; make && make install bauen wir uns den Treiber neu.

Starten

Jetzt muss noch /usr/sbin/amportal geändert werden. In der Funktion chown_asterisk muss noch die Zeile chown asterisk /dev/mISDN eingetragen werden, sonst startet Asterisk nicht.

Nochmal Reboot

Jetzt sollte Asterisk wieder automatisch starten. Nun geht es in *Asterisk-common weiter

Christian