Zeking

User Status abfragen (2)

Recommended Posts

Hi zusammen,

auch ich habe in Archiv diese Funktion entdeckt mit User Status.

Leider komme ich gar nicht mal weiter damit.

Ich habe zum testen einen User ausgewählt mit der Durchwahl 12 bzw. Ziel wäre dass der Status abgefragt wird und bei allen zuständen bis auf angemeldet Weiterleitung stattfindet zu der Nebenstelle 653.

Egal was ich versuche, es gelingt mir nicht.

Folgende Vorgehensweise habe ich eingerichtet:

 

-User in der NetPhone-Administration geöffnet(Durchwahl 12)

-Call Routing Manager gestartet

-Mittels Grafischen Skript Editor neue Regel erstellt.

Gleich oben in den Block(siehe Anhang)unter Start den Skript von Herr Welling eingefügt(Skript siehe unten)

Danach Skript Block erstellt Namens "Skript 12"

-Unter Parameter folgendes eingefügt UseExit = UserStatus (12)

Hier kommt schon die Erste Frage an der Stelle ob ich hier richtig bin...Ich habe weitern Block eingeführt Namens "Skript 653" damit ich ebenfalls Status von Durchwahl 635 erfassen kann(muss ich das tun Überhaupt?)Ebenfalls unter Parameter folgendes eingefügt UseExit = UserStatus (635)

Nächstes Block wäre bei mir "635" sozusagen mein Ziel, wenn Nebenstelle 12 ein anderen Zustand als Angemeldet hat soll der Anruf zu der Nebenstelle 635 durchgestellt werden.

Eigentlich relativ einfache Sache aber für mich nicht Lösbar.

Ich habe so viel versucht ohne Erfolg sobald ich Regel aktiviere bekommt die Nebenstelle 12 gar keine Anrufe mehr.

Anbei oben erwähnte Skript den ich unter "Start" einkopiert habe von Herr Wellige

 

Skript Anfang:

 

1.'----------------------------------------------------------------
2.' UserStatus
3.'
4.' Returns the current status of the given user.
5.'
6.' Parameter
7.'    sNumber        user name or extension
8.'
9.' Return
10.'     integer       0 - State Unavailable (no status signalling configured!)
11.'                   1 - Logged Off
12.'                   2 - Logged On (no speaking)
13.'                   3 - Speaking External
14.'                   4 - Alerting
15.'                   5 - Speaking Internal
16.'                   6 - Away (from SwyxWare 2011 on)
17.'                   7 - Do not Disturb (from SwyxWare 2011 on)
18.'----------------------------------------------------------------
19.Function UserStatus(ByVal sNumber)
20.
21.    PBXScript.OutputTrace("-------------> UserStatus ( sNumber = " & sNumber & " )")
22.
23.    Dim nReturn
24.    nReturn = 0
25.
26.    Dim Users
27.    Set Users = g_PBXConfig.GetUserByAddress(sNumber)
28.
29.    Dim User
30.    For Each User In Users
31.
32.        PBXScript.OutputTrace("Found user " & User.Name & " with current state " & User.State)
33.        nReturn = User.State
34.
35.    Next
36.
37.    UserStatus = nReturn
38.
39.    PBXScript.OutputTrace("nReturn = " & nReturn)
40.    PBXScript.OutputTrace("<------------- UserStatus")
41.
42.End Function

 

Skript Ende!

 

Ich hoffe irgendjemand kann mir sagen wo ich Fehler gemacht habe.....

Danke in Voraus für Hilfestellung.

 

Test_Regel.PNG

Share this post


Link to post
Share on other sites

Wie sieht denn der Start Block aus? Sind die Zeilennummern dort auch drin gelandet? 

 

Wenn nein, was genau funktioniert denn nicht?

Share this post


Link to post
Share on other sites

Start Block sieht genauso so aus wie oben abgebildet mit Zeilennummer von 1 bis 42(hier noch mal)

