Zeitgesteuertes Einbuchen von dynamischen Benutzern in ein Team

Hallo zusammen,

ich höre immer wieder von Kollegen und Kunden, dass Sie gerne ein Automatisierungen in der Anlage hätten, die gegen die Schusseligkeit der Benutzer helfen würden.

  1. Automatisches Einbuchen dynamischer Teilnehmer in ein Team
    Häufig ist es so, dass morgens niemand in den “lästigen” Queues wie bspw. der Telefonzentrale eingebucht ist, weil sich im Laufe des Tages Leute nach dem dritten Werbeanruf abgemeldet haben. Es wäre super, wenn man über ein Skript gewisse Leute morgens bspw. um 8 wieder dort aktiv melden könnte.

Ich hab im Forum irgendwas mit AddQueueMember gefunden, das war aber Dialplan-Skript. Hier müsste ja ein Cronjob irgendetwas auslösen

  1. Wiederherstellen des Default-Users eines Arbeitsplatzes
    Häufig ist es so, dass gerade in Besprechungsräumen sich irgendeine Nase anmeldet und dann vergisst abzumelden, insbesondere dann, wenn ansonsten ein Softclient zum Einsatz kommt. Gibt es eine Möglichkeit, abends bestimmte Arbeitsplätze wieder auf einen Default-Zustand (“niemand eingebucht” oder " eingebucht" zurücksetzen?

Vielen lieben Dank!

Da gab es mal einen Ansatz, dass über ein Loginskript zu machen (Rest-API-Aufruf bei Anmelden an Windows). Man könnte z.B. ein Powershell-Skript dafür nutzen. Ist aber lange her und ich habe mich nicht mehr weiter damit beschäftigt…

REST-API ist ein guter Ansatz. Wäre halt nur cool, wenn man sowas direkt auf der Instanz machen könnte. Muss mal schauen, dass ich mir so ein JSON baue und dann cURL etc. dafür missbrauche.

Danke!

Wir haben das auch mal gebraucht, falls Dir ein Bash-Skript hilft, dann bitte:
team_abmelden.sh (737 Bytes)

Bekommt den Team-Namen als Parameter und meldet dann jeden Benutzer an oder ab. Je nachdem wie das Skript heißt.

4 Likes

Sodele. Wir haben das Ganze dann mal mit der REST-API, CURL und JQ gelöst. Damit habe ich eine Batchdatei gebaut, die unter Windows mit AT getimed werden kann.

Ich muss mal wieder sagen, dass ich ziemlich begeistert bin.

Hier sind die magischen drei Zeilen Code:

curl -u moby:password -X GET "https://pascom-beta.cloud/instanz/services/queue/%1" -H "accept: */*" > %1.txt
jq -r ".members[].agent" %1.txt > %1_users.txt
FOR /F %%B IN (%1_users.txt) DO (curl -u moby:password -X POST "xhttps://pascom-beta.cloud/instanz/services/queue/%1/action" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"action\":\"%2\",\"identity\":\"%%B\",\"penalty\":\"0\"}")

Aufruf: queue QUEUE_NAME ACTION

1 Like

Hallo @schamarc,

ich habe deinen Code mal als Codeblock formattiert. Das hat den schönen Nebeneffekt, das auch Anführungszeichen im Richtigen Format erhalten bleiben.

Mehr Möglichkeiten zum Formattieren sind in diesem Post beschrieben: Discourse Guide: Code Formatting - Meta - Stonehearth Discourse

Grüße,
Jan

1 Like

Auf JQ und Curl wäre ich unter Windows nicht gekommen und hätte mich da eher der Powershell gewidment, die ja von Haus aus mit RestAPI und JSON kann. Somit schön, wieder etwas dazu gelernt zu haben.

Um ehrlich zu sein: Ich hab halt Null Erfahrung mit Powershell und wollte keinen eh schon gestressten Kollegen hinzuziehen. Hatte das aber auf dem Mac gebaut und da wir für den Kunden einen Notes-Server unter Windows hosten, die Batch schnell umgestrickt.

Ist doch perfekt. Niemand wird später fragen, mit welchem Werkzeug das Loch in die Wand gebohrt wurde. Hauptsache das Bild hängt und verschönert den Raum. Ich fand es für mich spannend, andere Lösungsansätze zu lesen. :slight_smile:

also ich finde diesen ansatz sehr gut… aber warum kann sowas nicht direkt in den pascom client eingebaut werden?
client startet: user wird eingeloggt; client geht in pause: user wird ausgeloggt usw.

oder kommt das evtl eh mit den profilen ? :wink:

In Pause gehen, heißt ja: Client zu → bist Du eh raus. Und einen Smartphone-Client kannst Du ja auch über die Schieber steuern.

Weil restlos jeder andere Anforderungen hat. Der eine möchte nur in einer Gruppe angemeldet werden, ein andere in drei verschiedenen Gruppen und wieder andere immer in allen Gruppen.

Mit einem Loginskript bist Du halt flexibel in der Einrichtung und überfrachtest den Client nicht mit noch mehr Funktionen.

Einiges wird sich aber vielleicht mit den Profilen ergeben. Warten wir mal ab.

1 Like

Ja das mit dem login Script Check ich halt wieder nicht. Wärs möglich hier mal 30min schulung bei dir zu buchen ? Danke

Ich würde das Login-Script keinem Benutzer zur Verfügung stellen, da man damit dem User nahezu Vollzugriff auf die Telefonanlage gibt. Ich empfinde diese Lösung als Sicherheitslücke.

Stattdessen habe ich ein PHP 8 Framework für pascom entwickelt mit long-polling Sockets für Live-Daten, einem Dialer zum Fernsteuern des pascom Clients, für Rufauzeichnungen mit Rechtesystem, einer Ein-Klick-Anruf-Transferierung, einer für uns übersichtlicheren Gesprächsliste und natürlich auch für Login/Logout Aktionen. Diese zum Teil auch automatisiert. Dieses Franework/diese Bibliothek nutze ich dann entsprechend in einem ERM mit Benutzeroberfläche und Rechtesystem.

Klar, ist nicht einfach umzusetzen, aber ich würde schon schauen, dass ich eine Anwendung bereitstelle, die diese Funktion bietet, ohne eben dem Benutzer das Auth-Token mitzugeben. Es ist ja auch durchaus möglich eine binäre EXE zu erstellen die auf der Powershell basiert und eben das Token nicht entblöst.

Die REST API macht eine Menge möglich, aber ich rate wie gesagt dringend davon ab solche Shell-Skripte an die Benutzer zu verteilen.

Übrigens gibt es einen Funktionscode, der es ermöglicht, dass ein Benutzer sich aus allen Teams ein oder ausloggt:

*99#{Durchwahl}

https://www.pascom.net/doc/de/howto/featurecodes/#team-aktionen

Ich hatte da auch eher weniger an den Benutzer selbst gedacht als an eine GPO, die das beim Anmelden des Benutzers am System ausführt. Ist natürlich Windows-lastig, aber für mein Umfeld trifft das zu 100% zu.

Ja klar, ich hätte das auch in eine Exe packen können. Man könnte auch das Token irgendwo in die Registry schreiben, wo der Benutzer nicht rankommt etc. Oder man schreibt einfach den Login per Skript in eine Textdatei, die dann überwacht wird und im Hintergrund auf dem Server das Login-Skript ausführt. Gibt also noch viele Möglichkeiten. Alles in allem ist der Funktionscode auch eine Alternative, wenn man denn wirklich in ALLEN Teams auf einmal ein/ausgeloggt werden möchte. Sobald das nicht der Fall ist, geht die Tipperei wieder los.