INFO

Abfrage von Konfigurations- und Benutzerdaten (inkl. Benutzerstatus) in einem Extended Call Routing Script (kb2910)

Die Information in diesem Artikel betrifft die folgenden Produkte:

  • ab SwyxWare v4.40

[ Zusammenfassung | Information ]


Zusammenfassung

Dieser Artikel beschreibt das PBXConfig Objekt welches im Extended Call Routing dazu genutzt werden kann Konfigurations- und Benutzerstatusinformationen vom SwyxServer abzufragen. Das Objekt steht innerhalb des Call Routings aber auch jeder externen Applikation über seine COM/DCOM Schnittstelle zur Verfügung.


Information

Das Server Script API von SwyxServer (seit SwyxWare v4.40) unterstützt ein Objekt, PBXConfig, welches auf folgende Weise erzeugt wird:

dim oPBXConfig
set oPBXConfig = PBXScript.CreateObject("IpPBxSrv.PBXConfig")
oPBXConfig.Initialize PBXUser

Der Aufruf der Initialize Methode ist unbedingt nötig, damit alle Funktionen dieses Objektes zur Verfpgung stehen. Dieses Objekt bietet die folgenden Eigenschaften (nur Lese-Zugriff)

CountryCode
AreaCode
PublicAccessPrefix
LongDistanceCallPrefix
InternationalCallPrefix
NumberRangeStart
NumberRangeEnd
NonDeliverableCallsNumber

Diese Eigenschaften entsprechen der Serverkonfiguration, wie sie über die Server-Eigenschaften der SwyxWare-Administration eingestellt werden können. Zusätzlich bietet PBXConfig die Methode GetUserByAddress.

dim oUsers
set oUsers = oPBXConfig.GetUserByAddress("101")

Diese Funktion liefert eine Liste von PBXUser Objekten, die die angegebene Adresse (Beispiel: 101) haben. Ist die Adresse eine interne Nummer, ein Benutzername, ein H.323 Alias oder eine SIP UserID enthält die zurückgegebene Liste den zugehörigen Benutzer. Ist die Adresse eine Gruppenrufnummer oder ein Gruppenname, enthält die Liste alle Gruppenmitglieder.

Die Liste ist eine übliche VBScript-Kollektion, die z.B. auf folgende Weise benutzt werden kann:

dim oUser
for Each oUser in oUsers
' use user object here
next

Das PBXUser Objekt hat folgende Eigenschaften (nur Lesezugriff):

UserID
Name
EMailAddress
DataFolder
State
Numbers

Ab SwyxWare v6.0 bietet das Objekt zusätzlich folgende änderbare Eigenschaft:

NumberOfNewVoicemails

Diese Eigenschaft liefert die Anzahl ungelesener Voicemails des Benutzers, so wie sie in der SwyxWare Datenbank steht. Hinweis: Dieser Wert wird nicht verändert, wenn der Benutzer seine Voicemails mit seinem EMail-Programm direkt abruft, sondern nur, wenn er die Fernabfrage benutzt oder im SwyxIt oder auf dem Telefon die Voicemail-Taste benutzt.

Die ersten vier Eigenschaften sind selbsterklärend, State kann folgende Werte haben:

' user state not available
UserStateUnavailable = 0

' user is logged off
UserStateLoggedOff = 1

' user is logged on
UserStateLoggedOn = 2

' user is speaking, at least one call has an external origination
' or destination
UserStateSpeakingExternal = 3

' a call is currently alerting at one of the user's devices
UserStateAlerting = 4

' user is speaking, none of the calls has an external origination
' or destination
UserStateSpeakingInternal = 5

' user is away (ab SwyxWare 2011)
UserStateAway = 6

' user has do not disturb status (ab SwyxWare 2011)
UserStateDoNotDisturb = 7

Beachten Sie, dass die Statussignalisierung zwischen dem Benutzer dessen Status abgefragt werden soll und dem Benutzer unter dem das aktuelle Skript läuft konfiguriert sein muss (genau wie im SwyxIt!). Wird das PBXConfig Objekt von einer externen Anwendung instantiiert, so muss für die funktionierende Statusabfrage der Windowsbenutzer unter dem diese Anwendung läuft Mitglied der Gruppe der SwyxWare Administratoren auf dem SwyxServer sein.

Numbers ist eine VBScript Kollektion, die alle Nummern enthält, die dem Benutzer zugewiesen sind.

dim n
dim szNumbers
szNumbers = ""
for Each n in oUser.Numbers
    if szNumbers="" then
        szNumbers = n
    else
        szNumbers = szNumbers & ", " & n
    end if
next
PBXScript.OutputTrace "Numbers: " & szNumbers

Ab v6.0x unterscheidet die SwyxWare zwischen internen und externen Nummern eines Benutzers. Die numbers Kollektion enthält die internen Nummern. Es besteht keine Möglichkeit die konfigurierten externen Nummern im Script abzufragen.

Eine Nummer die im globalen Telefonbuch unterdrückt wird, wird auch nicht der numbers Kollektion hinzugefügt.

 

Ein vollständiges Codebeispiel zum Ausprobieren, z.B. im Insert-Script-Block einer GSE-Regel:

dim oPBXConfig
set oPBXConfig = PBXScript.CreateObject("IpPBxSrv.PBXConfig")
oPBXConfig.Initialize PBXUser

