Keine ordentliche Zeitansage vom Asterisk, weder in "en" noch in "de"

voipd

IPPF-Promi
Mitglied seit
5 Mai 2005
Beiträge
3,187
Punkte für Reaktionen
4
Punkte
38
Hallo zusammen,

ich blicke es nicht eine vernueftige Zeitansage hinzubekommen.
Weder die deutsche noch noch die englische Variante funktioniert. Es ist Asterisk 1.4 installiert mit den deutschen Pforzheimer Prompts.

Code:
exten => s,1,Set(LANGUAGE()=en)
;exten => s,1,Set(LANGUAGE()=de)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n,SayUnixTime( |CET| a) ;Wochentag
exten => s,n,Wait(1)
exten => s,n,SayUnixTime( |CET| k) ; Stunde
exten => s,n,Playback(oclock)
exten => s,n,SayUnixTime( |CET| M) ; Minute
exten => s,n,Playback(minutes)
exten => s,n,SayUnixTime( |CET| S) ; Sekunde
exten => s,n,Playback(seconds)
exten => s,n,Wait(1)
exten => s,n,Playback(vm-goodbye)
exten => s,n,Hangup

Beispielzeit: 11:22:33

en = Monday - eleven - [oclock_fehlt] - twenty-two - minutes - thirty-three - [seconds_fehlt] - goodbye

Edit: Loesung, genaues siehe unten.
[oclock_fehlt] = en."oclock.gsm" umkopieren
[seconds_fehlt] = en."seconds.gsm" umkopieren



de = Montag - elf - uhr - zweiundzwanzig - minuten - [xx_sekunden_fehlt] - [sekunden_fehlt] - [Auf Wiedersehen_fehlt]

Edit: Loesung, genaues siehe unten.
[xx_sekunden_fehlt] = "and.gsm" installieren.
[sekunden_fehlt] = de."seconds.gsm" umkopieren
[Auf Wiederhoern?_fehlt] = kommt dann automatisch


Details en:
Code:
-- Executing [s@zeitansage:1] Set("SIP/sipgate.de-b6xxxxxx", "LANGUAGE()=en") in new stack
-- Executing [s@zeitansage:2] Answer("SIP/sipgate.de-b6xxxxxx", "") in new stack
-- Executing [s@zeitansage:3] Wait("SIP/sipgate.de-b6xxxxxx", "1") in new stack
-- Executing [s@zeitansage:4] SayUnixTime("SIP/sipgate.de-b6xxxxxx", " |CET | a") in new stack
-- <SIP/sipgate.de-b6xxxxxx> Playing 'digits/day-1' (language 'en')
-- Executing [s@zeitansage:5] Wait("SIP/sipgate.de-b6xxxxxx", "1") in new stack
-- Executing [s@zeitansage:6] SayUnixTime("SIP/sipgate.de-b6xxxxxx", " |CET | k") in new stack
-- <SIP/sipgate.de-b6xxxxxx> Playing 'digits/11' (language 'en')
-- Executing [s@zeitansage:7] Playback("SIP/sipgate.de-b6xxxxxx", "oclock") in new stack
[Oct 15 11:32:23] WARNING[3245]: file.c:563 ast_openstream_full: File oclock does not exist in any format                               
[Oct 15 11:32:23] WARNING[3245]: file.c:813 ast_streamfile: Unable to open oclock (format 0x4 (ulaw)): No such file or directory        
[Oct 15 11:32:23] WARNING[3245]: app_playback.c:437 playback_exec: ast_streamfile failed on SIP/sipgate.de-b6xxxxxx for oclock          
-- Executing [s@zeitansage:8] SayUnixTime("SIP/sipgate.de-b6xxxxxx", " |CET | M") in new stack  
-- <SIP/sipgate.de-b6xxxxxx> Playing 'digits/30' (language 'en')
-- <SIP/sipgate.de-b6xxxxxx> Playing 'digits/2' (language 'en')
-- Executing [s@zeitansage:9] Playback("SIP/sipgate.de-b6xxxxxx", "minutes") in new stack
-- <SIP/sipgate.de-b6xxxxxx> Playing 'minutes' (language 'en')
-- Executing [s@zeitansage:10] SayUnixTime("SIP/sipgate.de-b6xxxxxx", " |CET | S") in new stack
-- <SIP/sipgate.de-b6xxxxxx> Playing 'digits/20' (language 'en')
-- <SIP/sipgate.de-b6xxxxxx> Playing 'digits/6' (language 'en')
-- Executing [s@zeitansage:11] Wait("SIP/sipgate.de-b6xxxxxx", "1") in new stack
-- Executing [s@zeitansage:12] Playback("SIP/sipgate.de-b6xxxxxx", "vm-goodbye") in new stack
-- <SIP/sipgate.de-b6xxxxxx> Playing 'vm-goodbye' (language 'en')
-- Executing [s@zeitansage:13] Hangup("SIP/sipgate.de-b6xxxxxx", "") in new stack
== Spawn extension (zeitansage, s, 13) exited non-zero on 'SIP/sipgate.de-b6xxxxxx'

