Fritz-Asterisk zum selber kompilieren?

Meine Frage (sorry, bin in Linux noch ein noob) ist daher: Wie kommt das, dass ich für openwrt das alles so klein hinbekomme, und für die FBF das so groß wird?
Wie mache ich das für die FBF auch so klein wie für openwrt?

Du musst die Binaries strippen. Mein Build-Script macht das automatisch...
 
Achso, dann bin ich ja genau nach dieser Anleitung vorgegangen. Das Ergebnis (ein tar.gz-Archiv) ist ca. 16MB groß geworden. Aber nicht weil die Module zu groß waren, sondern weil da alle Module dabei sind (und man braucht ja nicht alle). Keine Ahnung was da vorher schief gelaufen ist. Jedenfalls läuft das jetzt sauber durch (wenn man chan_capi auskommentiert - aber wer braucht das auch schon).
Ich schau mal bei Gelegenheit, wie sich das an 1.6.2.2 anpassen lässt... Kann aber ein wenig dauern.
Wenn du das tust, denke bitte auch an diesen post. Habe zwar versucht, das mit Hilfe deines Scripts zu machen (also für * 1.6.0.19), aber der bricht mit einer Fehlermeldung ab.
 
Zuletzt bearbeitet:
Wollte nur anmerken, dass ich vor einiger Zeit in diesem Thread ein Patch gegen freetz-trunk angehängt habe, mit dem man asterisk bauen kann. Leider komme ich mangels Zeit nicht dazu mich in die Materie einzuarbeiten (ich kenne mich mit asterisk überhaupt nicht aus) und es weiter zu entwickeln. Wer asterisk in freetz haben möchte, sollte mich da etwas unterstützen und zumindest Feedback geben, das ist falsch, das sollte so sein, usw... besser noch etwas beisteuern, default configs, startup-script, web-interface zum Konfigurieren.

p.s. Habe meinen Patch in dem Thread oben mal schnell auf 1.6.2.2 aktualisiert und chan_capi-1.1.4 hinzugefügt
 
Eigentlich habe ich hier genau beschrieben, wie man die chan_datacard.so erstellt. Aber ich häng´s nochmal hier an.
 

Anhänge

  • chan_datacard.so.bz2
    27.2 KB · Aufrufe: 22
Was willst du mit app_conference?
Du hast doch Asterisk 1.6.2.2, oder?
Ab * 1.6.2 gibt es ConfBridge
Es gibt aber nur wenig Infos darüber.
 
leider gibt es da wirklich noch wenige infos drüber.


habe es aber mal für die fritzbox kompiliert mit allen modulen.
Aber es kommt immer der Fehler, dass keine Konferenz angelegt werden kann.
Code:
Conference bridge '11' could not be created.


app_conference war immer zuverlässig :)
 
Zuletzt bearbeitet:
Es gab hier jemanden, der einige Patches geschrieben hat. Er scheint sich auszukennen. Frag ihn mal höflich, ob er dir nicht einen Patch für app_conference schreibt. Bestimmt macht er das.
 
app_confbridge

sorry, ich ziehe alles zurück in Bezug auf konferenzen.

habe jetzt mal alles was mit *.so fertig compiliert wurde auf den usb stick gelegt und damit asterisk gestartet.
Nun geht es auch mit app_confbridge :)

