Auswertung der öffentlichen IP-Adresse des Windows Desktop Clients möglich?

Hallo zusammen,
ist die Auswertung der öffentlichen IP-Adresse des Windows Desktop Clients möglich?
Beispiel-Szenario:
Ein ankommendes Telefonat auf einer Nebenstelle (z.B. Türsprechstelle) soll bei allen Mitarbeitern signalisiert werden, die aktuell im Büro sind (=feste einheitliche IP-Adresse), nicht jedoch bei allen Mitarbeitern, die aktuell im Homeoffice sind (=diverse IP-Adressen).
Falls es einen Profil-Auslöser (Triggertyp) dafür gäbe, wäre das eine elegante Lösung. Aber vielleicht gibt es eine andere automatische Möglichkeit z.B. in den Teams ?!
Schöne Grüße aus den hohen Norden!

PS: Natürlich können die Mitarbeiter ihr Profil manuell pflegen oder aus Teams ein- und austreten aber das wird nunmal gerne vergessen … :frowning:

1 Like

du kannst per Script und der API die Leute automatisch in ein Team einbuchen bzw. wieder ausbuchen.

1 Like

Hättest du da evtl auch info dazu, wie das geht ? :wink: danke

Ja :wink:

ich poste hier mal unseren Code um Leute abends aus der Support-Queue zu werfen, wenn die sich mal vergessen auszuloggen. Das ist jetzt Code der unter Linux läuft, unter Windows lässt sich mit Powershell sicherlich auch was zaubern.

#eingeloggte User ausfiltern
queueusers=$(curl -s -k -X GET "${baseurl}/services/queue/Support" -H  "accept: */*" -u ${username}:${password} | jq -r '.members[]|select(.loggedin == true)|.agent')
#echo $queueusers
for user in $queueusers; do
    #echo ${user}
    # User per API ausloggen
    curl -s -k -X POST "${baseurl}/services/queue/Support/action" -H  "accept: application/json" -H  "Content-Type: application/json" -d "{\"action\":\"logout\",\"identity\":\"${user}\"}" -u ${username}:${password}
done

So als Idee für den Threadersteller: Prüfe die bekannten Hosts auf die aktuelle IP-Adresse und in Abhängigkeit kann man die Leute dann über die API auch wieder in die Queues hinein hieven.
Die passenden Json kann man sich direkt auch in der interaktiven API Doku zusammenbasteln.
Da mehr Details fehlen ist das auch erst mal eher grob gehalten.

2 Likes

Moin,

das ganze für Powershell sieht in etwa so aus.

$user = "moby"
$token = "abcdefghijklmnopq"
$baseurl = "https://10.10.10.10/myinstance"
$queuename = "MyQueue"

# trust all certificates (local pascom instance)
add-type @"
    using System.Net;
    using System.Security.Cryptography.X509Certificates;
    public class TrustAllCertsPolicy : ICertificatePolicy {
        public bool CheckValidationResult(
            ServicePoint srvPoint, X509Certificate certificate,
            WebRequest request, int certificateProblem) {
            return true;
        }
    }
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

# authorization header for requests
$auth = @{
    Authorization = "Basic $([Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$($user):$($token)")))"
}

# get queue (including members)
$queue = Invoke-RestMethod $baseurl/services/queue/$queuename -Method GET -Headers $auth

# logout active members
foreach ($m in $($queue.members.Where({$_.loggedin})))
{
    Invoke-RestMethod $baseurl/services/queue/$queuename/action -Method POST -Headers $auth -Body (@{
        "action" = "logout"
        "identity" = "$($m.agent)"
        "penalty" = "0"
    } | ConvertTo-Json) -ContentType "application/json"
}

Gruß,
Rapha

3 Likes