SpanDSP rxfax mit neuem Asterisk CVS

another-way

Neuer User
Mitglied seit
4 Sep 2004
Beiträge
63
Punkte für Reaktionen
0
Punkte
0
Gestern habe ich die neueste CVS von asterisk gezogen.
wollte nun das makefile für rxfax patchen was leider fehlschlug....

hat jemand rxfax mit dem neuen cvs am laufen??


Beim kompilieren kommt da ein Fehler zu Zeile 93 in der app_rxfax.c

es gibt wohl keine variable mit namen callerid....
 
Du masst das Makefiel einfach manuell patchen. Dazu die Zeilen die mit + beginnen einfach in die richtige Stelle in /apps/Makefiel einsetzen.
Das Ergebnis könnt dann so aussehen:
Vorher:
Code:
#
# Asterisk -- A telephony toolkit for Linux.
# 
# Makefile for PBX frontends (dynamically loaded)
#
# Copyright (C) 1999, Mark Spencer
#
# Mark Spencer <[email protected]>
#
# This program is free software, distributed under the terms of
# the GNU General Public License
#

USE_MYSQL_VM_INTERFACE=0
USE_POSTGRES_VM_INTERFACE=0

#APPS=app_dial.so app_playback.so app_directory.so app_intercom.so app_mp3.so 
APPS=app_dial.so app_playback.so app_voicemail.so app_directory.so app_mp3.so\
     app_system.so app_echo.so app_record.so app_image.so app_url.so app_disa.so \
     app_adsiprog.so app_getcpeid.so app_milliwatt.so \
     app_zapateller.so app_setcallerid.so app_festival.so \
     app_queue.so app_senddtmf.so app_parkandannounce.so app_striplsd.so \
     app_setcidname.so app_lookupcidname.so app_substring.so app_macro.so \
     app_authenticate.so app_softhangup.so app_lookupblacklist.so \
     app_waitforring.so app_privacy.so app_db.so app_chanisavail.so \
     app_enumlookup.so app_transfer.so app_setcidnum.so app_cdr.so \
     app_hasnewvoicemail.so app_sayunixtime.so app_cut.so app_read.so \
     app_setcdruserfield.so app_random.so app_ices.so app_eval.so \
     app_nbscat.so app_sendtext.so app_exec.so app_sms.so \
     app_groupcount.so app_txtcidname.so app_controlplayback.so \
     app_talkdetect.so app_alarmreceiver.so app_userevent.so app_verbose.so \
     app_test.so app_forkcdr.so app_math.so app_realtime.so \
     app_dumpchan.so app_waitforsilence.so app_while.so app_setrdnis.so

ifneq (${OSARCH},Darwin)
ifneq (${OSARCH},SunOS)
APPS+=app_intercom.so
endif
endif

#
# Obsolete things...
#

#APPS+=app_sql_postgres.so
#APPS+=app_sql_odbc.so
#APPS+=app_rpt.so

APPS+=$(shell if [ -f /usr/include/linux/zaptel.h ]; then echo "app_zapras.so app_meetme.so app_flash.so app_zapbarge.so app_zapscan.so" ; fi)
APPS+=$(shell if [ -f /usr/local/include/zaptel.h ]; then echo "app_zapras.so app_meetme.so app_flash.so app_zapbarge.so app_zapscan.so" ; fi)
APPS+=$(shell if [ -f /usr/include/osp/osp.h ]; then echo "app_osplookup.so" ; fi)

CURLLIBS=$(shell curl-config --libs)
ifneq (${CURLLIBS},)
	APPS+=app_curl.so
	ifeq (${OSARCH},OpenBSD)
		CFLAGS+=-I/usr/local/include
	endif
endif

CFLAGS+=-fPIC
#
# If you have MySQL 4.1 or later you can use ODBC
# storage
#
#CFLAGS+=-DUSE_ODBC_STORAGE

all: $(APPS)

clean:
	rm -f *.so *.o look .depend

%.so : %.o
	$(CC) $(SOLINK) -o $@ $<

app_rpt.so : app_rpt.o
	$(CC) $(SOLINK) -o $@ $< -ltonezone