Anbei mal die module, die ich alles gefunden habe fürs copy and paste in die make/asterisk/asterisk.mk
Code:
# base config files & modules
$(PKG)_CONFIGS := asterisk extensions features logger manager modules sip sip_notify rtp
$(PKG)_MODULES := cdr_custom \
cdr_manager \
cdr_csv \
cdr_sqlite3_custom \
pbx_dundi \
pbx_ael \
pbx_spool \
pbx_loopback \
pbx_config \
pbx_realtime \
res_realtime \
res_timing_pthread \
res_curl \
res_phoneprov \
res_config_curl \
res_smdi \
res_limit \
res_clioriginate \
res_ael_share \
res_speech \
res_agi \
res_crypto \
res_adsi \
res_monitor \
res_clialiases \
res_convert \
res_musiconhold \
app_sms \
app_speech_utils \
app_url \
app_test \
app_chanspy \
app_sendtext \
app_exec \
app_directory \
app_playback \
app_waituntil \
app_readexten \
app_adsiprog \
app_chanisavail \
app_originate \
app_softhangup \
app_followme \
app_userevent \
app_authenticate \
app_morsecode \
app_forkcdr \
app_minivm \
app_ices \
app_nbscat \
app_system \
app_record \
app_milliwatt \
app_parkandannounce \
app_sayunixtime \
app_dumpchan \
app_macro \
app_controlplayback \
app_transfer \
app_externalivr \
app_voicemail \
app_while \
app_verbose \
app_mixmonitor \
app_getcpeid \
app_channelredirect \
app_dictate \
app_read \
app_alarmreceiver \
app_dial \
app_amd \
app_disa \
app_confbridge \
app_cdr \
app_image \
app_playtones \
app_festival \
app_echo \
app_privacy \
app_setcallerid \
app_stack \
app_zapateller \
app_queue \
app_mp3 \
app_senddtmf \
app_directed_pickup \
app_waitforring \
app_readfile \
app_talkdetect \
app_db \
app_waitforsilence \
func_shell \
func_sysinfo \
func_aes \
func_db \
func_cdr \
func_cut \
func_channel \
func_base64 \
func_env \
func_version \
func_dialgroup \
func_groupcount \
func_volume \
func_vmcount \
func_md5 \
func_audiohookinherit \
func_uri \
func_sprintf \
func_config \
func_blacklist \
func_rand \
func_realtime \
func_devstate \
func_curl \
func_strings \
func_sha1 \
func_math \
func_logic \
func_dialplan \
func_callerid \
func_enum \
func_lock \
func_module \
func_timeout \
func_extstate \
func_global \
chan_mgcp \
chan_datacard \
chan_local \
chan_bridge \
chan_iax2 \
chan_agent \
chan_unistim \
chan_phone \
chan_skinny \
chan_sip \
codec_adpcm \
codec_lpc10 \
codec_gsm \
codec_a_mu \
codec_ulaw \
codec_alaw \
codec_g722 \
codec_g726 \
format_wav_gsm \
format_siren14 \
format_g723 \
format_g726 \
format_g729 \
format_ilbc \
format_h263 \
format_h264 \
format_jpeg \
format_gsm \
format_siren7 \
format_pcm \
format_sln16 \
format_sln \
format_wav \
format_vox \
bridge_builtin_features \
bridge_softmix \
bridge_multiplexed \
bridge_simple

# voicemail

Um die Konferenzen zum laufen zu bringen muss man darauf achten, die join/leave sounds explizit mit anzugeben, denn sonst bekommt man nicht mit, wenn sich jemand einwählt.
Code:
exten => _1234!,1,Answer()
exten => _1234!,n,Set(CONFBRIDGE_JOIN_SOUND=de/conf-hasjoin)
exten => _1234!,n,Set(CONFBRIDGE_LEAVE_SOUND=de/conf-hasleft)
exten => _1234!,n,ConfBridge(11,cMs,)
exten => _1234!,n,Hangup()

p.s waren im posting #50 doch nicht alle module mit dabei ;)
 
Nabend! Ich habe es bislang nicht geschafft, Asterisk 1.6.2 für meine Fritzbox zu kompilieren und wollte fragen, ob sich hier nicht jemand meiner erbarmen kann. :)

Ich benötige Asterisk 1.6.2 (mir kommt es auf die Originate-Applikation an) mit Zugriff auf den externen ISDN-Anschluss der Fritzbox (also den CAPI Channel) für eine Fritzbox 7270 mit originaler Firmware (54.04.80, kein Freetz). :habenwol:
 
Danke für den Tipp! Das hört sich schonmal vielversprechend an

Trotzdem will das Kompieleren nicht so, wie ich es will. Ich muss dazu sagen, dass ich darin nicht so firm bin. Ich beschreibe mal mein bisheriges Vorgehen. Mein Ziel steht in meinem letzten Post.

Das System, auf dem ich kompilieren möchte, ist Linux 2.6.31-20-generic #57-Ubuntu x86_64 GNU/Linux.
Ich habe freetz-1.1.2
  • heruntergeladen,
  • entpackt,
  • make menuconfig ausgeführt,
  • (hoffentlich) alles so eingestellt, dass der Crosscompiler auf eine reguläre Fritzbox Firmware ausgerichtet ist (insbesondere habe ich ncurses ausgeschaltet),
  • make toolchain ausgeführt und
  • export PATH=$PATH:{pfad zum Kompilat}/bin ausgeführt.
Zwei kleine selbstgeschriebene C-Programme laufen auf der Fritzbox, das scheint also geklappt zu haben.

Dann habe ich Asterisk 1.6.2.5
  • heruntergeladen,
  • entpackt und
  • Code:
    ./configure --build=x86_64-linux-gnu --target=mipsel-linux --host=mipsel-linux --prefix=/var/mod/usr/local/asterisk --without-sdl --without-oss
    ausgeführt. (Dank an Thilo-Alexander Ginkel)

Das führt zu
Code:
configure: *** XML documentation will not be available because the 'libxml2' development package is missing.
configure: *** Please run the 'configure' script with the '--disable-xmldoc' parameter option
configure: *** or install the 'libxml2' development package.

