Howto: Debian + Asterisk 1.6.2.7 + HFC-S mit DAHDI

maxkr

Neuer User
Mitglied seit
16 Nov 2006
Beiträge
58
Punkte für Reaktionen
0
Punkte
6
Hi Leute,

nach etwa dreijähriger Asterisk-Abstinenz und Neueinstieg in die Materie seit zwei Abenden hier eine kleine Quick & Dirty-Lösung, um Asterisk 1.6.2.7(8) mit DAHDI und HFC-Karten (derzeit nur mit dem TE-Modus getestet) zum Laufen zu bekommen.

Die meisten Infos dazu gibt es auch hier unter anderen Threads, aber insbesondere der http://www.ip-phone-forum.de/showthread.php?t=176656 ist mittlerweile ein bisschen unübersichtlich geworden (wenn auch viele Infos von hier sind :p).

Hier also die Schritte:
  1. Debian installieren (darauf gehe ich hier nicht näher ein)
  2. Im Prinzip die Schritte von hier befolgen: http://www.das-asterisk-buch.de/2.1/installation-1.6-debian.html

ABER dabei folgende Änderungen dabei berücksichtigen:
  1. dahdi-linux (2.2.0) von hier: http://downloads.asterisk.org/pub/telephony/dahdi-linux/releases/dahdi-linux-2.2.0.tar.gz
  2. Patch von Larry (großartige Arbeit & Danke Larry!!!):
    http://www.ip-phone-forum.de/showpost.php?p=1374967&postcount=43 und vor dem compilieren von dahdi-linux mittels RUNME1st aufrufen, (compiliert und installiert sich dann automatisch (und baut den zaphfc-Treiber - genial!!!)...
  3. dahdi-tools (2.2.0)von hier: http://downloads.asterisk.org/pub/telephony/dahdi-tools/releases/dahdi-tools-2.2.0.tar.gz
  4. Asterisk von hier (warum ich 1.6.2.7 und nicht gleich 1.6.2.8 verwende ist mir heute auch nicht mehr ganz klar - wahrscheinlich habe ich die Übersehen... :cool:):
    http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.6.2.7.tar.gz

Konfiguration:
In der /etc/dahdi/system.conf sollte (bei 1 Karte stehen):
Code:
loadzone        = de
defaultzone     = de

span=1,1,0,ccs,ami
bchan=1-2
dchan = 3
echocanceller=oslec,1-2

In der /etc/dahdi/modules:
Code:
dahdi
zaphfc
dahdi_transcode
dahdi_echocan_oslec
dahdi_dummy

...hier hatte mich v.a. irritiert, dass lt. http://www.sinologic.net/wp-content/uploads/2009/01/upgrading_from_zaptel_to_dahdi_v0-3.pdf zaphfc (um genau zu sein zaphfc.ko ebenfalls in dahdi.ko umbenannt wurde). Dennoch benötigt man zaphfc...

Wenn die HFC-Karte(n) sauber erkannt werden:
dadhi_hardware schaut das so aus:
Code:
pci:0000:05:00.0     zaphfc-      1397:2bd0 HFC-S ISDN BRI card

dahdi_cfg –vvvv sollte in etwa das hier liefern (ohne Fehler am Ende):
Code:
SPAN 1: CCS/ AMI Build-out: 399-533 feet (DSX-1)

Channel map:

Channel 01: Clear channel (Default) (Echo Canceler: oslec) (Slaves: 01)
Channel 02: Clear channel (Default) (Echo Canceler: oslec) (Slaves: 02)
Channel 03: D-channel (Default) (Echo Canceler: none) (Slaves: 03)

dadhi_scan
...sollte ebf einen Output liefern (habe erst Dahdi 2.2.3 ohne Patch von Larry ausprobiert, aber da kam dann hier nix, weil vermutlich die zaphfc gefehlt hat)...

