VBScript Example - Request the status of any user

Kommentare

6 Kommentare

  • Avatar
    Christoph Hünting

    Wie verhält sich dies bei Gruppen? Wird hier nur der Status des zuletzt abgefragten Users in der Gruppe zurückgegeben?

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Tom Wellige

    Das ist korrekt. Die Funktionen hat den Fokus auf Benutzern, nicht auf Gruppen.

    Selbstverständlich kann mittels "g_PBXConfig.GetUserByAddress" auch eine Gruppe aufgelöst und ausgewertet werden.

    Ein Beispiel dazu, "IsGroupLoggedOff", findest Du in der VBScript Funktionssammlung i(Function Collection) im Swyx Forum Archiv:

    https://www.swyxforum.com/archive/archive_references.html

     

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Christoph Hünting

    Vielen Dank für deine Rückmeldung, Tom!

    Ich suche eine Lösung, um auszuwerten, ob in der Gruppe alle auf Abwesend oder DND stehen.

    Muss ich, wenn die Funktion PBXGroup.IsBusy nutzen will, diese als Callrouting auf der eigentlichen Gruppe ausführen?

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Tom Wellige

    "Muss ich, wenn die Funktion PBXGroup.IsBusy nutzen will, diese als Callrouting auf der eigentlichen Gruppe ausführen?"
    Ja! Das PBXGroup Objekt gibt es nur in einem Gruppen Call Routing. Und es gibt Dir auch nur den Status der Gruppe zurück, auf der das Call Routing gerade läuft.

    Deine Anforderung lässt sich aber schnell und einfach mit der vorhin genannten Funktionen umsetzen. Da mussen dann nur andere Status Werte abgefragt werden. 

    Was genau ist denn die Anforderung: Du willst wissen, ob alle Benutzer in der Gruppe entweder Abwesend oder DND sind. Was ist mir nicht angemeldet und besetzt?

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Christoph Hünting

    Danke für die Rückmeldung!

    Der VG-Abwurf passiert leider nur, wenn in der Gruppe alle Agenten abgemeldet sind.

    Sobald einer auf Abwesend oder Nicht-Stören steht, wartet der Anrufer, was nicht gut ist.

    Bei Besetzt kann ich das nachvollziehen.

    Deswegen wollten wir jetzt vor dem Zustellen auf die VG prüfen, ob in der Gruppe alle auf Abwesend/DND/Offline stehen. Falls ja, wird direkt auf der dahinterliegenden VG mit mehreren Benutzern zugestellt. Ist jemand auf grün oder im Telefonat, kann ruhig zugestellt werden.

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Tom Wellige

    Ich habe die IsGroupLoggedOff Funktion mal ein wenig angepasst:

    ''-------------------------------------------------------------------
    '' Name:     IsGroupAwayOrDND
    ''           ================
    ''
    '' Checks if all members of a given SwyxWare user group are either in Away or DND.
    ''
    '' return value:
    ''      integer     True  - all members of the given group are Away or DND
    ''                  False - at least one member of the given group is not Away or DND
    ''--------------------------------------------------------------------
    Function IsGroupAwayOrDND ( sNumber )

        PBXScript.OutputTrace("-------------> IsGroupAwayOrDND ( sNumber = " & sNumber & " )")

      Dim bReturn
      bReturn = True ' assume all users are DND or Away until proven otherwise

      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)

            ' user logged in?
          IfUser.State > 1Then
              ' user not away and not dnd?
              If (User.State <> 6) And (User.State <> 7) Then
                  PBXScript.OutputTrace("User " & User.Name & " is not DND or Away, return false")
                  bReturn = False
                  Exit For
              End If
          End If

        Next

      IsGroupAwayOrDND = bReturn

        PBXScript.OutputTrace("bReturn = " & bReturn)
      PBXScript.OutputTrace("<------------- IsGroupAwayOrDND")

    End Function

     

    0
    Aktionen für Kommentare Permalink

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.