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

Kleines Build Update zum langen Wochenende

Das lange Wochenende ist um, nur läuft die Kompilierung immer noch nicht durch.

Das configure von classpath bringt zwei Fehler:

./config.rpath No such file
GTK+ peers requested but no X Library available

Dann gibt es noch ein Problem, zumindest unter Debian Lenny: Das Verzeichnis ccache-2.4 wird in /tmp nicht angelegt. Daraus folgt ein Fehler. Wenn es manuell angelegt wird, läuft die Kompilierung.

In config.mk sollten gelegentlich die Pfade zu asterisk auf download.asterisk.org... geändert werden. Hat aber wohl noch keine Eile.
 
Hallo,
die fehlermdelung bedeutet das du kein gtk+ paket für X11 insatllierts hast.
Wenn du aber keine jamvm (java engine) benötigst kannst du einfach hingehen und in buld/Makefile alle Einträge zu jamvm und classpath löschen, dann sollte es gehen

peter
 
Wenn du aber keine jamvm (java engine) benötigst

Hallo Peter,

das Stichwort jamvm hat gereicht, läuft. Jetzt habe ich den nächsten Hänger:


mkdir -p /horst/build_env/image/rootfs/var/lib/asterisk/moh/
sox /horst/build_env/archive/dl/fpm-sunshine.mp3 -t ul -r 8000 -b 16 -c 1 /horst/build_env/image/rootfs/var/lib/asterisk/moh/fpm-sunshine.gsm
sox soxio: Can't open input file `16': No such file or directory

Hast du hier auch einen Tip für mich?
 
Hallo,
die -b 16 bedeutet normalerweise das die Audio Daten auf 16 Bit konvertiert werden sollen.
Sollte also nicht als Datei angesehen werden.
2 Möglichkeiten,
der SOX kennt nicht die -b Option
das sunshine-fpm.mp3 fehlt

Kannst du aber im Ernstfall auch weglassen da es nur die Wartemusik ist

peter
 
Hallo,
habe ein neues Archiv hochgestellt wo alle für ISDN benötigten libraries und Funktionen mit gebaut werden (mISDNuser,chan_lcr.so Module).
Nun könnt Ihr testen ob damit asterisk und ISDN geht.
Analoges Audio wird wahrscheinlich nicht von unserer Seite kommen da hier der Portierungsaufwand zu hoch wird

peter
 
Update Horstbox Release

Es gibt wieder ein neues Update unseres Horstbox Image (r62).

Hier ein paar kleine Infos zu den Änderungen:
- Kernelupdate auf Kernel 2.6.30.2
- PPP und OpenVPN wurde hinzugefügt
- Neues Frontend auf Port 80 (http), das alte Frontend auf Port 443 (https)
- Update auf Asterisk 1.6.0.11-rc1
- SSH Passwort ist "asterisk"
- User und Passwort fürs neue Web-Interface (WebIf) ist admin:admin

Infos zum neuen WebFrontend:
- Graphik über CPU- und Netzwerk-Auslastung
- vereinfachtes Firmware-Update
- statische IP-Adresse ist konfigurierbar
- Status über Asterisk, Netzwerkverbindungen und LCR
Hinweis: Am Frontend wird aktuell noch weitergearbeitet, Hilfe ist herzlich willkomen

Was wurde von uns getestet:
Externes ISDN (Anlagen Anschluss) über chan_lcr
Internet Verbindung über Huawei UMTS Stick

Infos und Konfig findet ihr bei uns im Wiki:
http://gforge.willwebhosting.de/gf/project/horstbox/wiki/

Image- und Sourcefiles findet ihr hier:
http://gforge.willwebhosting.de/gf/project/horstbox/frs/

Grüße
cstux
 
Nachdem meine zweite Horstbox endlich frei zum Experimentieren ist, hier die Erfahrungen mit den fertigen Images V0.1.0-r62 bzw mit Selbstkompiliertem / SVN-Stand vom 26.07.2009.

Falls das Nachfolgende zu negativ klingt: über die vielen funktionierenden Sachen schreibt man halt nicht :).

Grüße, von Arny


1) Das Selbsterstellen der Images ist grausam. Bis zum ersten erfolgreichen Durchgang bleibt das Buildsystem immer wieder stehen, weil irgendwelche Software fehlt. Beim nächsten "make" wird wieder sehr sehr viel (uClib, Kernel etc etc) neu gebaut.

Folgende Pakete musste ich nachinstallieren (Debian-Testing-System):
flex, bison, zlib1g-dev, unzip, automake, libtool, libtiff4-dev (unsicher, ob wirklich gebraucht), libgtk2.0-dev, java-compiler, sox, libsox-fmt-all, mtd-utils, fakeroot

