Asterisk per Freetz Webinterface starten / stoppen???

schau mal im asterisk auf fritzbox unterforum :)
 
Ok, und das skript führe ich direkt auf der Box aus, richtig?

Edit:
Also ich bin jetzt sehr verwirrt.
Habe ein neues freetz-image erstellt mit dropbear,avm-firewall,openntp und openvpn. Direkt nach dem Start sind nur 35% RAM belegt. Und obwohl ich kaum was mache (eben zum Beispiel per vi /etc/hosts bearbeitet) startet die Box wieder mal neu.
 
Zuletzt bearbeitet:
@ Mods (oder wer auch immer dafür zustandig ist): Kann man das mit den patches mal in den Trunk integrieren? Dann müsste keiner mehr patchen, sondern alles wäre gleich im Trunk.

Ich denke uns fehlt hier ein wenig die gemeinsame Strategie wie asterisk gestartet werden kann.

Ich selber halte mich aktuell an das script von spblinux und dynamic und starte damit erst mal eine "usb_installation". Damit habe ich keine probleme.

Erstellt habe ich die pakete mit dem patch für den aktuellen trunk, den es hier zu finden gibt mit der auswahl "external" und "keep subdirs"

Ich versuche gerade eine "GUI" zu bastelen (nur das nötigste zum starten stoppen). Darin würde ich das script von spblinux gerne integrieren.
 
@ sf3978
Danke für die Patches. Mittlerweile ist die Rev. 49 von chan_datacard erschienen.

Kannst du vielleicht einen Patch für * 1.6.2.5 anders erstellen?: Der Patch soll nur paar KB groß sein, und selbst den Code von chan_datacard nicht beinhalten, sondern den einfach von der Website laden, während freetz erstellt wird.
Das hätte den Vorteile, dass jedes mal automatisch die neuste Rev. genommen werden würde.
 
[...]
Kannst du vielleicht einen Patch für * 1.6.2.5 anders erstellen?: Der Patch soll nur paar KB groß sein, und selbst den Code von chan_datacard nicht beinhalten, sondern den einfach von der Website laden, während freetz erstellt wird.[...]
Versuch mal diesen Patch aus dem Anhang. Bei mir funktioniert es.
EDIT:
Code:
> patch -p0 < asterisk-1.6.2.5__chan_datacard_current_for_ever_trunk4424_20100306.patch
patching file make/asterisk/asterisk-common.in
patching file make/asterisk/Makefile.in
patching file make/asterisk/external.in
patching file make/asterisk/patches/140-no-gtk2.patch
patching file make/asterisk/patches/120-glob.patch
patching file make/asterisk/patches/130-bsd_res_close.patch
patching file make/asterisk/patches/100-build_tools-iconv.patch
patching file make/asterisk/patches/110-utils_Makefile.patch
patching file make/asterisk/Config.in
patching file make/asterisk/asterisk.mk
patching file make/chan_capi/Makefile.in
patching file make/chan_capi/patches/Makefile.patch
patching file make/chan_capi/Config.in
patching file make/chan_capi/chan_capi.mk
patching file make/Config.in
patching file make/external.in
patching file tools/external
 

Anhänge

  • asterisk-1.6.2.5__chan_datacard_aktuell__trunk4380_20100306.patch.txt
    25.4 KB · Aufrufe: 10
  • asterisk-1.6.2.5__chan_datacard_current_for_ever_trunk4424_20100306.patch.txt
    25.5 KB · Aufrufe: 10
Zuletzt bearbeitet:
Danke. Läuft bei mir ohne Fehler durch. Aber das die Sounds ca. 2MB Platz verschwenden ist völlig unnötig.
Ich habe es daher in deinem Patch quick&dirty deaktiviert in dem in der Zeile "+$(PKG)_SOUNDS := en" ein "#" nach dem + eingefügt habe.
 
Zuletzt bearbeitet:
[...]
Ich habe es daher in deinem Patch [...]
Der Patch und das Paket ist von er13 und nicht vom mir. Ich habe nur einige Zeilen bzw. interne Patch-Dateien (die jetzt nicht mehr benötigt werden), betr. chan_datacard hinzugefügt.;)
 
Ähm...ja, meinte ich doch.
Ich habe meine freetz/make/asterisk/asterisk.mk etwas angepasst (noch einige Module hinzugefügt und alles etwas zusammengefasst):
Code:
...
$(PKG)_BINARY_TARGET_DIR:=$($(PKG)_DEST_DIR)/usr/sbin/$(pkg)

# base config files & modules
$(PKG)_CONFIGS := asterisk extensions features logger manager modules sip sip_notify iax iaxprov rtp musiconhold voicemail cdr cdr_custom cdr_manager cdr_sqlite3_custom
$(PKG)_MODULES := app_authenticate app_chanisavail app_chanspy app_cdr app_confbridge app_db app_dial app_disa app_echo app_exec app_forkcdr app_macro app_mixmonitor \
	app_mp3 app_playback app_playtones app_record app_sayunixtime app_senddtmf app_sendtext app_setcallerid app_softhangup app_system app_transfer app_voicemail \
	app_waitforring chan_datacard chan_iax2 chan_local chan_sip codec_a_mu codec_adpcm codec_alaw codec_ulaw codec_g726 codec_g722 codec_gsm codec_ilbc format_g726 \
	format_g729 format_h263 format_h264 format_gsm format_pcm format_sln format_sln16 format_wav format_wav_gsm func_callerid func_cdr func_channel func_config \
	func_curl func_cut func_db func_dialgroup func_enum func_env func_global func_groupcount func_logic func_math func_md5 func_module func_strings func_timeout \
	func_volume pbx_config pbx_realtime pbx_spool res_agi res_adsi res_clialiases res_musiconhold cdr_csv cdr_custom cdr_manager cdr_sqlite3_custom 

#TODO: de
#$(PKG)_SOUNDS := en

$(PKG)_CONFIGS_INSTALL_DIR:=$($(PKG)_CONFIGS:%=$($(PKG)_INSTALL_DIR)/$($(PKG)_CONFIG_DIR)/%.conf)
...

