Transkribierung via Google im CFD - File not found

mano

Bronze Partner
Advanced Certified
Mitglied seit
4. Juli 2023
Beiträge
8
Hallo zusammen.

Leider findet ein Transcription Baustein die aufgenommene Datei nicht, um diese umzuwandeln - evtl. habt ihr einen Tipp, warum nicht.
1) Eingehender Call erhält über Text-to-Speech (Google) ein kurzes Welcome
2) Recorded Audio wird gespeichert als File mit Ziel (SavetoFile ist true ;) : CONCATENATE(session.ani,".wav")
3) Wenn Audio aufgenommen, soll transkribiert werden (Quelle: selbe Datei)
Fehler:
1) obwohl TerminateByDtmf auf true - kann nicht unterbrochen werden - er läuft die maxtime ab
2) Transcribe findet die Datei nicht, daher wird das anschließende Vorlegen übergangen => Dead End

Hinweis:
Google Speicher ist korrekt verbunden - Backups speichert 3CX dorthin korrekt

Callflow Log sagt:
2025/03/31 14:15:53.865|0012|Erro| [_3CX.Script] _175_1.Main.2.[C:1.2]-webservice - CallID 75f620ec95010000_1 - Callflow - Error executing last component: System.IO.FileNotFoundException: Could not find file '/var/lib/3cxpbx/Instance1/Data/Ivr/Prompts/Callflows/100.wav'.
File name: '/var/lib/3cxpbx/Instance1/Data/Ivr/Prompts/Callflows/100.wav'

(es wurde von der NS 100 aus angerufen - eigentlich korrekt)
1743424927075.png1743424943314.png1743424955948.png


1743424981201.png


Evtl. habt ihr eine Idee, warum
a) Die WAV nicht im Google Storage abgelegt wird, sondern (scheinbar) lokal
b) Diese Datei nicht gefunden wird
 
Evtl. habt ihr eine Idee, warum
a) Die WAV nicht im Google Storage abgelegt wird, sondern (scheinbar) lokal
Naja, die Datei wird dort nicht gespeichert, nie. Die Datei würde dort archiviert werden wenn es denn eine reguläre Aufnahme der 3CX wäre. Das ist eine Aufnahme eines Skriptes. Diese Aufnahme liegt woanders. Die wird nie archiviert.

b) Diese Datei nicht gefunden wird
Suche mal danach im System. Grundsätzlich sollte die im Skriptverzeichnis liegen, z.B.:
/var/lib/3cxpbx/Instance1/Data/Ivr/Prompts/Callflows/<name_des_skriptes>/<wav_datei>

EDIT: Der angegebene Verzeichnisname war unvollständig. Das ist mir eben erst aufgefallen. Das Verzeichnis /Callflows fehlte bis eben im angegebenen Pfad.
 
Zuletzt bearbeitet:
Entschuldige - o.g. Pfad stammt aus der Log-Datei.
Wir legen lediglich ab, wie im Callflow zu sehen und würden von exakt dort wieder laden.
Einen Fehler, dass die Datei nicht erzeugt werden konnte, gibt es nicht, nur den File-not-found beim Transkribieren.

Könnte eine generelle Option der Anlage ursächlich sein, das ein Callflow nichts anlegen darf?
 
Könnte eine generelle Option der Anlage ursächlich sein, das ein Callflow nichts anlegen darf?
Doch, der sollte das können. Das kommt evtl. ein klein wenig auf die Laufzeitumgebung (sprich wenn gehostet auf den Hoster) an.

Wie gesagt, die Dateien eines Skriptes gehören grds. immer in das eigene Verzeichnis. Aber ungeachtet dessen: die 3CX wird im Kontext des Benutzers phonesystem ausgeführt. Der Nutzer kommt in viele verschiedene Verzeichnisse des ges. System. Dessen Berechtigungen bestimmen, wo der lesen und schreiben darf.


Ich habe gerade noch das von mir von vorhin gelesen, das war etwas unvollständig weil zu sehr gekürzt. Das habe ich oben eben korrigiert:
/var/lib/3cxpbx/Instance1/Data/Ivr/Prompts/Callflows/<name_des_skriptes>/<wav_datei>

EDIT: Der angegebene Verzeichnisname war unvollständig. Das ist mir eben erst aufgefallen. Das Verzeichnis /Callflows fehlte bis eben im angegebenen Pfad.
 
Fehler gefunden - vielen Dank für den Denkanstoß !

Zieldatei war ursächlich!
Falsch: CONCATENATE(session.ani,".wav")
Richtig: CONCATENATE(session.audioFolder,session.ani,".wav")

session.audioFolder hatte gefehlt und schon funktioniert alles reibungslos
 
  • Like
Reaktionen: fxbastler
Das ist aber auch ein Lapsus.

Gut dass es den Logger und das 3CXCallFlow.log gibt :D
 
  • Like
Reaktionen: mbehrens
;) war in beidem nicht direkt zu erkennen - im Log gab es nur "file not found". Durch deinen Kommentar hatte ich zunächst manuell den Script Namen ergänzt. Zufällig bin ich auf die "audioFolder" Variable gestoßen. Dokumentiert ist das leider nicht.
 
Zufällig bin ich auf die "audioFolder" Variable gestoßen. Dokumentiert ist das leider nicht.
Na ja. Im Admin Manuel ist dies unter CFD Conditions & Variables im Bereich Session Variables schon beschrieben ;)
 
  • Like
Reaktionen: mano und fxbastler
... dann hatte ich wohl an der falschen Stelle - beim FileName gesucht und übersehen, dass es wohl essentiell ist, im audio-Pfad abzulegen, bzw. diesen beim FileName manuell anzugeben, obwohl es Pflicht ist. Sorry.

Danke für eure Hilfe!
 
  • Like
Reaktionen: fxbastler
Letztendlich kannst du das ablegen wo du willst und kannst. Hauptsache du nutzt das auch immer wieder an dieser Stelle.

Meine Empfehlung außerdem: sieh zu dass die Dateien unikat sind und am Ende immer wieder entfernt werden. Die müllen sonst die 3CX voll und Duplikate während der Laufzeit (z.B. mehrere Anrufe, werden tlw. nicht überschrieben usw.) haben sich nicht bewährt.
 
  • Like
Reaktionen: mbehrens

Statistik des Forums

Themen
44.749
Beiträge
233.636
Mitglieder
78.492
Neuestes Mitglied
dirk.kuttler