Tom Wellige 60 Report post Posted February 16, 2018 This post is taken from the Swyx Forum Archive (2007-2014) and was originally posted 06.09.2010 by me With the following VBScript function it is possible to request the current status of any user or group from within the call routing. '---------------------------------------------------------------- ' UserStatus ' ' Returns the current status of the given user. ' ' Parameter ' sNumber user name or extension ' ' Return ' integer 0 - State Unavailable (no status signalling configured!) ' 1 - Logged Off ' 2 - Logged On (no speaking) ' 3 - Speaking External ' 4 - Alerting ' 5 - Speaking Internal ' 6 - Away (from SwyxWare 2011 on) ' 7 - Do not Disturb (from SwyxWare 2011 on) '---------------------------------------------------------------- Function UserStatus(ByVal sNumber) PBXScript.OutputTrace("-------------> UserStatus ( sNumber = " & sNumber & " )") Dim nReturn nReturn = 0 Dim Users Set Users = g_PBXConfig.GetUserByAddress(sNumber) Dim User For Each User In Users PBXScript.OutputTrace("Found user " & User.Name & " with current state " & User.State) nReturn = User.State Next UserStatus = nReturn PBXScript.OutputTrace("nReturn = " & nReturn) PBXScript.OutputTrace("<------------- UserStatus") End Function In order to use his function you need to do the following: Copy & paste the code into the Start block of your call routing script Make sure to have mutual status signalling configured between the call routing script user and the user you request the status from To call the UserStatus function you can use for example the Insert Script Code block To do so add the following code to its Parameters page UseExit = UserStatus (100) Now you need to switch to the Links page and configure the exits. Enable the exits and configure their names. With having done this you have a block returning the status of the user with the extension 100 on it's exits: Enjoy! 0 Quote Share this post Link to post Share on other sites
AugustinMarc 0 Report post Posted March 19, 2018 Angenommen, ich versuche im Call-Routing vom User "Zentrale" die User einer Benutzergruppe "Umlaufend" einen Anruf von außen durchzustellen. Muss ich dann für jeden einzelnen User dieser Gruppe den Status über diese Skriptabfrage starten? 0 Quote Share this post Link to post Share on other sites
Tom Wellige 60 Report post Posted March 20, 2018 Nein, denn da erfolgt die Zustellung ja automatisch durch den Server. Das obige Skript ist dazu da, wenn Du gezielt einzelne Benutzer abfragen willst (aus welchem Grund auch immer). 0 Quote Share this post Link to post Share on other sites
AugustinMarc 0 Report post Posted March 20, 2018 5 minutes ago, Tom Wellige said: Nein, denn da erfolgt die Zustellung ja automatisch durch den Server. Das obige Skript ist dazu da, wenn Du gezielt einzelne Benutzer abfragen willst (aus welchem Grund auch immer). Das verstehe ich nicht wirklich... ich versuch mal das Szenaria zu beschreiben, wie unser Callrouting jetzt läuft: Anruf kommt auf der "0" rein und geht dann ins Callrouting: Es wird versucht an alle Benutzer einer Benutzergruppe, und zwar umlaufend, nicht parallel!), den Anruf durchzustellen. Hier müsste ich jetzt aber checken, ob der Benutzer, an den jetzt gerade durchgestellt werden soll, nicht den Status "Abwesend" hat, weil ja sonst der Apparat des Users klingelt, obwohl er nicht da ist (bei uns läuft das mit der Abmeldung der User sehr schlecht) und sich die Wartezeit des Anrufers "unnötig" verlängert. Nach meinem Verständnis kann es über die Gruppe nicht funktionieren. 0 Quote Share this post Link to post Share on other sites
Markus Wallner 11 Report post Posted March 20, 2018 Den Status eines einzelnen Users abzufragen bringt Dir nichts, wenn Du dann per Gruppenruf zustellst. Du könntest höchstens direkt auf einzelne User zustellen (dann wird das mit dem umlaufend aber schwierig). Wenn es Dir nur darum geht, die User zu überspringen, die abwesend oder DND sind, kannst Du folgende Reg Keys nutzen: Pfad: HKLM\Software\Wow6432Node\Swyx\ippbxsrv\CurrentVersion\Options Typ: DWORD Name: SkipGroupCallMembersWithActiveDoNotDisturb SkipGroupCallMembersWithActiveAway Wert: 1 0 Quote Share this post Link to post Share on other sites
AugustinMarc 0 Report post Posted March 20, 2018 Das ist doch genau das, was ich suche! Ein generelles Reagieren beim Callrouting auf den "Abwesend"-Fall. Großartig! Ich danke Dir!! 0 Quote Share this post Link to post Share on other sites