[Openhorst-Firmware] Projekt Horstbox mit Asterisk 1.6 od. 1.4 (kein analog)

Bei der aktuellen openhorst svn 202 sei noch erwähnt, dass libpri-1.4.11.2.tar.gz obsolet ist, also config.mk anpassen und entweder auf den Unterordner http://downloads.asterisk.org/pub/telephony/libpri/releases/ verweisen, oder gleich libpri-1.4.11.3.tar.gz verwenden.

Sinnvolle Änderungen in der config.mk:
Code:
LIBPRI_URL      = http://downloads.asterisk.org/pub/telephony/libpri/$(LIBPRI_F$
LIBPRI_FILE     = libpri-1.4.11.3.tar.gz
LIBPRI_DIR      = $(PWD)/libpri-1.4.11.3
LIBPRI_PATCH    = patch.libpri-1.4.7

SPANDSP_URL     = http://www.soft-switch.org/downloads/spandsp/$(SPANDSP_FILE)
SPANDSP_FILE    = spandsp-0.0.5.tgz
SPANDSP_DIR     = $(PWD)/spandsp-0.0.5
SPANDSP_PATCH   = patch.spandsp

Gruß
R.
 
Hallo zusammen,

ich habe am Wochenende mal etwas Zeit auf die vzaphfc-Treiber ver(sch)wenden können, hier ein Update:

Ich bin nicht sicher wie der Treiber korrekt funktionieren *soll*, aber wenn ich den Source richtig verstehe soll bei aktiver Leitung alle paar ms durch den Timer der Karte ein Interrupt ausgelöst werden der den Treiber dazu nötigt nach neuen Daten in den FIFOs der Karte zu schauen. Diesen Interrupt sehe ich aber nicht, obwohl er im Verlauf der Statemachine aktiviert zu werden scheint. Lt. Datenblatt der HFC-S -chips wird dieser Timer durch Zählen der Pulse auf dem F0IO-Pin erzeugt. Ich habe die Theorie dass dieser Timer aus irgend einem Grund nicht läuft, der Interrupt ist jedenfalls anscheinend NICHT maskiert, trotzdem gibt es bei aktiver Leitung keine Timer-Interrupts.
Diese Theorie wird dadurch unterstützt dass ich mal einen Blick in den alten zaphfc-Treiber geworfen habe der der FW 5.0 Source beiliegt. Anscheinend (auch wieder nur ne Theorie) werden die Chips am HSS (synchronous serial)-Bus des NXP425 registriert, u.a. anscheinend damit eben der Timer läuft.

Peter: Du hast die hss -sourcen vor einiger Zeit diese Treiber aus dem SVN rausgeworfen (Dateien *_hss_* im Verzeichnis si3210), gehe ich recht in der Annahme dass diese mit der "neuen" Intellib die Du eingecheckt hast nicht mehr exisitieren? Gibt es dafür Ersatz? Ich hab jedenfalls nix finden können, aber auch nur oberflächlich in die Sourcen geschaut.

Wie gesagt ist das alles nur Theorie im Moment, ich werde mit mehr Zeit mal probieren mir eine HFC-S-PCI-Karte für den PC zu besorgen um zu schauen wie sich der Treiber überhaupt verhalten *soll*. Sonst ist das alles nur ein Schuss ins Blaue... falls sich meine Theorie aber bestätigt (und der HSS-Bus nicht zu reanimieren ist), könnte man evt. versuchen einen Kernel-Timer für das FIFO-Polling zu benutzen.

Es sei denn jemand hat noch andere Ideen oder Infos, insbesondere Wissen über die diversen Varianten von (v)zaphfc und dem HFC-S Chip wären hilfreich ;) ...

Gruss,
H.
 
Hallo horatio,

eine große Hilfe bin ich sicherlich nicht, zumal ich mich zuletzt vor 4 Jahren mit ISDN beschäftigt habe. Beim Blick in die kernel config viel mir jedoch neulich auf, dass nicht alle HFC Varianten mitgebaut werden.

kernel menuconfig ...
Code:
Device Drivers ---> ISDN support ---> Modular ISDN driver --->     
  x x    <M>   Support for HFC PCI cards                                  
  x x    < >   Support for HFC multiport cards (HFC-4S/8S/E1)        
  x x    < >   Support for HFC-S USB based TAs
