Probleme mit Playback()

sellfisch

Neuer User
Mitglied seit
11 Jan 2008
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
Bin mit meinem Latein am Ende. Versuche gerade eine Ansage der aktuellen Fussballergebnisse zu basteln. Ein shellscript ließt die Ergebnisse aus einer Webseite aus und schreibt vier Dateien in den /tmp Ordner (kann man bestimmt besser lösen, bin offen für Vorschläge).
/tmp/fp_v1 = name des ersten Vereins
/tmp/fp_v2 = name des zweiten Vereins
/tmp/fp_e1 = Tore des ersten Vereins
/tmp/fp_e2 = Tore des zweiten Vereins

/usr/fussball/fussball.sh:
Code:
#!/bin/bash
if [ -z $1 ];then
  wget http://[FUSSBALLSEITE] -O /tmp/fp_erg.txt
else
  string=`head /tmp/fp_erg.txt -n $1 | tail -1`
  IFS="|"
  part=($string)
  echo $string
  echo ${part[0]} > /tmp/fp_v1.txt
  echo ${part[1]} > /tmp/fp_v2.txt
  echo ${part[2]} > /tmp/fp_e1.txt
  echo ${part[3]} > /tmp/fp_e2.txt
fi
#eintrag in log
echo "ausgefuehrt mit $1" >> /tmp/fp_log.txt
exit 0

Ergebniss der Fussballseite (also dann /tmp/fp_erg.txt):
Code:
bochum|gladbach|2|2
bremen|dortmund|3|3
wolfsburg|bielefeld|4|1
hannover|hoffenheim|2|5
frankfurt|leverkusen|0|2
berlin|stuttgart|2|1
karlsruhe|bayern|0|1
koeln|cottbus|1|0
hamburg|schalke|1|1

extensions.conf:
Code:
exten => 1001,1,Answer();
exten => 1001,n,Playback("fp_willkommen");
exten => 1001,n,System(sh /usr/fussball/fussball.sh 2)
exten => 1001,n,Readfile(v1=/tmp/fp_v1.txt,100)
exten => 1001,n,Readfile(v2=/tmp/fp_v2.txt,100)
exten => 1001,n,Readfile(e1=/tmp/fp_e1.txt,100)
exten => 1001,n,Readfile(e2=/tmp/fp_e2.txt,100)
exten => 1001,n,Playback('fp_bielefeld')
exten => 1001,n,Playback(fp_gegen)
exten => 1001,n,Playback(fp_${v2})
exten => 1001,n,Playback(fp_${e1})
exten => 1001,n,Playback(fp_zu)
exten => 1001,n,Playback(fp_${e2})
Zunächst wird die Willkommensnachricht "fp_willkommen" abgespielt, dann der Script aufgerufen (die 2 gibt die Spielnummer an) wollte das später mal in eine schleife packen. Der Shellscript erzeugt dann die tmp dateien die ich mit Readfile auslese. Dannach soll er das Ergebniss ansagen (die entsprechenden Dateien liegen schon im Soundordner.

Soviel zur Theorie:
Problem:
Wenn ich das so ausführe, spielt er die Namen der Vereine nicht ab, obwohl die Dateien existieren. Ich habe zum Testen, in der Extentions.conf den soundfile fp_bielefeld direkt eingegeben (wie man oben sehen kann) und das ganze mit dem Spiel getestet wo bielefeld die zweite Manschaft ist. Das manuell eingegebene spielt er ab, beim vom Script kommenden gibt es eine Fehlermeldung:
Code:
[Oct 21 17:36:11] WARNING[28466]: app_readfile.c:94 readfile_exec: /tmp/fp_e2.txt is longer than 100, and 2
    -- Executing [1001@amt:7] Playback("SIP/1001-08194980", "fp_bielefeld") in new stack
    -- <SIP/1001-08194980> Playing 'fp_bielefeld' (language 'de')
    -- Executing [1001@amt:8] Playback("SIP/1001-08194980", "fp_gegen") in new stack
    -- <SIP/1001-08194980> Playing 'fp_gegen' (language 'de')
    -- Executing [1001@amt:9] Set("SIP/1001-08194980", "verein2="fp_bielefeld
"") in new stack
    -- Executing [1001@amt:10] Playback("SIP/1001-08194980", "fp_bielefeld
") in new stack
[Oct 21 17:36:14] WARNING[28466]: file.c:602 ast_openstream_full: File fp_bielefeld
 does not exist in any format
[Oct 21 17:36:14] WARNING[28466]: file.c:912 ast_streamfile: Unable to open fp_bielefeld
 (format 0x8 (alaw)): No such file or directory
[Oct 21 17:36:14] WARNING[28466]: app_playback.c:439 playback_exec: ast_streamfile failed on SIP/1001-08194980 for fp_bielefeld
Wie man sehen kann, versucht er die gleichen Sounddatei zu öffnen, mekcert aber dass er die Datei gar nicht finden kann.

Was habe ich übersehen?
 
Problem gelöst, bei in der sh datei muss mit
echo -n gearbeitet werden, damit kein Zeilenumbruch drin is

Thema bitte schließen
 
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.