install: all
	for x in $(APPS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
	rm -f $(DESTDIR)$(MODULES_DIR)/app_datetime.so
	rm -f $(DESTDIR)$(MODULES_DIR)/app_qcall.so

app_curl.so: app_curl.o
	$(CC) $(SOLINK) -o $@ $< $(CURLLIBS)

app_voicemail.so : app_voicemail.o
ifeq ($(USE_MYSQL_VM_INTERFACE),1)
	$(CC) $(SOLINK) -o $@ $(MLFLAGS) $< -L/usr/lib/mysql -lmysqlclient -lz
else
ifeq ($(USE_POSTGRES_VM_INTERFACE),1)
	$(CC) $(SOLINK) -o $@ $(MLFLAGS) $< -lpq
else
	$(CC) $(SOLINK) -o $@ $(MLFLAGS) $< 
endif
endif

app_sql_postgres.o: app_sql_postgres.c
	$(CC) -pipe -I/usr/local/pgsql/include $(CFLAGS) -c -o app_sql_postgres.o app_sql_postgres.c

app_sql_postgres.so: app_sql_postgres.o
	$(CC) $(SOLINK) -o $@ $< -L/usr/local/pgsql/lib -lpq

app_sql_odbc.so: app_sql_odbc.o
	$(CC) $(SOLINK) -o $@ $< -lodbc

look:	look.c
	$(CC) -pipe -O6 -g look.c -o look -lncurses

ifneq ($(wildcard .depend),)
include .depend
endif

depend: .depend

.depend:
	../mkdep $(CFLAGS) `ls *.c`

env:
	env

Nachher:
Code:
#
# Asterisk -- A telephony toolkit for Linux.
# 
# Makefile for PBX frontends (dynamically loaded)
#
# Copyright (C) 1999, Mark Spencer
#
# Mark Spencer <[email protected]>
#
# This program is free software, distributed under the terms of
# the GNU General Public License
#

USE_MYSQL_VM_INTERFACE=0
USE_POSTGRES_VM_INTERFACE=0

#APPS=app_dial.so app_playback.so app_directory.so app_intercom.so app_mp3.so 
APPS=app_dial.so app_playback.so app_voicemail.so app_directory.so app_mp3.so\
     app_system.so app_echo.so app_record.so app_image.so app_url.so app_disa.so \
     app_adsiprog.so app_getcpeid.so app_milliwatt.so \
     app_zapateller.so app_setcallerid.so app_festival.so \
     app_queue.so app_senddtmf.so app_parkandannounce.so app_striplsd.so \
     app_setcidname.so app_lookupcidname.so app_substring.so app_macro.so \
     app_authenticate.so app_softhangup.so app_lookupblacklist.so \
     app_waitforring.so app_privacy.so app_db.so app_chanisavail.so \
     app_enumlookup.so app_transfer.so app_setcidnum.so app_cdr.so \
     app_hasnewvoicemail.so app_sayunixtime.so app_cut.so app_read.so \
     app_setcdruserfield.so app_random.so app_ices.so app_eval.so \
     app_nbscat.so app_sendtext.so app_exec.so app_sms.so \
     app_groupcount.so app_txtcidname.so app_controlplayback.so \
     app_talkdetect.so app_alarmreceiver.so app_userevent.so app_verbose.so \
     app_test.so app_forkcdr.so app_math.so app_realtime.so \
     app_dumpchan.so app_waitforsilence.so app_while.so app_setrdnis.so

ifneq (${OSARCH},Darwin)
ifneq (${OSARCH},SunOS)
APPS+=app_intercom.so
endif
endif

#
# Obsolete things...
#

#APPS+=app_sql_postgres.so
#APPS+=app_sql_odbc.so
#APPS+=app_rpt.so

APPS+=$(shell if [ -f /usr/include/linux/zaptel.h ]; then echo "app_zapras.so app_meetme.so app_flash.so app_zapbarge.so app_zapscan.so" ; fi)
APPS+=$(shell if [ -f /usr/local/include/zaptel.h ]; then echo "app_zapras.so app_meetme.so app_flash.so app_zapbarge.so app_zapscan.so" ; fi)
APPS+=$(shell if [ -f /usr/include/osp/osp.h ]; then echo "app_osplookup.so" ; fi)

APPS+=$(shell if [ -f /usr/include/spandsp.h ]; then echo "app_rxfax.so app_txfax.so" ; fi)
APPS+=$(shell if [ -f /usr/local/include/spandsp.h ]; then echo "app_rxfax.so app_txfax.so" ; fi)

CURLLIBS=$(shell curl-config --libs)
ifneq (${CURLLIBS},)
	APPS+=app_curl.so
	ifeq (${OSARCH},OpenBSD)
		CFLAGS+=-I/usr/local/include
	endif
endif

CFLAGS+=-fPIC
#
# If you have MySQL 4.1 or later you can use ODBC
# storage
#
#CFLAGS+=-DUSE_ODBC_STORAGE

all: $(APPS)

clean:
	rm -f *.so *.o look .depend

%.so : %.o
	$(CC) $(SOLINK) -o $@ $<

app_rpt.so : app_rpt.o
	$(CC) $(SOLINK) -o $@ $< -ltonezone

install: all
	for x in $(APPS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
	rm -f $(DESTDIR)$(MODULES_DIR)/app_datetime.so
	rm -f $(DESTDIR)$(MODULES_DIR)/app_qcall.so

app_rxfax.so : app_rxfax.o
	$(CC) $(SOLINK) -o $@ $< -lspandsp -ltiff

app_txfax.so : app_txfax.o
	$(CC) $(SOLINK) -o $@ $< -lspandsp -ltiff

app_curl.so: app_curl.o
	$(CC) $(SOLINK) -o $@ $< $(CURLLIBS)

app_voicemail.so : app_voicemail.o
ifeq ($(USE_MYSQL_VM_INTERFACE),1)
	$(CC) $(SOLINK) -o $@ $(MLFLAGS) $< -L/usr/lib/mysql -lmysqlclient -lz
else
ifeq ($(USE_POSTGRES_VM_INTERFACE),1)
	$(CC) $(SOLINK) -o $@ $(MLFLAGS) $< -lpq
else
	$(CC) $(SOLINK) -o $@ $(MLFLAGS) $< 
endif
endif

app_sql_postgres.o: app_sql_postgres.c
	$(CC) -pipe -I/usr/local/pgsql/include $(CFLAGS) -c -o app_sql_postgres.o app_sql_postgres.c

app_sql_postgres.so: app_sql_postgres.o
	$(CC) $(SOLINK) -o $@ $< -L/usr/local/pgsql/lib -lpq

app_sql_odbc.so: app_sql_odbc.o
	$(CC) $(SOLINK) -o $@ $< -lodbc

look:	look.c
	$(CC) -pipe -O6 -g look.c -o look -lncurses

ifneq ($(wildcard .depend),)
include .depend
endif

depend: .depend

.depend:
	../mkdep $(CFLAGS) `ls *.c`

env:
	env
 
ich habs shcon manuell gepatcht... hat ja auch geklappt nu rbeim kompilieren der rxfax.c kommt der fehler das die variable callerid (zeile 93) nicht existiert oder so ähnlich
 
another-way schrieb:
ich habs shcon manuell gepatcht... hat ja auch geklappt nu rbeim kompilieren der rxfax.c kommt der fehler das die variable callerid (zeile 93) nicht existiert oder so ähnlich

Hast Du ne alte Version von SpanDsp? Bei mir das mit der "callerid"-Variable ist doch schon ne weile her.
aktuelle Version von Spandsp
 
genau diese version und app_rxfax.c und app_txfax.c habe ich dafür genommen
 
another-way schrieb:
genau diese version und app_rxfax.c und app_txfax.c habe ich dafür genommen
Habe letzte Woche mal die neue CVS-Head kompiliert. Da ging es noch.
 
also die cvs von gestern hat sich schon sehr von meiner jetzigen version unterschieden.
evtl haben die ja wieder was verändert....
mir ging es hauptsächlich darum das deutschproblem im voicemail zu beheben, und der von gestern sagt die zeit mit deutscher sprache ordentlich an, leider geht dann fax nicht mehr....
 
Habe mal Asterisk neu ausgeloggt. Kann das Problem reproduzieren. Im Quelltext von app_rxfax hat sich nichts geändert, seitdem ich das das letzte mal erfolgreich kompiliert habe. Und in Asterisk konnte ich auch nix finden, was das Problem auslöst.
Hab es mal in den Bug-Tracker con SpanDsp reingesetzt.
 
Das Problem mit der CallerID tritt übrigens auch in der app_ldap.c auf.

Probiere mal, in der betreffenden Zeile das "callerid" durch "cid.cid_num" zu ersetzen.
 
betateilchen schrieb:
Das Problem mit der CallerID tritt übrigens auch in der app_ldap.c auf.

Probiere mal, in der betreffenden Zeile das "callerid" durch "cid.cid_num" zu ersetzen.

Jo, so klappt es:
(Zeile 92-95 aus app_rxfax)
Code:
#if (ASTERISK_VERSION_NUM <= 011000)
                      chan->cid.cid_num,
#else
                      (chan->cid.cid_num)  ?  chan->cid.cid_num  :  "",
#endif
Hätte ich auch selber drauf kommen können... Diese Änderungen hatte ich schon mal in der chan_capi.c vornehmen müssen. Nur damals konnt ich Spandsp noch einwandfrei kompilieren. Naja, nächstesmal lese ich den Quelltext weiter. Einfach die Zeile 93 bearbeiten. Dann lässt es sich kompilieren.
 
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.