Jump to content

Tom Wellige

Root Moderator
  • Posts

    4,310
  • Joined

  • Last visited

  • Days Won

    117

Community Answers

  1. Tom Wellige's post in Service Hotline einrichten - Anliegen per Mail Anhang (STT) weiterleiten was marked as the answer   
    Hallo,
     
    vielleicht schaust Du Dir mal 
     
    https://ilogixx.de/  
    an. Dort ist alles drin, was Du an Anforderung beschrieben hast. 
     
  2. Tom Wellige's post in Versand einer E-Mail während laufendem Gespräch was marked as the answer   
    Es gibt keinen logischen Grund, weswegen das Call Routing nicht wie gewünscht funktionieren sollte.
     
    Es sei denn im "E-Mail versenden" Block befindet sich ein Fehler, der zu einen VBSkript Laufzeitfehler führt. Wie sieht denn die Parameter Seite des "E-Mail versenden" Blocks aus?
     
     
  3. Tom Wellige's post in Callrouting mit Anrufernummer bei unzustellbaren Rufen was marked as the answer   
    Ich habe das selbst nicht ausprobiert, aber liefern Dir in dieser Situation PBXCall.CallingDeviceType und PBXCall.CallingDeviceName brauchbare Werte?
     
  4. Tom Wellige's post in SwyxOn CallRouting VBScript was marked as the answer   
    Hallo Daniel,
     
    lokale Dateien scheiden bei einer SwyxON leider aus. Auch wenn es definierte Orte gibt, an denen ein Call Routing Skript die nötigen Zugriffsrechte hätte, so kann es im Betrieb durchaus vorkommen, dass die Plattform einen Tenant redeployed, und damit wären eigene Dateien futsch.
     
    Ich würde vorschlagen, Du baust Dir eine kleine Webanwendung (mit Datenbank oder Textdatei im Hintergrund), die eine WebAPI zur Verfügung stellt, über die Du Variablen abfragen oder setzen kannst. Diese Webanwendung hast Du entweder an Eurem Standort oder bei irgendeinem Webhoster.
     
    Vom Call Routing aus kannsr Du dann per WebRequest auf diese API zugreifen, um Deine persistenten Variablen abzufragen/zu setzen.
     
    Dieses Beispiel zeigt, wie Du das im Call Routing verfügbare PBXScript.WebRequest Objekt verwenden kannst. Es gibt auch noch ein zweites Beispiel, welches ein Standard Windows Object (Msxml2.ServerXMLHTTP.3.0) für den WebRequest verwendet.
     
     
  5. Tom Wellige's post in Reset Voicemail Counter was marked as the answer   
    Die im Call Routing eingebaute Loop Erkennung schlägt erst zu, wenn ein Call das 5. Mal beim gleichen Benutzer aufschlägt. 
     
    Dein Call Routing bei A muss auf alle Fälle sicher stellen, dass wenn ein Ruf von B kommt, dass er dann nirgendwo hin weiter geleitet wird, sondern in Deinem Call Routing verbleibt.
     
    Den Benutzer B würde ich als Dummy Benutzer anlegen, der nur das Call Routing enthält, um den Ruf an A zurück zu geben.
     
    Damit A den Ruf sicher als einen "setze meinen Voicemail Zähler zurück" Ruf erkennen kann, würde ich von B aus noch ein paar Nachwahlziffern mit in den Durstellen Block setzen. Also z.B. statt nur "123" (Durchwahl von A) setzt Du "123987". Im Call Routing von A prüfst Du dann mittels PBXCall.PostDialingDigits ob diese "987" sind.
     
    Wenn ja, setzt Du den PBXUser.NumberOfNewVoicemails auf 0 und beendest den Ruf. Wenn nein, mach das normale Call Routing des Benutzers. 
     
  6. Tom Wellige's post in Rufnummer erkennen und ignorieren was marked as the answer   
    Das kannst Du über den Anruf Bedingungs Block machen.
     

     
    Hier kannst Du gezielt nqchfragen, ob es sich um einen internen oder externen Ruf handelt.
     
  7. Tom Wellige's post in Frage zu CheckCallerInTextFile was marked as the answer   
    Das geht schon. Du musst dann in der Textdatei die Nummer aber exakt so hinterlegen, wie sie in der SwyxWare verwendet wird (mit 00 statt +)
    Also z.B.
    00194  
    Die Abfrage selbst muss dann auch angepasst werden, so dass Sie die Anrufernummern "von Links" vergleicht:
     
    If Left(sCaller, Len(sLine)) = sLine Then bReturn = True PBXScript.OutputTrace "Found!" End If  
  8. Tom Wellige's post in Call Routing Manager (VBS) - einfachere Benutzereingabe was marked as the answer   
    Werf doch mal einen Blick in diesen Blog Artikel. Dort wird erklärt, wie Du die gewünschten "GSE Regel Parameter" anlegen und verwenden kannst.
     
     
     
  9. Tom Wellige's post in Durchstellen auf VisualGroup funktioniert nicht was marked as the answer   
    Du musst ganz unten im Durchstellen Block "mit dem Call Routing des Ziels fortfahren" aktivieren.
     
  10. Tom Wellige's post in Benutzer E-Mailadresse im grafischen Script-Editor was marked as the answer   
    Hallo Stefan,
     
    da sehe ich zwei Möglichkeiten:
     
    1.) Alle Benutzer haben in Ihrer Voicemail Konfiguration ihre eigene EMail Adresse hinterlegt. Diese kannst Du dann ganz einfach vom Call Routing aus abfragen:
    PBXUser.VoicemailEMailAddress Der kommende Ruf hat ja das Call Routing des angerufenen Benutzers gestartet. Auch wenn dieses eine globale GSE Aktion aufruft, ist man immer noch im Call Routing dieses Benutzers. Damit bezieht auch in der globalen GSE Aktion das PBXUser Objekt der Server Script API auf den angerufenen Benutzer.
     
     
    2.) Über das PBXConfig Objekt, besser gesagt über die Funktion PBXConfig.GetUserByAddress, der Server Script API kannst Du u.a. die in der SwyxWare Administration hinterlegte EMail Adresse für jeden Benutzer ermitteln:
     
    Kopiere die folgende Funktion in den Start Block der globalen GSE Aktion:
     
    '---------------------------------------------------------------- ' GetUserEMailAddress ' ' Returns the configured email address of the given user. ' ' Parameter: ' sNumber number or name of user ' ' Return: ' string '---------------------------------------------------------------- Function GetUserEMailAddress ( sNumber ) PBXScript.OutputTrace "----------> GetUserEMailAddress" PBXScript.OutputTrace "sNumber = " & sNumber Dim sReturn, oUsers, oUser Set oUsers = g_PBXConfig.GetUserByAddress(sNumber) sReturn = "" For Each oUser In oUsers PBXScript.OutputTrace "Found user '" & oUser.Name & "' with email address '" & oUser.EMailAddress & "'" sReturn = oUser.EMailAddress Next GetUserEMailAddress = sReturn PBXScript.OutputTrace "sReturn = " & sReturn PBXScript.OutputTrace "<---------- GetUserEMailAddress" End Function  
     
    Nun kannst Du die EMail Adresse des aktuellen Skript Benutzer z.B mittels
    GetUserEMailAddress(PBXCall.CalledPartyNumber)  
    ermitteln.
     
    Hier findest Du noch eine Reihe von allgemeinen Hinweisen zum Thema "eigenen VBSkript" Code im Call Routing.
     
    PS: ich habe obige Funktion auch in die VBScript Function Collection aufgenommen.
     
  11. Tom Wellige's post in Automatischer Anruf was marked as the answer   
    Über den folgenden Link kannst Du das aktuelle SwyxIt! Client SDK herunter laden (die 12er Version geht auch für ein SwyxIt! v13):
    https://service.swyx.net/hc/en-gb/articles/360011686580-INFO-SwyxIt-Client-SDK  
    Hier findest Du unter "\Samples\VBS" ein Beispiel mit dem Namen "sample.vbs" welches das SwyxIt! eine angegebene Nummer wählen lässt. 
     
    Dies muss nur doch um "warte 10 Sekunden und lege dann auf" erweitert werden. Das sähe dann in etwa so aus:
     
    Option Explicit Dim PhoneLineMgr : Set PhoneLineMgr = Nothing Dim PhoneLineFocus : Set PhoneLineFocus = Nothing Dim errval Set PhoneLineMgr = Wscript.CreateObject("CLMgr.ClientLineMgr") : CheckError errval = PhoneLineMgr.DispSimpleDial("001191") WScript.Sleep (10000) Set PhoneLineFocus = PhoneLineMgr.DispSelectedLine PhoneLineFocus.DispHookOn() Set PhoneLineFocus = Nothing Set PhoneLineMgr = Nothing Sub CheckError Dim message, errRec If Err = 0 Then Exit Sub message = Err.Source & " " & Hex(Err) & ": " & Err.Description Fail message End Sub Sub Fail(message) Wscript.Echo message Wscript.Quit 2 End Sub  
  12. Tom Wellige's post in Call Routing - interne Weiterleitung externer Anrufe was marked as the answer   
    Hallo Marcel,
     
    zu Deinen Fragen:
     
    1) Das Call Routing hängt grundsätzlich an Benutzern, nicht an Endgeräten oder Gruppen. Wenn Du den Ruf von einem Call Routing aus an einen anderen Benutzer weiter gibst (Durchstellen Block), entscheidest Du selbst, ob dessen Call Routing gestartet werden soll und damit den Ruf komplett übernimmt, der Ruf bei dem anderen Benutzer zwar signalisiert wird, er aber insgesamt in Deinem Call Routing bleibt ("mit dem Call Routing des Ziels fortfahren").
     
    Das Call Routing kann beliebig häufig parallel angerufen werden. Wenn Du den Ruf dann von dort per Durchstellen Block "an das ursprüngliche Ziel" (d.h. an eines des Endgeräte des aktuelle Skript Benutzers) gibst, ist es relevant, wie dessen "Zweitanruf zulassen" Einstellung ist. Unterbindet er Zweitanrufe, dann ist er ab den Durchstellen des ersten Rufes bestzt. Wenn er Zweitanrufe erlaubt, kannst Du vom Call Routing aus beliebig viele Rufe "an das ursprüngliche Ziel" verbinden. Ob das allerdings Sinn macht, musst Du selbst entscheiden.
     
    2) Ein externe Ruf bleibt immer ein extern Ruf, egal wie häufig Du den Ruf mittels Durchstellen Block und "mit dem Call Routing des Ziels fortfahren" an andere Benutzer bzw. deren Call Routing weiter gibts.
     
    2a) Wenn Du einen Ruf an einen anderen Benutzer durchstellst, und nicht möchtest, dass dessen Call Routing gestartet wird, dann setze einfach den Parameter "mit dem Call Routing des fortfahren" in den Eigenschaften des Durchstellen Blocks nicht.
     
    Ergänzende Frage/Antwort: ganz genau so ist es.
     
     
  13. Tom Wellige's post in Callrouting Script zum Nummern "normalisieren" mit RegEx was marked as the answer   
    Das Call Routing der SwyxWare basiert komplett auf VBScript und die Standard Windows Scripting Engine wird zur Ausführung verwendet. D.h. alles was Du in VBScript machen kannst, kannst Du auch im Call Routing machen.
     
    Eine fixe Suche nach "vbscript regexp" bringt Dir etliche Treffer die Dir zeigen, wie reguläre Ausdrücke in VBScript funktionieren, u.a.
    https://www.tutorialspoint.com/vbscript/vbscript_reg_expressions.htm  
     
  14. Tom Wellige's post in Call Routing mit HTTP GET Abfrage was marked as the answer   
    Ich hatte in meiner Funktion in meiner Antwort weiter oben einen kleinen Fehler drin (fehlendes "&" an einer Stelle). Ich hatte die einfach runter geschrieben ohne sie auszuprobieren.
     
    Ich habe den Code oben korrigiert und die Funktion läuft jetzt. Hier ihre Trace Ausgaben:
     
    30 10:28:08.550 0030b4 Info SrvScript 05259788 00000014 SPBXScriptVbs::OutputTrace () --------> GetNumber 30 10:28:08.550 0030b4 Info SrvScript 05259788 00000014 SPBXScriptVbs::OutputTrace () Request URL = https://**********/_export/phonenumber.php?modul=it&number=1 30 10:28:08.638 0030b4 Info SrvScript 05259788 00000014 SPBXScriptVbs::OutputTrace () Response Code = 200 30 10:28:08.638 0030b4 Info SrvScript 05259788 00000014 SPBXScriptVbs::OutputTrace () Response Body = 0178******* 30 10:28:08.638 0030b4 Info SrvScript 05259788 00000014 SPBXScriptVbs::OutputTrace () sReturn = +49178******* 30 10:28:08.638 0030b4 Info SrvScript 05259788 00000014 SPBXScriptVbs::OutputTrace () <-------- GetNumber  
    (ich habe die URL und Nummer unkenntlich gemacht)
     
  15. Tom Wellige's post in Erreichbarkeit für gerade / ungerade Wochen was marked as the answer   
    Hallo Rene,
     
    mit der folgenden Funktion kannst Du ermitteln, ob das gegebene Datum in einer geraden oder ungeraden Woche liegt:
     
    Function IsEvenWeek ( vDate ) PBXScript.OutputTrace "----------> IsEvenWeek ( " & FormatDateTime(vDate) & " )" Dim bReturn, nWeek nWeek = DatePart("ww", vDate, 0, 0) ' vbUseSystemDayOfWeek, vbUseSystem PBXScript.OutputTrace "nWeek = " & nWeek bReturn = (nWeek Mod 2 = 0) IsEvenWeek = bReturn PBXScript.OutputTrace "bReturn = " & bReturn PBXScript.OutputTrace "<---------- IsEvenWeek" End Function  
    Kopiere den kompletten Code in die Parameter Seite des Start Blocks des GSE Skriptes.
     

     
     
    Nun kannst Du mit dem Variable auswerten Block das aktuelle Datum überprüfen, und anschliessend den Ruf Deiner Anforderung entsprechend zustellen:
     

     
     

     
     
    Ich hoffe damit kommst Du weiter?
     
  16. Tom Wellige's post in Access SQL Server was marked as the answer   
    There is a "Set" missig in front of
     
    Query = CreateObject("ADODB.Recordset")  
    Also, please take a look into the CheckCallerInDatabase example from the Function Collection to see how you can do error tracing and error handling.
     
    When dealing with external data sources (e.g. files or databases) this is sort of mandatory.
     
     
    Your function returns at the end a closed recordset which you will not be able to access anymore. You should do all the needed data handling within your function, so you will be able to close the recordset in the end properly without anything else fails afterwards because of this.
     
  17. Tom Wellige's post in VB-Script parallel zur Ansage ausführen was marked as the answer   
    Hi Joern,
     
    Deine BEIDEN Probleme lassen sich einfach lösen
     
    1) Mit dem Halten Block kannst Du den Ruf ins halten setzen und dem Anrufer einer Ansage abspielen. Du kommst allerdings umgehend wieder aus dem Halten Block raus und kannst das machen, was zeitaufwendig ist, d.h. Deine Webrequests. Wenn Du damit fertig bist und die Ansage für den Anrufer beenden willst, gehe einfach in den Aktivieren Block.
     
    2) Die Zahlen Ansagen: Du scheinst ja ohnehin schon eigene Ansagen für die Zahlen 0-9 zu haben. Benenne die Dateien zero.wav, one.wav, two.wav, usw. und lade sie in den USER Scope Deine Script Benutzers. Jetzt kannst Du auch wieder den Zahlenfolge ansagen Block benutzen. Der verwendet die Dateien zero.wav, one.wav, .etc und findest diese nun im USER Scope und nicht erst die von der SwyxWare mitgelieferten Dateien im SYSTEM Default Scope.
     
     
    Tom.
  18. Tom Wellige's post in Figuring out Email adress of Caller (Internal) was marked as the answer   
    I just figured that you have a typo in your property name. It is "EMailAddress", not "EMailAdress".
     
    I have also streamlined your code a little bit. As there is already a global PBXConfig object available, there is no need to instantiate your own one:
     
    Function EMAIL(sNumber) PBXScript.OutputTrace "--------->EMAIL(" & sNumber & ")" dim oUsers set oUsers = g_PBXConfig.GetUserByAddress(sNumber) dim oUser, sReturn For Each oUser in oUsers sReturn = oUser.EMailAddress Next EMAIL = sReturn PBXScript.OutputTrace "sReturn = " & sReturn PBXScript.OutputTrace "<-------------EMAIL" End Function  
  19. Tom Wellige's post in Download ohne Zugang zu Partner Net was marked as the answer   
    Hallo Sebastian,
     
    das kann ich nicht nachvollziehen. Die SwyxWare Downloads von hier starten alle ohne dass eine Anmeldung notwendig ist:
     
    https://www.enreach.de/produkte/support/support-downloads.html
     
    Etwas anderes sind die DECT Firmware Versionen. Die sind nur über das Partner Net verfügbar, aber das war schon immer so.
     
  20. Tom Wellige's post in Keine Zielauswahl bei Warteschlange was marked as the answer   
    Das ist eine Einstellung die in den Eigentschaften der Gruppe vorgenommen werden kann.
     
    Per Default ist die Zustellungsart "parallel". Es gibt aber auch noch "umlaufend", "zyklisch" und "zufällig".
  21. Tom Wellige's post in Rufnummernblockierung mit SQL-Datenbank was marked as the answer   
    Mit Hilfe der Traces und der aktuellen .rse Datei sind alle noch vorhandenen Probleme gedunden und gelöst worden.
     
  22. Tom Wellige's post in Globaler Anrufbeantworter was marked as the answer   
    Hallo Chriss,
     
    die SwyxWare hat sehr umfangreiche und flexible Möglichkeiten sich zu 100% an die Ansprüche/Wünsche/Forderungen m Rahnem des Call Routings anpassen zu können. Es gibt nichts was sich nicht implementieren liesse.
     
    Viele Funktionen sind bereits "von der Stange" vorhanden, andere Funktionen können ohne grösseren Aufwand hinzugefügt werden. 
     
    In Bezug auf einen "globalen Anrufbeantworter" würde ich an dieser Stelle auf 2 Link hinweisen wollen:
    A Simple Night Service for Swyx
    https://www.swyxforum.com/topic/4145-simple-night-service-for-swyx/
      Persistent Variables (incl. NightSwitch example)
    https://www.swyxforum.com/topic/2716-persistent-variables/  
    Wenn noch weitere Fragen aufkommen, nur zu  
     
  23. Tom Wellige's post in Archive: How to configure call routing for a group was marked as the answer   
    The following forum topic is restored from the Swyx Forum Archive (2007-2014)
     
     
     
  24. Tom Wellige's post in Archive: Number Blocking was marked as the answer   
    The following wiki topic is restored from the Swyx Forum Archive (2007-2014) and was posted originally at 16.08.2007 by me
     
    Based on the forum posting
    Blocking Numbers from calling into the Swyx  
    explaining how to implement a black list of callers who will be blocked from the SwyxWare, the Swyx Forum user Beni has provided a small video showing this step by step.
     
    https://www.youtube.com/watch?v=NAfhB2f89g8  
     
    Please note that this video is available in German language only.
     
     
  25. Tom Wellige's post in How to switch on/off parallel call in call routing manager? was marked as the answer   
    Yes. The app is available for Android and iOS,
     
     
    Yes.
     
     
    You can ignore that warning. The GSE just figures that you have entered characters and not just a phone number and wanted to remind you that in case you entered the name of a variable which contains the destination number you would have to add a "=" at the beginning of the text field.
     
×
×
  • 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.