Ziemlich früh tauchte mal ein Fehler auf, weil beim Bauen von busybox ein Verzeichnis /tmp/ccache-2.4/ fehlte (offensichtlich für das ccache-Programm). Manuelles Anlegen dieses Verzeichnisses löste das Problem. Bei späteren make-Aufrufen, als schon Einiges fertig war, wurde dieses Verzeichnis nicht mehr gebraucht.


2) Beim Laden irgendeines Kernelmoduls (war wohl ixp425_ledman.ko) gabs die Fehlermeldung, dass das Modul (2.6.30.1) nicht zum Kernel (2.6.30.2) passt. Mit den selbsterstellten Images trat dies nicht mehr auf.

3)
- ... das alte Frontend auf Port 443 (https)
bei mir gibts auf Port 443 keine Reaktion. Hat das was damit zu tun, dass ich eigene Firmware auf Herta habe? Ist aber nicht wirklich wichtig.


4) Einrichten/Experimentieren mit Asterisk-Konfigurationsdateien auf /etc/asterisk (=/mnt/asterisk): beim Laden des Asterisk-Moduls chan_lcr gibts diesen Fehler (sowohl mit dem von Euch verteilten bzImage und main-fs als auch mit Selbsterstellten):
Code:
Module 'chan_lcr.so' was not compiled with the same compile-time options as this version of Asterisk.
Module 'chan_lcr.so' will not be initialized as it may cause instability.
Module 'chan_lcr.so' could not be loaded.


5) Ließe sich das einrichten, dass der Asterisk auch chan_misdn.so baut? Das mISDNuser-Paket ist ja vorhanden. Ich hatte auf die Schnelle nicht rausgekriegt, wie man das Asterisk-Bauen dazu überredet. In build_env/asterisk-1.6.0.11-rc1/config.log steht:
Code:
configure:35797: checking for mISDN_open in -lmISDN
configure:35832: armeb-linux-gcc -o conftest -g -O2   conftest.c -lmISDN    >&5
/media/sda8/HorstBox/horst/ippf/svn/trunk/build_env/toolchain/usr/bin/../lib/gcc/armeb-linux-uclibc/4.4.0/../../../../armeb-linux-uclibc/bin/ld: cannot find -lmISDN


6) Sehe ich das richtig (habs noch nicht soweit geschafft): Der NT-Modus sollte doch eigentlich funktionieren (zumindest ohne Telefon-Spannungsversorgung), weil das die mISDN-Treiber erledigen?!? Und funktioniert mittlererweile evtl. sogar die Spannungsversorgung?


7) Noch ein Vergleich mit OpenWrt auf Horst, mit dem ich früher Erfahrungen sammeln konnte:
  • Das OpenWrt-Bauen erfordert ähnlich viel Geduld.
  • OpenWrt überlagert für das Root-System ein Squashfs und ein Jffs2-System (wie UnionFS bei Knoppix, aber mit einem einfacheren Treiber "MiniFO"). Zur Laufzeit kann man also wild ändern, und die Änderungen sind persistent. Sehr bequem, um Dinge auszuprobieren.
  • OpenWrt hat eine Paketverwaltung. Relativ viele Pakete sind von Haus aus unterstützt. Sehr bequem, um Dinge temporär oder dauerhaft nachzuinstallieren.
  • OpenWrt unterstützt weniger Treiber für Horst als dieses Projekt hier.
 
Zuletzt bearbeitet:
Hi Arny,

danke für dein ausführliches Feedback.

Der Dienst mhttpd (Port 443) wird standardmäßig nicht mit gestartet. Dieser muss zur Zeit über "/etc/init.d/mhttpd start" gestartet werden.

chan_lcr ersetzt das alte chan_misdn. Chan_LCR ist für MISDNv2 und chan_misdn ist für MISDNv1. Siehe http://www.misdn.org/index.php/Main_Page

Die Stromversorgung für ISDN funktioniert noch nicht. Auch die Analog Treiber sind noch nicht einsatzbereit. Ob ISDN im NT-Modus funktioniert, wurde von uns nicht getestet.

Ich werde das Image nochmal durch kompilieren und evtl. die Fehler beheben und das neue Image wieder online stellen.

Bisher intressiert uns auch nur der Asterisk, da wir die Horstbox mit Patton SmartNodes betreiben. Deswegen wurde dem ISDN und Analog teil nicht so viel Aufmerksamkeit geschenkt.
 
Hier nochmal ein kleines Update:

http://gforge.willwebhosting.de/gf/project/horstbox/frs/?action=FrsReleaseBrowse&frs_package_id=12