Blöd ist nur, dass ich vor dem buildprozes aber erstmal mit "cd source/asterisk-1.6.2.5/" und "contrib/scripts/get_ilbc_source.sh" die sourcen manuell runterladen muss sowie ilbc in der Datei menuselect-tree auswählen darf. Man kann das nicht alles in den Patch integrieren?
Außerdem sollte man irgendwie noch dafür sorgen, dass die datacard.conf mit in die configs übernommen wird.
Nachtrag: Na wunderbar :( :) Sehe gerade, dass Asterisk 1.6.2.6_rc1 rausgekommen ist. Also wird man den Patch in ein paar Tagen nochmal anpassen dürfen.
 
Zuletzt bearbeitet:
Deine Änderungen sollte man schon in einen Patch integrieren können. Poste mal die Originaldatei, die geänderte Datei und den Pfad unter dem sie zu finden ist. In welchem Verzeichnis auf der Box, willst Du die datacard.conf haben?
 
Der Patch erstellt ja (unter anderem) eine asterisk.mk:
Code:
$(call PKG_INIT_BIN, 1.6.2.5)
$(PKG)_SOURCE:=$(pkg)-$($(PKG)_VERSION).tar.gz
$(PKG)_SOURCE_MD5:=9d1f7bcf6833605ced4b2740d14bd576
$(PKG)_SITE:=http://downloads.asterisk.org/pub/telephony/asterisk/releases

include $(MAKE_DIR)/asterisk/asterisk-common.in

$(PKG)_BINARY:=$($(PKG)_DIR)/main/$(pkg)
$(PKG)_BINARY_INSTALL_DIR:=$($(PKG)_INSTALL_DIR)/usr/sbin/$(pkg)
$(PKG)_BINARY_TARGET_DIR:=$($(PKG)_DEST_DIR)/usr/sbin/$(pkg)

# base config files & modules
$(PKG)_CONFIGS := asterisk extensions features logger manager modules sip sip_notify rtp
$(PKG)_MODULES := \
	app_authenticate app_chanisavail app_chanspy app_dial app_echo app_macro app_mp3 app_playback app_record \
	app_sayunixtime app_senddtmf app_sendtext app_setcallerid app_softhangup app_transfer app_waitforring \
	chan_datacard chan_phone chan_sip codec_a_mu codec_adpcm codec_alaw codec_g726 codec_gsm codec_ulaw format_g726 \
	format_h263 format_h264 format_gsm format_pcm format_sln format_wav format_wav_gsm func_callerid \
	func_channel func_db func_enum func_env func_global func_groupcount func_logic func_math func_md5 func_strings \
	func_timeout pbx_config pbx_realtime pbx_spool res_agi

# voicemail
$(PKG)_CONFIGS += voicemail
$(PKG)_MODULES += app_voicemail res_adsi

# meetme (not built)
#$(PKG)_CONFIGS += meetme
#$(PKG)_MODULES += app_meetme chan_dahdi

# chan_local
$(PKG)_MODULES += chan_local

# iax2
$(PKG)_CONFIGS += iax iaxprov
$(PKG)_MODULES += chan_iax2

# cdr
$(PKG)_CONFIGS += cdr cdr_custom cdr_manager cdr_sqlite3_custom
# it doesn't make sense to include this config files as corresponding functionality is disabled
#$(PKG)_CONFIGS += cdr_adaptive_odbc cdr_odbc cdr_pgsql cdr_tds
$(PKG)_MODULES += app_cdr app_forkcdr cdr_csv cdr_custom cdr_manager cdr_sqlite3_custom func_cdr

# musiconhold
$(PKG)_CONFIGS += musiconhold
$(PKG)_MODULES += res_musiconhold

# g729
$(PKG)_MODULES += format_g729

# gtalk (not built)
#$(PKG)_CONFIGS += gtalk jabber
#$(PKG)_MODULES += chan_gtalk res_jabber

# app-system
$(PKG)_MODULES += app_system

#TODO: de
$(PKG)_SOUNDS := en

$(PKG)_CONFIGS_INSTALL_DIR:=$($(PKG)_CONFIGS:%=$($(PKG)_INSTALL_DIR)/$($(PKG)_CONFIG_DIR)/%.conf)
$(PKG)_CONFIGS_TARGET_DIR:=$($(PKG)_CONFIGS:%=$($(PKG)_DEST_DIR)/$($(PKG)_CONFIG_DIR)/%.conf)

$(PKG)_MODULES_INSTALL_DIR:=$($(PKG)_MODULES:%=$($(PKG)_INSTALL_DIR)/$($(PKG)_MODULES_DIR)/%.so)
$(PKG)_MODULES_TARGET_DIR:=$($(PKG)_MODULES:%=$($(PKG)_DEST_DIR)/$($(PKG)_MODULES_DIR)/%.so)

$(PKG)_SOUND_FILE:=beep.gsm
$(PKG)_SOUNDS_INSTALL_DIR:=$($(PKG)_SOUNDS:%=$($(PKG)_INSTALL_DIR)/$($(PKG)_SOUNDS_DIR)/%/$($(PKG)_SOUND_FILE))
$(PKG)_SOUNDS_TARGET_DIR:=$($(PKG)_SOUNDS:%=$($(PKG)_DEST_DIR)/$($(PKG)_SOUNDS_DIR)/%/$($(PKG)_SOUND_FILE))

$(PKG)_DEPENDS_ON += uclibcxx
$(PKG)_DEPENDS_ON += curl
$(PKG)_DEPENDS_ON += ncurses
$(PKG)_DEPENDS_ON += openssl
$(PKG)_DEPENDS_ON += popt
$(PKG)_DEPENDS_ON += sqlite
$(PKG)_DEPENDS_ON += zlib

