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. The following forum topic is restored from the Swyx Forum Archive (2007-2014) Die von Dir aufgelisteten Objekte befinden sich auf dem Server im Call Routing. Mit denen kannst Du auf dem Client nichts tun. Das Client SDK sollte Dir helfen! Tom.
  2. Enreach, the fast-growing European UC provider, strengthens its position in the European IT and telecommunications markets with the acquisition of M Mobility A/S (‘M Mobility’), a dedicated full-service provider of B2B telco solutions to small and medium-sized enterprises (‘SME’) in Denmark. Founded in 2010, M Mobility provides telco services and hardware which are bundled together in customised solutions. Expanding Danish business With the acquisition of M Mobility, Enreach, supported by pan-European investment company Waterland, significantly grows its Danish footprint. Adding to its successful existing business ipnordic, M Mobility is the second acquisition by Enreach in the Danish B2B telecommunications market this year and helps consolidate its strong position in the SME segment. Stijn Nijhuis, CEO of Enreach: "The acquisition of M Mobility is a great example of our buy and build strategy and the opportunities it brings to our group. This acquisition will expand our presence in the Danish market and help us open up new growth opportunities with customers of M Mobility having access to the enhanced capabilities of ipnordic’s product portfolio. Both companies have a strong focus on customer excellence, exemplified by an average response time for customer service of less than 15 seconds. We are therefore very pleased to be able to add M Mobility to our group." One-stop-shop M Mobility acts as a “one-stop-shop”, offering tailored solutions with one-point-of-contact and a single invoice, providing simplicity and a convenient process for the customer. This unique value proposition offers superior customer service that results in a high degree of customer satisfaction. M Mobility will continue to operate independently while leveraging strong group synergies. The company remains based at its current location in Copenhagen, Denmark. Søren Mathiesen Hass, founder and current CEO of the company will continue to work with the business going forward alongside its experienced management team. Søren said: "We are delighted to become a part of Enreach and contribute to the group’s mission of ensuring that businesses have access to the best communication and collaboration tools in order to work more efficiently. At M Mobility, we are dedicated to growing our customer base by being a one-stop-shop for SMEs. Joining Enreach will help facilitate our customers’ growth even further by offering a broader product portfolio and working closely together with ipnordic, we are certain to be in the right position for sustainable future growth in the Danish market." About Enreach Enreach is the parent company of various labels such as Voiceworks, Swyx, ipnordic, Centile, Eazit and Network Telecom. Enreach provides collaboration technology and telecoms services via their reselling partners or direct brands that are transformative for SMEs and the people that work with them. All brands contribute to intelligent, integrated IT and communication solutions that ensure optimal communication and workflow between organisations. Enreach’s mission is to give businesses access to the best communication and collaboration tools with an easy, user-centric interface built around their specific needs and systems. The groups products put powerful features in reach of every business, no matter the industry or size, so their employees can focus on getting amazing things done. Enreach is active in the core markets Germany, the Netherlands and France with activities in 25 countries and more than 750 employees. For more information about Enreach visit www.enreach.com About M Mobility A/S M Mobility A/S is a dedicated full-service provider of B2B telco solutions to small and medium-sized enterprises (“SME”) in Denmark. The company acts as a “one-stop-shop”, offering tailored solutions with one-point-of-contact and a single invoice, implying simplicity and a convenient process for the customer. The offerings include telco services and hardware which are bundled together in customised solutions. Founded in 2010 by CEO Søren Mathiesen Hass, M Mobility has a strong focus on customer excellence and works with a team of approximately 25 employees. Press release on enreach.de
  3. Enreach, the fast-growing European UC provider, strengthens its position in the European IT and telecommunications markets with the acquisition of M Mobility A/S (‘M Mobility’), a dedicated full-service provider of B2B telco solutions to small and medium-sized enterprises (‘SME’) in Denmark. Founded in 2010, M Mobility provides telco services and hardware which are bundled together in customised solutions. Expanding Danish business With the acquisition of M Mobility, Enreach, supported by pan-European investment company Waterland, significantly grows its Danish footprint. Adding to its successful existing business ipnordic, M Mobility is the second acquisition by Enreach in the Danish B2B telecommunications market this year and helps consolidate its strong position in the SME segment. Stijn Nijhuis, CEO of Enreach: "The acquisition of M Mobility is a great example of our buy and build strategy and the opportunities it brings to our group. This acquisition will expand our presence in the Danish market and help us open up new growth opportunities with customers of M Mobility having access to the enhanced capabilities of ipnordic’s product portfolio. Both companies have a strong focus on customer excellence, exemplified by an average response time for customer service of less than 15 seconds. We are therefore very pleased to be able to add M Mobility to our group." One-stop-shop M Mobility acts as a “one-stop-shop”, offering tailored solutions with one-point-of-contact and a single invoice, providing simplicity and a convenient process for the customer. This unique value proposition offers superior customer service that results in a high degree of customer satisfaction. M Mobility will continue to operate independently while leveraging strong group synergies. The company remains based at its current location in Copenhagen, Denmark. Søren Mathiesen Hass, founder and current CEO of the company will continue to work with the business going forward alongside its experienced management team. Søren said: "We are delighted to become a part of Enreach and contribute to the group’s mission of ensuring that businesses have access to the best communication and collaboration tools in order to work more efficiently. At M Mobility, we are dedicated to growing our customer base by being a one-stop-shop for SMEs. Joining Enreach will help facilitate our customers’ growth even further by offering a broader product portfolio and working closely together with ipnordic, we are certain to be in the right position for sustainable future growth in the Danish market." About Enreach Enreach is the parent company of various labels such as Voiceworks, Swyx, ipnordic, Centile, Eazit and Network Telecom. Enreach provides collaboration technology and telecoms services via their reselling partners or direct brands that are transformative for SMEs and the people that work with them. All brands contribute to intelligent, integrated IT and communication solutions that ensure optimal communication and workflow between organisations. Enreach’s mission is to give businesses access to the best communication and collaboration tools with an easy, user-centric interface built around their specific needs and systems. The groups products put powerful features in reach of every business, no matter the industry or size, so their employees can focus on getting amazing things done. Enreach is active in the core markets Germany, the Netherlands and France with activities in 25 countries and more than 750 employees. For more information about Enreach visit www.enreach.com About M Mobility A/S M Mobility A/S is a dedicated full-service provider of B2B telco solutions to small and medium-sized enterprises (“SME”) in Denmark. The company acts as a “one-stop-shop”, offering tailored solutions with one-point-of-contact and a single invoice, implying simplicity and a convenient process for the customer. The offerings include telco services and hardware which are bundled together in customised solutions. Founded in 2010 by CEO Søren Mathiesen Hass, M Mobility has a strong focus on customer excellence and works with a team of approximately 25 employees. Press release on swyx.com
  4. Die Unternehmensgruppe Enreach treibt ihre Buy-and-Build-Strategie weiter voran und baut mit der Übernahme des in Kopenhagen ansässigen TK-Anbieters M Mobility ihre Präsenz im dänischen Markt aus. Der schnellwachsende UC-Anbieter Enreach, die Muttergesellschaft von Swyx und Voiceworks, stärkt seine Position im europäischen IT- und Telekommunikationsmarkt mit der Übernahme von M Mobility A/S, einem Komplettanbieter von B2B-Telekommunikationslösungen für kleine und mittelständische Unternehmen (KMU) in Dänemark. Das 2010 gegründete Unternehmen M Mobility bietet Telekommunikationsdienste und Hardware an, die zu kundenindividuellen Lösungen gebündelt werden. Ausbau des Geschäfts in Dänemark Mit M Mobility erweitert die Enreach Unternehmensgruppe, die zum Portfolio der Private-Equity-Investment-Gesellschaft Waterland gehört, ihre Geschäftstätigkeiten in Dänemark. Nach der Übernahme von ipnordic im Januar ist M Mobility die zweite Akquisition von Enreach im dänischen B2B-Telekommunikationsmarkt in diesem Jahr und trägt dazu bei, dass die Gruppe ihre starke Marktposition im KMU-Segment weiter festigen kann. „Die Übernahme von M Mobility ist ein gutes Beispiel für unsere Buy-and-Build-Strategie und die damit verbundenen Chancen für unsere Gruppe. Mit der Akquisition bauen wir unsere Präsenz im dänischen Markt aus und können neue Wachstumsmöglichkeiten erschließen. Sowohl ipnordic als auch M Mobility legen großen Wert auf Kundenzufriedenheit, was sich beispielsweise in einer durchschnittlichen Reaktionszeit des Kundenservice von weniger als 15 Sekunden zeigt. Wir freuen uns daher sehr, dass wir M Mobility in unsere Gruppe aufnehmen können“, sagt Stijn Nijhuis, CEO von Enreach. „Als agiler, kundenorientierter TK-Anbieter passt M Mobility hervorragend zu unserer Unternehmensgruppe und ermöglicht es uns, zusätzliche Synergien zu schaffen, was letztlich auch unseren Partnern in Deutschland zugutekommt: Sie profitieren von einer kontinuierlichen Weiterentwicklung unseres Lösungsportfolios sowie einer immer höheren Technologie- und Servicekompetenz“, ergänzt Dr. Ralf Ebbinghaus, Enreach Chief Commercial Officer. Alles aus einer Hand M Mobility agiert als "One-Stop-Shop" und bietet maßgeschneiderte Lösungen sowie einen besonders einfachen, bequemen Prozess, bei dem Kunden eine zentrale Anlaufstelle haben und eine einzige Rechnung erhalten. Der einzigartige Service von M Mobility führt zu einem hohen Maß an Kundenzufriedenheit. M Mobility wird weiterhin eigenständig agieren und gleichzeitig von der Zusammenarbeit innerhalb der Gruppe profitieren. Das Unternehmen behält seinen Sitz am aktuellen Standort in Kopenhagen, Dänemark. Søren Mathiesen Hass, Gründer und derzeitiger CEO von M Mobility, wird das Unternehmen auch in Zukunft zusammen mit seinem erfahrenen Managementteam führen. „Wir freuen uns darauf, zu Enreach zu gehören und gemeinsam mit unseren neuen Kollegen dazu beizutragen, dass Unternehmen ihre Kommunikation und Zusammenarbeit besonders effizient gestalten können“, sagt Søren Mathiesen Hass. „Wir bei M Mobility arbeiten kontinuierlich daran, unseren Kundenstamm zu erweitern, indem wir kleinen und mittelständischen Unternehmen überzeugende Lösungen aus einer Hand bieten. Als Teil von Enreach können wir unsere Kunden mit einem breiteren Produktportfolio noch besser unterstützen und wir sind uns sicher, dass wir durch die enge Zusammenarbeit mit ipnordic die Grundlage für ein nachhaltiges zukünftiges Wachstum im dänischen Markt schaffen.“ Über Enreach Enreach ist die Muttergesellschaft verschiedener Unternehmen wie Voiceworks, Swyx, ipnordic, Centile, Eazit und Network Telecom. Enreach bietet UC-/Collaboration-Technologien und Telekommunikationsdienstleistungen an, die den Arbeitsalltag von kleinen und mittelständischen Unternehmen sowie deren Mitarbeitern entscheidend verbessern. Alle Marken der Gruppe tragen zu intelligenten, integrierten IT- und Kommunikationslösungen bei, die optimale Kommunikation und Zusammenarbeit über Unternehmensgrenzen hinweg gewährleisten. Dabei stellt Enreach Unternehmen Kommunikations- und Collaboration-Tools zur Verfügung, die genau auf ihren Bedarf abgestimmt und einfach zu bedienen sind, damit sich ihre Mitarbeiter auf das Kerngeschäft konzentrieren können. Enreach ist in 25 Ländern aktiv und beschäftigt mehr als 750 Mitarbeiter. Weitere Informationen unter www.enreach.com. Über M Mobility A/S M Mobility A/S ist ein Komplettanbieter von B2B-Telekommunikationslösungen für kleine und mittelständische Unternehmen in Dänemark. Das Unternehmen agiert als "One-Stop-Shop" und bietet seinen Kunden maßgeschneiderte Lösungen aus einer Hand sowie einen einfachen, bequemen Prozess mit einer einzigen Anlaufstelle und Rechnung. Das Angebot umfasst Telekommunikationsdienste und Hardware, die zu individuellen Lösungen gebündelt werden. M Mobility wurde 2010 von CEO Søren Mathiesen Hass gegründet, hat einen starken Fokus auf Kundenzufriedenheit und beschäftigt rund 25 Mitarbeiter. Pressemitteilung auf swyx.de
  5. Welcome to the Group M Mobility! Enreach, the group of companies to which Swyx belongs, strengthens its position in the European IT and telecommunications markets with the acquisition of M Mobility A/S (‘M Mobility’), a dedicated full-service provider of B2B telco solutions to small and medium-sized enterprises (‘SME’) in Denmark. Enreach CEO Stijn Nijhuis (centre) with Charles Ginnerskov (left), CEO of ipnordic A/S, and M Mobility's Søren Mathiesen Hass (right). Both companies belonging to Enreach will ensure future growth in the Danish market. For more information, read the complete press release. View the full article
  6. Hi Kasper, for the number configuration of the trunks and users (external numbers) there is no API available on the Server Script API. You could of course run a PowerShell script (or ConfigDataStore wrapper) from within the call routing to get the number you need, but here you definitely have to keep an eye on the performance and resources. For each such call a ConfigDataStore client will be instantiated which comes with roughly 50MB consumption. Depending on the call load on your system this can sum up to quite considerable numbers. So a constant definition at the beginning of your script might actually be the better solution.
  7. The call was still in the call routing of the destination. In there the latest reached block was e.g. a "Connect To" block to connect the call, but this ran into the configured timeout (default 15 seconds). After that the call was disconnected.
  8. Hi Kasper, there no place else than the CDRs to get this information from. In fact, that is one of the many reasons why they are written in the first place As I see it you should check the "ConnectDate" and not the "DeliveredDate". If the call was only alerted but not connected, you will get a "DeliveredDate", but no "ConnectDate". From what I understood you are looking for successfully connected calls, right? Aside of that your query looks fine for me.
  9. Ich kenne Deine Call Routing nicht, und kann daher nicht sagen, warum Dein Routing "stecken" bleibt, aber PBXCall.PostDialingDigits liefert Dir in jedem Fall ein Ergebnis. Wenn keine Nachwahlziffern gewählt wurden, ist das Ergebnis ein Leerstring. Um sicher zu sein, habe ich es auch gerade nochmal kurz getestet: Ich habe immer genau das zu hören bekommen, was ich erwartet habe. Vielleicht hängst du einfach mal Dein Call Routing (.rse Datei) hier an?
  10. So lange musst Du ja gar nicht warten Nach dem Release der v12 lädst Du sie Dir einfach von der Swyx Webseite herunter, machst auf einem Spielrechner eine "Eval" Installation, holst Dir da die Skins raus die Du haben willst, und kannst sie dann ganz einfach in Deinen Client an der ONPC hinein laden.
  11. From 2009 to 2011 mirjam baumberger wrote a great blog, the "Fridays' Swyx Tip". Every Friday she posted a tip regarding the usage of SwyxWare and connected tools and devices. As the old forum is offline, this article series will be restored here again over the time. Please note that some information in this article series might not be valid anymore with current SwyxWare versions. This blog article was originally posted on 09.01.2009 02:42 Dear Swyx Users In the tip below I illustrate how Swyx helps you to stay in control of your call activities. Swyx records every single phone call in to the Swyx CDR (Call Detail Records). Additionally, you can also report on call activity based on other events. This call-log can be written into a database or a even a simple text file. Let’s assume you have send out a promotion mail to your customers to receive a special discount when presenting a valid Voucher. Now, you want to keep track how many calls you are receiving out of this campaign. Logging this incoming calls in a text file is really easy. We have to add a new ECR rule to your SwyxServer were the caller will be greeted with an announcement like: Welcome to ... , please enter the Voucher Code and complete your entry by pressing the # key. By adding a new Script User to your Swyx Server, we can create a small sample Call Routing Script, which will save all incoming calls including Voucher Code information to a text file on the local hard-drive. Create a new ECR script and enter the custom code below to the Start Block of your new script. ' FileOpen iomode Values Const fsoForReading = 1 Const fsoForWriting = 2 Const fsoForAppending = 8 Const fsoCreateIfNotExist = True Function InsertCallIntoFile ( callerID, keys ) Const filename = "c:\gse_demo\test.txt" Dim fso Dim file ' Create FileSystemObejct CreateObject("Scripting.FileSystemObject") ' Open text file Set file = fso.OpenTextFile(filename, fsoForAppending, fsoCreateIfNotExist) ' Write (append) CallerID into file file.WriteLine ( "Caller: " & callerID & ", Called number: " & CalledNumber & ", Voucher ID: " & keys & ", Date & Time of call: " & CStr(now)) file.Close Set file = Nothing Set fso = Nothing End Function Then add the get DTMF String Block to your script and set “Save input to variable:” to keys and record an announcement which advises the caller how to enter the Voucher Code. Add a new block “Set Variable” to your script and set the Variable name to caller and the variable value to = InsertCallIntoFile (CallerID() , keys) Complete your script with a connect to block so that the caller is forwarded to the appropriate sales team. If you receive a call to this script, a text file will be created on the SwyxServer location c:\gse_demo\test.txt That’s it. Every call to this script is now logged in to the txt file with the according Voucher ID entered, and additional information like caller number and date and time of call is also written in to the file. ;- ) Of course, this call information can also be writing in a database. More details on this topic can be found in the Swyx Knowledgebase article Custom VBScript Code - Call Loggin Into Ddatabase (kb2218). Happy Swyxing... Regards Mirjam @ IT Net World Ltd, NZ & AUS SWYX Distributor http://www.itnetworld.co.nz/ Update: When it comes to call routing and VBScript programming, don't miss this page: ECR Usefull Link Collection
  12. The video of the Swyx Partner and Technology Conference 2019 is now online! Under the motto WE WILL ROCK YOU, Swyx had prepared a diversified mix of news and background information, lectures and interactive discussions, show and networking to not only inform its partners but above all to inspire them. The extraordinary atmosphere at the Colosseum Theater in Essen, one of the most spectacular industrial monuments in the Ruhr area, provided the perfect setting for exciting insights into the latest developments at Swyx. The new version 12 of Swyx‘s communication solution, a simplified licensing model and the announcement of the new group name Enreach were among the highlights of the event. Watch the video here: View the full article
  13. VBScript Lua Days on which you can stay in bed in the morning are usually weekends, vacations or public/bank holidays. While you can plan your call routing for weekends and vacations quite easily, as they have fixed/planned dates, things get a little bit more difficult with public/bank holidays. There are of course public/bank holidays with fixed dates, like "Labor day (01.05.)" or "Day of German reunification (03.10.)" or "Christmas (25.12./26.12.)", but there are also "moving" public/bank holidays, the church holidays. These holidays are all tight to Easter, either at a fixed distance before or after it (Good Friday, Pentecost, etc.). Problem is, Easter is every year on a different date. I spare you the history behind this, lets just accept it as it is. So, to solve the problem of public/bank/church holidays from a call routing perspective many people (incl. me) came up with simple solutions, all based on prepared lists of such holidays (in text files or databases). My solution to this problem for example is still available in the Swyx Knowledgebase. All these attempts with prepared lists of public/bank/church holidays all share the same problem: these lists have an end. Regardless for how many years you put these dates in advance into the list, if the final date is reached and you forgot about this list, your call routing will not know about holidays. I saw many cases where this happened, where after a couple of years it was forgotten to maintain the holidays list. In comes the solution for this problem: calculate the moving church holidays. Do it exactly like it is done in reality. In 1800 Carl Friedrich Gauss published his "Easter algorithm" to calculate the Julian or Gregorian Easter. If you want to learn how this algorithm works, just follow the previous link. For VBScript based Call Routing: In 2014 the forum user JoergG glued the Gauss algorithm into VBScript along with a framework to check for any holiday (fixed or moving) in any of the German federal states. And he was very kind to offer this function to the community! In 2018 the forum user kroni99 adapted this function for Austria. Both these functions are of course available here on Swyx Forum: IsPublicHolidayAT (Austria, including Federal States) IsPublicHolidayDE (Germany, including Federal States) If you have adapted the "IsPublicHoliday" function for another country it would be quite nice of you if you would share it with the community. Either post it yourself of just get in touch with me. So, if you need to know in your call routing if today is a public holiday you can directly call this function from within an "Evaluate" block: The entire usage instructions for the "IsPublicHoliday" function are given in the above stated links to the functions for Austria and Germany. so I will save you from all the details here. It can't get any more easy: you setup this call routing (which is not more than a little bit of Copy&Paste, according to the linked instructions) and then you can forget about the public/bank/church holidays again. You don't need to update your call routing anymore in a couple of years. For Lua based Call Routing: For Lua based Call Routing the SwyxWare comes already with a build-in function IsHolidayInGermany(). Unlike the two above mentioned VBScript functions, this function comes with a slightly improved Gauss formula by Heinrich Lichtenberg. The usage is more or less the same. So, if you need to know in your call routing if today is a public holiday you can directly call this function from within an "Evaluate" block: As Lua supports optional parameters, it is possible to omit the second parameter. By doing so, the current date will be checked. If you want to check another date, just pass it as second parameter. For complete usage instructions of this functions, just follow the above given link. It can't get any more easy: just use the included function and then you can forget about the public/bank/church holidays again. You don't need to update your call routing anymore in a couple of years. Of course you shouldn't forget about them if you want to stay in bed a little bit longer Enjoy! PS: don't miss to take a look into the ECR Useful Link Collection
  14. And now it is available in the Zendesk Appstore. Swyx-Zendesk-integration | Ringdesk RINGDESK.COM Ringdesk enables integration between Swyx and Zendesk Ringdesk for Swyx enables full call control of your Swyx Client integrated in your Zendesk account. It enables you to work smart and efficient. It will help you to improve the speed of handling phone calls and it will lower your administration time. Also this App will add call
  15. Die drei in der 11.50 bereits vorhandenen 12er Skins stellen eine Vorschau auf eine komplett neue Skin Serie, die mit der SwyxWare12 kommen wird, dar. Da werden dann auch Skin Varianten mit Visual Groups enthalten sein. Wie man das von Hand in eine der bereits vorhandenen Skins rein bekommt kann ich Dir leider nicht sagen. Da fehlt mir einfach die Erfahrung. Vielleicht kannst Du einfach noch ein wenig auf das 12er Release warten? Ist ja nicht mehr lange
  16. Die Netzwerkreihe DIGITAL X 2019 der Telekom Deutschland verbindet Top-Experten mit Unternehmen aller Größen: vom Dax-Konzern bis zum Start-up. 120 hochkarätige Speaker zu wichtigen Digitalisierungsthemen wie künstliche Intelligenz, Internet der Dinge, 3D-Druck, Digitaler Zwilling und Augmented Reality sorgen für ein abwechslungsreiches Programm. Swyx stellte als einer der Hauptsponsoren auf allen sechs regionalen Events in ganz Deutschland das Thema Unified Communications als Baustein der Digitalisierung vor und blickt gespannt dem großen Finale in Köln entgegen. Den persönlichen Austausch zu Digitalisierungsthemen anregen, das Thema Digitalisierung nahbar machen, wertvolle Synergien schaffen – das sind die Ziele der Veranstaltungsreihe DIGITAL X 2019. Am 29. Und 30. Oktober wird die DIGITAL X 2019 als zweitägiges Network-Event in Köln nicht nur den Teilnehmern der sechs regionalen Events in Bochum, Hamburg, Stuttgart, Offenbach, Berlin und München Gelegenheit für einen neuerlichen persönlichen Austausch geben, sondern vor allem auf das Jahr 2019 in Sachen Digitalisierung zurückblicken. Wir freuen uns, Sie auf der Veranstaltung an unserem Stand begrüßen zu dürfen. Lassen Sie uns gemeinsam besprechen, wie unsere UC-Lösung Ihnen hilft, Digitalisierung im Mittelstand erlebbar zu machen. Verpassen Sie auch nicht den Vortrag „Mit Digitalisierung zum Erfolg“ von Swyx VP Sales, Marco Crueger am Mittwoch, den 30. Oktober um 11:15 Uhr bis 11:40 Uhr auf der Interactive Stage. Koelnmesse Messeplatz 1 50679 Köln Weitere Infos unter https://digital19.de/koeln/ Pressemitteilung auf swyx.de
  17. 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
  18. Ich habe mich selbst noch nicht mit einer ESTOS Datenbank verbunden, aber das ist ja auch nur eine normale Datenbank. Das sollte also kein grösseres Problem sein. Werf doch mal einen Blick in diesen Swyx Knowledgebase Artikel: EIGENER VBSCRIPT CODE - ANRUFERÜBERPRÜFUNG IN DATENBANK (KB2219)
  19. From 2009 to 2011 mirjam baumberger wrote a great blog, the "Fridays' Swyx Tip". Every Friday she posted a tip regarding the usage of SwyxWare and connected tools and devices. As the old forum is offline, this article series will be restored here again over the time. Please note that some information in this article series might not be valid anymore with current SwyxWare versions. This blog article was originally posted on 08.01.2009 10:18 Dear Swyx Users You can define call rights within SwyxWare for individual users and trunk groups. This allows business owners to take full control on calling permissions of any phone system users. For example: You can allow your sales team to do international calls to USA, but deny all other international calls. The help-desk staff should be only allowed to do local calls, and all calls to mobile phones will be denied. Accounts employees should have no calling right restrictions. All these is comfortable configurable and easy to manage. Simply change or add the default settings in the SwyxWare Administration in Calling Rights. More details can be found in the Swyx Manual Section Call Permissions. Any questions? Happy weekend... Regards Mirjam @ IT Net World Ltd, NZ & AUS SWYX Distributor http://www.itnetworld.co.nz/ Update: added link to Call Permission chapter in the online manual.
  20. VBScript Lua Have you ever had the necessity to create a call routing that somehow identifies the callers language and then provide all announcements afterwards in that language and maybe also connect to different destinations within the SwyxWare? In this article I would like to show some approaches on how this could be done and also point out their pros and cons. Lets assume you have a simple call routing that plays a welcome message, afterwards provide an IVR/DTMF menu and then connects the call to the selected user group or the operator if the caller can't decide or can't send DTMF: VBScript based Call Routing Multi_Language_1.rse Lua based Call Routing Multi_Language_1_Lua.rse In this example of course you have the announcements fixed and therefore in one language only. But as you have business in lots of different countries you have to differ a few languages your callers might speak: English, German, Italian, French, Spanish, Portuguese Greek, Swedish or Dutch. 9 languages all together (I ❤️ Europe!). Select Language The easiest way to decide what language should be used is of course by checking from where the call comes from, i.e. its country code. Of course there are countries where multiple of the above listed languages are spoken (e.g. Switzerland or Belgium) but for the ease of the call routing they will get one language. With using the "Insert Script Code" block we can implement the language selection quite easily: The following code goes into the "Parameters" page of the block. For VBScript based Call Routing: Dim sCountryCode sCountryCode = "0044" ' United Kingdom, Default Langauge English If Len(IpPbx.CallingNumber) > 4 then sCountryCode = Left(IpPbx.CallingNumber, 4) Select Case sCountryCode Case "0044" ' United Kingdom UseExit = 0 ' -> English Case "0049" ' Germany UseExit = 1 ' -> German Case "0043" ' Austria UseExit = 1 ' -> German Case "0041" ' Switzerland UseExit = 1 ' -> German Case "0039" ' Italy UseExit = 2 ' -> Italian Case "0033" ' France UseExit = 3 ' -> French Case "0032" ' Belgium UseExit = 3 ' -> French Case "0034" ' Spain UseExit = 4 ' -> Spanish Case "0035" ' Portugal UseExit = 5 ' -> Portuguese Case "0030" ' Greece UseExit = 6 ' -> Greek Case "0046" ' Sweden UseExit = 7 ' -> Swedish Case "0031" ' The Netherlands UseExit = 8 ' -> Dutch Case Else ' Every other country / own country / no number signalled UseExit = 0 ' -> English End Select For Lua based Call Routing: local sCountryCode = "0044" -- United Kingdom, Default Langauge English if (StringLen(IpPbx.CallingNumber()) > 4) then sCountryCode = StringLeft(IpPbx.CallingNumber(), 4) end if (sCountryCode == "0044") then -- United Kingdom UseExit = 0 -- -> English elseif (sCountryCode == "0049") then -- Germany UseExit = 1 -- -> German elseif (sCountryCode == "0043") then -- Austria UseExit = 1 -- -> German elseif (sCountryCode == "0041") then -- Switzerland UseExit = 1 -- -> German elseif (sCountryCode == "0041") then -- Italy UseExit = 2 -- -> Italian elseif (sCountryCode == "0033") then -- France UseExit = 3 -- -> French elseif (sCountryCode == "0032") then -- Belgium UseExit = 3 -- -> French elseif (sCountryCode == "0034") then -- Spain UseExit = 4 -- -> Spanish elseif (sCountryCode == "0035") then -- Portugal UseExit = 5 -- -> Portuguese elseif (sCountryCode == "0030") then -- Greece UseExit = 6 -- -> Greek elseif (sCountryCode == "0046") then -- Sweden UseExit = 7 -- -> Swedish elseif (sCountryCode == "0031") then -- The Netherlands UseExit = 8 -- -> Dutch else -- Every other country / own country / no number signalled UseExit = 0 -- -> English end Within the code the property IpPbx.CallingNumber / IpPbx.CallingNumber() is used. It provides the number of the caller. You might or might not have noticed that I only differed 9 languages so far. Believe it or not, I did that intentionally If you need to differ more than 10 languages you could do something like this, and for that I need the tenth exit of the first "Insert Script Code" block to be free to use it to route to the next one. Feel free to add any number of more languages here. The above is just a quick example, no discrimination intended. Now that we know the language of the caller we need to implement our call routing accordingly. Language aware Call Routing (1) The most straight forward approach for the call routing would look like this with having for each language the complete initial script with announcement, menu and connect to, e.g. VBScript based Call routing Multi_Language_2.rse Lua based Call routing Multi_Language_2_Lua.rse Lets take a look into the pros and cons of this straight forward approach: Pros straight forward for each language a separate call routing therefore it is possible to have different call routing per language, not just different announcements Cons the script is huuuuuuuge therefore not easy to understand when taking a look on it the first time therefore it is easy to break it when trying to modify it relatively huge amount of work to add new languages I don't know about you, but I like things a little bit more easy to grasp at a first glance. Something like the very first screenshot on this page. So this brings me to a second possible approach for this. Language aware Call Routing (2) As said, I want to come back to the initial script, easy to grasp, just a hand full of blocks. The idea now is to replace the announcements and destination numbers in blocks as we need them. This is easily be done by taking the announcements and number from variables and all we need to do at the beginning of the script is to initialize those variables properly. We use the "Start" block to define the needed variables. For VBScript based Call Routing: Dim sMsgWelcome Dim sMsgMenu Dim sNumSupport Dim sNumSales Dim sNumOperator For Lua based Call Routing: local sMsgWelcome local sMsgMenu local sNumSupport local sNumSales local sNumOperator Without having them already initialized (will follow soon) we can change all 5 blocks in the script to make use of the variables, instead of using hard coded file names or numbers. The welcome announcement: The IVR/DTMF menu: And the connect blocks to get the call where it should go to: With having this done we can start thinking about the initialization of these variables i.e. the language selection and definition what values should be used for the variables. With a small VBScript function in the "Start" block this can be quickly done. You might notice that the code looks quite similar to what we have done in the first example in the "Insert Script Code" block. This is because we still use the same principle of language selection. For VBScript based Call Routing: Function Initialize Dim sCountryCode sCountryCode = "0044" ' United Kingdom, Default Langauge English If Len(IpPbx.CallingNumber) > 4 then sCountryCode = Left(IpPbx.CallingNumber, 4) Select Case sCountryCode Case "0044" ' United Kingdom -> English sMsgWelcome = "MSG_WELCOME_EN.wav" sMsgMenu = "MSG_WELCOME_EN.wav" sNumSupport = "201" sNumSales = "301" sNumOperator = "101" Case "0049" ' Germany -> German sMsgWelcome = "MSG_WELCOME_DE.wav" sMsgMenu = "MSG_WELCOME_DE.wav" sNumSupport = "202" sNumSales = "302" sNumOperator = "102" Case "0043" ' Austria -> German sMsgWelcome = "MSG_WELCOME_DE.wav" sMsgMenu = "MSG_WELCOME_DE.wav" sNumSupport = "202" sNumSales = "302" sNumOperator = "102" Case "0041" ' Switzerland -> German sMsgWelcome = "MSG_WELCOME_DE.wav" sMsgMenu = "MSG_WELCOME_DE.wav" sNumSupport = "202" sNumSales = "302" sNumOperator = "102" Case "0039" ' Italy -> Italian sMsgWelcome = "MSG_WELCOME_IT.wav" sMsgMenu = "MSG_WELCOME_IT.wav" sNumSupport = "203" sNumSales = "303" sNumOperator = "103" Case "0033" ' France -> French sMsgWelcome = "MSG_WELCOME_FR.wav" sMsgMenu = "MSG_WELCOME_FR.wav" sNumSupport = "204" sNumSales = "304" sNumOperator = "104" Case "0032" ' Belgium -> French sMsgWelcome = "MSG_WELCOME_FR.wav" sMsgMenu = "MSG_WELCOME_FR.wav" sNumSupport = "204" sNumSales = "304" sNumOperator = "104" Case "0034" ' Spain -> Spanish sMsgWelcome = "MSG_WELCOME_ES.wav" sMsgMenu = "MSG_WELCOME_ES.wav" sNumSupport = "205" sNumSales = "305" sNumOperator = "105" Case "0035" ' Portugal -> Portuguese sMsgWelcome = "MSG_WELCOME_PT.wav" sMsgMenu = "MSG_WELCOME_PT.wav" sNumSupport = "206" sNumSales = "306" sNumOperator = "1064" Case "0030" ' Greece -> Greek sMsgWelcome = "MSG_WELCOME_GR.wav" sMsgMenu = "MSG_WELCOME_GR.wav" sNumSupport = "207" sNumSales = "307" sNumOperator = "107" Case "0046" ' Sweden -> Swedish sMsgWelcome = "MSG_WELCOME_SE.wav" sMsgMenu = "MSG_WELCOME_SE.wav" sNumSupport = "208" sNumSales = "308" sNumOperator = "108" Case "0031" ' The Netherlands -> Dutch sMsgWelcome = "MSG_WELCOME_NL.wav" sMsgMenu = "MSG_WELCOME_NL.wav" sNumSupport = "209" sNumSales = "309" sNumOperator = "109" Case Else ' Every other country / own country / no number signalled -> English sMsgWelcome = "MSG_WELCOME_EN.wav" sMsgMenu = "MSG_WELCOME_EN.wav" sNumSupport = "201" sNumSales = "301" sNumOperator = "101" End Select End Function For Lua based Call Routing: function Initialize() local sCountryCode = "0044" -- United Kingdom, Default Langauge English if StringLen(IpPbx.CallingNumber() > 4) then sCountryCode = StringLeft(IpPbx.CallingNumber(), 4) end if (sCountryCode == "0044") then -- United Kingdom -> English sMsgWelcome = "MSG_WELCOME_EN.wav" sMsgMenu = "MSG_WELCOME_EN.wav" sNumSupport = "201" sNumSales = "301" sNumOperator = "101" elseif (sCountryCode == "0049") then -- Germany -> German sMsgWelcome = "MSG_WELCOME_DE.wav" sMsgMenu = "MSG_WELCOME_DE.wav" sNumSupport = "202" sNumSales = "302" sNumOperator = "102" elseif (sCountryCode == "0043") then -- Austria -> German sMsgWelcome = "MSG_WELCOME_DE.wav" sMsgMenu = "MSG_WELCOME_DE.wav" sNumSupport = "202" sNumSales = "302" sNumOperator = "102" elseif (sCountryCode == "0041") then -- Switzerland -> German sMsgWelcome = "MSG_WELCOME_DE.wav" sMsgMenu = "MSG_WELCOME_DE.wav" sNumSupport = "202" sNumSales = "302" sNumOperator = "102" elseif (sCountryCode == "0041") then -- Italy -> Italian sMsgWelcome = "MSG_WELCOME_IT.wav" sMsgMenu = "MSG_WELCOME_IT.wav" sNumSupport = "203" sNumSales = "303" sNumOperator = "103" elseif (sCountryCode == "0033") then -- France -> French sMsgWelcome = "MSG_WELCOME_FR.wav" sMsgMenu = "MSG_WELCOME_FR.wav" sNumSupport = "204" sNumSales = "304" sNumOperator = "104" elseif (sCountryCode == "0032") then -- Belgium -> French sMsgWelcome = "MSG_WELCOME_FR.wav" sMsgMenu = "MSG_WELCOME_FR.wav" sNumSupport = "204" sNumSales = "304" sNumOperator = "104" elseif (sCountryCode == "0034") then -- Spain -> Spanish sMsgWelcome = "MSG_WELCOME_ES.wav" sMsgMenu = "MSG_WELCOME_ES.wav" sNumSupport = "205" sNumSales = "305" sNumOperator = "105" elseif (sCountryCode == "0035") then -- Portugal -> Portuguese sMsgWelcome = "MSG_WELCOME_PT.wav" sMsgMenu = "MSG_WELCOME_PT.wav" sNumSupport = "206" sNumSales = "306" sNumOperator = "106" elseif (sCountryCode == "0030") then -- Greece -> Greek sMsgWelcome = "MSG_WELCOME_GR.wav" sMsgMenu = "MSG_WELCOME_GR.wav" sNumSupport = "207" sNumSales = "307" sNumOperator = "107" elseif (sCountryCode == "0046") then -- Sweden -> Swedish sMsgWelcome = "MSG_WELCOME_SE.wav" sMsgMenu = "MSG_WELCOME_SE.wav" sNumSupport = "208" sNumSales = "308" sNumOperator = "108" elseif (sCountryCode == "0031") then -- The Netherlands -> Dutch sMsgWelcome = "MSG_WELCOME_NL.wav" sMsgMenu = "MSG_WELCOME_NL.wav" sNumSupport = "209" sNumSales = "309" sNumOperator = "109" else -- Every other country / own country / no number signalled -> English sMsgWelcome = "MSG_WELCOME_EN.wav" sMsgMenu = "MSG_WELCOME_EN.wav" sNumSupport = "201" sNumSales = "301" sNumOperator = "101" end end Within the code the function IpPbx.CallingNumber / IpPbx.CallingNumber() is used. It provides the number of the caller. To start the initialization function we can directly use the "Start" block. By simply calling this function within the "Start" block it will automatically be called when the script starts. For VBScript based Call Routing: ' start the initialization automatically when the script starts Initialize For Lua based Call Routing: -- start the initialization automatically when the script starts Initialize() With having all the above 3 code snippets in the "Start" block our call routing script looks like this: For VBScript based Call Routing: Multi_Language_3.rse For Lua based Call Routing: Multi_Language_3_Lua.rse Lets take a look into the pros and cons of this approach: Pros small and easy to grasp script easy to maintain, easy to add new languages Cons as it uses the exact same call routing for every language it might be a little bit tricky to implement exceptions in the call routing for different languages if you are not too happy with a little bit of VBScript code it could be difficult to maintain Conclusion Of course it matters how many languages you have to differ and how many blocks you have in your call routing which differ per language. I created the examples in here with lots of languages purposely to show you where you could end up sooner or later if the number of supported languages grow over the time. If you feel more comfortable with GSE blocks instead of a little bit of code there is nothing wrong with the first attempt. It has its pros as it has its cons. As the second one has its pros and cons. Personally I would always tend to the second approach. But that is just me. Enjoy! PS: don't miss to take a look into the ECR Useful Link Collection
  21. The following forum topic is restored from the Swyx Forum Archive (2007-2014)
  22. Du solltest in dem Skript nachdem Du aufgelegt hast direkt in den Ausgang "Regel ausgeführt" springen. In den Block "Ruf beendet" zu gehen macht zwar nicht kaputt, bringt aber auch nichts. Ansonsten sehe ich keinen Grund, weswegen das im GLOBAL Scope nicht funktionieren sollte, wenn es zurvor im USER Scope des Testbenutzers funktionert hat. Im SYSTEM DEFAULT Scope hat niemand etwas verloren, der ist komplett Read-Only und enthält alle Dateien die von der SwyxWare mitgebracht werden. Wenn ein Update installiert wird, wird dieser Scope komplett geleert und anschliessend neu gefüllt. Deine Änderungen wären damit also Geschichte. Man muss da aber nichts rein schreiben, der GOBAL Scope reicht vollkommen aus. Der der Server eine Datei laden will (Skript, Ansage, Skin, etc.) dann sucht er diese in dieser Reiehenfolge bis der sie gefunden hat: USER Scope des Benutzers GLOBAL Scope (sichtbar für alle Benutzer) SYSTEM DEFAULT Scope (sichtbar für alle Benutzer) Wenn Dein PreProcessing also beim Testbenutzer funktionert hat, und Du es anschliessed in den GLOBAL Scope legst (wirklich relevant ist nur die rulePreProcessing.vbs an dieser Stelle), und ein Ruf für einen Benutzer ungleich Deines Testbenutzers kommt rein, dann sucht der Server nach der Datei "rulePreProcessing.vbs"). Da diese nicht im USER Scope des Benutzers liegt, schaut er als nächstes in den GLOBAL Scope und dort wird er fündig. Ich weiss nicht, was Du evtl. noch auf dem Server gemacht hast, aber wie gesagt, wenn Dein PreProcessing beim Testbenutzer läuft wird es anschliessend auch für alle Benutzer im GLOBAL Scope laufen.
×
×
  • 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.