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:
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:
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:
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
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