$(PKG)_CONFIGURE_OPTIONS += --with-asound=no
$(PKG)_CONFIGURE_OPTIONS += --with-avcodec=no
$(PKG)_CONFIGURE_OPTIONS += --with-curl="$(TARGET_TOOLCHAIN_STAGING_DIR)/usr"
$(PKG)_CONFIGURE_OPTIONS += --with-curses=no
$(PKG)_CONFIGURE_OPTIONS += --with-dahdi=no
$(PKG)_CONFIGURE_OPTIONS += --with-gnutls=no
$(PKG)_CONFIGURE_OPTIONS += --with-gmime=no
$(PKG)_CONFIGURE_OPTIONS += --with-gsm=internal
$(PKG)_CONFIGURE_OPTIONS += --with-gtk=no
$(PKG)_CONFIGURE_OPTIONS += --with-gtk2=no
$(PKG)_CONFIGURE_OPTIONS += --with-h323=no
$(PKG)_CONFIGURE_OPTIONS += --with-hoard=no
$(PKG)_CONFIGURE_OPTIONS += --with-iksemel=no
$(PKG)_CONFIGURE_OPTIONS += --with-imap=no
$(PKG)_CONFIGURE_OPTIONS += --with-inotify=no
$(PKG)_CONFIGURE_OPTIONS += --with-iodbc=no
$(PKG)_CONFIGURE_OPTIONS += --with-isdnnet=no
$(PKG)_CONFIGURE_OPTIONS += --with-jack=no
$(PKG)_CONFIGURE_OPTIONS += --with-kde=no
$(PKG)_CONFIGURE_OPTIONS += --with-ldap=no
$(PKG)_CONFIGURE_OPTIONS += --with-libxml2=no
$(PKG)_CONFIGURE_OPTIONS += --with-ltdl=no
$(PKG)_CONFIGURE_OPTIONS += --with-lua=no
$(PKG)_CONFIGURE_OPTIONS += --with-misdn=no
$(PKG)_CONFIGURE_OPTIONS += --with-nbs=no
$(PKG)_CONFIGURE_OPTIONS += --with-ncurses="$(TARGET_TOOLCHAIN_STAGING_DIR)/usr"
$(PKG)_CONFIGURE_OPTIONS += --with-netsnmp=no
$(PKG)_CONFIGURE_OPTIONS += --with-newt=no
$(PKG)_CONFIGURE_OPTIONS += --with-odbc=no
$(PKG)_CONFIGURE_OPTIONS += --with-ogg=no
$(PKG)_CONFIGURE_OPTIONS += --with-openais=no
$(PKG)_CONFIGURE_OPTIONS += --with-openr2=no
$(PKG)_CONFIGURE_OPTIONS += --with-osptk=no
$(PKG)_CONFIGURE_OPTIONS += --with-oss=no
$(PKG)_CONFIGURE_OPTIONS += --with-postgres=no
$(PKG)_CONFIGURE_OPTIONS += --with-popt="$(TARGET_TOOLCHAIN_STAGING_DIR)/usr"
$(PKG)_CONFIGURE_OPTIONS += --with-portaudio=no
$(PKG)_CONFIGURE_OPTIONS += --with-pri=no
$(PKG)_CONFIGURE_OPTIONS += --with-pwlib=no
$(PKG)_CONFIGURE_OPTIONS += --with-qt=no
$(PKG)_CONFIGURE_OPTIONS += --with-radius=no
$(PKG)_CONFIGURE_OPTIONS += --with-resample=no
$(PKG)_CONFIGURE_OPTIONS += --with-sdl=no
$(PKG)_CONFIGURE_OPTIONS += --with-SDL_image=no
$(PKG)_CONFIGURE_OPTIONS += --with-spandsp=no
$(PKG)_CONFIGURE_OPTIONS += --with-speex=no
$(PKG)_CONFIGURE_OPTIONS += --with-speexdsp=no
$(PKG)_CONFIGURE_OPTIONS += --with-sqlite3="$(TARGET_TOOLCHAIN_STAGING_DIR)/usr"
$(PKG)_CONFIGURE_OPTIONS += --with-ss7=no
$(PKG)_CONFIGURE_OPTIONS += --with-suppserv=no
$(PKG)_CONFIGURE_OPTIONS += --with-tds=no
$(PKG)_CONFIGURE_OPTIONS += --with-termcap=no
$(PKG)_CONFIGURE_OPTIONS += --with-timerfd=no
$(PKG)_CONFIGURE_OPTIONS += --with-tinfo=no
$(PKG)_CONFIGURE_OPTIONS += --with-tonezone=no
$(PKG)_CONFIGURE_OPTIONS += --with-unixodbc=no
$(PKG)_CONFIGURE_OPTIONS += --with-usb=no
$(PKG)_CONFIGURE_OPTIONS += --with-vorbis=no
$(PKG)_CONFIGURE_OPTIONS += --with-vpb=no
$(PKG)_CONFIGURE_OPTIONS += --with-x11=no
$(PKG)_CONFIGURE_OPTIONS += --with-z="$(TARGET_TOOLCHAIN_STAGING_DIR)/usr"
$(PKG)_CONFIGURE_OPTIONS += --disable-xmldoc

$(PKG)_CONFIGURE_PRE_CMDS += cd channels; wget https://www.makhutov.org/svn/chan_datacard/trunk/char_conv.c; \
wget https://www.makhutov.org/svn/chan_datacard/trunk/char_conv.h; \
wget https://www.makhutov.org/svn/chan_datacard/trunk/chan_datacard.c; cd .. ;

$(PKG_SOURCE_DOWNLOAD)
$(PKG_UNPACKED)
$(PKG_CONFIGURED_CONFIGURE)

$(PKG)_MAKE_PARAMS := \
	ASTCFLAGS="-DLOW_MEMORY $(TARGET_CFLAGS)" \
	ASTLDFLAGS="$(TARGET_LDFLAGS)" \
	NOISY_BUILD="1" \
	DEBUG="" \
	OPTIMIZE="" \
	ASTETCDIR="$(ASTERISK_CONFIG_DIR)" \
	ASTVARLIBDIR="$(ASTERISK_VARLIB_DIR)" \
	DESTDIR="$(abspath $(ASTERISK_INSTALL_DIR))"

$($(PKG)_BINARY): $($(PKG)_DIR)/.configured
	PATH="$(TARGET_PATH)" \
		$(MAKE) -C $(ASTERISK_DIR) \
		$(ASTERISK_MAKE_PARAMS) \
		include/asterisk/version.h \
		include/asterisk/buildopts.h \
		defaults.h \
		makeopts.embed_rules
	PATH="$(TARGET_PATH)" \
		$(MAKE) -C $(ASTERISK_DIR) \
		$(ASTERISK_MAKE_PARAMS) \
		all