Es kann m.E. nicht schaden, im kernel probehalber auch die multiport und USB Variante mit zu bauen.
Ist der on-board HFC-Chip bei dir prinzipiell ansprechbar? Welche Treiber Version läuft?
 
Hi rmh,

ich glaube Du verwechselt da mISDN mit dahdi/zaphfc. Die Treiber im Kernel config menu sind fuer mISDN (diese benutzen ueber den lcr-demon chan_lcr). (v)zaphfc ist aber ein Treiber fuer das dahdi-interface (chan_dahdi). Dahdi hiess frueher zaptel (zaptel wird in FW 5.0 mit einem speziell fuer Horst gepatchten zaphfc-Treiber benutzt). Deswegen heisst der Treiber fuer die HFC-S Karten auch noch zaphfc (halt ZAPtel treiber fuer HFCkarten).

Dahdi/zaptel und mISDN sind komplett verschieden.

Der Haken an dahdi ist dass die HFC-S single-port-chips nicht von der offiziellen Version unterstuetzt werden (nur die teuren Multi-Port-Karten von Digium selbst etc., hat halt "marketingtaktische Gruende"), deshalb gibt es fuer die HFC-S chips eben nur den "selbstgebastelten" zaphfc-Treiber. Die neuste Variante davon ist vzaphfc, das nochmal ein sauberer(er) rewrite der alten zaphfc-Treiber ist.

Jaha, ist in der Tat etwas unuebersichtlich, das Ganze :)

Gruss,
H.
 
Danke für den Überlick. Der Unterschied von mISDN und dahdi ist mir einigermaßen klar, nur eben nicht der Weg zum gepatchten dahdi.
Wenn das Wetter wieder schlechter wird, hab ich auch wieder etwas mehr Zeit mich ebenfalls damit zu beschäfigten. Interesse ist ausreichend vorhanden. ;)
 
Hallo rmh,

das Hauptproblem scheint mir zu sein, dass fuer die korrekte Funktion der zaphfc-Treiber in Horst Anpassungen noetig waren. Zumindest impliziert die an Horst angepasste Version des alten zaphfc (ohne 'v') -Treibers die dem FW 5.0 Source beiliegt das. Hier gibt es diverse Horst-spezifische Aenderungen, insbesondere bzgl. des erwaehnten HSS-Bus (high performance synchronous serial bus? irgendwie sowas...) der zum NXP425-Prozessor von horst gehoert und an dem anscheinend die ISDN- und Analog-Chips und der Blackfin-DSP haengen... schau Dir einfach bei Interesse mal die alten Sourcen der FW 5.0 an. Der Vorteil dieses lokalen Bus ist/war wohl, das die beiden ISDN-chips direkt Daten ohne Hilfe des Prozessors austauschen koennen z.B. wenn Gespraeche vom internen S0 an extern "durchgereicht" werden sollen. Auch sollte wohl mal die Echokompensation ueber den direkt mit angebundenen Blackfin-DSP gemacht werden, aber (angeblich) wurde der in der Stock-FW schlussendlich deaktiviert weil bei laufendem Blackfin die Horstbox wohl die EMV-Tests nicht besteht... und bevor man dann den Peilwagen vorm Haus hat... ;) Aber im Ernst, Horst haette sonst wohl keine Zulassung bekommen, aber vielleicht ist das auch nur ein urban myth... aber das nur nebenbei. Jedenfalls haengt anscheinend wohl der erwaehnte timer irendwie mit an diesem Bus, vielleicht damit beide HFC-S Chips synchron laufen.

Ob der HSS-Bus wirklich noetig ist um Dahdi zum Laufen zu bringen ist mir unklar. Ich *vermute* nicht, schliesslich laeuft mISDN auch ohne spezielle Anpassungen, allerdings funktionieren die mISDN-Treiber wohl etwas anders.

Das ist so mein momentaner Stand, wie gesagt werde ich bei zuviel Zeit mir mal die funktionierende Version des vzaphfc-Treibers auf dem PC ansehen, um ueberhaupt mal zu verstehen wie das funktionieren *soll*. So ganz ist mir das Polling der FIFOs ueber den Treiber noch nicht klar.

Gruss,
H.
 
Hallo horatio42,

die HFC-Chips können nicht am HSS-Bus hängen, da darüber pcm Daten übertragen werden (SI 3050 <-> SI 3210, SI3210 <-> SI3210).
ISDN verwenden aber immer einen codec. Es macht also keinen Sinn die HFCs an den HSS-Bus anzuschliesen, die analog Chips können ja mit den codecs nichts anfangen.