Ein cat /proc/dahdi/* sollte folgenden Output liefern (wenn die Karte am NTBA oder einer ISDN-Nebentstelle angeschlossen ist:
Code:
Span 1: ZTHFC2 "HFC-S PCI A ISDN card 1 [TE] layer 1 ACTIVATED (F7)" AMI/CCS

           1 ZTHFC2/0/1 Clear (In use) (SWEC: OSLEC)
           2 ZTHFC2/0/2 Clear (In use) (SWEC: OSLEC)
           3 ZTHFC2/0/3 HDLCFCS (In use)

eine rudimentäre /etc/asterisk/sip.conf sollte enthalten:
Code:
[2000]
type=friend
secret=1234
host=dynamic

...d.h. 1 SIP-Tel (kann auch Softtel sein mit der Rufnummer 2000)

in der /etc/asterisk/chan_dahdi.conf steht bei mir (und habe ich glaube ich von irgendwoher nahezu unverändert übernommen):
Code:
[trunkgroups]

[channels]
language=de
switchtype=euroisdn

pridialplan=unknown
prilocaldialplan=unknown
internationalprefix = 00
nationalprefix = 0
;localprefix = VORWAHL
;privateprefix = VORWAHL+MSN
unknownprefix =
priindication = outofband

facilityenable = yes
usecallerid=yes
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
immediate=no
echocancel=yes
echocancelwhenbridged=yes
echotraining=yes
callgroup=1
pickupgroup=1
mohinterpret=default
mohsuggest=default
overlapdial=yes


group=1
;signalling=bri_cpe_ptmp
signalling=bri_cpe
; p2p TE mode  => bri_cpe
p2mp TE mode => bri_cpe_ptmp
; p2p NT mode  => bri_net
; p2mp NT mode => bri_net_ptmp
context=default
channel => 1-2

und in der /etc/asterisk/extensions.conf:
Code:
[default]
include => isdn

; Teilnehmer 2000 mit Voicebox:
exten => 2000,1,Dial(SIP/2000)
exten => 2000,2,VoiceMail(2000,u)

; VoiceMail:
exten => 2999,1,VoiceMailMain(${CALLERID(num)},s)

[isdn]
exten => 39,1,Dial(SIP/2001@[b]<*-Server-IP-Adresse>[/b]) ; Durchwahl 39 ankommend

exten => _0X.,1,Set(CALLERID(num)=32)
exten => _0X.,n,Dial(DAHDI/g1/${EXTEN:1})  ; Rausgehende Anrufe

...noch zur Erläuterung:
<*-Server-IP-Adresse> muss durch die IP-Adresse des asterisk-Servers ersetzt werden.
die asterisk-Anlage hängt bei mir an einer Tk-Anlage. Von der kann ich per Rufnummer 39 (MSN) eine verbindung zur Asterisk bzw. zum SIP-Telefon mit der 2000 herstellen.

Vom SIP-Telefon aus kann ich dann mit der 0 eine beliebige Verbindung über die TK-Anlage aufbauen (über die MSN 32).

...ich hoffe dem einen oder (der) anderen hilft es ein wenig weiter!

Viel Spaß & Erfolg,
Max
 
Zuletzt bearbeitet:
Danke für das Howto. Hatte neulich nochmal 1.4 gebristuffed weil ich durch den dahdi kram nicht durchgestiegen bin. das nächste mal nach deinem howto :)
 
Hallo Max,

tolle Arbeit. Spart einen Haufen Zeit.

Aber mach aus deinem Kontext default das include => ISDN raus.

Das kann zum finanziellen Selbstmord führen.
Mit deiner Konfiguration brauche ich vmtl. nur noch die IP deines Servers und kann dann stundenlang 0900 auf deine Kosten anrufen!

Kann ja sein, dass du weisst was du da tust, aber in ein Howto gehört so eine Risikolösung nicht hinein!
 
Hi Max,

auch von mir Danke fuer deine tolle Zusammenfassung. Leider ein paar Wochen zu spaet fuer mich:) Ich hab' mir noch alles selber zusammensuchen muessen:(

Das ist mir noch aufgefallen:
File: /etc/asterisk/chan_dahdi.conf
folgende Zeile gehoert IMHO wieder kommentiert:

Code:
p2mp TE mode => bri_cpe_ptmp

weiterhin faellt mir noch auf, dass 'dahdi_genconf' bei mir folgende '/etc/dahdi/system.conf' generiert hat:
Code:
# Span 1: ZTHFC1 "HFC-S PCI A ISDN card 0 [TE] " (MASTER) AMI/CCS 
span=1,1,0,ccs,ami
# termtype: te
bchan=1-2
hardhdlc=3
echocanceller=oslec,1-2

der 'line build out (LBO)' ist bei mir also auf '0' statt auf '3'

- sparkie
 
Zuletzt bearbeitet:
Hallo kombjuder,

vielen Dank für den Hinweis zum ISDN-Include. Da der Rechner keinen Zugang zum Internet hat und nur per VPN erreichbar ist, ist das m. E. erst einmal ok. Zusätzlich hängt die Asterisk auch noch an einer Tk-Anlage bei der zumindest die ganz teuren Nummern gesperrt sind.

@sparkie:
das tut mir leid, dass die Doku zu spät kommt, und ich kann dir nachfühlen wie die du Infos zusammengetragen hast...
Was die dahdi.conf angeht, habe ich da möglicherweise beim kopieren des Scripts einen Fehler gemacht, da ich zwei ISDN Karten im System habe und alle Tests mit der zweiten durchgeführt, und dann das Howto für einen Rechner mit nur einer Karte beschrieben habe. (Ist schon schlimm, wenn man zu faul ist das Kabel in die andere ISDN-Karte zu stecken...). Habe ich aber oben geändert - Danke!

Danke & viele Grüße,
Max
 
Hi!

Danke für das gute Tutorial! Hat mir sehr geholfen, da ich nach und nach verzweifelt bin; bei mir lag der Fehler allerdings in der AMD64-Version von Debian, mit der 686 klappts problemlos!

vg
 
dahdi kompiliert uinter 2.6.32 nicht mehr

Guten Morgen,

dahdi 2.2.0.2 kompiliert unter Kernel 2.6.32 nicht mehr. Man muss wohl auf dahdi 2.2.1 ausweichen. Gibt es dafür schon einen passenden hfc-Patch ?

Viele Grüße

Marc
 
Ich greife den Thread nochmal auf. Ich versuche gerade eine Gemeinschaft 3.0 Installation mit HFC-S Karten hinzubekommen. Das basiert auf Debian squeeze im Original. Da wird Dahdi 2.3.0 mitgeliefert, soweit ich sehen kann, aber ungepatcht. In den svn sources von dahdi ist der patch wohl auch nicht drin, oder? Zumindest hat mich das kompilieren nicht weitergebracht.

Kennt jemand eine Möglichkeit, das für 2.3.0 reinzubekommen? Oder kann ich irgendwelche Ubuntu-Repos dafür benutzen? Ich verzweifele langsam.... Nein, halt, ich BIN verzweifelt.

J
 
Vielleicht noch folgende Infos:

Die Karten werden von Dahdi erkannt, die dahdi_tool, dahdi_scan sagen auch, es sei alles okay. Auch Asterisk meldet mit dahdi show channels und status nichts ungewöhnliches. Trotzdem bekomme ich cause 34 bei ausgehenden Anrufen und bei eingehenden Anrufen geht auf der CLI gar nichts. Das ganze am Anlagenanschluss mit bri_ptp signalling.

Ideen? Hinweise? Wenn 2.3.0 nicht geht, habe ich halt Pech gehabt.

J
 
Also, für alle, die unter squeeze die HFC-S aktuell zum Laufen bekommen wollen:

Die Patches sind im dahdi-source Paket enthalten, allerdings kommt dahdi ab 2.3 und aktuellem Kernel (> 2.6.32) nicht mit den zaphfc-Treibern klar, die dabei sind. Ich habe ein svn checkout bei http://zaphfc.googlecode.com gemacht, dort gibt es sourcen für die dahdi-versionen 2.2, 2.3 und 2.4. Die dadurch erhaltenen Dateien (base.c, fifo.c, fifo.h und zaphfc.h) habe ich in das entsprechende Unterverzeichnis der Debian dahdi-sources kopiert. NICHT die Kbuild löschen (sonst funktioniert das compilen nicht mehr). Dann gebaut und ging.

Nerven, die dabei draufgingen: Unzählbar.

J.
 
HI!

Das hab ich eben auch probiert, nachdem mir DAHDI an einem PTP-Anschluss mehr als genug Kopfzerbrechen bereitet (stürzt unerfindlich ab, restart legt das System lahm) - allerdings auch hier nicht von Erfolg gekrönt. Ist außer dem Reinkopieren (und der Anpassung der "Haupt-KBUILD" sonst nochwas zu beachten? Bin ansonsten streng nach Anleitung von oben vorgegangen, da scheiterts jedoch schon am dahdi_scan...

vg
 
Ich habe nicht einmal das Haupt-Kbuild angepasst ;)

Also apt-get install dahdi-source
In /usr/src gewechselt, das dahdi.tar.bz ausgepackt
das svn-checkout von zaphfc.googlecode.com gemacht.
Die Dateien in das Verzeichnis /usr/src/modules/dahdi/drivers/dahdi/zaphfc kopiert (und damit die alten überschrieben).
in /usr/src den tarball gelöscht (war mir nicht sicher, ob module-assistant das Ding nicht wieder entpackt, wenn's noch da ist).

Dann mit m-a build dahdi das .deb gebaut und mit dpkg -i installiert (geht natürlich auch m-a ai dahdi)

Welche Plattform hast Du denn, ich bin aus Vorsicht bei 32bit geblieben.

J
 
Ich hab einfach mal das System neu aufgesetzt, hatte allerdings vorher dahdi-linux-2.2.0.tar.gz komplett runtergeladen, dann nach dem Checkout den Treiber eingebaut, durchlaufen lassen - und bis jetzt schauts noch gut aus ;-)

Wenns aufm Testsystem läuft, werde ich mal das Produktivsystem in Angriff nehmen. Bin auch auf 32 Bit, mit 64 Bit und dahdi (v.a. HFC) hab ich keine guten Erfahrungen...
 
Du hast einen anderen Ansatz als ich, Du nimmst nicht die dahdi-sources aus dem Debian Repository sondern die ungepatchten Original-Sources von der Asterisk-Seite, oder? Ich habe der Einfachheit halber die von Debian genommen, weil die im Regelfall wissen, was sie tun (und tzafrir sowieso der Maintainer ist). Außerdem muss ich so die KBuilds, etc. nicht anfassen, weil zaphfc ja schon reingepatcht ist.

Aber wie gesagt - die Treiber für zaphfc müssen ersetzt werden, wobei ich schon einen Bug-Report gelesen habe, ich gehe also davon aus, dass das auch in den Debian Reps bald geändert wird.

J
 
Ja, mit diesem Ansatz hab ich das probiert; allerdings mit mäßigem Erfolg (Module laden alle, allerdings gibt dahdi_test keine Ausgaben raus).

Werde es heute Abend mal mit deinem Ansatz ausprobieren - wird so langsam nämlich nervig ;-)

VG
 
Werde es heute Abend mal mit deinem Ansatz ausprobieren - wird so langsam nämlich nervig ;-)

ich verstehe sowieso nicht warum ihr euch mit dem DAHDI Zeug noch laenger herumaergert. Da Digium sowieso kein Interesse am Support der HFC Hardware hat, passt staendig irgendwas nicht zusammen. Spaetestens bei der naechsten Asterisk Release darf man wieder irgendwelchen Patches hinterherlaufen. NT-Mode lief sowieso noch nie stabil damit.

Seit ich chan_lcr verwende laeuft es hingegen wie geschmiert (TE- und NT- Mode) . Die Schnittstelle zum Asterisk hin ist auf hoeherer Ebene als bei DAHDI angesiedelt. Somit bestehen weit weniger direkte Abhaengigkeiten. Der Hardwaresupport der HFC Hardware durch mIsdn/chan_lcr ist von Haus aus sehr gut.

Es gibt auch keine (mir bekannten) Funktions-Einschraenkungen von chan_lcr gegenueber dem DAHDI-Zeug.

- sparkie
 
Wenn ich denn jemals mit Asterisk zum Laufen bekommen hätte, würde ich Dir ja zustimmen....

Ich hatte bisher immer mISDN v1 laufen, das hatte aber echos wie Hölle und Fax ging auch nur bei 80 Prozent. Distros wie Elastix haben mISDN mittlerweile als Standard rausgenommen und setzen auf dahdi.

Mir ist das aber egal, Hauptsache es läuft und das tut es jetzt ;) Und ab jetzt lasse ich die Finger vom System.

J
 
chan dahdi schneidet die null ab bei rauswählen

wenn ich 0089295867485 wähle geht der call raus

woran kann das nur liegen

hat jemand eine idee

chan dahdi mit larry patch


hat jemand eine idee

beste grüße
 
Also mit einem aktuellen Debian Squeeze geht die Karte bei mir
immernoch nicht. Ich habe auch die o. g. Quelldateien probiert
(aus dem 2.3er Zweig).
Das Problem sollte eigentlich mit den Squeeze Dahdi-Sourcen
gelöst sein.
 
Zuletzt bearbeitet von einem Moderator:
Habe die Installation ähnlich wie du durchgeführt, die Ausgaben der dahdi_tools sind alle wunderbar, beim Starten von asterisk bekomme ich aber:

[Apr 8 08:36:06] ERROR[17724] asterisk.c: Asterisk has detected a problem with your DAHDI configuration and will shutdown for your protection. You have options:
1. You only have to compile DAHDI support into Asterisk if you need it. One option is to recompile without DAHDI support.
2. You only have to load DAHDI drivers if you want to take advantage of DAHDI services. One option is to unload DAHDI modules if you don't need them.
3. If you need Zaptel services, you must correctly configure DAHDI.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.