$($(PKG)_INSTALL_DIR)/.installed: $($(PKG)_BINARY)
	@echo freetz-install
	PATH="$(TARGET_PATH)" \
		$(MAKE) -C $(ASTERISK_DIR) \
		$(ASTERISK_MAKE_PARAMS) \
		install samples
	touch $@

$($(PKG)_BINARY_INSTALL_DIR) $($(PKG)_CONFIGS_INSTALL_DIR) $($(PKG)_MODULES_INSTALL_DIR) $($(PKG)_SOUNDS_INSTALL_DIR): $($(PKG)_INSTALL_DIR)/.installed

$($(PKG)_BINARY_TARGET_DIR): $($(PKG)_BINARY_INSTALL_DIR)
	$(INSTALL_BINARY_STRIP)

$($(PKG)_CONFIGS_TARGET_DIR): $($(PKG)_DEST_DIR)/$($(PKG)_CONFIG_DIR)/%.conf: $($(PKG)_INSTALL_DIR)/$($(PKG)_CONFIG_DIR)/%.conf
	$(INSTALL_BINARY)

$($(PKG)_MODULES_TARGET_DIR): $($(PKG)_DEST_DIR)/$($(PKG)_MODULES_DIR)/%.so: $($(PKG)_INSTALL_DIR)/$($(PKG)_MODULES_DIR)/%.so
	$(INSTALL_BINARY_STRIP)

$($(PKG)_SOUNDS_TARGET_DIR): $($(PKG)_DEST_DIR)/$($(PKG)_SOUNDS_DIR)/%/$($(PKG)_SOUND_FILE): $($(PKG)_INSTALL_DIR)/$($(PKG)_SOUNDS_DIR)/%/$($(PKG)_SOUND_FILE)
	mkdir -p $(ASTERISK_DEST_DIR)/$(ASTERISK_SOUNDS_DIR)/
	$(RM) -r $(dir $@)
	cp -a $(dir $<) $(ASTERISK_DEST_DIR)/$(ASTERISK_SOUNDS_DIR)/
	touch $@

$(pkg):

$(pkg)-precompiled: $($(PKG)_BINARY_TARGET_DIR) $($(PKG)_CONFIGS_TARGET_DIR) $($(PKG)_MODULES_TARGET_DIR) $($(PKG)_SOUNDS_TARGET_DIR)

$(pkg)-clean:
	$(RM) -r $(ASTERISK_INSTALL_DIR)
	-$(MAKE) -C $(ASTERISK_DIR) $(ASTERISK_MAKE_PARAMS) clean

$(pkg)-uninstall:
	$(RM) -r \
		$(ASTERISK_TARGET_BINARY) \
		$(ASTERISK_DEST_DIR)/$(ASTERISK_CONFIG_DIR)/ \
		$(ASTERISK_DEST_DIR)/$(ASTERISK_MODULES_DIR)/ \
		$(ASTERISK_DEST_DIR)/$(ASTERISK_SOUNDS_DIR)/

$(PKG_FINISH)

Und diese habe ich einfach etwas geändert:
Code:
$(call PKG_INIT_BIN, 1.6.2.5)
$(PKG)_SOURCE:=$(pkg)-$($(PKG)_VERSION).tar.gz
$(PKG)_SOURCE_MD5:=9d1f7bcf6833605ced4b2740d14bd576
$(PKG)_SITE:=http://downloads.asterisk.org/pub/telephony/asterisk/releases

include $(MAKE_DIR)/asterisk/asterisk-common.in

$(PKG)_BINARY:=$($(PKG)_DIR)/main/$(pkg)
$(PKG)_BINARY_INSTALL_DIR:=$($(PKG)_INSTALL_DIR)/usr/sbin/$(pkg)
$(PKG)_BINARY_TARGET_DIR:=$($(PKG)_DEST_DIR)/usr/sbin/$(pkg)

# base config files & modules
$(PKG)_CONFIGS := asterisk extensions features logger manager modules sip sip_notify iax iaxprov rtp musiconhold voicemail cdr cdr_custom cdr_manager cdr_sqlite3_custom
$(PKG)_MODULES := app_authenticate app_chanisavail app_chanspy app_cdr app_confbridge app_db app_dial app_disa app_echo app_exec app_forkcdr app_macro app_mixmonitor \
	app_mp3 app_playback app_playtones app_record app_sayunixtime app_senddtmf app_sendtext app_setcallerid app_softhangup app_system app_transfer app_voicemail \
	app_waitforring chan_datacard chan_iax2 chan_local chan_sip codec_a_mu codec_adpcm codec_alaw codec_ulaw codec_g726 codec_g722 codec_gsm codec_ilbc format_g726 \
	format_g729 format_h263 format_h264 format_gsm format_pcm format_sln format_sln16 format_wav format_wav_gsm func_callerid func_cdr func_channel func_config \
	func_curl func_cut func_db func_dialgroup func_enum func_env func_global func_groupcount func_logic func_math func_md5 func_module func_strings func_timeout \
	func_volume pbx_config pbx_realtime pbx_spool res_agi res_adsi res_clialiases res_musiconhold cdr_csv cdr_custom cdr_manager cdr_sqlite3_custom 

#TODO: de
#$(PKG)_SOUNDS := en

$(PKG)_CONFIGS_INSTALL_DIR:=$($(PKG)_CONFIGS:%=$($(PKG)_INSTALL_DIR)/$($(PKG)_CONFIG_DIR)/%.conf)
$(PKG)_CONFIGS_TARGET_DIR:=$($(PKG)_CONFIGS:%=$($(PKG)_DEST_DIR)/$($(PKG)_CONFIG_DIR)/%.conf)

$(PKG)_MODULES_INSTALL_DIR:=$($(PKG)_MODULES:%=$($(PKG)_INSTALL_DIR)/$($(PKG)_MODULES_DIR)/%.so)
$(PKG)_MODULES_TARGET_DIR:=$($(PKG)_MODULES:%=$($(PKG)_DEST_DIR)/$($(PKG)_MODULES_DIR)/%.so)

$(PKG)_SOUND_FILE:=beep.gsm
$(PKG)_SOUNDS_INSTALL_DIR:=$($(PKG)_SOUNDS:%=$($(PKG)_INSTALL_DIR)/$($(PKG)_SOUNDS_DIR)/%/$($(PKG)_SOUND_FILE))
$(PKG)_SOUNDS_TARGET_DIR:=$($(PKG)_SOUNDS:%=$($(PKG)_DEST_DIR)/$($(PKG)_SOUNDS_DIR)/%/$($(PKG)_SOUND_FILE))