1.'----------------------------------------------------------------
2.' UserStatus
3.'
4.' Returns the current status of the given user.
5.'
6.' Parameter
7.'    sNumber        user name or extension
8.'
9.' Return
10.'     integer       0 - State Unavailable (no status signalling configured!)
11.'                   1 - Logged Off
12.'                   2 - Logged On (no speaking)
13.'                   3 - Speaking External
14.'                   4 - Alerting
15.'                   5 - Speaking Internal
16.'                   6 - Away (from SwyxWare 2011 on)
17.'                   7 - Do not Disturb (from SwyxWare 2011 on)
18.'----------------------------------------------------------------
19.Function UserStatus(ByVal sNumber)
20.
21.    PBXScript.OutputTrace("-------------> UserStatus ( sNumber = " & sNumber & " )")
22.
23.    Dim nReturn
24.    nReturn = 0
25.
26.    Dim Users
27.    Set Users = g_PBXConfig.GetUserByAddress(sNumber)
28.
29.    Dim User
30.    For Each User In Users
31.
32.        PBXScript.OutputTrace("Found user " & User.Name & " with current state " & User.State)
33.        nReturn = User.State
34.
35.    Next
36.
37.    UserStatus = nReturn
38.
39.    PBXScript.OutputTrace("nReturn = " & nReturn)
40.    PBXScript.OutputTrace("<------------- UserStatus")
41.
42.End Function

 

 

Sobald ich diese Regel aktiviere dann bin ich mit der Durchwahl 12 gar nicht mehr zu erreichen unabhängig ob NetPhone Cleint angemeldet wäre oder nicht.

VIELEN DANK für Ihre Mühe.

Share this post


Link to post
Share on other sites

Zum besseren Übersicht hänge ich mal mein Export dran(Datei CallRouting.rse).

Ich habe das ganze einfach mal mit einem einzigen Skript versucht leider ohne Erfolg.

Eindeutig Fehler in Skript aber an welche Stelle?

 

CallRouting.rse

Share this post


Link to post
Share on other sites

Die Zeilennummern dürfen dort nicht stehen. 

 

Einfach nochmal alles neu aus diesem Topic kopieren, dort sind keine Zeilennummern enthalten:

 

 

Share this post


Link to post
Share on other sites

Ich habe hier insgesamt mal einen eigenen Topic draus gemacht, weil das Problem mit dem Inhalt der vorherigen Topic nicht wirklich etwas zu tun hatte.

Share this post


Link to post
Share on other sites

Hallo Tom,

vorab vielen Dank für Deine Hilfestellung(solche User braucht diese Welt).

Ich habe es direkt getestet egal welchen Zustand meine Nebenstelle 12 gerade hat es klingelt aktuell trotzdem am Endgerät.

Mein Export habe ich drangehängt. Bin jetzt wirklich am ende.....

Danke vielmals!

Expot angepasst.rse

Share this post


Link to post
Share on other sites

Der gesamte Ansatz sieht irgendwie merkwürdig aus:

 

Capture.PNG

 

- wenn die 12 angemeldet und frei ist wird der Ruf beendet! (der Ausgang "Regel ausgeführt" führt zu diesem Ergebnis)

- in allen anderen Fällen klingelt die 635

 

Das macht die Analyse etwas schwierig. Wenn Du sagst, dass in jedem Fall die 635 erreicht wird, heisst dass, dass Du den Ausgang 2 nicht erreichst, wenn die 12 angelmedet und frei ist.

 

Vermutlich kommst du in dem Fall (und ALLEN anderen Fällen) nicht aus den Ausgängen 1-7 heraus, sondern aus Ausgang 0.

 

Dies bedeutet, dass der Status des Benutzer 12 von dem aktuellen Skript Benutzer nicht abgefragt werden kann, d.h. es ist keine Status Signalisierungs Beziehung zwischen dem Sktipt Benutzer und Bentzer 12 konfiguriert.

 

Auszug aus dem oben verlinkten Topic:

 

Quote

Make sure to have mutual status signalling configured between the call routing script user and the user you request the status from

 

 

Sobald das richtig konfiguriert ist (entweder auf Benutzer oder Gruppen Ebene) sollte die Statusabfrage funktionieren.

 

Allerdings musst Du Dir dann noch einmal gründlich Gedanken machen, ob Du wirklich auflegen willst, wenn der Benzuer 12 frei ist.

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now