Deine These mit den Verdacht, das HSS als Timer misbraucht wird macht Sinn. In den Sourcen von zaphfc ist ja auch schon Ersatz vorgesehen:

Code:
#ifdef ZAPHFC_HSS
# include <ixp425_hss.h>
#else
# include <khz-timer.h>
#endif

Ich nehme mal an, das dies von DLink zuerst auch über diesen khz-timer gemacht wurde.

Die HSS-Sachen sind nicht rausgeflogen, sondern, wenn ich richtig mitgelesen habe, jetzt im Kernel drin.

Habe leider keine Zeit dir zu Helfen, fahre in ein paar Tage für 3 Wochen in Urlaub.
Auserdem besitze ich leider nur eine Horstbox und die ist im Einsatz.
Vielleicht besorge ich mir mal eine weitere, könnte dann auch mit coden und testen.

Gruß Michael
 
Durch ein Missgeschick habe ich die LAN-Schnittstelle (im Herta WebIF) von fester IP auf DHCP umgestellt. Nun finde ich meine Box nicht mehr. Vom DHCP Server im LAN zieht sich die Box jedenfalls keine Adresse. Kann ich das per serieller Konsole wieder gerade bügeln? Über schnelle Hilfe würde ich mich freuen. :confused:
 
Hallo rmh,

serielle Konsole auf Horst oder Herta?
Falls auf Herta: sowas wie
Code:
/sbin/ifconfig br0 down
und dann
Code:
/sbin/ifconfig br0 192.168.1.1 netmask 255.255.255.0
                   ^^^^^^^^^^^ (oder halt eine IP Deiner Wahl)
probiert? Dann solltest Du zumindest wieder an das Herta-WebIF kommen um die Config zu ändern...

Ohne Gewähr, kann es grad nicht selbst probieren weil ich keinen Zugriff auf meine Horstbox habe...

Falls Du nur Horst über die serielle Konsole erreichen kannst, dürfte obiges kaum klappen, da Dir bei einem ssh- oder auch rcmd auf Herta der erste Befehl die Netzwerkverbindung trennen dürfte...

Viel Erfolg,
H.
 
Hallo rmh,

Horst bekommt standardmäßig, unabhänging von static/dhcp immer die 192.0.2.2 zugewiesen. Wenn du also deinen Rechner eine Adresse in diesem Netz manuell vergibst, z.B 192.0.2.3 solltest du Zugriff auf Horst haben, aber eben auf der 192.0.2.2

Gruß Michael
 
Hallo Michael,

ich bin nicht sicher aber wenn man sich den Source der FW 5.0 ansieht, scheint zaphfc schon irgendwie mit am HSS Bus zu hängen. Im Makefile des si3210 Verzeichnis findet sich z.B. folgender Kommentar:

Code:
...
# Defines which port to enable and to use. Port0 is used
# for si3210, si3050, zaphfc. Port1 is used for DSP.
DEFINES += -DIXP425_HSS_ENABLE_PORT0
DEFINES += -DIXP425_HSS_ENABLE_PORT1
...

Auch wenn man sich das zaphfc.c file näher ansieht, wird zumindest eine Funktion zaphfc_transfer_hss am HSS Bus registriert wenn das #define ZAPHFC_HSS gesetzt ist (was es im Makefile ist). Das mit dem khz-timer (also wenn ZAPHFC_HSS nicht gesetzt ist) scheint eher die Version zu sein die nur den Timer des HSS-Bus nutzt (man findet entsprechende Kommentare wenn sich mal alle #ifdef -checks auf ZAPHFC_HSS ansieht, sind nur ein paar). Ich habe das include file khz-timer.h auch nicht im source tree finden können...

Was obige zaphfc_transfer_hss-funktion macht oder machen soll hab ich aber noch nicht gerafft. Es kann also durchaus sein dass hier (wie an so vielen Stellen in der Stock Horst FW...) der Wunsch der Vater des Gedankens war und man am Ende doch keinen Gebrauch von der geplanten Funktionalität gemacht hat... siehe Blackfin DSP...
Falls Du da also mehr Einblick hast als ich wäre ich für Aufklärung dankbar :)

