Anrufbeantworter auf der FB installiert

im prinzip wäre das ja sowas, oder??

Code:
# Auf irgendwas warten
while !(cd /var/media/ftp/USBirgendwas)
do
  sleep 5
done
 
Oder:
Code:
while ! mount | grep "on /var/media/ftp" >/dev/null; do
  sleep 5
done
# und zur Sicherheit noch einen:
sleep 5
Suchausdruck/Mountpoint ist ggf. anzupassen.

Ich habs aber nicht getestet, mich stört der sleep am Anfang nicht (sind bei mir nur 20), sooo oft starte ich die FB auch nicht neu.
 
Check USB Port und Programmierung debug.cfg

u.g schrieb:
Oder:
Code:
while ! mount | grep "on /var/media/ftp" >/dev/null; do
  sleep 5
done
# und zur Sicherheit noch einen:
sleep 5
Suchausdruck/Mountpoint ist ggf. anzupassen.

was bedeutet denn dieser Code, wenn der USB bspw. defekt ist und überhaupt nicht gemountet werden kann. 'Schläft' die FBF dann für immer?

Wäre es vielleicht folgendes nicht besser:

A) in der debug.cfg wird global ein sleep gesetzt
B) anschließend mit einem IF die Verfügbarkeit des USB Sticks geprüft
C) Bei TRUE => starte AB
D) Bei FALSE => sende über mailer eine Info mit subject 'FBF Fehler: USB nicht verfügbar!'

Zur Programmierung der debug.cfg hab' ich eine Frage:
Kann die debug.cfg wie ein shell Skript programmiert werden?
Mit Variablendefinition (bsp. Pfade, etc) und so?

Eine kontinuierliche 'Überwachung des USB Ports' konnte doch über einen cronjob abgewickelt werden:

Alle x Min oder Std. wird ein shell Skript mit Namen USBcheck.sh ausgeführt.
Dieses Skript prüft wie in der debug.cfg die Verfügbarkeit und sende bei FALSE eine Mail und killt die entsprechenden (debug.cfg) Prozesse.

Noch was:
Wo finde ich Beep.la (zwecks Merge meineansage.wav mit beep.wav)

Viele Grüße,
Fritz!Boy

--------------------
AVM FBF WLAN 7170 v2 1&1 Branding FW 29.04.29 ohne mods
 
Ja, obiges ist natürlich eine Endlos-Schleife, so werden max. 8 Versuche gemacht:
Code:
tries=0
while ! mount | grep "on /var/media/ftp" >/dev/null; do
  let tries++
  [ $tries -ge 8 ] && break
  sleep 5
done
# und zur Sicherheit noch einen:
sleep 5
Ja, die debug.cfg ist ein normales Shell-Script.
 
debug.cfg

u.g schrieb:
Ja, obiges ist natürlich eine Endlos-Schleife, so werden max. 8 Versuche gemacht:
Code:
tries=0
while ! mount | grep "on /var/media/ftp" >/dev/null; do
  let tries++
  [ $tries -ge 8 ] && break
  sleep 5
done
# und zur Sicherheit noch einen:
sleep 5
Ja, die debug.cfg ist ein normales Shell-Script.

also ich habe hier meine debug.cfg gepostet. Hab' es noch nicht ausprobiert, da ich mir bei der Syntax wahrlich nicht sicher bin...
Neben obigem Code habe ich noch ein paar Zeilen ergänzt, so dass der AB
(und auch dropbear) nur geladen werden, wenn USB (bzw. die URL) angeschlossen (bzw. erreichbar) ist.


Code:
# # # # # # # # # E-Mail Einstellungen
To        = 	<..>	# Ziel E-Mail Addresse
From      =    	<..>       # Sender E-Mail Addresse
Server    =    <..>        # E-Mail Server
Username  =   <..>      # E-Mail Anmeldename
Password  =  <..>       # E-Mail Passwort
Subject   = "FBF Fehler: USB Stick nicht verfügbar!"   


# # # # # # # # # Pfad Einstellungen
capircvd= '/var/media/ftp/<Your USB Device Name>/capircvd/'


# # # # # # # # # Prüfe max 8x, ob USB Stick verfügbar?
tries    = 0
USB_ok = 0

