Verbesserungsvorschlag Aktionen im Client

Es wäre sinnvoll, wenn man für die im Client definierbaren Aktionen bei URL auch noch angeben könnte, ob GET oder POST-Request. Und beim Post dann optional statt der Parameter in der URL die Parameter im Body übermittelt würden.

Hallo @noses,

ja, das war eine Überlegung. Die URL-Aktion ist aber hauptsächlich dazu gedacht einen Screen in einer Webanwendung zu öffnen. Allerdings ist hier das Problem das es sehr schnell sehr komplex wird. Ein paar Beispiele:

  • Body Formattierung: JSON? Form-Data enkodiert? Multipart?
  • Müssen die Parameter im Body zuerst enkodiert oder escaped werden? (z. B. Name mit einem " und ein JSON-String)
  • Was ist mit Custom Header setzen? (Accept-Encoding, etc.)
  • Ist zuvor eine Authentifizierung notwendig? Welche? Basic oder OAuth, Saml, OIDC?
  • Was ist mit Redirects?

Ich denke daher, dass solche “erweiterten” Use-Cases besser über ein Skript im Zusammenspiel mit curl oder Invoke-WebRequest abbilden lassen, das geht sowohl in Bash als auch in Powershell recht trivial.

Grüße,
Jan

Hallo @noses

wir lösen das bei uns intern und bei unseren Kunden so:

Aktion im Pascom Client:

App-Parameter:

-noprofile -ExecutionPolicy UnRestricted -File C:\...\incoming-call-notification.ps1 -number ${number} 

Die Parameter etc. müssen natürlich entsprechend angepasst werden.
In den App-Parametern können dann noch zusätzliche Parameter festgelegt werden wie Auth-Token etc.

Das Script sieht dann so aus:

param(
[Parameter(Mandatory=$true)][string]$number
)

Invoke-WebRequest -URI "https://example.com/action1?number=$number"

Viele Grüße
Matthias

2 Likes

Ja, mit nem Powershell Skript habe ich das bisher auch gelöst. Irgendwann hat das seinen Dienst eingestellt, weil es durch irgendwelche Umstände nicht mehr da lag, wo es hin gehörte. Das ist dann niemandem sofort aufgefallen mit entsprechenden Folgen.

Am liebsten wäre mir ohnehin, dass serverseitig zu lösen, wei,l es dann unabhängig vom verwendeten Endgerät funktioniert, aber das ist eine ganz anderen Baustelle.

Ja, da bin ich sofort bei Dir was die Komplexität angeht. Daher wäre mir es ohnehin am liebsten, solche Skripte serverseitig aufzurufen. Da ich aber bei Anrufbeginn Rückgabewerte der 4rd-Party-Anwendung zwischenspeichern muss, auf die ich bei Anrufende wieder zugreifen muss, ist mir das serverseitig noch nicht gelungen.

Beliebige Webhhooks aufrufen eröffnet auf der anderen Seite so viel Möglichkeiten, alleine durch die Nutzung von Zoho Flow oder Zapier

Den Aufwand betreibe ich ja eigentlich nur, weil mir Pascom bei Gesprächsende nirgends eine Anrufdauer mitgibt, weder server- noch clientseitig. Also muss ich bei Beginn in der Zeiterfassung einen Timer starten und bei Ende den Timer stoppen.

Da bin ich komplett bei dir - serverseitige Webhooks wären natürlich der beste Weg.
Clientseitig finde ich, ist man flexibler mit Powershell Scripten. Diese kann man ja auch per GPOs oder ähnlichen Tools ausrollen, sodass sichergestellt ist, dass diese am richtigen Ort liegen.

Viele Grüße
Matthias

Servus. Ich kapier zwar nicht (bin eher ahnungslos was Scripting angeht :frowning: ) warum du den Link zur Webanwendung in ein ps1 Script legst, bei uns kann ich den Link direkt angeben, aber da von der pascom die nr mit 004989… kommt und im ticketsystem aber mit 089… gespeichert ist, hier meine Frage:
Kann ich im Script die nr formatieren bevor ich sie an die Webseite sende? Danke

@Tele-crew
Es geht dabei nicht um WebAnwendungen sondern um Apis oder Aktionen die nicht im Browser geöffnet sondern im Hintergrund aufgerufen werden sollen :slight_smile:

Natürlich wenn man eine Webanwendung aufrufen möchte, geht das auch einfach so.

Natürlich kannst du die Nummer zuerst im Script bearbeiten und dann einen Browser öffnen.

Webseite in Powershell öffnen:

Start-Process "www.example.com"

Wie man Zeichenwerte verändert, ist HIER beschrieben.

Grüße
Matthias

1 Like

sorry ich bin einfach zu DOOF für power shell :frowning: ich kapiert das nicht … also falls du nen tipp hast, wie ich aus der ${number} (die ja im client als 0049… kommt) eine 0… machen kann, dann her damit…danke :slight_smile:

replace() ist, was Du suchst

PS> $string.replace('hello','hi')
hi, world

Hallo Michael
Hallo @Tele-crew

wenn hello immer an der Stelle steht und nur dort steht, dann funktioniert das.
Was ist mit 0043 - 0039 etc… od. 00497021 3004955 ?

Ich würde Remove vorschlagen…

rem

oder je nach gusto…
rem2

cu
Christoph

1 Like

Ahhh danke. Das teste ich morgen mal!!!
Edit: ich brauch es ja für unser ticketsystem und da haben wir nur deutsche Nummer, daher würde mir das reichen

Da bin ich ganz bei Dir, wobei es dann eigentlich noch sinnvoller wäre, man hätte eine Collection mit allen Ländervorwahlen, gegen die man prüft. Denn die können ja auch unterschiedlich lang sein, siehe USA.

Und so wird aus einer vermeintlich einfachen Lösung schnell eine komplexe Aufgabe :wink:

1 Like