$(PKG)_DEPENDS_ON += uclibcxx
$(PKG)_DEPENDS_ON += curl
$(PKG)_DEPENDS_ON += ncurses
$(PKG)_DEPENDS_ON += openssl
$(PKG)_DEPENDS_ON += popt
$(PKG)_DEPENDS_ON += sqlite
$(PKG)_DEPENDS_ON += zlib

$(PKG)_CONFIGURE_OPTIONS += --with-asound=no
$(PKG)_CONFIGURE_OPTIONS += --with-avcodec=no
$(PKG)_CONFIGURE_OPTIONS += --with-curl="$(TARGET_TOOLCHAIN_STAGING_DIR)/usr"
$(PKG)_CONFIGURE_OPTIONS += --with-curses=no
$(PKG)_CONFIGURE_OPTIONS += --with-dahdi=no
$(PKG)_CONFIGURE_OPTIONS += --with-gnutls=no
$(PKG)_CONFIGURE_OPTIONS += --with-gmime=no
$(PKG)_CONFIGURE_OPTIONS += --with-gsm=internal
$(PKG)_CONFIGURE_OPTIONS += --with-gtk=no
$(PKG)_CONFIGURE_OPTIONS += --with-gtk2=no
$(PKG)_CONFIGURE_OPTIONS += --with-h323=no
$(PKG)_CONFIGURE_OPTIONS += --with-hoard=no
$(PKG)_CONFIGURE_OPTIONS += --with-iksemel=no
$(PKG)_CONFIGURE_OPTIONS += --with-imap=no
$(PKG)_CONFIGURE_OPTIONS += --with-inotify=no
$(PKG)_CONFIGURE_OPTIONS += --with-iodbc=no
$(PKG)_CONFIGURE_OPTIONS += --with-isdnnet=no
$(PKG)_CONFIGURE_OPTIONS += --with-jack=no
$(PKG)_CONFIGURE_OPTIONS += --with-kde=no
$(PKG)_CONFIGURE_OPTIONS += --with-ldap=no
$(PKG)_CONFIGURE_OPTIONS += --with-libxml2=no
$(PKG)_CONFIGURE_OPTIONS += --with-ltdl=no
$(PKG)_CONFIGURE_OPTIONS += --with-lua=no
$(PKG)_CONFIGURE_OPTIONS += --with-misdn=no
$(PKG)_CONFIGURE_OPTIONS += --with-nbs=no
$(PKG)_CONFIGURE_OPTIONS += --with-ncurses="$(TARGET_TOOLCHAIN_STAGING_DIR)/usr"
$(PKG)_CONFIGURE_OPTIONS += --with-netsnmp=no
$(PKG)_CONFIGURE_OPTIONS += --with-newt=no
$(PKG)_CONFIGURE_OPTIONS += --with-odbc=no
$(PKG)_CONFIGURE_OPTIONS += --with-ogg=no
$(PKG)_CONFIGURE_OPTIONS += --with-openais=no
$(PKG)_CONFIGURE_OPTIONS += --with-openr2=no
$(PKG)_CONFIGURE_OPTIONS += --with-osptk=no
$(PKG)_CONFIGURE_OPTIONS += --with-oss=no
$(PKG)_CONFIGURE_OPTIONS += --with-postgres=no
$(PKG)_CONFIGURE_OPTIONS += --with-popt="$(TARGET_TOOLCHAIN_STAGING_DIR)/usr"
$(PKG)_CONFIGURE_OPTIONS += --with-portaudio=no
$(PKG)_CONFIGURE_OPTIONS += --with-pri=no
$(PKG)_CONFIGURE_OPTIONS += --with-pwlib=no
$(PKG)_CONFIGURE_OPTIONS += --with-qt=no
$(PKG)_CONFIGURE_OPTIONS += --with-radius=no
$(PKG)_CONFIGURE_OPTIONS += --with-resample=no
$(PKG)_CONFIGURE_OPTIONS += --with-sdl=no
$(PKG)_CONFIGURE_OPTIONS += --with-SDL_image=no
$(PKG)_CONFIGURE_OPTIONS += --with-spandsp=no
$(PKG)_CONFIGURE_OPTIONS += --with-speex=no
$(PKG)_CONFIGURE_OPTIONS += --with-speexdsp=no
$(PKG)_CONFIGURE_OPTIONS += --with-sqlite3="$(TARGET_TOOLCHAIN_STAGING_DIR)/usr"
$(PKG)_CONFIGURE_OPTIONS += --with-ss7=no
$(PKG)_CONFIGURE_OPTIONS += --with-suppserv=no
$(PKG)_CONFIGURE_OPTIONS += --with-tds=no
$(PKG)_CONFIGURE_OPTIONS += --with-termcap=no
$(PKG)_CONFIGURE_OPTIONS += --with-timerfd=no
$(PKG)_CONFIGURE_OPTIONS += --with-tinfo=no
$(PKG)_CONFIGURE_OPTIONS += --with-tonezone=no
$(PKG)_CONFIGURE_OPTIONS += --with-unixodbc=no
$(PKG)_CONFIGURE_OPTIONS += --with-usb=no
$(PKG)_CONFIGURE_OPTIONS += --with-vorbis=no
$(PKG)_CONFIGURE_OPTIONS += --with-vpb=no
$(PKG)_CONFIGURE_OPTIONS += --with-x11=no
$(PKG)_CONFIGURE_OPTIONS += --with-z="$(TARGET_TOOLCHAIN_STAGING_DIR)/usr"
$(PKG)_CONFIGURE_OPTIONS += --disable-xmldoc

$(PKG)_CONFIGURE_PRE_CMDS += cd channels; wget https://www.makhutov.org/svn/chan_datacard/trunk/char_conv.c; \
wget https://www.makhutov.org/svn/chan_datacard/trunk/char_conv.h; \
wget https://www.makhutov.org/svn/chan_datacard/trunk/chan_datacard.c; cd .. ;

$(PKG_SOURCE_DOWNLOAD)
$(PKG_UNPACKED)
$(PKG_CONFIGURED_CONFIGURE)