Details de:
Code:
-- Executing [s@zeitansage:1] Set("SIP/sipgate.de-b6xxxxxx", "LANGUAGE()=de") in new stack
-- Executing [s@zeitansage:2] Answer("SIP/sipgate.de-b6xxxxxx", "") in new stack
-- Executing [s@zeitansage:3] Wait("SIP/sipgate.de-b6xxxxxx", "1") in new stack
-- Executing [s@zeitansage:4] SayUnixTime("SIP/sipgate.de-b6xxxxxx", " |CET | a") in new stack
-- <SIP/sipgate.de-b6xxxxxx> Playing 'digits/day-1' (language 'de')
-- Executing [s@zeitansage:5] Wait("SIP/sipgate.de-b6xxxxxx", "1") in new stack
-- Executing [s@zeitansage:6] SayUnixTime("SIP/sipgate.de-b6xxxxxx", " |CET | k") in new stack
-- <SIP/sipgate.de-b6xxxxxx> Playing 'digits/11' (language 'de')
-- <SIP/sipgate.de-b6xxxxxx> Playing 'digits/oclock' (language 'de')
-- Executing [s@zeitansage:7] Playback("SIP/sipgate.de-b6xxxxxx", "oclock") in new stack
[Oct 15 11:35:39] WARNING[11434]: file.c:563 ast_openstream_full: File oclock does not exist in any format
[Oct 15 11:35:39] WARNING[11434]: file.c:813 ast_streamfile: Unable to open oclock (format 0x4 (ulaw)): No such file or directory
[Oct 15 11:35:39] WARNING[11434]: app_playback.c:437 playback_exec: ast_streamfile failed on SIP/sipgate.de-b6xxxxxx for oclock
;trotz der fehlermeldung wird brav "Uhr" angesagt.
-- Executing [s@zeitansage:8] SayUnixTime("SIP/sipgate.de-b6xxxxxx", " |CET | M") in new stack
-- <SIP/sipgate.de-b6xxxxxx> Playing 'digits/5-and' (language 'de')
-- <SIP/sipgate.de-b6xxxxxx> Playing 'digits/30' (language 'de')
-- Executing [s@zeitansage:9] Playback("SIP/sipgate.de-b6xxxxxx", "minutes") in new stack
-- <SIP/sipgate.de-b6xxxxxx> Playing 'minutes' (language 'de')
-- Executing [s@zeitansage:10] SayUnixTime("SIP/sipgate.de-b6xxxxxx", " |CET | S") in new stack
;es werden auch nicht die sekunden (die ziffern) angesagt
[Oct 15 11:35:42] WARNING[11434]: file.c:563 ast_openstream_full: File digits/and does not exist in any format
[Oct 15 11:35:42] WARNING[11434]: file.c:813 ast_streamfile: Unable to open digits/and (format 0x4 (ulaw)): No such file or directory
[Oct 15 11:35:42] WARNING[11434]: say.c:409 wait_file: Unable to play message digits/and
 == Spawn extension (zeitansage, s, 10) exited non-zero on 'SIP/sipgate.de-b6xxxxxx'

Die einfachste Frage:
Warum werden im deutschen die Minuten angesagt, die Sekunden nicht? Da werden doch die gleichen Prompts benutzt?
Im englischen geht es doch auch.

Warum die anderen Ansagen nicht kommen ist mir schleierhaft.

Normalerweise helfen diese Ausgaben, aber ich verstehe sie nicht. Insbesondere verstehe ich nicht warum die Digits bei den deutschen Sekunden nicht vorhanden sind. Bei den deutschen Minuten geht es doch auch.
Kann man noch anders an Informationen kommen?

Hilfe wird gerne angnommen.

voipd.
 
Zuletzt bearbeitet:
Hi,
kannst ja mal nachschauen, ob es ein englisches "oclock"-file im (englischen) Sounds-Verzeichnis gibt...

und bei

;exten => s,n,Playback(seconds)

das ; wegmachen.
Vielleicht hilft das Dir weiter.
 
@Admins:
Das ist ein "Doppelposting", aber hier die Loesung der meisten Probleme zu Dokumentation.