Also weg mit xmldoc, dasselbe nochmal mit --disable-xmldoc. Das führt dann zu dem Problem, von dem ich hier schon gelesen habe:
Code:
configure: error: *** termcap support not found (on modern systems, this typically means the ncurses development package is missing)

Ist ja auch nicht verwunderlich, schließlich will ich ncurses nicht benutzen. Nun dachte ich, ich bin mal ganz schlau und mache einfach sowas:
Code:
./configure --build=x86_64-linux-gnu --target=mipsel-linux --host=mipsel-linux --prefix=/var/mod/usr/local/asterisk --without-sdl --without-oss --disable-xmldoc --without-ncurses --without-termcap
Doch die Fehlermeldung bleibt dieselbe.

Auf einem anderen Kompiliersystem hatte ich es in geistiger Umnachtung bereits irgendwie geschafft, ohne Fehlermeldung zu kompileren. Aber wie...? ;)

Kann mir bitte jemand helfen?
 
Das war's leider nicht.
Der Witz ist ja nicht, dass die Pakete fehlen, sondern dass ich sie nicht nutzen will. Daher die Parameter "--disable-xmldoc --without-ncurses --without-termcap". Dennoch kreidet ./configure das Fehlen von termcap an.

Auf dem Host-System sind die Pakete übrigens installiert.
 
Das --disable-xmldoc hat ja anscheinend funktioniert.
Und hast Du "--without-ncurses --without-termcap" aus einer Beschreibung, oder nur geraten? Was zeigt "configure --help"?
 