$(PKG)_MAKE_PARAMS := \
	ASTCFLAGS="-DLOW_MEMORY $(TARGET_CFLAGS)" \
	ASTLDFLAGS="$(TARGET_LDFLAGS)" \
	NOISY_BUILD="1" \
	DEBUG="" \
	OPTIMIZE="" \
	ASTETCDIR="$(ASTERISK_CONFIG_DIR)" \
	ASTVARLIBDIR="$(ASTERISK_VARLIB_DIR)" \
	DESTDIR="$(abspath $(ASTERISK_INSTALL_DIR))"

$($(PKG)_BINARY): $($(PKG)_DIR)/.configured
	PATH="$(TARGET_PATH)" \
		$(MAKE) -C $(ASTERISK_DIR) \
		$(ASTERISK_MAKE_PARAMS) \
		include/asterisk/version.h \
		include/asterisk/buildopts.h \
		defaults.h \
		makeopts.embed_rules
	PATH="$(TARGET_PATH)" \
		$(MAKE) -C $(ASTERISK_DIR) \
		$(ASTERISK_MAKE_PARAMS) \
		all

$($(PKG)_INSTALL_DIR)/.installed: $($(PKG)_BINARY)
	@echo freetz-install
	PATH="$(TARGET_PATH)" \
		$(MAKE) -C $(ASTERISK_DIR) \
		$(ASTERISK_MAKE_PARAMS) \
		install samples
	touch $@

$($(PKG)_BINARY_INSTALL_DIR) $($(PKG)_CONFIGS_INSTALL_DIR) $($(PKG)_MODULES_INSTALL_DIR) $($(PKG)_SOUNDS_INSTALL_DIR): $($(PKG)_INSTALL_DIR)/.installed

$($(PKG)_BINARY_TARGET_DIR): $($(PKG)_BINARY_INSTALL_DIR)
	$(INSTALL_BINARY_STRIP)

$($(PKG)_CONFIGS_TARGET_DIR): $($(PKG)_DEST_DIR)/$($(PKG)_CONFIG_DIR)/%.conf: $($(PKG)_INSTALL_DIR)/$($(PKG)_CONFIG_DIR)/%.conf
	$(INSTALL_BINARY)

$($(PKG)_MODULES_TARGET_DIR): $($(PKG)_DEST_DIR)/$($(PKG)_MODULES_DIR)/%.so: $($(PKG)_INSTALL_DIR)/$($(PKG)_MODULES_DIR)/%.so
	$(INSTALL_BINARY_STRIP)

$($(PKG)_SOUNDS_TARGET_DIR): $($(PKG)_DEST_DIR)/$($(PKG)_SOUNDS_DIR)/%/$($(PKG)_SOUND_FILE): $($(PKG)_INSTALL_DIR)/$($(PKG)_SOUNDS_DIR)/%/$($(PKG)_SOUND_FILE)
	mkdir -p $(ASTERISK_DEST_DIR)/$(ASTERISK_SOUNDS_DIR)/
	$(RM) -r $(dir $@)
	cp -a $(dir $<) $(ASTERISK_DEST_DIR)/$(ASTERISK_SOUNDS_DIR)/
	touch $@

$(pkg):

$(pkg)-precompiled: $($(PKG)_BINARY_TARGET_DIR) $($(PKG)_CONFIGS_TARGET_DIR) $($(PKG)_MODULES_TARGET_DIR) $($(PKG)_SOUNDS_TARGET_DIR)

$(pkg)-clean:
	$(RM) -r $(ASTERISK_INSTALL_DIR)
	-$(MAKE) -C $(ASTERISK_DIR) $(ASTERISK_MAKE_PARAMS) clean

$(pkg)-uninstall:
	$(RM) -r \
		$(ASTERISK_TARGET_BINARY) \
		$(ASTERISK_DEST_DIR)/$(ASTERISK_CONFIG_DIR)/ \
		$(ASTERISK_DEST_DIR)/$(ASTERISK_MODULES_DIR)/ \
		$(ASTERISK_DEST_DIR)/$(ASTERISK_SOUNDS_DIR)/

$(PKG_FINISH)

Die datacard.conf soll dahin, wo alle anderen conf-Dateien auch liegen. Also auf der FBF letzendlich in die /etc/asterisk/
 
Zuletzt bearbeitet:
Teste mal den Patch aus dem Anhang. Die datacard.conf (in make/asterisk/files/root/etc/asterisk nach dem patchen) musst Du vor der Imageerstellung bearbeiten/ändern/ergänzen (wegen RO).
 

Anhänge

  • asterisk-1.6.2.5_chan_datacard_current_for_ever_trunk4424_psycho_060310.patch.txt
    27.1 KB · Aufrufe: 2
Der Patch und das Paket ist von er13 und nicht vom mir.
Ich habe nichts dagegen, dass Ihr es weiterentwickelt. Es war damals nur das reine Interesse von mir, was ist das, wofür könnte ich es denn brauchen. Bisher hat sich kein wirklicher Einsatzgebiet ergeben, daher auch mangelhafte Motivation meinerseits es aktiv zu pflegen :)

Ich bin aber bereir Euch mit Reviews zu unterstützen und wenn es soweit ist, das Ganze auch zu committen. Damit das Paket in trunk aufgenommen werden kann, sollte aus meiner Sicht noch folgendes geschehen:
  • Alle /var/irgendwas Verzeichnisse, die benötigt werden, sollten vom Paket zur Verfügung gestellt werden.
  • Ein Startup-Script muss definitiv her, darf auch ein recht primitives sein.
  • Es soll geklärt werden, welche Module/Configdateien benötigt werden. Ich würde Euch bitten, nicht stur alle Module unter $(PKG)_MODULES auszulisten (dann könnte man sie auch per * installieren), sondern diese Schrittweise mit entsprechenden Kommentaren dazu zu nehmen (so wie es in meinen Patches gemacht habe). Meine ursprüngliche Intention war, für jede Menge an Modulen eine Menuconfig-Option zu implementieren.
  • Default-Config-Dateien sollten gepatched werden, sodass sie out-of-box in minimal Konfiguration genutzt werden können.
  • Wo die Config-Dateien abgelegt werden sollen, ist mir immer noch nicht ganz klar. Meine Lösung mit external gefällt mir nicht ganz, da beim Aktualisieren diese überschrieben werden.
