Mathias Gindler Posted February 8, 2018 #1 Share Posted February 8, 2018 Hallo zusammen, ich suche gerade eine Möglichkeit, die für einen Benutzer (oder genauer: für alle Benutzer innerhalb einer Gruppe) angemeldeten Endgeräte innerhalb eines Callroutings per VisualBasic festzustellen. Für Powershell hab ich da mal was gefunden, aber eben nicht für VB. Wäre nett, wenn mir da vielleicht jemand auf die Sprünge helfen könnte.... Als "Endziel" möchte ich sehen, ob in einer Gruppe mindestens ein Benutzer ein aktives SwyxIt angemeldet hat. Vielen Dank! Mathias Link to comment Share on other sites More sharing options...
Tom Wellige Posted February 9, 2018 #2 Share Posted February 9, 2018 Da gibt es leider keine Schnittstelle, die Du von VBScript (also von innerhalb des Call Routings) ansprechen kannst. Du könntest jetzt natürlich auf die Idee kommen, ein Power Shell Skript vom Call Routing aus zu starten. Das ist aber je nach Rufaufkommen auf Deinem Skriptbenutzer keine gute Idee, da Dir ein solcher Aufruf jedesmal ca. 50 MB Speicher belegt (das SwyxWare Power Shell Modul lädt den "Config Data Store Client", der diese Größe hat). Damit kannstDu Dir evtl. andere Probleme einhandeln. Link to comment Share on other sites More sharing options...
Mathias Gindler Posted February 9, 2018 Author #3 Share Posted February 9, 2018 Hallo Tom, vielen Dank für die Antwort. Das mit dem Speicherbedarf bei PS hab ich bereits in einem anderen Thread mitbekommen :-( Da es sich hier um die Zentrale-Gruppe handelt, wäre das also wirklich kein guter Gedanke. Hast du (oder jemand anderes) vielleicht eine andere brauchbare Idee? Wäre evtl. mit einem (readonly)-Zugriff auf die Datenbank was zu machen? Hintergrund ist (s.a. anderer Thread), dass unser Kunde eine DECT700 einsetzt und diese Teilnehmer dauerhaft angemeldet bleiben, auch wenn die Endgeräte selbst ausgeschaltet sind. Da die PCs auch aus sind und somit kein SwyxIt läuft, habe ich auch keinen "abwesend"-Status und das Call Routing läuft in's Nirwana, da Swyx der Meinung ist, dass ja Geräte angemeldet sind (eben die DECT) Link to comment Share on other sites More sharing options...
Tom Wellige Posted February 9, 2018 #4 Share Posted February 9, 2018 Wenn Du pro Benutzer das SwyxIt! also "Logon Status" führendes Gerät konfigurierst, und dann vom Call Routing aus den Status des Benutzers abfragst, bekommst Du ein "abgemeldet" zurück, wenn das SwyxIt! des Benutzers abgemeldet ist, unabhängig davon, was noch an anderen Geräten ggf. auf dem Benutzer angemeldet ist. Den Status eines Benutzers kannst Du hier ermitteln: https://www.swyxforum.com/topic/2926-ruf-weiterleitung-wenn-nicht-besetzt/?do=findComment&comment=7868 Du musst dann allerdings den Ruf quasi anschliessend von Hand an einen ausgewählten Benutzer zustellen, und nicht mehr an die Gruppe. Link to comment Share on other sites More sharing options...
Mathias Gindler Posted February 9, 2018 Author #5 Share Posted February 9, 2018 hallo zusammen, ich habe inzwischen zumindest einen Workaround gefunden (man lernt nie aus...): wichtigste Erkenntnis: der Status des Benutzers wird entweder manuell über SwyxIt oder über an-/abmelden von Geräten, die bei den Endgeräte-Typen angehakt sind Da der SIP-Benutzer dauerhaft angemeldet ist; GEÄNDERT. Dieser Status wird gecached, bis eine erneute Änderung erfolgt Daraus folgt: SwyxIt und SwyxPhone aus der Endgeräte-Liste herausnehmen und nur das SIP-Gerät aktivieren. Da dieses i.d.R. dauerhaft angemeldet ist, ändert dieses auch den Status nicht. Somit kann man in SwyxIt den Status auf Abwesend setzen und es anschließend beenden/PC herunterfahren. Der Status bleibt auf dem gecacheten (blödes Wort!) Wert. Jetzt muss ich den Usern "nur noch" die Aufgabe abnehmen, den Status vor dem Herunterfahren manuell auf Abwesend zu stellen... Link to comment Share on other sites More sharing options...
Mathias Gindler Posted February 9, 2018 Author #6 Share Posted February 9, 2018 Hallo Tom, das geht so in die Richtung, in die ich wollte - sieht nach gutem Ansatz aus: - Status aller Benutzer in Gruppe abfragen - Call routing abhängig vom Anmeldestatus steuern Mal schauen, was ich da hinbekomme. Wäre eleganter als mein Workaround oben... Link to comment Share on other sites More sharing options...
Mathias Gindler Posted February 9, 2018 Author #7 Share Posted February 9, 2018 Hallo, ich hab jetzt was zusammengebastelt (bestehend aus diversen Codes von Tom u.a. - Vielen Dank!) und in meiner Test-Umgebung sieht es schon mal gut aus: '---------------------------------------------------------------- ' GroupAvailable ' ' prüft, ob mindestens 1 Mitglied der Gruppe angemeldet ist (abhängig von konfigurierten Endgeräten) ' ' Parameter ' sGroup name or number of group ' ' Return ' boolean ' ' ' basiert auf IsAtLeastOneMemberOfGroupBusy '---------------------------------------------------------------- Function GroupAvailable(ByVal sGroup) PBXScript.OutputTrace "-------------> GroupAvailable ( sGroup: " & sGroup & " )" Dim bReturn bReturn = false On Error Resume Next Dim oPBXConfig Set oPBXConfig = CreateObject("IpPBxSrv.PBXConfig") oPBXConfig.Initialize(PBXUser) Dim oUsers Set oUsers = oPBXConfig.GetUserByAddress(sGroup) If Err <> 0 Then PBXScript.OutputTrace "Empty group!" Else Dim oUser For Each oUser In oUsers PBXScript.OutputTrace "State of user " & oUser.Name & ": " & oUser.State select case oUser.State case 1 ' Logged off (keine Änderung) case 2 ' Logged On (no speaking) bReturn = true case 3 ' Speaking External bReturn = true case 4 ' Alerting (keine Änderung) case 5 ' Speaking Internal bReturn = true case 6 ' Away (keine Änderung) case 7 ' Do not Disturb (keine Änderung) end select Next End If oUsers = Nothing oPBXConfig = Nothing GroupAvailable = bReturn PBXScript.OutputTrace "<------------- GroupAvailable ( return: " & CStr(bReturn) & " )" End Function Beim Kunden brauchen wir nur noch einen Neustart am WE, damit die Registry-Werte (SkipGroupCallMembersWithActiveAway) greifen, dann kann ich das Ganze im Echtbetrieb testen und Rückmeldung geben. Schönes Wochenende :-) Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.