while ![ $USB_ok = `mount | grep "on /var/media/ftp"` ]
 do
   let tries++
   [ $tries -ge 8 ] && break
   sleep 5 
 done


if [ $USB_ok -eq 0 ]; then
  # # # # # # # # # Sende Fehler E-mail
  mailer -s $Subject -f $From -t $To -m $Server -a $Username -w $Password 
else
  # # # # # # # # # Start des Anrufbeantworters
  $capircvd.capircvd -D 0 -b -d $capircvd.'incoming/' -c $capircvd -L $capircvd.'log/'
fi


# # # # # # # # # Warten bis Fritz!Box den Server erreichen kann
tries           = 0
WWWready = 0
url             = www.tecchannel.de
Subject      = "FBF Fehler: SSH Installation nicht möglich!"   

while ![ $WWWready = "ping -c 1 $url" ]
 do
   let tries++
   [ $tries -ge 8 ] && break
   sleep 5 
 done

if [ $WWWready -eq 0 ]; then
  # # # # # # # # # Sende Fehler E-mail
  mailer -s $Subject -f $From -t $To -m $Server -a $Username -w $Password 
else
  # # # # # # # # # Installation ssh-Server
  wget http://www.tecchannel.de/download/432967/dropbear
  chmod +x /var/tmp/dropbear
  ln -s /var/tmp/dropbear dropbearkey
  /var/tmp/dropbearkey -t rsa -f /var/tmp/dropbear_rsa_hostkey -s 512
  cp -p /var/tmp/shadow /var/tmp/tmp_shadow
  # Hier den Hash des root-Passworts eintragen
  sed -e "/root:/s#^root:[^:]*:#root:<password>:#" /var/tmp/tmp_shadow > /var/tmp/shadow
  /var/tmp/dropbear -r /var/tmp/dropbear_rsa_hostkey
fi


könnte jemand mal eine 'Syntax' check für einen Shell-Newbi durchführen?

Viele Grüße,
Fritz!Box
 
mp3 encoder

nachdem sich lame und auch bladeenc geweigert haben, in der crosscompile Umgebung ein lauffähiges binary zu erzeugen, habe ich nach Alternativen gesucht.

Das Grundproblem scheint der Linkeraufruf über ld zu sein, die erzeugten binaries sowohl lame als auch bladeenc erzeugten nur "not found"

Von der ISO Group gibt es eine Implementierung namens dist10.
Der darin enthaltene encoder lies sich relativ einfach übersetzen.

Anyway, hier das binary, für den Aufruf in der capircvd.handler

<EDIT>

Hmm, das braucht unglaublich lange, ca. 6 Minuten für ein kleines file. Vermutlich sind da einige Berechnungen drin, die auf Flieskomma angewiesen sind.

<EDIT 2>

OK, Tables sind im zip file enthalten, wer es bereits geladen hat, bitte erneut laden.
Enthlaten sind die Convernsion Tables.
Mit

MPEGTAGLES=/der/pfad/zu/den/tables

lässt sich das an beliebige Stelle setzen

Ich habe die Idee der mp3 Umwandlung aber für's Erste hinten angestellt, da mir die Wandlung zu lang dauert.

Weiter unten gibt es aber eine angepasste Version des isdn2wav Utility
 

Anhänge

  • mp3-encode.zip
    141.9 KB · Aufrufe: 17
Zuletzt bearbeitet:
isdn2wav

da die Qualität des erzeugten wav files gruselig war, hab ich mal die Umwandlungsroutine aus dem Capi Voice Mail System eingebaut.
Damit ist die Qualität jetzt OK.
Im Anhang der angepasste Source und ein statisches binary
 

Anhänge

  • isdn2wav.zip
    45.7 KB · Aufrufe: 37
isdn2wav kam aus capircvd. Damit sollte die Qualität eigentlich i.O. sein.
 
da die Qualität des erzeugten wav files gruselig

Also an und ab hatte ich auch stark verzerrte WAV´s dabei, woran das nun lag k.A.
Wenn das isdn2wav von bodega aus den capivcrc Quellen stammt, worin unterscheidet sich deines?