Ich selber wähle die pakete als external aus und verschiebe die dateien so, wie es das script von spblinux und dynamic benötigt.
Wie schaut da die Struktur aus, macht es Sinn, dass wir diese übernehmen aus Kompatibilitäts- oder sonst noch welchen Gründen?

Ich würde vorschlagen, dass wir zunächst mal diese Aufgaben erledigen und uns erst dann der Aufgabe widmen, das Ganze aktuell zu halten (dieses "oh, neue Version ist raus, Herr Makhutov hat ne neue Revision committed" gehen mir ehrlich gesagt auf ...). Wenn es mal in trunk ist, wird die Aufgabe es aktuell zu halten auch deutlich einfacher.
 
@ sf3978 Danke. Das hat fast gepasst (er hat abgebrochen wegen ilbc). Ich habe es vervollständigt (im Anhang).

@ er13 bzgl. benötiger Module hast du natürlich Recht. Man sollte (wie in openwrt) auswählen können, was man will und was nicht. Wenn man alle nimmt, die im Patch hier im Anhang dabei sind, sind es übrigens fast 2MB, aber damit dürfte jeder Einsatzzweck abgedeckt sein.

Ich mache es ganz einfach: Ich installiere zusätzlich mit ins freetz das mini_fo mit jffs2 - das gibt mir die Möglichkeit alles zu editieren.
Mein Startscript sieht dann ganz einfach aus:
Code:
mkdir /var/mod/root/asterisk
mkdir /var/run/asterisk
mkdir /var/mod/root/asterisk/configs
mkdir /var/mod/root/asterisk/agi-bin
mkdir /var/mod/root/asterisk/cdr-csv
mkdir /var/mod/root/asterisk/firmware
mkdir /var/mod/root/asterisk/firmware/iax
mkdir /var/mod/root/asterisk/modules
mkdir /var/mod/root/asterisk/moh
mkdir /var/mod/root/asterisk/sounds
ln -s /usr/lib/asterisk/modules/* /var/mod/root/asterisk/modules/
ln -s /etc/asterisk/* /var/mod/root/asterisk/configs/
/usr/sbin/asterisk -C /mod/root/asterisk/configs/asterisk.conf
Die asterisk.conf sieht bei mir so aus:
Code:
[directories]
astetcdir => /mod/root/asterisk/configs
astmoddir => /mod/root/asterisk/modules
astvarlibdir => /mod/root/asterisk
astdbdir => /mod/root/asterisk
astkeydir => /mod/root/asterisk
astdatadir => /mod/root/asterisk
astagidir => /mod/root/asterisk/agi-bin
astspooldir => /var/spool/asterisk
astrundir => /var/run/asterisk
astlogdir => /mod/root/asterisk

[options]
documentation_language = en_US

[compat]
pbx_realtime=1.6
res_agi=1.6
app_set=1.6

So könnte man das alles doch lösen, oder?
EDIT1: Natürlich sollte man es auch ohne ohne mini_fo lösen können. Kann man nicht einfach die configs so speichern, wie AVM z.B. die /var/flash/voip.cfg speichert?
EDIT2: Ja, die configs sollte man patchen (einfach die ganzen ";blabla" entfernen). Ist schon ein Unterschied ob die Configs ca. 150KB groß sind oder nur 2KB. Ich habe die gepatchten configs hier im Anhang eingefügt.
EDIT3: Könnte man die configs nicht in /data/asterisk-configs speichern? Alles was ich in "data" ablege überlebt aus mir unbekannten Gründen einen reboot.
EDIT4: Irgendwas stimmt mit dem aktuellen build nicht. Asterisk lässt sich nicht starten, weil libncurses fehlt.
Code:
/var/mod/root # asterisk
asterisk: can't load library 'libncurses.so.5'
/var/mod/root # find / -name libncurses.*
/usr/lib/freetz/libncurses.so
/usr/lib/freetz/libncurses.so.5
/usr/lib/freetz/libncurses.so.5.7
/var/mod/root # ldd /usr/sbin/asterisk
        libssl.so.0.9.8 => /lib/libssl.so.0.9.8 (0x2aabe000)
        libcrypto.so.0.9.8 => /lib/libcrypto.so.0.9.8 (0x2aafc000)
        libdl.so.0 => /lib/libdl.so.0 (0x2abf0000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x2ac03000)
        libncurses.so.5 => not found
        libm.so.0 => /lib/libm.so.0 (0x2ac27000)
        libresolv.so.0 => /lib/libresolv.so.0 (0x2ac51000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2ac63000)
        libc.so.0 => /lib/libc.so.0 (0x2ac81000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)
/var/mod/root #
EDIT5: Leider bin ich zu blöd, um den patch so anzupassen, dass er auch mit dem aktuellen Trunk funzt. Wenn das jemand kann, bitte mal machen. Habe den patch angepasst, so dass er auch mit dem Trunk 4437 funzt (im Anhang).

Desweiteren finde ich, dass er13 vollkommen Recht hat. Wir sollten nicht jedes mal den Patch anpassen, sondern den Asterisk offiziell in den Freetz-Trunk rein tun.

Was hierzu noch zu tun wäre, hat uns er13 ja bereits gesagt:
1. Alle /var/irgendwas Verzeichnisse, die benötigt werden, sollten vom Paket zur Verfügung gestellt werden.
2. Ein Startup-Script muss definitiv her, darf auch ein recht primitives sein.
3. Es soll geklärt werden, welche Module/Configdateien benötigt werden...Für jede Menge an Modulen eine Menuconfig-Option implementieren.
4. Default-Config-Dateien sollten gepatched werden, sodass sie out-of-box in minimal Konfiguration genutzt werden können.
5. Wo die Config-Dateien abgelegt werden sollen, ist mir immer noch nicht ganz klar. Meine Lösung mit external gefällt mir nicht ganz, da beim Aktualisieren diese überschrieben werden.
Ich schlage folgendes vor (also alles wie es jetzt ist mit folgenden Änderungen): Wenn man Asterisk im menuconfig auswählt, soll automatisch mini_fo genommen werden. Die Asterisk-Configs sollen in /etc/asterisk bleiben (mit mini_fo kann man die ja nun bearbeiten). Somit wäre № 5 schon mal erledigt.
Als asterisk.conf folgendes:
Code:
[directories]
astetcdir => /etc/asterisk		
astmoddir => /usr/lib/asterisk/modules
astvarlibdir => /usr/lib/asterisk
[color=blue]astdbdir[/color] => /var/lib/asterisk		;das erstellt der Startscript
[color=blue]astkeydir[/color] => /var/lib/asterisk		;das erstellt der Startscript
[color=blue]astdatadir[/color] => /var/lib/asterisk
astagidir => /usr/lib/asterisk/agi-bin
[color=blue]astspooldir[/color] => /var/spool/asterisk	;das erstellt Asterisk selbstständig
[color=blue]astrundir[/color] => /var/run/asterisk		;das erstellt der Startscript
[color=blue]astlogdir[/color] => /var/log/asterisk		;das erstellt der Startscript
[color=blue];Nach meinen Erkenntnissen schreibt Asterisk oft in diese Ordner.
;Also sollten diese im RAM sein.[/color]
[options]
documentation_language = en_US

[compat]
pbx_realtime=1.6
res_agi=1.6
app_set=1.6
Dann müsste man noch den patch so anpassen, dass die folgenden leeren Ordner erstellt werden:
Code:
/usr/lib/asterisk
/usr/lib/asterisk/sounds
/usr/lib/asterisk/moh
/usr/lib/asterisk/agi-bin
/usr/lib/asterisk/firmware
/usr/lib/asterisk/firmware/iax
Mit folgendem Startscript hätten wir dann № 1&2 erledigt
Code:
mkdir -p /var/lib/asterisk
cp /usr/lib/asterisk/astdb /var/lib/asterisk/
mkdir /var/run/asterisk
mkdir -p /var/log/asterisk/cdr-csv
/usr/sbin/asterisk

№ 4 habe ich im Beitrag über diesen Erledigt. Die gepatchten Configs könnte ich auch in den patch rein tun. Bleibt also eigentlich nur noch Punkt 3: Module müssen auswählbar sein. In dem Patch ist ja bereits chan_capi über diesen Weg auswählbar. Aber bisher begreife ich das nicht. Könnte jemand noch ein paar Punkte da einfügen? Ich glaube, dass ich dann den Rest selbst hinbekomme (=weitere Module auswählbar machen).

Ich bitte um Anregung/Vorschläge/Wünsche. Passt das so, wie ich es vorschlage, oder sollte noch was geändert werden???

Ich meine, Asterisk kan nun in den Trunk geschoben werden. Den Punkt 3 kann man ja immer noch nachholen.
 

Anhänge

  • asterisk-1.6.2.5_chan_datacard_current_for_ever_trunk4424_psycho_060310.patch.txt
    27.2 KB · Aufrufe: 3
  • gepatchte-configs.tgz
    1.5 KB · Aufrufe: 5
  • asterisk-1.6.2.5_chan_datacard_current_for_ever_trunk4437_090310.patch.txt
    27.6 KB · Aufrufe: 5
  • asterisk-1.6.2.5_trunk4424_160310.patch.txt
    32.1 KB · Aufrufe: 25
Zuletzt bearbeitet:
Ich bin komplett gegen so eine Abhängigkeit zu mini_fo. Es muss auch für asterisk die Möglichkeit geben, die freetz-spezifischen Speicherroutinen zu nutzen.
 
Ich meine, Asterisk kan nun in den Trunk geschoben werden.
abgesehen davon, dass ich diesbezüglich einer anderen Meinung bin, möchte ich kurz anmerken, dass asterisk definitiv erst nach Release von freetz-1.2 in den trunk aufgenommen wird
 
@ er13 Wann kommt (ungefähr) freetz-1.2 raus? Wie lösen das Problem mit der Speicherung? Die configs selbst sind ja nur Textdateien - die kann man auch so wie den Rest der freetz-configs speichern. Aber wo speichern wir die Dateien wie call-logs und die AstDB? Wofür ist /data da? Ist es dafür geeignet?
 
Wenn es fertig ist, kommts raus. Keine geschätzte Sekunde früher oder später.

Die Dateien, die du speichern willst, sollten einen variablen Ort bekommen, einstellbar evtl. per freetz-webinterface. Dann kann man sich aussuchen, den KRam im RAMzu halten, oder unter /data oder auch auf Sticks, NFS, smb oder sonst etwas-shares, etc.
 
Oder man mounted ein Laufwerk dort hin, wo es gebraucht wird.
Bei mir ist es z.B. /var/nas/Asterisk mit den Unterverzeichnissen, wie sie im spblinux-Script erstellt werden. (hat sich bewährt)
Mir reicht es übrigens, wenn ich mit Hilfe von Freetz das Asterisk erstellen kann, so dass ich die einzelnen Dateien dort hin schieben kann, wo sie hingehören.
Das werden die Freetz-Entwickler zwar nicht gerne lesen, aber damit brauche ich kein Freetz auf der Box zu installieren und kann alles ganz schnell ändern.
 
Wenn es fertig ist, kommts raus. Keine geschätzte Sekunde früher oder später.
Ja, das ist mir vollkommen klar. Ich wollte nur wissen, ob wir hier von 2 Wochen reden, oder von 2 Quartalen.
Die Dateien, die du speichern willst, sollten einen variablen Ort bekommen, einstellbar evtl. per freetz-webinterface. Dann kann man sich aussuchen, den KRam im RAMzu halten, oder unter /data oder auch auf Sticks, NFS, smb oder sonst etwas-shares, etc.

Wer ist in der Lage so ein WebIf zu erstellen?
 
Ja, das ist mir vollkommen klar. Ich wollte nur wissen, ob wir hier von 2 Wochen reden, oder von 2 Quartalen.
vllt auch nur 2 Minuten oder 2 Dekaden. Wenns soweit ist halt. Wir werden uns da nicht festlegen, denn nachher schreit sicher irgendwer, dass es ja dann und dann fertig sein sollte und noch nicht ist. Keine Lust drauf.

Das mit dem Webinterface ist einfach. Das kannst du auch mit ein wenig einlesen. Im Wiki steht alles was du brauchst.
 
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.