Ich hab das zImage und das main-fs nochmal neu kompiliert und hochgeladen.
Folgendes wurde gefixed
- LCR Dienst wird beim Hochfahren gestartet
- chan_lcr module wird nun im asterisk erkannt und geladen
- mhttpd Dienst wird beim Hochfahren gestartet
- Module für UMTS und PPP werden nun geladen (ppp_async wird noch nicht geladen)
[Workaround: insmod /lib/modules/ppp_async.ko]
- Update auf Kernel 2.6.30.3
 
Das ging ja schnell mit dem Update! Hab die neuen Images heruntergeladen und die Quellen nochmals ganz neu mit svn geholt, Stand 29.07.2009 abends.

1 Selbstbauen mit make: da bei mir inzwischen die benötigten Host-Pakete installiert sind, lief es fast reibungslos durch. Das fehlende Verzeichnis /tmp/ccache-2.4/ wurde wieder moniert (es wird für den busybox-Build gebraucht). Nagut, muss man es halt per Hand anlegen und make nochmals starten.

Im letzten Post vergessen: beim Zusammenbauen von Asterisk will er auch das speex-Codec reinbringen, und da wird nichts dazu gefunden. Im Master-Makefile ist das include scripts/speex.mk auskommentiert und die Datei scripts/speex.mk ist auch gar nicht vorhanden.

Mein Workaround: in der Datei scripts/asterisk160.mk die Zeile "--with-speex \" zu "--without-speex \" ändern.


2 Laufenlassen der selbstgebauten Images: der lcr-Startversuch bringt die Meldung /sbin/lcr: can't load library 'libmisdn.so'. Das ganze misdn-Zeug (misdn_info etc) fehlt im main-fs. Es scheint aber richtig zusammengebaut zu werden, weil es z.B in build_env/toolchain/... zu finden ist.


3 Laufenlassen der zur Verfügung gestellten Images 0.1.0-r69:
- LCR Dienst wird beim Hochfahren gestartet
- chan_lcr module wird nun im asterisk erkannt und geladen
Jau, und hier ist das misdn-Zeug auch wirklich vorhanden. Nach dem rudimentären Konfigurieren des lcr in /etc/asterisk/chanlcr/ startet dieser tatsächlich.

Den tatsächlichen Betrieb und den NT-Modus austesten kann ich erst in ein paar Tagen. Mal schaun, ob ich ein Telefon mit Netzteil habe. Evtl. klemm ich meinen alten NTBA zur Stromversorgung dran.
 
Hi Arny,

das "/tmp/ccache-2.4/" sollte im letzten SVN Stand erzeugt werden.
Das Speex war früher ein eigenes Paket, es wird seit kurzem von der Toolchain gebaut.
Ich hab die config gefixt und nun sollte es auch mit speex funktionieren.

Du kannst auch gerne noch selber Pakete bzw nur Speex hinzufügen, einfach "make toolchain_config" ausführen und unter "Package Selection for the target " --> "Audio and video libraries and applications" --> Speex auswählen.

Damit das Image richtig gebaut wird musst du "make && make install" ausführen. Kann es evtl sein das du nur "make" ausgeführt hast?
 
Hi,

ich bin gerade dabei svn/trank zu compilieren und es habe ein Problem mit httpd. Es scheint als würde beim Erstellen des Makefiles openssl nicht gefunden, warum auch immer.

Code:
make[1]: Betrete Verzeichnis '/srv/build/horst/trunk/build_env/mhttpd/src'
rm -f mhttpd-cert.der mhttpd-key.pem
no req \
		-new -x509 -days 3650 -nodes -config mhttpd.cnf \
		-batch \
		-outform der -out mhttpd-cert.der -keyout mhttpd-key.pem
make[1]: no: Kommando nicht gefunden
make[1]: *** [mhttpd-cert.der] Fehler 127

Zudem wird wohl jedesmal beim Aufruf von make [all] ein Teil der Toolchain neu compiliert was eigentlich nicht erforderlich wäre, ich weiss nur noch nicht warum das so ist.

Gruß, Claus
 
Da mußte wohl der Makefile nochmal gelöscht werden, dann wird dieser auch neu erstellt. Nächstes Problem ist der Aufruf von sox.

Code:
sox /srv/build/horst/trunk/build_env/archive/dl/fpm-sunshine.mp3 -t ul -r 8000 -b 16 -c 1 /srv/build/horst/trunk/build_env/image/rootfs/var/lib/asterisk/moh/fpm-sunshine.gsm
sox soxio: Can't open input file `16': No such file or directory