Das hss-modul hab ich in der Tat im Kernel tree gefunden, danke für den Hinweis. Was mir allerdings fehlt ist ein header mit dem ich Zugriff auf dessen Funktionen bekommen könnte, so wie es halt im alten zaphfc.c gemacht ist... wurde das API geändert?

Scheint jedenfalls noch was Arbeit zu sein das alles. Ich bin auch nicht sicher was vielversprechender ist: vzaphfc auf Horst zu portieren oder das alte zaphfc.c auf dahdi (es basiert ja noch auf zaptel) und das neue HSS-modul. Dafür wäre aber ein besseres Verständnis wofür der HSS Bus nun tatsächlich verwendet wird schon hilfreich, und das geht mir im Moment noch ab.

Danke für Dein Feedback jedenfalls und einen schönen Urlaub :),
H.
 
Zuletzt bearbeitet:
Habe leider nur eine Horst-Konsole, mit der kam ich nicht an Herta ran, genau wie beschrieben. Werde es morgen mit dem anderen Subnet veruchen. Bis dahin läuft * auf einem x86. Ich danke euch beiden für die schnellen Tipps! :eek:
 
scheint zaphfc schon irgendwie mit am HSS Bus zu hängen

Da habe ich wohl zu oberflächlich in den Datenblättern gelesen. In den Applications Notes "Enabling High Speed Serial Timeslot Switching in VoIP Gateways" habe ich rausgelesen das der HSS nur benutzt wird um eine Art Bypass zwischen pcm-Devices zu ermöglichen.

Aber der HSS-Bus spricht wohl nicht nur pcm, sondern auch T1, E1 ..., das steht dann im Programmers Guide zur IXP400 Software.
Weiterhin gibt es noch einen Queue-Manager mit eigenem SDRAM, auf dem sowohl die CPU als auch die NPEs (also auch HSS) Zugriff haben (Developers Manual zum IXP4xx).

