Jump to content

VB-Script parallel zur Ansage ausführen


jodost
 Share


Go to solution Solved by Tom Wellige,

Recommended Posts

  • Most Valued User

Hallo in die Runde,

 

zur Abwechlung mal eine private Bitte um VBScript-Supprt:

 

Ich habe als E-Auto-Fahrer ein Tool gebastelt namens Ladefritz, mit dem man aus dem Auto heraus den Belegt-Status "seiner" Heimat-Ladesäule abfragen kann, in dem man ihr einfach unter http://www.ladefritz.de eine Telefonnummer zuweisen lässt, die ruft man vom Auto aus an und bekommt angesagt, wie viele Ladesäulen da noch frei sind. Das geht viel schneller als über Apps (selbst wenn man die per Android Auto aufrufen kann) und ist viel genauer als die Verfügbarkeits-Anzeige, die zumindest unser Navi ab Werk kann (die zeigt entweder nur die generelle technische defekt ja/nein-Verfügbarkeit an, oder ist gecached, aber so oder so ist sie unbrauchbar für die Entscheidung, ob sich der Weg zur Ladesäule lohnt).

 

Das CallRouting dazu sieht ein bisschen wüst aus, einen Screenshot gibt's hier: https://vollzeitnerd.de/news/detail/der-ladefritz - das kommt aber primär daher, dass ich auch die Ziffernansage der Ladeports über einzelne Soundfiles verzweige (statt über "Ziffern ansagen"), weil der Ladefritz eine männliche Stimme braucht (die restlichen Callroutings auf diesem Server aber nicht). Wäre das nicht, dann wäre das CallRouting super einfach.

 

Egal, nun zu meinem Anliegen: Beim Anruf rufe ich als erstes eine API eines Webservices auf, der gibt mir alle wichtigen Angaben (Anzahl freie, belegte oder defekte Ports) zurück und daraus werden dann die Sprachansagen ausgespielt. Die Anfrage geht von der Swyx auf einen Webserver bei mir, der sucht die gewählte Ladesäule raus, guckt, welcher Schnittstellenanbieter (das erweitere ich nach und nach) mir Echtzeitangaben liefern kann, fragt den ab, und der muss dann ja seinerseits das Backendsystem des Ladesäulen-Betreibers anfragen. Das geht manchmal super-schnell, dauert manchmal aber auch länger und in der Zeit geht der Ladefritz dann nicht ans Telefon.

 

Für meinen Aufruf nutze ich folgendes:

 

Function ladefritz()
    Dim http_req, url
    Set http_req = CreateObject("Msxml2.ServerXMLHTTP.3.0")
    url = "..."
    http_req.open "GET", url, False
    http_req.send
    ladefritz = http_req.responseText
end Function

 

 

Aktuell wird das VBScript-Element (das die Funktion "ladefritz()" aufruft) ausgeführt und danach geht's zur Sprachansage "Willkommen". Ich würde das aber gerne parallel machen, d.h. während die Willkommens-Ansage läuft, kann der API-Aufruf auf ein Ergebnis warten.

 

Da gibt es doch bestimmt VBScript-Profis hier, die mir das asynchron (ähnlich wie AJAX in JavaScript) umbauen können, oder?

 

Viele Grüße

 

Joern

Link to comment
Share on other sites


  • Solution

Hi Joern,

 

Deine BEIDEN Probleme lassen sich einfach lösen :)

 

1) Mit dem Halten Block kannst Du den Ruf ins halten setzen und dem Anrufer einer Ansage abspielen. Du kommst allerdings umgehend wieder aus dem Halten Block raus und kannst das machen, was zeitaufwendig ist, d.h. Deine Webrequests. Wenn Du damit fertig bist und die Ansage für den Anrufer beenden willst, gehe einfach in den Aktivieren Block.

 

2) Die Zahlen Ansagen: Du scheinst ja ohnehin schon eigene Ansagen für die Zahlen 0-9 zu haben. Benenne die Dateien zero.wav, one.wav, two.wav, usw. und lade sie in den USER Scope Deine Script Benutzers. Jetzt kannst Du auch wieder den Zahlenfolge ansagen Block benutzen. Der verwendet die Dateien zero.wav, one.wav, .etc und findest diese nun im USER Scope und nicht erst die von der SwyxWare mitgelieferten Dateien im SYSTEM Default Scope.

 

 

Tom.

Link to comment
Share on other sites


  • Most Valued User

zu 1 -> Genial. An "Halten" hab ich gar nicht gedacht, weil ich nicht auf dem Schirm hatte, dass da ja gar nicht die Wartemusik abgespielt werden muss, sondern ich eine Datei auswählen kann

 

zu 2 -> war mir bekannt. Aber das Script läuft bei mir auf meinem eigenen User mit (der z.B. Datum ansagt, wenn ich lt. Zeiterfassung im Urlaub bin und wo auch mal Kunden-Scripte übergangsweise zu Vorführzwecken laufen), darum hab ich das mit Absicht nicht gemacht

 

Danke 🙂

Link to comment
Share on other sites


Wenn Du die Zahlenansagen nicht austauschen kannst/willst, kannst Du Dir auch aus der Templates_v4.3.vbs Datei die Funktion gseSayNumberEx heraus kopieren, sie nach MySayNumber umbenennen, die Namen der .wav Dateien anpassen und sie dann in den Start Block kopieren. Mit einen Variable auswerten Block rufst Du sie dann einfach auf.

 

Link to comment
Share on other sites


  • Most Valued User
vor 1 Stunde schrieb Tom Wellige:

Wenn Du die Zahlenansagen nicht austauschen kannst/willst, kannst Du Dir auch aus der Templates_v4.3.vbs Datei die Funktion gseSayNumberEx heraus kopieren, sie nach MySayNumber umbenennen, die Namen der .wav Dateien anpassen und sie dann in den Start Block kopieren. Mit einen Variable auswerten Block rufst Du sie dann einfach auf.

 

ahhh. Ist jetzt ok so wie es ist, aber für die Zukunft -> gut zu wissen, danke!

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and have taken note of our Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.