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

Posts posted by Tom Wellige

  1. This post is taken from the Swyx Forum Archive (2007-2014) and was originally posted 27.04.2010 by me

     

     

    EDIT 02.2021: beside the following function you might also want to take a look on the

    -> PBXScript.WebRequest

    which was added with SwyxWare 12.40

     

    This function calls (launches) a given URL (http request) and returns True if the request returns without error.

     

     

    Please find the LaunchHTTPRequest function in the Function Collection (VBScript) and Function Collection (Lua) area of the Programming References section of the SwyxPEDIA here on Swyx Forum. 

     

     

  2. The following forum topic is restored from the Swyx Forum Archive (2007-2014)

     

    Quote

    25.03.2011 11:12:23, joekske

     

    Hi all,

    I have created a group and added some users. When all the users of the group aren't loged in I want to set a forwarding. When I look at the properties of the group I don't see a call routing possibility. Is this somthing that can be done in swyx?

    thanks for the help.

    joekske

     

    Quote

    25.03.2011 13:59:26, Tom Wellige

     

    SwyxWare user groups do not have an own call routing, which would be needed right now.


    But fortunately that's not much of a problem:

    • create a new (dummy) user (as no one logs in on this user no additional user licenses is needed!)
    • configure the number you wanted to use for the group to this user
    • create the needed call routing on this user which finally connects the call to the group

     

    In your case the call routing would be rather simple:

    • use a Connect To block within the GSE to connect the call to the group
    • the exit Connected will be reached if the call was connected (you can use PBXCall.ConnectedName and/or PBXCall.ConnectedNumber to check which group member took the call)
    • the exit Busy will be reached if all logged in users in the group are busy (or have their lines disabled)
    • the exit Timeout will be reached if after the configured time the call wasn't taken by anyone in the group
    • the exit Not delivered will be reached if no one in the group is logged in

     

    What ever you need to do in each of these case, just build it right behind that initial Connect To block.
    You couldn't have more flexibility 🙂
    Tom.

     

  3. On 6/20/2019 at 2:18 PM, Fabian L said:

    Außerdem hat Berlin seit diesem Jahr mit dem 8.3. einen neuen Feiertag (Weltfrauentag) - Den habe ich ebenfalls ergänzt, bin mir aber nicht sicher ob ich den korrekt ergänzt habe, wäre schön wenn du da nochmal drüber schauen könntest.

     

    Hi Fabian,

     

    danke für die Erweiterungen/Fixes. Das mit dem Weltfrauentag ist richtig implementiert. Ich habe die Änderungen in den ersten Post in diesem Topic übernommen.

     

    Viele Grüße, Tom.

     

  4. This post is taken from the Swyx Forum Archive (2007-2014) and was originally posted 12.08.2010 by me

     

    The following function fills a VBScript array with the names of a files in a given folder. The names contain the complete path.

    It can be used for example, to get a list of announcement (.wav) files in a folder to play them one after each other. See example code below...

    To use the function within your call routing script, just copy&paste it into the "Start" block.

     

    Please find the GetFilesInFolder function in the Function Collection (VBScript) area of the Programming References section of the SwyxPEDIA here on Swyx Forum. 

     

     

  5. As you use more of less the same function for both cases (Azubi, Buero) I would just place the following function in the "Start" block and use a "Variable auswerten" block to call it:

     

     

    Please find the IsGroupLoggedOff function in the Function Collection (VBScript) and Function Collection (Lua) area of the Programming References section of the SwyxPEDIA here on Swyx Forum. 

     

     

    And instead of hard coding the numbers of the group members into the code, I would create a SwyxWare user groups with the desired users in them and call the above function with the group number (or name) as parameter.

     

  6. Since the first post in this topic the forum archive got hacked 3 more times. It took me always quite some time to get the old content management system back to work. 

     

    At the moment the archive is again in a hacked state for about 3 weeks. 

     

    So instead of continuing to waste my time for just getting hacked the other day/week again, I decided to give the archive of the old forum up. 

     

    Yes, this will cut some old stuff from being available, but over the last years I have moved the most important parts over into the current forum anyway. 

     

    Over the next few days I will remove all links from the current forum into the archive. If Goggle still finds it, you will end up in a none working website anyway. 

     

    Sorry for the inconvenience, but as there isn't anythimg I can do against getting hacked, this is the only reasonable thing to do.

     

     

  7. You might have read the Swyx press release lately, announcing the Swyx Chat and the Swyx Community.

     

    In case you missed it, you can find it on the Swyx Forum web page, as of course also on the Swyx web page.

     

    Go and have a look:

     

     

     

    To make it clear: the Swyx Community will not replace the Swyx Forum. The Swyx Forum with its 12 years of history and tons of interesting discussions, suggestions, tips and solutions will stay as it is and continue to provide community services (forum, projects, downloads) to everyone who is interested in SwyxWare (in all its flavors).

     

    Nevertheless, the new Swyx Community is an interesting project and deserves all attention it can get. In the end there is only one thing that really matters (which has also been the main goal of Swyx Forum from the beginning) getting answers to questions and solutions for problems. There is no difference if that happens here or there. 

     

  8. Hi all,

     

    there have been massive dumps of hacked data lately. These dumps contain billions of email addresses and passwords of hacked accounts from the last years.

     

    Here you can find details on this:

     

    If you want to know if your email is included in those dumps you can use the following page. It searches a given email address in all dumps and sends a detailed report to that email address, containing all available information.

     

    The lesson to learn from all this is to use different secure passwords in all your online accounts as also 2 factor authentication where ever possible.

     

    Luckily Swyx Forum provides such 2 factor authentication. More about that can be found here:

     

     

    Stay safe!

     

  9. The forum archive (content from the year 2007-2014) is currently not reachable. It seems if got hacked (one of the reasons why I switched to another CMS in 2014).

    I will see to get it back as quickly as possible, but can't promise any time frame at the moment.

     

  10. Das sollte kein größeres Problem sein. Ab Zeile 91 findest Du folgenden Code:

     

    dim sTemp
    sTemp = GetCmdLine(lineIdx)
    sTemp = Replace(sTemp,"%num%",Escape(clmgr.DispGetLine(lineIdx).DispPeerNumber))
    sTemp = Replace(sTemp,"%name%",Escape(clmgr.DispGetLine(lineIdx).DispPeerName))
    WScript.Echo "New call, execute " & sTemp
    oWshShell.Run sTemp
    

     

    Ändere den einfach wie folgt um (copy&paste):

     

    dim sNum
    sNum  = clmgr.DispGetLine(lineIdx).DispPeerNumber
    if Left(sNum, 1) = "0" then sNum = Right(sNum, Len(sNum)-1)
    dim sTemp
    sTemp = GetCmdLine(lineIdx)
    sTemp = Replace(sTemp,"%num%",Escape(sNum))
    sTemp = Replace(sTemp,"%name%",Escape(clmgr.DispGetLine(lineIdx).DispPeerName))
    WScript.Echo "New call, execute " & sTemp
    oWshShell.Run sTemp
    

     

    Wenn die Telefonnummer eine führende Null hat, wird diese einfach abgeschnitten.

     

  11. What's New in Version 1.1.0:


    This update replaces v1.0.0 of this extension (former name was: Ticket Validation against Zendesk).

     

    The new version provides Zendesk ticket functionality to the SwyxWare call routing:

    • Check the current status of a Zendesk ticket
    • Create a new Zendesk ticket
    • Update an existing Zendesk ticket
    • Zendesk SwyxIt! button to open the Zendesk ticket directly with a mouse click within SwyxIt!
    • Example call routing scripts.

     

     

  12. What's New in Version v1.1.0:

     

    This version comes with the following changes:

    • Persistent Variables can be used now also outside of call routing scripts
    • Examples for external usage have been added:
      ASP (Active Server Page) web page
      WSF (Windows Scripting Host File) file, i.e. VBScript file
    • Added UserID as new property (needed for usage scenarios outside of call routing scripts)
    • The NightSwitch example which was available as single download is now also part of this download

     

     

     

     

  13. Ganz genau.

     

    Lege Dir bei Deinem Testbenutzer eine Regel mit dem Namen PreProcessing an, und füge das Call Routing dort ein. 

     

    Wenn das PreProcessing anschließend global für alle Benutzer gemacht werden soll, sollte die Regel auch mit allen Benutzern umgehen können. D.h. auch immer irgendeinen Weg über "Regel übersprungen" enthalten, damit das Call Routing eines Benutzers (Umleitungen, etc. pp.) noch greifen können.

     

    Wenn die Regel fertig ist und ausreichend getestet wurde, kann Du mit dem IpPbx File Explorer (SwyxWare DVD - Swyx - Tools - File Explorer) die beiden Dateien

    • rulePreProcessing.rse
    • rulePreProcessing.vbs

    aus dem USER Scope des Testbenutzers lokal auf Deinen Rechner herunter laden.

     

    Im nächsten Schritt lädst Du die beiden Datein wieder hoch, nun aber in den GLOBAL Scope.

     

    Ab diesem Augenblick wird die PreProcessing Regel für jeden Anruf auf einen beliebigen Benutzer gestartet.

     

    Wenn etwas nicht klappen sollte, lösche die beiden Dateien aus dem GLOBAL Scope und korrigiere und teste die Regel auf dem Testbenutzer. Anschließend kannst Du sie wieder global hinterlegen.

     

    Wenn Du das global nicht willst, kannst Du die beiden Dateien auch in den USER Scope aller relevanten Benutzer hochladen.

     

  14. Wenn Du willst, kannst Du meinen Vorschlag weiter verfolgen:

    • Nimm Dir einen Testbenutzer und richte ihm eine neue GSE egel ein
    • kopiere den folgenden Code per Copy&Paste in das Textfeld auf der Parameter Seite des Start Blocks
       

      Please find the IsUserInGroup function in the Function Collection (VBScript) and Function Collection (Lua) area of the Programming References section of the SwyxPEDIA here on Swyx Forum. 

       

    • Verbinde den Start Block mit einem Skript Code Block.
    • Auf der Parameter Seite fügst Du folgenden Code ein (alles was dort vorher drin gestanden hat bitte überschreiben!)
      if IsUserInGroup ("AAA") then
      	UseExit = 1
      elseif IsUserInGroup ("BBB") then
      	UseExit = 2
      elseif IsUserInGroup ("CCC") then
      	UseExit = 3
      elseif IsUserInGroup ("DDD") then
      	UseExit = 4
      elseif IsUserInGroup ("EEE") then
      	UseExit = 5
      else
      	UseExit = 0
      end if
    • Die AAA, BBB, etc. sind jeweils Gruppennamen oder Gruppennummern (geht beides) wo Du prüfen musst, ob der Testbenutzer dort Mitglied ist. D.h. die kannst/musst Du entsprechend anpassen.
    • Auf der Verbindungen Seite des Skript Code Blocks mußt Du noch weitere Ausgänge (1-5 gemäß Beispielcode) einschalten.
    • Hinter jeden Ausang des Blocks kannst Du nun einen Durchstellen Block setzen, der auf die jeweilige Gruppe zustellt.

     

    Ergebnis sollte sein:

     

    Wenn der aktuelle Skriptbenutzer (Dein Testbenutzer) Mitglied in Gruppe AAA ist, wird der Anrufer an Gruppe AAA durchgestellt. Wenn er Mitglied in Gruppe BBB ist wird der Anrufer an BBB durchgestellt, u.s.w.

     

    Damit kann ein Administrator ganz einfach über die Gruppenzugehörigkeit vom Testbenutzer festlegen, wo es noch überall klingeln soll.

     

    Wenn das das ist was Du brauchst, können wir uns darüber unterhalten, wie Du dieses GSE Regel auf alle relevanten Benutzer verteilt bekommst.

     

     

  15. SQLite3 ist eine kleine Datenbankanwendung die auch unter Windows läuft. Die Software ist kostenlos, sehr klein und einfach anzuwenden.

     

    Eigentlich braucht man nur 3 Dateien:  sqlite3.exe, sqlite3.dll und sqlite3.def. Mit einem Doppelklick auf die exe startet das Programm und sieht so ähnlich wie eine Eingabeaufforderung aus.

     

    Capture.PNG

     

     

    Am Prompt kann man eine bestehende Datenbank öffnen, falls es sie noch nicht gibt wird sie einfach angelegt.

     

    Zum öffnen einer Datenbank gibt man folgendes ein: (der Punkt am Anfang ist wichtig)

     

    sqlite> .open cdr.db

    (wenn die Datenbank  im gleichen Verzeichnis ist wie die SqLite.exe), oder 

     

    sqlite> .open C:\inetpub\wwwroot\opencdr\cdr.db

    Hier liegt unsere Datenbank für OpenCDR.

     

    Wie oben schon erwähnt wird die Datenbank ohne Rückfrage angelegt falls sie noch nicht vorhanden ist.

     

    Zum Ansehen der Daten in der Datenbank ist dieser Befehl:
     

     sqlite> select * from cdr;

     

    Alle Datensätze löscht dieser Befehl:

    sqlite> delete from cdr;

     

    Hier noch schnell ein kompletter Befehlssatz um eine Datenbank anzulegen. 

     

    Das Beispiel ist aus einer weiteren Anwendung von mir wo die Position der Mitglieder eine Gruppe aus der SwyxWare gespeichert werden kann.


    Datenbank anlagen mit dem Namen Members:
     

    sqlite> .open Members.db

    Tabelle Members anlegen mit den Feldern GroupID, UserID und Position:
     

    sqlite> create table Members (GroupID INT, UserID INT, Position INT);

     

    Abfrage der Datenbank (hier noch leer)
     

    sqlite> select * from Members;

     

    Datensatz anlegen:
     

    sqlite> insert into Members values (2,8,0);

     

    Abfrage der Datenbank mit den bereits eingetragenen Werten:
     

    sqlite> select * from Membersr;
    2|8|0
    sqlite>

     

    Abfrage der Datenbank Eigenschaften

    sqlite> .show
            echo: off
             eqp: off
         explain: auto    
         headers: off
            mode: list
       nullvalue: ""
       output: stdout
    colseparator: "|"
    rowseparator: "\n"
           stats: off
           width:
        filename: Members.db
    sqlite>

     

     

  16. Open CDR is the follow-up project of the initial Swyx Web CDR project, that was started in 2007 by Randall Kam but was later on abandoned.

     

    Forum user Mathew picked it up again, extended it and made it as Open CDR available again to the community.

     

    The current state of the project is, that the Open CDR web application is available in English and German language. The added installation script and documentation is for the moment in German language available only.

     

    This is a rough list of all included features:

     

    • Imports SwyxWare/Netphone Call Detail Records (CDR) from the default text file into an own database (SQLite3)
    • Query from/to/destination names and numbers between specific time periods
    • Query between different time periods
    • Query different call states
    • Follow Calls to where they are transferred
    • Export data to MS Excel (via .csv file)
    • Delete data from the database.
    • Includes installation to setup web server and database properly
       

     

    A good overview of the functionality can be found in the documentation.

     

     


     

    Get involved in Swyx Forum projects

     

×
×
  • 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.