Die Funktion zaphfc_transfer_hss ist wohl die Funktion welche die Daten von den HSS-FIFOS zum zaptel bringt.
Aber auch dafür gibt es Ersatz (zaphfc_transfer), die zur Anwendung kommt wenn ZAPHFC_HSS nicht gesetzt ist (#ifndef ZAPHFC_HSS). Diese Funktion nutzt wohl, ganz wie der Original-Treiber, den PCI-Bus zum Transfer.

Der khz-timer ist in den DLink-Sourcen zu finden.

Die Header Dateien zu HSS:
Code:
#include <mach/ixp4xx_tdm.h>
#include <mach/npe.h>
#include <mach/qmgr.h>
evtl. noch #include <mach/ixp4xx_tdm_cfg.h>
 
Zuletzt bearbeitet:
hallo zusammen,

habe mir auch eine Horstbox Professional besorgt. aktuell habe ich die letzte firmware 5.0 eingespielt
allerdings blicke ich nicht ganz durch, wie ich nun auf Openhorst flashen kann.

die dateien habe ich von hier:
http://gforge.willwebhosting.de/gf/project/horstbox/frs/?action=FrsReleaseView&release_id=134

winscp habe ich mir auch schon installiert.
könnte jemand eine einfache schritt für schritt abfolge posten, wie man openhorst flasht und den neustart/reset durchführt?

ps: linux und linuxkentnisse sind leider nicht vorhanden:(

viele grüße
skdubg
 
könnte jemand eine einfache schritt für schritt abfolge posten, wie man openhorst flasht und den neustart/reset durchführt?

ps: linux und linuxkentnisse sind leider nicht vorhanden:(

Hallo,

hast du mal einen Blick in den ersten Beitrag geworfen? Im Wiki pflege ich eine solche "Bauanleitung". Sei allerdings gewarnt. Du wirst ohne grundlegende Kenntnisse - wie du schreibst - Anfangs wenig Spaß haben.


Gruß
R.
 
hallo,

ja ich habe mir das wiki schonmal angeschaut und durchgelesen.
wenn ich das richtig verstanden habe, wird erklärt wie man die firmware anpasst und kombiliert.

ok, ich habe ja bereits die fertigen dateien hier liegen (aus dem link von oben)

dann hab ich mir den punkt "Flashen der neuen Firmware" angeschaut und hier klemmts schon :)

hat Openhorst ein Webinterface?
konnte bisher nix dazu finden
 
hat Openhorst ein Webinterface?
konnte bisher nix dazu finden

Es gibt ein OpenHorst WebIF, allerdings befindet sich dieses in einem sehr frühen Stadium. Irgendwo in diesem Thread hat jemand Screenshots gepostet.
Die Telefonie beschränkt sich derzeit auf SIP und IAX (Asterisk). Die Konfiguration erledigt man idealerweise über die shell, mittels vi oder einem im buildroot vorher mitgebauten alternativen Textedidor (ich verwende gerne nano). ISDN und Analog läuft (noch) nicht.
Das Herta WebIF ist vorhanden, allerdings ist der Telefonie-Teil nicht mehr zweckmäßig/funktionsfähig.


Gruß
R.
 
Hallo rmh,

bei mir hat das hier von Horstens serieller Konsole aus funktioniert:
Code:
rcmd 'ifconfig br0 down ; ifconfig br0 192.168.1.1 netmask 255.255.255.0 ; iptables --flush ; iptables --flush -t nat'

Ich hoffe dass rcmd trotz der Fehlkonfiguration noch funktioniert. Du solltest Dich nach diesem Befehl "etwas beeilen" weil Horst sonst die Firewall neu einrichtet (die man ja mit obigen Befehl quasi komplett ausknipst) und den Zugriff auf das Herta WebIF (mit obiger IP auf http://192.168.1.1:8080) wieder blockiert.

Ich muss allerdings dazu sagen dass bei mir nicht mehr die Original-Herta-FW läuft sondern eine modifizierte Version der DSL G-684T Firmware, deshalb kann es sein dass es sich bei Dir anders verhält bzw. nicht funktioniert. Einen Versuch ist es wert, dauerhaft kaputt machst Du mit obigen Befehl jedenfalls nix.

Viel Glück,
H.
 
Vielen Dank Horatio42, you made my day! :D
Trotz original Herta hat rcmd bestens funktioniert.
 
Hier nochmal ein kleines Update zu (v)zaphfc.

Ich habe mir auf ebay eine HFC-S PCI Karte geschossen, und das ganze leidlich auf meinem PC ans laufen bekommen.

Der Hauptunterschied den ich beobachte scheint eine massive Interrupt-Load auf dem PC zu sein wenn die Karte aktiv ist. Auf Horst dagegen ist schweigen im Walde... warum kann ich momentan nicht abschätzen.

Ich habe mir dann mal als Sideshow die Mühe gemacht die aktuelle lcr -Version auf Horst anzupassen (die alte lief mit dem aktuellen Kernel bei mir gar nicht mehr). Der funzt jetzt wieder auf dem aktuellen Asterisk. mISDN/LCR scheinen im Betrieb gar keine bzw. nur sehr wenige Interrupts zu erzeugen, ich meinte auch irgendwo im Hinterkopf zu haben dass zaphfc sich auf die Karteninterrupts verlässt, mISDN dagegen die Karte regelmässig pollt (basierend auf Software-Timern?), habe den Code dazu aber noch nicht verstanden. Das würde aber zumindest erklären warum zaphfc zickt während mISDN funktioniert falls es generell ein Problem mit den Karten-Interrupts gibt. Die PCI-Karten für PC haben halt diese HSS-Bus-Geschichte nicht.
Generell möchte ich anmerken dass der aktuelle LCR deutlich besser funktioniert als der alte: er klaut meinen anderen Geräten am externen S0 nicht mehr das Gespräch, und lastet die CPU nicht mehr aus wenn er nix zu tun hat (die alte Version erzeugte auf meinem Horst immer ca. 15% CPU-"Grundlast"). Da ich den Analogteil von Horst nicht benötige bin ich fast versucht zaphfc aufzugeben ;), zumal die Tonqualität bei meiner PC-Testlösung grausam war... na mal sehen.

Zumindest kann ich ein HW-Konfigurationsproblem bei mir nun ausschließen, mISDN läuft auf Horst super, und auch die PC Version von vzaphfc ist am gleichen Kabel "up".

Ein Tip noch: damit vzaphfc auf dem PC lief musste ich beim Laden des Moduls die option force_l1_up=1 setzen. Im source findet man irgendwo nen Kommentar dass eine ungepatchte libpri wohl erwartet dass der layer1 immer aktiv ist. Wird dann auf Horst wohl auch notwendig sein.

Gruß,
H.
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,159
Beiträge
2,247,074
Mitglieder
373,678
Neuestes Mitglied
brainkennedy
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.