Jump to content

Tom Wellige

Root Moderator
  • Posts

    4,310
  • Joined

  • Last visited

  • Days Won

    117

 Content Type 

Profiles

SwyxPEDIA Wiki

Zendesk Integration

Persistent Variables

Longest Waiting

VBScript build in functions

GSE build in functions (VBScript)

Server Script API (VBScript)

GSE build in functions (Lua)

Server Script API (Lua)

Function Collection (VBScript)

Function Collection (Lua)

IPS Integration

Jira Service Integration

Forums

Blogs

Downloads

Everything posted by Tom Wellige

  1. Lua → VBScript SwxWare v13.27 This function returns the script entities (user or user group) current date and time. -- get date/time as string local sDateTime = PBXUser.Now() -- in "%d.%m.%Y %H:%M:%S" format -- get date/time as table local tDateTime = PBXUser.Now("*t") -- .sec : number -- .min : number -- .hour : number -- .day : number -- .month : number -- .year : number -- .wday : number -- .yday : number -- .isdst : boolean This function returns a string or a table value. With no parameter given, this function returns the current date and time in "%d.%m.%Y %H:%M:%S" format. With the string parameter "*t" given, this function returns the current date and time in a table format. This is the local time according to the user or group configured location. If no parameter is used, this function is identical to the GSE build-in function CurDateTime().
  2. Lua → VBScript SwxWare v13.27 Returns the type of entity a call routing script is running on. -- check for a user call routing if (PBXScript.Type() == PBXScriptTypeUser) then ... end -- check for a group call routing if (PBXScript.Type() == PBXScriptTypeGroup) then ... end This property returns a number value. The following constants are available to check for the different entities: PBXScriptTypeUser PBXScriptTypeGroup Please read also User or Group context for further information on how to figure if a call routing script runs in a user or user group context.
  3. Lua → VBScript SwxWare v13.27 Returns the SwyxWare internal id of the calling entity. local nID = PBXCall.CallingEntityId() The property returns a number value. If the calling entity is an internal user the id is the SwyxWare internal user id. If the calling entity is a trunk the id is the SwyxWare internal trunk id. You can use PBXCall.CallingEntityType() to figure if the calling entity is a client or trunk.
  4. Lua → VBScript SwxWare v13.27 Returns the type of the calling entity. local nType = PBXCall.CallingEntityType() This function returns a number value. The following constants are available to check for the different entity types: PBXEntityTypeClient (internal call from another user) PBXEntityTypeTrunk (external call via a trunk) You can use PBXCall.CallingEntityId() to receive the SwyxWare internal user or trunk id.
  5. Lua → VBScript SwxWare v13.27 A call routing script can run on a user or a group context. Differ context If the script is running in a user context the PBXUser interface is available while the PBXGroup interface is not. If it is running on a group context the PBXGroup interface is available while the PBXUser interface is not. If your script is used in both contexts (user and group) and needs to make use of PBXUser/PBXGroup functionality, you need to check in which context (type) it is running in to only use PBXUser or PBXGroup functionality accordingly. You can either use the PBXScript.Type() property: -- check for a user call routing if (PBXScript.Type() == PBXScriptTypeUser) then ... end -- check for a group call routing if (PBXScript.Type() == PBXScriptTypeGroup) then ... end or one of two global variables: -- check for a user call routing if (g_bIsUserContext) then ... end -- check for a group call routing if (g_bIsGroupContext) then ... end Conditions Not all offered coditions on the first pages in the Rule Assistant or the within the GSE condition blocks make sense in a group context as a group doesn't have that feature. Here are the differences: Category / Block Condition User Context Group Context Situations / Situation … if my status is set to "Away" + - (returns false) Situations / Situation … if my status is set to "Do not disturb" + - (returns false) Situations / Situation … if the Calender say "I am out of the office" + - (returns false) Situations / Situation … if the Calender say "I am busy" + - (returns false) GSE build-in functions Not all GSE build-in functions make sense in a group context as a group doesn't have that feature. Here are the differences: GSE guild-in function User Context Group Context IpPbx.Away() + - (returns false) IpPbx.DoNotDisturb() + - (returns false) IpPbx.UserFreeStatusText() + - (returns empty string) IsAway() + - (returns false) IsDoNotDisturb() + - (returns false) IsOutlookBusy() + - (returns false) IsOutOfOffice() + - (returns false) RIPIN() + - (returns empty string)
  6. VBScript → Lua SwxWare v13.27 Returns the name of the group the script is running for. Dim sName sName = PBXGroup.Name This function returns a string value.
  7. VBScript → Lua SwxWare v13.27 Returns the SwyxWare internal id of the group the script is running for. Dim nID nID = PBXGroup.GroupID This function returns a long value.
  8. VBScript → Lua SwxWare v13.27 This function returns True if the current caller is a member of the group the script is running for. Dim bMember bMember = PBXGroup.CallerIsMember This function return a boolean value. The return value can be used for authentication purpose, e.g. to unlock certain call routing functionality for members of the current group.
  9. VBScript → Lua SwxWare v13.27 Returns True if all group users are currently busy, i.e. not able to accept another call. Dim bBusy bBusy = PBXGroup.IsBusy This function returns a boolean value. You can also use PBXGroup.IsLoggedIn to check if at least one group user is logged in into SwyxWare with any device.
  10. VBScript → Lua SwxWare v13.27 Returns True if at least one group user is currently logged into SwyxWare with any client. Dim bLoggedIn bLoggedIn = PBXGroup.IsLoggedIn This function returns a boolean value. You can also use PBXGroup.IsBusy to check if all group users are currently busy.
  11. VBScript → Lua SwxWare v13.27 This function returns the script entities (user or user group) current date and time. PBXScript.Now This function returns a datetime value. Unlike the VBScript build-in function Now, which returns the local date and time of the SwyxWare machine, this function returns the current time according to the time-zone the script entity (user or user group) is located in. Please note that for group call routing the default location is used for the used time-zone. The time-zone is configured within the Location settings, and every user or user group is linked to a Location. This function is identical to the GSE build-in function CurDateTime().
  12. VBScript → Lua SwxWare v13.27 Returns the SwyxWare internal id of the calling entity. Dim nID nID = PBXCall.CallingEntityId The property returns a long value. If the calling entity is an internal user the id is the SwyxWare internal user id. If the calling entity is a trunk the id is the SwyxWare internal trunk id. You can use PBXCall.CallingEntityType to figure if the calling entity is a client or trunk.
  13. VBScript → Lua SwxWare v13.27 Returns the type of the calling entity. Dim nType nType = PBXCall.CallingEntityType This property return an integer value. The following constants are available to check for the different entity types: PBXEntityTypeClient (internal call from another user) PBXEntityTypeTrunk (external call via a trunk) You can use PBXCall.CallingEntityId to receive the SwyxWare internal user or trunk id.
  14. VBScript → Lua SwxWare v13.27 Returns the type of entity a call routing script is running on. ' check for a user call routing if PBXScript.Type = PBXScriptTypeUser then ... end if ' check for a group call routing if PBXScript.Type = PBXScriptTypeGroup then ... end if This property returns an integer value. The following constants are available to check for the different entities: PBXScriptTypeUser PBXScriptTypeGroup Please read also User or Group context for further information on how to figure if a call routing script runs in a user or user group context.
  15. VBScript → Lua SwxWare v13.27 A call routing script can run on a user or a group context. Differ context If the script is running in a user context the PBXUser interface is available while the PBXGroup interface is not. If it is running on a group context the PBXGroup interface is available while the PBXUser interface is not. If your script is used in both contexts (user and group) and needs to make use of PBXUser/PBXGroup functionality, you need to check in which context (type) it is running in to only use PBXUser or PBXGroup functionality accordingly. You can either use the PBXScript.Type property: ' check for a user call routing if PBXScript.Type = PBXScriptTypeUser then ... end if ' check for a group call routing if PBXScript.Type = PBXScriptTypeGroup then ... end if or one of two global variables: ' check for a user call routing if g_bIsUserContext then ... end if ' check for a group call routing if g_bIsGroupContext then ... end if Conditions Not all offered conditions on the first pages in the Rule Assistant or the within the GSE condition blocks make sense in a group context as a group doesn't have that feature. Here are the differences: Category / Block Condition User Context Group Context Situations / Situation … if my status is set to "Away" + - (returns false) Situations / Situation … if my status is set to "Do not disturb" + - (returns false) Situations / Situation … if the Calender say "I am out of the office" + - (returns false) Situations / Situation … if the Calender say "I am busy" + - (returns false) GSE build-in funtions Not all GSE build-in functions make sense in a group context as a group doesn't have that feature. Here are the differences: GSE guild-in function User Context Group Context IpPbx.Away + - (returns false) IpPbx.DoNotDisturb + - (returns false) IpPbx.UserFreeStatusText + - (returns empty string) IsAway + - (returns false) IsDoNotDisturb + - (returns false) IsOutlookBusy + - (returns false) IsOutOfOffice + - (returns false) PIN + - (returns empty string)
  16. Gern geschehen, und Dir auch ein schönes langes WE
  17. Du kannst Dir die Datei direkt aus der SwyxWare Datenbank herunter laden. Dazu musst Du nur wissen, unter welchem Benutzer Du sie aufgenommen hast, und Du brauchst Zugriff auf die SwyxWare Administration. In der Administration öffnest Du die Eigenschaften des Servers, gehst auf die Dateien Seite, und klickst auf Bearbeiten... Nun stellst Du den Filter auf Benutzerdateien anzeigen, wählst Deinen Benutzer aus, markierst die Datei die Du herunterladen möchtest und klickst auf Speichern unter...
  18. Ich würde erstmal warten wollen bis ich eine Antwort auf meinen Report bekomme. Ich gebe Dir auf alle Fälle Bescheid, wenn ich mehr weiss.
  19. Die "PostDialingDigits" waren auch mein erster Gedanke. Da ich aber nicht wusste, ob an dem Telefon immer jemand ist, der auch umschalten kann, habe ich mich für das Umschalten wie oben entschieden. Das erfordert nicht, dass jemand am Telefon sitzt und per Namenstaste umschaltet. Was Deinen Code angeht: da Du ja von einer Namenstaste aus wählst, d.h. per Blockwahl, brauchst Du im Skript nicht mehr max. 3 Sekunden darauf zu warten, ob Du alles zusammen gesammelt hast. Es kommt ja immer in einem Rutsch und es wird nicht von Hand nachgewählt. Was das Problem des setzens der Nummer angeht: ich habe das gerade bei mir nachstellen können und auch bereits als Bug gemeldet.
  20. Statt des MEM könntest Du auch das Parallelruf Feature verwenden. Ich denke, das sollte keinen Unterschied machen, beides kann vom Call Routing aus manipuliert werden. Ich würde das ganze wie folgt angehen: - ein Call Routing Skript für den Benutzr hinter dem Yealink anlegen - ein "Skript Code einfügen" verwenden, und folgenden Code einfügen: Dim sNumber sNumber = IpPbx.CallingNumber if (sNumber = "00176111111") or _ (sNumber = "00176222222") or _ (sNumber = "00176333333") or _ (sNumber = "00176444444") or _ (sNumber = "00176555555") or _ (sNumber = "00176666666") then UseExit = 1 else UseExit = 0 end if Du musst dann auf dem "Verbindungen" Reiter in den Eigenschaften dieses Bocks noch den Ausgang "1" sichtbar machen. Und natürlich die richtigen Handynummern der 6 Kollegen eintragen. Wenn nun einer der Kollegen von seinem Handy aus anruft, dann kommst Du durch den "1" Ausgang raus. Bei jedem anderen Anrufer durch den "Vorgabe" Ausgang. "Vorgabe" Ausgang: - "Durchstellen" Block auf das "ursprüngliche Ziel" - Timeout Ausgang mit zweitem "Durchstellen" Block verbinden, der zum Büroleiter durchstellt "1" Ausgang: - ein "Skript Code einfügen" verwenden, und folgenden Code einfügen: select case sNumber case "00176111111" PBXUser.EnableParallelCall = True PBXUser.ParallelCallNumbers = "00176111111" case "00176222222" PBXUser.EnableParallelCall = True PBXUser.ParallelCallNumbers = "00176222222" case "00176333333" PBXUser.EnableParallelCall = True PBXUser.ParallelCallNumbers = "00176333333" case "00176444444" PBXUser.EnableParallelCall = True PBXUser.ParallelCallNumbers = "00176444444" case "00176555555" PBXUser.EnableParallelCall = True PBXUser.ParallelCallNumbers = "00176555555" case "00176666666" PBXUser.EnableParallelCall = True PBXUser.ParallelCallNumbers = "00176666666" end select Auch hier muss Du jeweils die richtigen Handnummern der Kollegen in den 6 "case" Fällen eintragen. Hinter den "Script Code einfügen" Block setzt Du nun einen "Ruf beenden" Block. Ergebnis: - wenn einer der 6 Kollegen anruft, setzt er seine eigene Handynummer als Parallelruf Nummer. Da der Ruf nicht verbunden wird, fallen dem Kollegen auch keine Kosten an. - wenn irgendwer sonst anruft, klingelt es auf dem Yealink Telefon und der aktuell gesetzten Handynummer. Wenn da keiner dran geht, landet der Ruf beim Büroleiter. Eine einfachere Lösung in der Anwendung als auch in der Konfiguration kann ich mir gerade nicht vorstellen.
  21. Der Fehler tritt in der "db.Open sDsn" Zeile auf. Wie gesagt, leider gibt es dazu im Augenblick keine ordentliche Fehlermeldung im Trace. Es gibt aber natürlich trotzdem einige Ansatzpunkte: Hat der Windows Benutzer unter dem der SwyxServer Dienst läuft (typischerweise "SwyxServiceAccount") vollen read/write Zugriff auf die "c:\GSE\plzDB.mdb" Datei ? Da es sich um eine Access "Datenbank" handelt: Access darf nicht gestartet sein, wenn Du versuchst vom Call Routing aus darauf zuzugreifen. Wenn Du die Möglichkeit hast, solltest Du die Datenbank auf alle Fälle in einen echten SQL Server umziehen. Dort kann eine Datenbank von mehreren Seiten gleichzeitig verwendet werden. Und ganz wichtig: wenn das Problem erstmal gelöst ist, musst Du noch weiteren Code (z.B. in den Start Block) einfügen: ' CursorTypeEnum Values Const adOpenForwardOnly = 0 Const adOpenKeyset = 1 Const adOpenDynamic = 2 Const adOpenStatic = 3 ' LockTypeEnum Values Const adLockReadOnly = 1 Const adLockPessimistic = 2 Const adLockOptimistic = 3 Const adLockBatchOptimistic = 4 ' CommandTypeEnum Values Const adCmdUnknown = &H0008 Const adCmdText = &H0001 Const adCmdTable = &H0002 Const adCmdStoredProc = &H0004
  22. Wenn Du die Dim Anweisungen in den Start Block verschoben hast, dann musst Du sie aus dem anderen Code auch heraus nehmen. Sonst versuchst Du eine Variable doppelt zu deklarieren, was nicht zulässig ist.
  23. Leider gibt es aktuell einen Bug in der SwyxWare, der bei VBSkript Laufzeitfehlern dazui führt, dass er originale Fehlertext nicht ins Trace geschrieben wird. Die Zeilen "~Src" und "~Desc" sollten eigentlich vernünftigen Text enthalten. Ich will mal versuchen, ohne eine Fehlerbeschreibung weiter zu kommen... Eine Eigenart der Microsodt Scripting Engine ist es, bei Laufzeitfehlern in "~Source code" nicht die Fehlerzeile anzuzeigen, sondern die Zeile eins über der Fehlerzeile. In der .rse Datei die Du oben angehängt hattest, finde ich in den Skript Code Blöcken keinen Fehler unter der angegebenen Zeile. Hast Du da evtl. aus Versehen in einem der Blöcke etwas kaputt gemacht?
  24. Wie wäre es mit einer einfachen Call Routing Regel bei dem Benutzer, die den Status auf "abgemeldet" prüft und den Ruf dann auf die gewünschte Gruppe zustellt. Diese Regel sollte dann über allen anderen Regeln in Liste der Call Routing Regeln stehen.
  25. Unter dem Motto „Digitalisierung. Klar gemacht.“ bot das Online-Event Update23 Partnern und interessierten Händlern einen umfassenden Überblick über die neuesten Entwicklungen bei Enreach und aktuelle Trends rund um das Lösungsangebot des Anbieters. Im Mittelpunkt des Partner-Events standen konkrete, praxisnahe Lösungen für Kommunikation und Zusammenarbeit im Mittelstand – um die Umsetzung von Digitalisierung einfacher zu machen. Enreach stellte unter anderem eine neue Multi-Channel-Kommunikationslösung vor sowie smarte, KI-basierte Sprachassistenten für verschiedene Anwendungsszenarien, mit denen Unternehmen ihren Kundenservice optimieren und zugleich effizient gestalten können. Auch exklusive Einblicke in die Unternehmens- und Produktstrategie standen auf dem Programm. Neuheiten: Multi-Channel-Kommunikation und Künstliche Intelligenz Mit dem neuen Social Messaging bietet Enreach ab sofort eine leistungsstarke Multi-Channel-Kommunikationslösung, die Unternehmen ermöglicht gängige Plattformen wie WhatsApp, Facebook, Instagram und Slack in ihre Kundenkommunikation einzubinden und Anfragen effizient zu beantworten. Die Lösung bündelt eingehende Nachrichten aus den verschiedenen sozialen Netzwerken in einem Microsoft-Teams-Kanal oder zentralen Posteingang – so behalten Servicemitarbeiter stets den Überblick und können schnell reagieren, ohne zwischen verschiedenen Anwendungen hin- und herwechseln zu müssen. Enreach Partner können die Multi-Channel-Kommunikationslösung ganz einfach für ihre Kunden einrichten. Für die Abrechnung gibt es attraktive Paketpreise basierend auf der Anzahl der Konversationen. Die Lösung ist inklusive eines WhatsApp Business-Accounts buchbar. Außerdem besteht die Möglichkeit, Gesprächsabläufe mithilfe von Bots auf Basis der Enreach KI-Plattform zu automatisieren, und so für weitere Effizienzsteigerungen zu sorgen. Damit Partner vom hohen Interesse an KI-basierten Lösungen profitieren können, gibt es in Kürze von Enreach fertig trainierte Voicebots für häufig vorkommende Anwendungsszenarien. Enreach Partner können die smarten Sprachassistenten über ein übersichtliches Web-Interface mit individuellen Namen, Adressen, Geschäftszeiten und weiteren Einstellungen für ihre Kunden konfigurieren, ohne selbst Zeit in die Bot-Entwicklung zu investieren. Die Voicebots erledigen Routineaufgaben im Bereich Kommunikation hocheffizient, rund um die Uhr, an sieben Tagen pro Woche – damit sich Mitarbeiter auf das konzentrieren können, was wirklich wichtig ist. Nach dem Partner-Event stellt Enreach die fertig entwickelten Bots schrittweise zur Verfügung, beginnend mit einem Reservierungs-Bot für Restaurants. Darauf folgen Sprachassistenten für weitere Einsatzgebiete. Partner können die fertig trainierten Voicebots als Zusatzoption zu einer Enreach Kommunikationslösung oder als Stand-Alone-Produkt anbieten. „Mit unserer neuen Social-Messaging-Lösung und den BotApps schaffen Enreach Vertriebspartner echte Mehrwerte für ihre Kunden und können sich neue Zielgruppen erschließen. Unsere Produktneuheiten sind perfekt für alle Unternehmen, die ihren Kunden herausragenden Service bieten wollen. Mit Enreach haben Partner direkt die passenden Lösungen parat, damit ihre Kunden aktuelle Herausforderungen wie Personalmangel, Kostendruck und ein geändertes Kommunikationsverhalten auf Verbraucherseite meistern – und können so die Weichen für langfristigen Erfolg stellen“, sagt Enreach VP Sales Marco Crueger. Optimal integrierte Kommunikation Im Rahmen des Update23 gab Enreach seinen Partnern auch einen Ausblick auf die Weiterentwicklung seiner Kommunikationslösungen. Basierend auf der Technologieplattform, die bereits für den Wholesale-Kanal zum Einsatz kommt, wird ab dem Herbst 2023 die Cloud-Kommunikationslösung Enreach Contact eingeführt. Die Lösung bietet eine Reihe von neuen Funktionen wie das intelligente Smart-IVR-Dialogsystem, interaktive Sprachauswahl und Chat-Übersetzung bei mehrsprachiger Kommunikation oder dynamisches Call Routing. Auf dem Partner-Event zeigte Enreach auch die geplanten Verbesserungen und Ergänzungen der Swyx Kommunikationslösung bis hin zu Version 14 mit neuen, nativen Mobile Apps für Android und iOS, einem alternativen Windows-Client und der weiteren Optimierung der Microsoft Teams Integration. „Alle Weiterentwicklungen stehen im Zeichen einer konsequenten Erweiterung unserer UC-Lösungen zu intelligenten Plattformen für optimal integrierte Kommunikation – von Voice und Chat bis hin zu vielfältigen Möglichkeiten, um Prozesse zu automatisieren und damit zu optimieren“, erläutert Enreach Geschäftsführer Christoph Wichmann. Ausgezeichnete Partner Abgerundet wurde das Programm durch die Verleihung der Partner Awards für besondere Leistungen. Insgesamt konnten sich 25 Partner aus Deutschland, Österreich und der Schweiz über eine der begehrten Auszeichnungen freuen. Die ausgezeichneten Partner im Überblick: In Deutschland: 3iMedia GmbH Albwerk Elektro- und Kommunikationstechnik GmbH CubeOffice GmbH & Co.KG ems.IT Systems GmbH ESP.GROUP GmbH Frings Informatic Solutions GmbH GREEN IT Das Systemhaus GmbH Infotech GmbH ITK NetSolutions GmbH Jens Verlaat Sales GmbH Nachrichtentechnik Bielefeld GmbH Netgo GmbH NetPlans GmbH Sector 27 GmbH Schuster & Walther IT-Gruppe Team-IT Systemhaus GmbH Telenova GmbH WAHLCOM GmbH Zirzlmeier IT GmbH In Österreich: Data-Way IT-Consulting GmbH In der Schweiz: it2day AG Pressemitteilung auf enreach.de
×
×
  • 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.