'
' server properties
'
PBXScript.OutputTrace "CountryCode: " & oPBXConfig.CountryCode
PBXScript.OutputTrace "AreaCode: " & oPBXConfig.AreaCode
PBXScript.OutputTrace "PublicAccessPrefix: " & oPBXConfig.PublicAccessPrefix
PBXScript.OutputTrace "LongDistanceCallPrefix: " & oPBXConfig.LongDistanceCallPrefix
PBXScript.OutputTrace "InternationalCallPrefix: " & oPBXConfig.InternationalCallPrefix
PBXScript.OutputTrace "NumberRangeStart: " & oPBXConfig.NumberRangeStart
PBXScript.OutputTrace "NumberRangeEnd: " & oPBXConfig.NumberRangeEnd
PBXScript.OutputTrace "NonDeliverableCallsNumber: " & oPBXConfig.NonDeliverableCallsNumber
PBXScript.OutputTrace "VoicemailFromAddress: " & oPBXConfig.VoicemailFromAddress

dim oStatus
set oStatus = oPBXConfig.Status
PBXScript.OutputTrace "LoggedInDevicesCOM : " & oStatus.LoggedInDevicesCOM
PBXScript.OutputTrace "LoggedInDevicesPhone : " & oStatus.LoggedInDevicesPhone
PBXScript.OutputTrace "LoggedInDevicesH323 : " & oStatus.LoggedInDevicesH323
PBXScript.OutputTrace "LoggedInDevicesConferenceMgr : " & oStatus.LoggedInDevicesConferenceMgr
PBXScript.OutputTrace "LoggedInDevicesSIP : " & oStatus.LoggedInDevicesSIP
PBXScript.OutputTrace "ActiveInternalCalls : " & oStatus.ActiveInternalCalls
PBXScript.OutputTrace "ActiveExternalCalls : " & oStatus.ActiveExternalCalls
PBXScript.OutputTrace "MaxLoggedInDevicesCOM : " & oStatus.MaxLoggedInDevicesCOM
PBXScript.OutputTrace "MaxLoggedInDevicesPhone : " & oStatus.MaxLoggedInDevicesPhone
PBXScript.OutputTrace "MaxLoggedInDevicesH323 : " & oStatus.MaxLoggedInDevicesH323
PBXScript.OutputTrace "MaxLoggedInDevicesConferenceMgr : " & oStatus.MaxLoggedInDevicesConferenceMgr
PBXScript.OutputTrace "MaxLoggedInDevicesSIP : " & oStatus.MaxLoggedInDevicesSIP
PBXScript.OutputTrace "MaxActiveInternalCalls : " & oStatus.MaxActiveInternalCalls
PBXScript.OutputTrace "MaxActiveExternalCalls : " & oStatus.MaxActiveExternalCalls

PBXScript.OutputTrace "LoggedInUsers : " & oStatus.LoggedInUsers
PBXScript.OutputTrace "MaxLoggedInUsers : " & oStatus.MaxLoggedInUsers

'
'get users or group members
'
dim oUSers
' You can use user phone numbers, group numbers, user names or group names as
' parameter here
set oUsers = oPBXConfig.GetUserByAddress("101")

dim oUser
for Each oUser in oUsers
    PBXScript.OutputTrace "User: " & oUser.UserID
    PBXScript.OutputTrace "Name: " & oUser.Name
    PBXScript.OutputTrace "EMailAddress: " & oUser.EMailAddress
    PBXScript.OutputTrace "Folder: " & oUser.DataFolder

    ' The following state values are defined
    ' UserStateUnavailable = 0
    ' UserStateLoggedOff = 1
    ' UserStateLoggedOn = 2
    ' UserStateSpeaking = 3 (external)
    ' UserStateAlerting = 4
    ' UserStateSpeakingInternal = 5 (internal)
    ' UserStateAway = 6 (ab SwyxWare 2011)
    ' UserStateDoNotDisturb = 7 (ab SwyxWare 2011)
    PBXScript.OutputTrace "State: " & oUser.State
    dim n
    dim szNumbers
    szNumbers = ""
    for Each n in oUser.Numbers
        if szNumbers="" then
            szNumbers = n
        else
            szNumbers = szNumbers & ", " & n
        end if
    next
    PBXScript.OutputTrace "Numbers: " & szNumbers
next

 

 


Kommentar

Hat Ihnen dieser Artikel weitergeholfen? Kommentieren Sie diesen Artikel



Sollten sich Fragen aus Ihrem Kommentar ergeben, wie können wir Sie erreichen?

E-Mail Adresse (optional)


Hinweis

Dieses Kommentar-Feld steht Ihnen nicht für Support-Anfragen zur Verfügung. Diese richten Sie bitte ausschliesslich an Ihren Swyx Händler bzw. Distributor.


Änderungen

Erstellt: 02.03.2005, Letzte Änderung: 12.05.2011


  • 27.02.2007: Artikel umbenannt, "UserStateSpeakingInternal" hinzugefügt, Hinweis bzgl. interne/externe Nummern hinzugefügt.
  • 26.04.2007: NumberOfNewVoicemails Eigenschaft hinzugefügt.
  • 12.02.2008: Hinweis auf unterdückte Nummern im globalen Telefonbuch hinzugefügt.
  • 12.05.2011: Neue Benutzer Statuswerte für SwyxWare 2011 hinzugefügt.