Jump to content
Tom Wellige

How to request the status of any user

Recommended Posts

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.

    userstatus1.png
     
  • With having done this you have a block returning the status of the user with the extension 100 on it's exits:

    userstatus2.png
     

 

Enjoy!

 

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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).

Share this post


Link to post
Share on other sites
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.

Callrouting-Zentrale.png

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and have taken note of our Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.