Lenni
 
Komisch, hatte noch keine Probleme mit den alaw/waves.
 
Lenni2k1 schrieb:
Also an und ab hatte ich auch stark verzerrte WAV&acute;s dabei, woran das nun lag k.A.
Wenn das isdn2wav von bodega aus den capivcrc Quellen stammt, worin unterscheidet sich deines?

Lenni

Hmm, am besten beschreib ich das mit clipping, als wäre es übersteuert.
Es war aber nicht übersteuert, hab das file mit audacity betrachtet, überstuert war es nicht, aber wie ein "krächzen" bei starkem Delta, also wenn die stimme anfängt bzw. aufhört.

das das isdn2wav aus den capircvd sourcen kommt ist klar.
Ich hab nur die alaw2linear routine angepasst (aus cvm.sf.net).
 
Irgendwie fehlt mir ja momentan etwas der Überblick, was ihr alles geändert habt gegenüber der ersten capircvd version gemacht habt:
  • Handleskript angepasst
  • isdn2wav integriert/optimiert(?)
könnt ihr das mal als Paket zusammenpacken und auflisten, was verbessert wurde?
 
Naja,
das Handlerskript kannst du dir ja beliebig selber anpassen, das ist nichts weiter als ein bash skript, welches parameter übergeben bekommt.

das isdn2wav binary ist angepasst, wenn du aber keine probleme hast, brauchst du auch nichts zu tauschen. /me hatte Probs, so daß ich das umgebaut habe.

das mp3 encode war nen versuch: es funktioniert grundsätzlich, dauert nur unglaublich lang. Wenn ich mal Zeit und Lust habe, baue ich evtl. nochmal was um, so daß float Teile durch int Teile ersetzt werden. Ich erwarte aber keine Mega Performance auf der Box.

Sonst ist eigentlich nichts neu.

Ich persönlich hab mir die capircvd.conf und das capircvd.handler skript noch mit mknod ins flash gebaut, so daß ich das flexibel anpassen kann, der Rest ist statisch im squash / extern abgelegt
 
Ich habe da ein Problem:
Zum Test habe ich cfg_capicvrd von spblinux.de/fbox gezogen und installiert, dann die config angepasst und das ding gestartet. Danach erhalte ich die erste Testmail. Der AB geht bei einem Anruf auch ran, legt dann allerdings sofort wieder auf und ich habe folgendes im log:

Number: xxx
Open ifile /var/spool/capircvd/ansage.la!
I-Dateihandle 7
Open ifile2 /var/spool/capircvd/beep.la!
I2-Dateihandle 8
signal received! exiting...

Dabei erscheint auf der Console:
terminate called after throwing an instance of 'int'

Kommt das irgendjemandem bekannt vor, gibt es da eine Lösung?
 
nochmal zu meinem problem
ich kann machen was ich will immer wenn ich den anrufbeantworter automatisch starten will kommt folgendes
Code:
 1057 root        104 [COLOR="Red"]R [/COLOR]  /var/media/ftp/cnmemory-Partition-0-1/anrufbeantworte
 1058 root        364 R   ps

startet ich den rufbeantworter per hand im telnet kommt dies, und dann läuft er auch
Code:
 1057 root        104 [COLOR="Red"]S [/COLOR]  /var/media/ftp/cnmemory-Partition-0-1/anrufbeantworte
 1058 root        364 R   ps

ich hoffe es kann mir jemand helfen

----


hallo

könnte man nicht die abfrage ob der usb stick bereit ist aus diesem thread nehmen
http://www.ip-phone-forum.de/showthread.php?t=125357

vielleicht könnte da jemand mal was draus bauen, denn bei mir klappt es nicht
Code:
 
Zuletzt bearbeitet:
gestartet wird der anrufbeantworter mit folgendem string

/var/media/ftp/cnmemory-Partition-0-1/anrufbeantworter/capircvd -b -d /var/media/ftp/cnmemory-Partition-0-1/anrufbeantworter/neue_anrufe -c /var/media/ftp/cnmemory-Partition-0-1/anrufbeantworter
 
Archiv der Nachrichten auf Stick - einfachere Konfiguration - Danke