Hallo zusammen,
ich habe da nochmals einen dritten Versuch gemacht und Loesungsansaetze gefunden und weiter verfolgt. Einiges war zu klaeren:

"exten => s,n,Playback(oclock)" nicht notwendig im deutschen, da "Uhr" wird automatisch angesagt wird. Siehe auch weiter unten.

"and.gsm" nach \var\sounds\digits\de - Danke an Netview. Datei hier.
Damit wird nun "und" weitergemacht und die Ziffern der Sekunden angesagt.


"seconds.gsm" von "var/lib/asterisk/sounds/de" nach "/var/lib/asterisk/sounds/digits/de" kopieren. Damit wird das Wort "Sekunden" gefunden.

";exten => s,n,Playback(seconds)" Muss raus sonst werden die Sekunden 2 mal angesagt.

Vorsichtshalber die deutsche oclock von
"/var/lib/asterisk/sounds/digits/de" nach "/var/lib/asterisk/sounds/de" kopiert. Damit wird sie bei Bedarf auch gefunden. - Nicht notwenig, aber schlussfolgert aus der englischen oclock Datei s.u.


Damit waere die deutsche Ansage in Ordnung. :rolleyes:

Die deutsche Version muss so aussehen:
Code:
exten => s,1,Set(LANGUAGE()=de)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n,SayUnixTime( |CET| a)     
exten => s,n,Wait(1)
exten => s,n,SayUnixTime( |CET| k)
exten => s,n,SayUnixTime( |CET| M)
exten => s,n,Playback(minutes)
exten => s,n,SayUnixTime( |CET| S)
exten => s,n,Wait(1)
exten => s,n,Playback(vm-goodbye)
exten => s,n,Hangup

Daraus folgt fuer die fehlenden englischen Sekunden:

"/var/lib/asterisk/sounds" nach "/var/lib/asterisk/sounds/digits" kopieren.

Fuer die "oclock" Ansage "umgekehrt" oclock.gsm von
"/var/lib/asterisk/sounds/digits" nach "/var/lib/asterisk/sounds" kopieren


Die englische Version muss so aussehen:
Code:
exten => s,1,Set(LANGUAGE()=en)     
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n,SayUnixTime( |CET| a)
exten => s,n,Wait(1)
exten => s,n,SayUnixTime( |CET| k)
;exten => s,n,Playback(oclock)
exten => s,n,SayUnixTime( |CET| M)      
exten => s,n,Playback(minutes)
exten => s,n,SayUnixTime( |CET| S)
exten => s,n,Playback(seconds)
exten => s,n,Wait(1)
exten => s,n,Playback(vm-goodbye)      
exten => s,n,Hangup



Aber folgendes (neues) Problem bleibt:

In der deutschen Version wird automatisch "Stunde" und "Sekunde" hinter den Ziffern automatisch angesagt. :mad: Da muss man also das Abspielen der *.gsm Dateien verhindern. Bei den Minuten ist das nicht so.
Im englischen wird grundsaetzlich ohne "oclock", "minutes" oder "seconds" angesagt.
Demenstsprechend muss (nach meiner Erfahrung) die Zeitansage eben unterschiedlich aufgebaut sein.

Wer dafuer noch eine Loesung weiss moege helfen.

@ploieel: Danke fuer den Hinweis, aber das war nur ein Copy&Paste Fehler. Habe ihn oben im Posting korriegiert. Aber deine Diskussionen mit Netview waren schon hilfreich. :-)
Wie du hier siehst geht es schon ein Stueck weiter.
Zu deiner Frage: Ja die englische oclock Datei gab es, aber wurde nicht gefunden, da sie im falschen Verzeichnis gesucht wurde. S.o.


voipd.
 
Netview gab mir noch den Hinweis, an die letzten Positionen folgendes zu setzen:

Code:
exten => s,n,Wait(1)
exten => s,n,Playback(beep)
exten => s,n,Goto(3)

und entsprechend obigem Beispiel die folgenden zwei Zeilen wegzulassen:

Code:
exten => s,n,Playback(vm-goodbye)      
exten => s,n,Hangup

So bekommt man eine laufende Zeitansage immer wieder mit der aktuellen Zeit. Beenden dann durch auflegen. Bei mir funktioniert es jedenfalls auf diese Weise.
 
Hallo,

von oclock und Sekunden scheinen alle Sprachpakete betroffen zu sein.
Zumindest war das auch so in fr, es, it und se
 
Kostenlos!

Statistik des Forums

Themen
248,899
Beiträge
2,304,440
Mitglieder
378,593
Neuestes Mitglied
martin035