"./configure --help" zeigt:
Code:
`configure' configures asterisk 1.6 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/asterisk]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-dev-mode       Turn on developer mode
  --disable-largefile     omit support for large files
  --enable-internal-poll  Use Asterisk's poll implementation
  --disable-xmldoc        Explicity disable XML documentation

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  [U][B]--without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)[/B][/U]
  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
  --with-asound=PATH      use Advanced Linux Sound Architecture files in PATH
  --with-execinfo=PATH    use Stack Backtrace support files in PATH
  --with-cap=PATH         use POSIX 1.e capabilities files in PATH
  --with-curl=PATH        use cURL files in PATH
  --with-curses=PATH      use curses files in PATH
  --with-crypto=PATH      use OpenSSL Cryptography support files in PATH
  --with-dahdi=PATH       use DAHDI files in PATH
  --with-avcodec=PATH     use Ffmpeg and avcodec library files in PATH
  --with-gsm=PATH         use External GSM library files in PATH , use
                          'internal' GSM otherwise
  --with-gtk=PATH         use gtk libraries files in PATH
  --with-gtk2=PATH        use gtk2 libraries files in PATH
  --with-gmime=PATH       use GMime library files in PATH
  --with-hoard=PATH       use Hoard Memory Allocator files in PATH
  --with-iconv=PATH       use Iconv Library files in PATH
  --with-iksemel=PATH     use Iksemel Jabber Library files in PATH
  --with-imap=PATH        use UW IMAP Toolkit files in PATH
  --with-inotify=PATH     use inotify support files in PATH
  --with-iodbc=PATH       use iODBC files in PATH
  --with-isdnnet=PATH     use ISDN4Linux Library files in PATH
  --with-jack=PATH        use Jack Audio Connection Kit files in PATH
  --with-ldap=PATH        use OpenLDAP files in PATH
  --with-libxml2=PATH     use LibXML2 files in PATH
  --with-ltdl=PATH        use libtool files in PATH
  --with-lua=PATH         use Lua files in PATH
  --with-misdn=PATH       use mISDN User Library files in PATH
  --with-nbs=PATH         use Network Broadcast Sound files in PATH
  [B][U]--with-ncurses=PATH     use ncurses files in PATH[/U][/B]
  --with-netsnmp=PATH     use Net-SNMP files in PATH
  --with-newt=PATH        use newt files in PATH
  --with-ogg=PATH         use OGG files in PATH
  --with-osptk=PATH       use OSP Toolkit files in PATH
  --with-oss=PATH         use Open Sound System files in PATH
  --with-postgres=PATH    use PostgreSQL files in PATH
  --with-popt=PATH        use popt files in PATH
  --with-portaudio=PATH   use PortAudio files in PATH
  --with-pri=PATH         use ISDN PRI files in PATH
  --with-resample=PATH    use LIBRESAMPLE files in PATH
  --with-spandsp=PATH     use SPANDSP files in PATH
  --with-ss7=PATH         use ISDN SS7 files in PATH
  --with-openr2=PATH      use MFR2 files in PATH
  --with-pwlib=PATH       use PWlib files in PATH
  --with-h323=PATH        use OpenH323 files in PATH
  --with-radius=PATH      use Radius Client files in PATH
  --with-sdl=PATH         use Sdl files in PATH
  --with-SDL_image=PATH   use Sdl Image library files in PATH
  --with-openais=PATH     use OpenAIS files in PATH
  --with-speex=PATH       use Speex files in PATH
  --with-speex=PATH       use Speex preprocess routines files in PATH
  --with-speexdsp=PATH    use Speexdsp files in PATH
  --with-sqlite=PATH      use SQLite files in PATH
  --with-sqlite3=PATH     use SQLite files in PATH
  --with-suppserv=PATH    use mISDN Supplemental Services files in PATH
  --with-ssl=PATH         use OpenSSL Secure Sockets Layer support files in
                          PATH
  --with-tds=PATH         use FreeTDS files in PATH
  [U][B]--with-termcap=PATH     use Termcap files in PATH[/B][/U]
  --with-tinfo=PATH       use Term Info files in PATH
  --with-tonezone=PATH    use tonezone files in PATH
  --with-unixodbc=PATH    use unixODBC files in PATH
  --with-usb=PATH         use usb files in PATH
  --with-vorbis=PATH      use Vorbis files in PATH
  --with-vpb=PATH         use Voicetronix API files in PATH
  --with-x11=PATH         use X11 support files in PATH
  --with-z=PATH           use zlib files in PATH
  --with-timerfd=PATH     use timerfd files in PATH
  --with-libcurl=DIR      look for the curl library in DIR

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CPP         C preprocessor
  CXX         C++ compiler command
  CXXFLAGS    C++ compiler flags
  CXXCPP      C++ preprocessor

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to <www.asterisk.org>.
Von dieser Meldung habe ich die beiden Parameter. Sie stehen nicht explizit drin. Ich habe die entsprechenden Zeilen hervorgehoben.

UPDATE: Ich habe jetzt mal alle Packages deaktiviert:
Code:
./configure --build=x86_64-linux-gnu --target=mipsel-linux --host=mipsel-linux --prefix=/var/mod/usr/local/asterisk -q --disable-xmldoc \
--without-gnu-ld \
--without-asound \
--without-execinfo \
--without-cap \
--without-curl \
--without-curses \
--without-crypto \
--without-dahdi \
--without-avcodec \
--without-gsm \
--without-gtk \
--without-gtk2 \
--without-gmime \
--without-hoard \
--without-iconv \
--without-iksemel \
--without-imap \
--without-inotify \
--without-iodbc \
--without-isdnnet \
--without-jack \
--without-ldap \
--without-libxml2 \
--without-ltdl \
--without-lua \
--without-misdn \
--without-nbs \
--without-ncurses \
--without-netsnmp \
--without-newt \
--without-ogg \
--without-osptk \
--without-oss \
--without-postgres \
--without-popt \
--without-portaudio \
--without-pri \
--without-resample \
--without-spandsp \
--without-ss7 \
--without-openr2 \
--without-pwlib \
--without-h323 \
--without-radius \
--without-sdl \
--without-SDL_image \
--without-openais \
--without-speex \
--without-speex \
--without-speexdsp \
--without-sqlite \
--without-sqlite3 \
--without-suppserv \
--without-ssl \
--without-tds \
--without-termcap \
--without-tinfo \
--without-tonezone \
--without-unixodbc \
--without-usb \
--without-vorbis \
--without-vpb \
--without-x11 \
--without-z \
--without-timerfd \
--without-libcurl \
Das führt zu folgender Ausgabe:
Code:
configure: WARNING: using cross tools not prefixed with host triplet
configure: WARNING: result yes guessed because of cross compilation
configure: error: *** termcap support not found (on modern systems, this typically means the ncurses development package is missing)
 
Zuletzt bearbeitet:
Hallo Oderik,
kann an dieser Stelle einen Teil des Rätsels auflösen...

Habe Deinen Weg ebenfalls beschritten - habe allerdings kein Problem mit der ncurses (wofür ist die eigentlich? :)

Auf der 7270 Box läuft ein Freetz 1.3 und die Umgebung hatte ich gestern komplett neu aufgesetzt. (Incl. Debian)

Jetzt kommts:
Danach habe ich wie Du beschriebst anstelle von make nur ein make toolchain gegeben. Danach beim Crosscompiling kam exakt der von Dir beschriebene Fehler.

Nach einer Nacht drüber schlafen habe ich den make nachgeholt und danach das crosskompilat gestartet... (Läuft jetzt in einen anderen Fehler, ober OK das finde ich schon.)

Mir ist klar, dass das nicht ganz auf Dein Problem passt, aber ich fand es interessant...

BTW: Wenn der Start von Asterisk auf der Box nur "Unexpected "(" in Zeile 1 (oder so ähnlich) bringt, weiss jemand in etwa was mir das sagen will?

Gruß

Rolf
 
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.