-b benötigt keinen Parameter, jedenfalls nicht bei der sox version in ubuntu 8.04. hat noch jemand das gleiche problem gehabt?
in ubuntu 9.04 ist der parameter korrekt, d.h. nicht jede sox version funktioniert mit "-b 16".
 
Zuletzt bearbeitet:
Hi crosenbe,

wie Peter gesagt hat:
Die -b 16 bedeutet normalerweise das die Audio Daten auf 16 Bit konvertiert werden sollen.
Sollte also nicht als Datei angesehen werden.
2 Möglichkeiten,
der SOX kennt nicht die -b Option
das sunshine-fpm.mp3 fehlt

Kannst du aber im Ernstfall auch weglassen da es nur die Wartemusik ist

Evtl. einfach mal sox update bzw Backporten :)
In der letzten Version von Ubuntu funktioniert es.
 
wieviel Telefone maximal unterstützt denn deine Firmware?
 
Die Asterisk Konfigurations-Dateien liegen auf dem /mnt/asterisk Verzeichnis und können somit verändert werden, d.h. du kannst so viele User anlegen, bis die CPU glüht :)

Wir haben das System mit unserem Obelisk (Asterisk Frontend) in Betrieb mit 10-15 Usern pro Standort. Hier werden Audio Daten nach ALAW nach GSM konvertiert und viele AGI Scripte aufgerufen.

Bisher hat das System noch Luft. Ich denke das dort noch mehr möglich ist. :) Wenn ich mal Zeit habe, werde ich eine unsere Testboxen hernehmen und testen wie viel möglich ist.

Eine sip.conf mit mehr als 300 User lädt der Asterisk ohne Probleme. :) Mehr konnte ich noch nicht testen.
 
NT-Modus funzt. Hier: Treiber für NT-Spannungsversorgung

1 ) Ich habe jetzt einen Treiber "hbxntpower" geschrieben, der bei der Horstbox die S0-Int-Spannungsversorgung steuern und überwachen kann. Der alte Maxina-Code in zaphfc.c hat da übrigens einen Fehler, der bei mir zu Hause unregelmäßig zum Abschalten der NT-Spannungsversorgung führt.

2 ) Nach längeren Versuchen mit den LCR- und Asterisk-Konfigurationsdateien hat jetzt auch der NT-Modus geklappt. Angerufen-werden und Rauswählen funktioniert (witzigerweise hier über eine UMTS-Internetverbindung, mit guter Sprachqualität). Im Tar-Archiv des Treibers gibt es dazu Beispiel-Konfigurationsdateien.

3 ) Es würde mich freuen, wenn Ihr Euch dieses anschaut und evtl. Alles oder Teile davon Eingang finden würde ins Repositorium.


Dann sind mir noch folgende Punkte aufgefallen, die aber meist nicht tragisch sind.

4) Vielleicht ist es sinnvoll, den lcr vor dem asterisk zu starten, so wie es auch in der lcr-Doku vorgeschlagen wird. Ansonsten gibt chan_lcr Fehlermeldungen aus, wenn der lcr nicht/noch nicht läuft. Ist aber auch nicht wirklich schlimm.


5 ) lcr läuft unter 'root', während asterisk als Benutzer 'asterisk' läuft. Der lcr legt standardmäßig den /var/tmp/LCR.socket an mit 0700 (konfigurierbar in options.conf), so dass Asterisk nicht drauf zugreifen kann.


6 ) Für die vorhandene (unbenutze) Partition 'spare2' gibt es keine Device Nodes:
/dev/mtdr9
/dev/mtd/9
/dev/mtdblock/9


7 ) '/etc/init.d/lcr start' legt jedes Mal aufs Neue ein tmpfs an und mounted das über ein Vorhandenes bei /usr/local/lcr.


8 ) Der Asterisk ist mit '/etc/init.d/asterisk stop' nicht totzukriegen.


9 ) Einige (für mich und den NT-Modus) wichtige Asterisk-Module fehlen in der Firmware:
res_indication.so
app_read.so
app_exec.so
app_stack.so
 

Anhänge

  • hbxntpower-0.1.tar.gz
    8.9 KB · Aufrufe: 18
Hi Arny,

danke für deinen Patch :) Er wurde von mir ins Repository mit aufgenommen. Ich hab gleich mal die letzte SVN Version online gestellt.


Hier die Änderungen für die letzte Version:
telnetd und ftpd hinzugefügt
hbxntpower Modul hinzugefügt
lcr start verschoben
Kernel gpiolib patch hinzugefügt
 
Hi kombjuder,

welche Sox Version verwendest bzw. hast du installiert?
 
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.