[gelöst] Problemchen mit deutscher und englischer Sprache

Zapod

Neuer User
Mitglied seit
27 Okt 2004
Beiträge
58
Punkte für Reaktionen
0
Punkte
6
Hallo Gemeinde,

habe mir ein AGI erstellt, welches mir die Zeit in korrektem Deutsch ansagt, ohne den Quelltext meines Superdupereinfach-apt-get-Debian-Systems neu kompilieren zu müssen :wink:

Der Code dazu sieht so aus:
Code:
#!/bin/sh
read agi_request 
read agi_language 
read agi_channel 
read agi_type 
read agi_uniqueid 
read agi_callerid 
read agi_dnid 
read agi_rdnis 
read agi_context 
read agi_extension 
read agi_priority 
read agi_enhanced 
read agi_accountcode 
read emptyline

if [ `date +%H` = "01" ] 
 then
  echo 'STREAM FILE digits/de/ein ""' > /dev/stdout
  read in
elif [ `date +%H` = "00" ]
 then
  echo 'STREAM FILE digits/de/0 ""' > /dev/stdout
  read in
else 
  echo 'SAY NUMBER "'`date +%k`'" "" ' > /dev/stdout
  read in
fi

echo 'STREAM FILE oclock ""' > /dev/stdout
read in
echo "SAY NUMBER `date +%M` \"\" " > /dev/stdout
read in
echo 'STREAM FILE vm-goodbye ""' > /dev/stdout 
read in

Da dies mein erstes Skript ist, schlagt mich bitte nicht, weil es auch einfacher gehen könnte - ich bin eigentlich froh, dass es halbwegs funktioniert. Die unterschiedliche Verwendung von Hochkommas und Einführungszeichen besteht eigentlich nur aus Testzwecken.

Jetzt aber zu meinem Problem:

In meiner extension.conf habe ich folgenden Eintrag:
Code:
[zeit]
exten => 997,1,Answer
exten => 997,2,Wait(1)
exten => 997,3,agi,uhrzeit.agi
exten => 997,4,Hangup

Ist ja auch nicht weiter schwierig. Wenn ich also von meinem Sip-Telefon die Nummer 997 anrufe, bekomme ich die aktuelle Uhrzeit angesagt (und weil ich in meinem Skript die Funktion SAY NUMBER verwende auch ein schönes EINUNDZWANZIG anstatt ZWANZIG EINS)

Jetzt habe ich mir aber auf Grundlage von wrrdlbrrmpft's Weckruf Script
einen Erinnerungsdienst zusammengeschustert, welcher mir beim Weck/Erinnerungsruf die aktuelle Uhrzeit ansagen soll.
Das Script von wrrdlbrrmpft findet Ihr im o.A. Link, meine extension.conf habe ich so verändert:

Code:
[Wecker]
exten => 999,1,Answer
exten => 999,2,Wait(1)
exten => 999,3,Playback(eigene/Erinner-Welcome)
exten => 999,4,agi,wakeup.agi

[weckruf]
exten => ***,1,Answer
exten => ***,2,Wait(1)
;exten => ***,3,Playback(/usr/share/asterisk/sounds/eigene/erinnerungsdienst)
exten => ***,3,agi,uhrzeit.agi
exten => ***,4,Hangup

Wenn ich also die 999 von meinem Sip-Phone anrufe, werde ich nach der Weckzeit gefragt, und das Script ruft mich dann über die Extension "weckruf" zur gewünschten Uhrzeit zurück.

Wie Ihr sehen könnt, verwende ich sowohl in der Extension "zeit" (für meine eigene Zeitansage), als auch in der Extension "weckruf" (für meinen Erinnerungsdienst) die gleiche, oben gepostete AGI.

Das Phänomen: Wenn ich die 997 (also die extension "zeit") anrufe, spricht Asterisk deutsch mit mir, wenn ich allerdings über die Extension "weckruf" zurückgerufen werde, quaselt Asterisk die Zahlen (und zwar nur die Zahlen, welche über SAY NUMBERS kommen) in Englisch.

Wie kommt den sowas, bzw. wie kann ich das ändern? Die einzig logische Erklärung die ich bislang finden konnte, ist einzig und allein, dass einmal ich beim Script anrufe und das andere mal das Script bei mir. Hatte schon überlegt, evtl in die Datei die vom Wecker-Sript geschrieben und zur gegebenen Uhrzeit nach /var/spool/asterisk/outgoing verschoben wird, eine "Language Variable" mit zu übergeben. Leider wüsste ich erstens noch nicht einmal wie das geht und zweitens weiss ich nicht mal ob das der richtige Ansatz wäre.

Vielleicht kann ja jemand von Euch mein Problemchen nachvollziehen und mir mal nen Denkanstoß (oder auch gerne eine Lösung) in die richtige Richtung geben.

Vielen Dank und viele Grüße aus Mönchengladbach,

Stefan
 
Hallo,
ohne da jetzt gross geprüft zu haben, rate ich mal:
Du verwendest in Deinem Script entweder Pfade zu den deutschen Soundfiles oder hast die Sprache auf deutsch gesetzt. Im Weckrufscript ist entweder die Sprache nicht auf deutsch gesetzt oder der Pfad führt zu den originalen (englischen) Soundfiles.
 
Hallo Madiehl,

Es handelt sich aber doch um das gleiche AGI-Skript. Insofern sollte doch sowohl bei Anruf, als auch bei Rückruf der gleiche Mist rauskommen. Also entweder falsch (Englisch) oder richtig (Deutsch). Aber genau das tut es ja nicht.

Gruß
Stefan
 
Zapod schrieb:
Es handelt sich aber doch um das gleiche AGI-Skript. Insofern sollte doch sowohl bei Anruf, als auch bei Rückruf der gleiche Mist rauskommen. Also entweder falsch (Englisch) oder richtig (Deutsch). Aber genau das tut es ja nicht.

Mach einfach mal

exten =>999,1,SetLanguage(de)

davor (Rest neu durchnummerieren, klar).

Gruß,
Micha
 
Hallo bongartz,

danke für den Tipp. werde ich gleich heute Nachmittag mal ausprobieren. Sollte es denn aber nicht "exten => ***,1,SetLanguage(de)" sein, aus der Extension [weckruf] ?
Denn diese Extension ruft doch im Endeffekt bei mir an. ?!?!

Ach, ich probier's erst mal, werde dann hier berichten.

Grüße,
Stefan
 
Nochmal: Hallo bongartz,

Dein Tipp war super :) Funktioniert mit meiner Anpassung (also in der Extension [weckruf]). Jetzt spricht er auch Deutsch, wenn ich angerufen werde.

Nochmals vielen Dank.

Grüße,
Stefan
 
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.