!!Vielen Dank an Darkyputz, bodega und an alle beteiligten Programmierer!!

Der AB funktioniert klasse, nachdem ich einen USB Stick verwende und die Anleitung im Wiki befolgt habe.

Ich habe das Skript capircvd.handler noch etwas abgewandelt:
  • Die wav Dateien werden benannt nach ab-Datum-Anrufernummer-Zielnummer, wobei ich für das Datum die intuitivere Variante YYMMDD_HHMMSS gewählt habe. Durch die Reihenfolge sind die Dateien auch nach Namen sortiert in chronologischer Reihenfolge aufgelistet.
  • Die wav Dateien lösche ich dann nicht vom Stick. Aktiviert man den FTP Zugang von aussen könnte man sich eigentlich auch den evtl größeren Mailanhang sparen. Das löschen muss man dann eben selbst übernehmen bevor der Stick voll läuft. Inzwischen könnte aber schon auf einen billigen Stick 2 Wochen lang am Stück aufgenommen werden, bis man wieder aus dem Urlaub zurück ist...
  • Zur einfacheren Anpassung des Skriptes - falls man mal den Stick austauscht oder einfach bei der ersten Einrichtung - habe ich noch eine Variable am Anfang des Skripts eingebaut, die den Ordnernamen des USB Sticks beinhaltet um diesen nicht an mehreren Stellen angeben zu müssen.

Hier die komplette capircvd.handler:

Code:
#!/bin/sh

# KONFIGURATION

usbp="MEMORYBIRDUSB2-Partition-0-1"             # Euer Ordnername der Partition auf dem USB Laufwerk in /var/media/ftp (per telnet "ls /var/media/ftp" aufrufen)

mailer_to="[email protected]"	# Eure E-Mail Addi
mailer_from="[email protected]"	# Eure E-Mail Addi
mailer_server="smtp.server.net"		# Euer E-Mail Server
mailer_username="user"			# Euer E-Mail Anmeldename
mailer_password="pass" 			# Euer E-Mail Passwort

# KONFIGURATION ENDE

isdn2wav="/var/media/ftp/$usbp/anrufbeantworter/isdn2wav"  # kompletter Pfad zur isdn2wav-Datei
format=$1
called=$2
calling=$3
file=$4
an=$5
remote=$6
mailformat=$7

sender=@SENDER@
cookie=`date +"%s"`

case "$format" in
voice)
 if test -e $file ; then
  basefile=`echo $file|sed -e "s/\.alaw//"`
  timestamp=`date +%y%m%d_%H%M%S`
  wavfile="/var/media/ftp/$usbp/anrufbeantworter/neue_anrufe/ab-$timestamp-$calling-$called.wav"
  $isdn2wav "$file" "$wavfile"
 
  mailer -s "AB $timestamp $calling $called" -f "$mailer_from" -t "$mailer_to" -m "$mailer_server" -a "$mailer_username" -w "$mailer_password" -d "$wavfile" # versenden der Datei

  # rm $wavfile     # löscht das wav file nach Versand, falls gewünscht erstes "#" der Zeile löschen
  rm "$file"   		# löscht das alaw file nach erfolgter Aktion

 else
  mailer -s "AB $timestamp $calling $called" -f "$mailer_from" -t "$mailer_to" -m "$mailer_server" -a "$mailer_username" -w "$mailer_password"  
  echo -e "To: $an\nSubject: Eingegangener Anruf!\n\nEingegangener Anruf von Rufnummer $calling auf $called, keine Aufnahme ! ...\n\n"
 fi
;;		# voice 

exec)
 ;;		# exec
*)

 echo "Unknown call to capircvd.handler, see README and capircvd sourcecode!"

esac
 
Zuletzt bearbeitet:
und wie lässt du den anrufbeantworter starten?
 
@lolax:

In der debug.cfg steht vor dem Start des ABs ein 'sleep 60', oder?
Wenn's dann immer noch nicht klappt, müsstest du mal das Logging einschalten (ich glaube das war mit '-D 65535 -L /var/file.log', schau mal in die '--help') und poste das Log mal.

EDIT:
poste am besten auch mal die debug.cfg ;)
 
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.