CFD Voice Input/ Routing

Ok, aber nun möchte ich nicht mehr Minuten, sondern Sekunden. So kann ich alle 10 Sekunden eine andere Audio File verwenden. Aktuell ist das hier ja für Minuten, so wie ich es verstehe, ich will aber nur Sekunden! Ist denke ich sinnvoller, sonst werden es zu viele Branches.

CONTAINS(NOW(),":34:")

EDIT: Es soll nur auf die letzte Zahl der Sekunde geachtet werden! Also xx:xx:x1 Uhr
 
Kann ich auch auf Sekunden gehen? Wie würde dann CONTAINS(NOW(),":34:") aussehen?
Sekunden wird so nicht mehr funktionieren.
Das funktioniert mit CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"1") in jeder Minute alle 10 Sekunden
bei Sekunde ?1.
 
  • Like
Reaktionen: ciscoX
Mhmm, also benötige ich in diesem Fall 59 Branches? Das gäbe aber ein böses Like! :D
Ich fände es sehr einfach, wenn einfach per Zufall einer der 3 Audio Files abgespielt wird. Das wäre in meinen Augen der kürzeste Weg. Damit du verstehst weshalb: Es ist ein "Digitaler Rezeptionist" mit einer unterschiedlichen Freizeichenlänge und einer unterschiedlichen Ansage, damit es nicht immer "einheitlich" klingt.
 
  • Like
Reaktionen: ciscoX
Hey du bist ja meeega, würd der Dieter sagen! Das hat funktioniert, danke!

Ich habe nun 6 Branches und jedes Branch trägt

CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"1")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"2")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"3")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"4")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"5")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"6")
 
Ich fände es sehr einfach, wenn einfach per Zufall einer der 3 Audio Files abgespielt wird. Das wäre in meinen Augen der kürzeste Weg.
Das sag das bitte von Anfang an.

Zufälle kann man nur mit C# erzeugen. Das C# Schnipsel
C#:
Random rnd=new Random();
return rnd.Next(1,4);
liefert immer Zahlen von 1 bis 3 zurück.
 
  • Like
Reaktionen: ciscoX
Ich habe nun 6 Branches und jedes Branch trägt

CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"1")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"2")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"3")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"4")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"5")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"6")
Was passiert in Sekunde 0, 7, 8 oder 9?
 
  • Like
Reaktionen: ciscoX
Haste Recht! Habe ich angepasst! Also ich habe nun 10 Branches und
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"0")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"1")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"2")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"3")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"4")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"5")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"6")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"7")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"8")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"9")
CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"10")

Ist eigentlich Branch 10 mit CONTAINS(REPLACE_REG_EXP(NOW(),".*:.",""),"10") nötig? Ich meine, es wird ja nur auf die letzte Sekunde gelauscht oder? Sonst müsste ich ja ab 11 fortfahren...
 
  • Like
Reaktionen: ciscoX
  • Like
Reaktionen: ciscoX
Facepalm, klar sind es 11! Aber warum wird dann Branch 10 benötigt, wenn es nie ausgeführt wird?
Dein Branch 10 ist Branch 11. Das REPLACE_REG_EXP(NOW(),".*:.","") liefert immer nur die letzte Zahl - die einzelne Sekunde - von NOW() zurück. Das ist einstellig. Das kann nie 10 sein und auch nicht enthalten.
 
  • Like
Reaktionen: ciscoX
Aha, also kann ich Branch 11 (10) entfernen?
 
Na gut, dann mache ich das. Danke Dir.
 
Wenn du wirklich nur 3 Sprüche hast oder brauchst, dann nimm das C# Schnipsel mit dem Rand. Das Schnipsel kann auch gleich den Namen der Datei komplett zurückliefern oder du benutzt diese Zahl (ist eigentlich ein String wie fast alles im CFD) und baust den Rest mit CONCATENATE drumrum. So brauchst du evtl. gar kein Create Condition sondern nur einen einzelnen Prompt Playback was eine Datei abspielt deren Namen dynamisch erzeugt wurde. Das sieht dann im CFD alles viel kleiner und eleganter aus.
 
Zuletzt bearbeitet:
Da komme ich ab diesem Punkt gar nicht mehr mit. Wie würde das dann aussehen? Hast du mir einen Screenshot als Beispiel? Und wie lautet der C Code dazu? Ich habe Audiofile1.wav, Audiofile2.wav und Audiofile3.wav
 
Moment ...
 
  • Love
Reaktionen: ciscoX
Block 1, ein C# Schnipsel (s.o.):

1708026146807.png

Block 2, das Abspielen der Datei, der String lautet:
CONCATENATE(session.audioFolder,"/Audiofile",GetRandom1to3.ReturnValue,".wav")

1708026192933.png

Die entspr. Zeilen in der Datei 3CXCallFlow.log in der Protokollierungsstufe Mittel des Aktivitätenprotokoll sehen dann in etwa so aus:

1708026307971.png
 
Sieht interessant aus. Mir ist aber nicht ersichtlich, wie die Audiofiles gepickt werden. Bei 1to3 steigt es bei mir aus, weil ich ja nun an den 0-9 "Sekundentakt" denke! :D
 

Statistik des Forums

Themen
44.764
Beiträge
233.683
Mitglieder
78.501
Neuestes Mitglied
Erich Gasser