<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>WombatDialer Blog</title>
    <description>Boost your Asterisk call-center productivity with the Next Generation in Predictive Dialling: WombatDialer!&lt;br/&gt;&lt;br/&gt;Highly scalable, multi-server and easy-to-use platform.</description>
    <link>https://www.wombatdialer.com/blog/</link>
    <atom:link href="https://www.wombatdialer.com/blog/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Thu, 16 Apr 2026 08:31:44 +0200</pubDate>
    <lastBuildDate>Thu, 16 Apr 2026 08:31:44 +0200</lastBuildDate>
    <generator>Jekyll v4.4.1</generator>
    
      <item>
        <title>WombatDialer Security Update: Addressing Two Vulnerabilities</title>
        <description>&lt;p&gt;Today, February 18th 2025, there is a public disclosure of two security vulnerabilities that were recently identified. We believe in transparency and want to share the details with our users.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;vulnerability-details&quot;&gt;Vulnerability Details&lt;/h2&gt;

&lt;h3 id=&quot;cve-2024-57055---server-side-access-control-bypass&quot;&gt;CVE-2024-57055 - Server-Side Access Control Bypass&lt;/h3&gt;

&lt;p&gt;WombatDialer uses a client-server model where the client requests services from the server. Access to these services is restricted based on user grants (security keys). While access controls were in place on the client-side, a vulnerability existed on the server-side that could allow unauthorized users to potentially call certain services without the necessary access level. This issue was limited to services used by the client (not the general-use JSON services) and requires reverse engineering of the proprietary serialization protocol, making it difficult to exploit.&lt;/p&gt;

&lt;p&gt;See &lt;a href=&quot;https://www.cve.org/CVERecord?id=CVE-2024-57055&quot;&gt;CVE-2024-57055&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;cve-2024-57056-incorrect-cookie-session-handling&quot;&gt;CVE-2024-57056: Incorrect cookie session handling&lt;/h3&gt;

&lt;p&gt;In the affected services, the full session identity was being written to system logs. This information was meant to be used to correlate activities in the WombatDialer logs with logs from other systems, such as an HTTP frontend. Unfoirtunately, it could also be used by a maicious attacker to impersonate an existing user session. To mitigate this, we will now only provide the initial and terminal parts of the cookie in logs.&lt;/p&gt;

&lt;p&gt;See &lt;a href=&quot;https://www.cve.org/CVERecord?id=CVE-2024-57056&quot;&gt;CVE-2024-57056&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;mitigation&quot;&gt;Mitigation&lt;/h2&gt;

&lt;p&gt;Both vulnerabilities are addressed in WombatDialer version 25.02, that was released on Jan 30, 2025. &lt;strong&gt;We strongly recommend that all users upgrade to this version immediately to ensure their systems are secure.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Important Note:&lt;/em&gt; We have no evidence to suggest that these vulnerabilities have been exploited in the wild.&lt;/p&gt;

&lt;h2 id=&quot;acknowledgement&quot;&gt;Acknowledgement&lt;/h2&gt;

&lt;p&gt;We would like to thank Mr. Aleksandr Rudkovskii “exe_cute” for identifying and responsibly reporting these vulnerabilities during a security audit. Their diligence has helped us to improve the security of WombatDialer.&lt;/p&gt;

&lt;h2 id=&quot;how-to-upgrade&quot;&gt;How to Upgrade&lt;/h2&gt;

&lt;p&gt;To upgrade to the latest version of WombatDialer, see  &lt;a href=&quot;https://docs.loway.ch/WombatDialer/050_Sysadmin.html#WBT-UPGRADING&quot;&gt;Upgrading WombatDialer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We are committed to the security of our products and appreciate your continued support. If you have any questions or concerns, please do not hesitate to contact our support services.&lt;/p&gt;

&lt;h2 id=&quot;what-now&quot;&gt;What now?&lt;/h2&gt;

&lt;p&gt;All details for this release are available on our &lt;a href=&quot;https://docs.loway.ch/News/250122_wd2502.html&quot;&gt;What’s New in WombatDialer 25.02&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To update from a previous version, see &lt;a href=&quot;https://docs.loway.ch/WombatDialer/050_Sysadmin.html#WBT-UPGRADING&quot;&gt;Updating&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you’d like a test-drive, visit &lt;a href=&quot;https://www.wombatdialer.com/&quot;&gt;https://www.wombatdialer.com/&lt;/a&gt; for a full featured trial.&lt;/p&gt;

</description>
        <pubDate>Tue, 18 Feb 2025 00:00:00 +0100</pubDate>
        <link>https://www.wombatdialer.com/blog/blog/2025/02/18/CVE/</link>
        <guid isPermaLink="true">https://www.wombatdialer.com/blog/blog/2025/02/18/CVE/</guid>
        
        <category>25.02</category>
        
        <category>WombatDialer</category>
        
        <category>CVE</category>
        
        
      </item>
    
      <item>
        <title>WombatDialer 25.02: Dialing into a Better Experience!</title>
        <description>&lt;p&gt;WombatDialer, the go-to tool for outbound dialing on the Asterisk/FreePBX platform, just got a major update.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;security-update&quot;&gt;Security Update&lt;/h2&gt;

&lt;p&gt;WombatDialer version 25.02 includes a &lt;strong&gt;critical security update&lt;/strong&gt; addressing a session handling vulnerability that could potentially allow unauthorized access to the configuration interface.  Users are strongly advised to update immediately, even though there is no indication of exploitation in the wild.  CVE identifiers for this vulnerability will be published soon.&lt;/p&gt;

&lt;h2 id=&quot;call-reporting&quot;&gt;Call reporting&lt;/h2&gt;

&lt;p&gt;This release also introduces &lt;strong&gt;improvements to call reporting&lt;/strong&gt;, including a “Called Counts” feature in the Reports section. This allows users to analyze call outcomes based on the number of recall attempts, aiding in recall policy optimization.  A user interface issue on the Realtime page’s “Active Lists on Run” panel has been resolved.&lt;/p&gt;

&lt;h2 id=&quot;documentation-and-installation&quot;&gt;Documentation and installation&lt;/h2&gt;

&lt;p&gt;Documentation has been expanded with a new &lt;strong&gt;section on “Automatic Lists”&lt;/strong&gt; to clarify their purpose and proper usage.  API enhancements include preventing additions to campaigns without active runs and correcting the setting of the CPS parameter for trunks.&lt;/p&gt;

&lt;p&gt;Installation and upgrade processes are streamlined with native support for MySQL 8.0.36 (in yum installations) and a fixed symlink for web-app access.  The DbTest transaction during installation and upgrades has been improved.&lt;/p&gt;

&lt;h2 id=&quot;what-now&quot;&gt;What now?&lt;/h2&gt;

&lt;p&gt;All details for this release are available on our &lt;a href=&quot;https://docs.loway.ch/News/250122_wd2502.html&quot;&gt;What’s New in WombatDialer 25.02&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To update from a previous version, see &lt;a href=&quot;https://docs.loway.ch/WombatDialer/050_Sysadmin.html#WBT-UPGRADING&quot;&gt;Updating&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you’d like a test-drive, visit &lt;a href=&quot;https://www.wombatdialer.com/&quot;&gt;https://www.wombatdialer.com/&lt;/a&gt; for a full featured trial.&lt;/p&gt;

</description>
        <pubDate>Wed, 29 Jan 2025 00:00:00 +0100</pubDate>
        <link>https://www.wombatdialer.com/blog/blog/2025/01/29/WD2502/</link>
        <guid isPermaLink="true">https://www.wombatdialer.com/blog/blog/2025/01/29/WD2502/</guid>
        
        <category>25.02</category>
        
        <category>WombatDialer</category>
        
        <category>release</category>
        
        
      </item>
    
      <item>
        <title>Understanding blacklists in WombatDialer</title>
        <description>&lt;p&gt;One of the most important features of a dialer, paradoxical as it sounds, is to avoid calling numbers that are not supposed to be contacted. But why should you, in the first place, try to call numbers that you 
are not supposed to call?&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;In practice, this is a common scenario - for example, let’s say we work for a car dealership, and you prepare a list of customers to contact because their car is ready for pick up after its service ticket.
While you are running this campaign, some especially eager customers decide to contact us first to inquire about the status of their vehicle, and you tell them that it’s ready. 
At this point, calling them again would be a waste. It would also give the impression that we do not know about their previous interaction.&lt;/p&gt;

&lt;p&gt;But &lt;strong&gt;how&lt;/strong&gt; to do it? Once WombatDialer schedules a number, the right thing to do is to cancel the call on the campaign, if the campaign hasn’t placed the call already. So, we say, let’s delete it from the relevant list, but we may want to re-use the same list of numbers more than once, and we do not want to strike some numbers out of it “just because”.&lt;/p&gt;

&lt;p&gt;Also, if there callee ever asks  “Why didn’t anybody call me? I was waiting for your call!”, it is important to understand that it was an explicit decision and not a failure. As you have no way of knowing about the cancellation when preparing the list of contacts to reach, it must be an “add-on” while the system is running. That’s what blacklists do: we can keep a separate list of numbers we don’t want to call and check it dynamically as we progress through our lists.&lt;/p&gt;

&lt;p&gt;A second common reason why you could use a blacklist is because the customer directly &lt;strong&gt;asks us not to be recalled&lt;/strong&gt;. By adding them to a blacklist we can keep this information in a separate place from the lists we manage, and WombatDialer makes sure we never forget to remove
those numbers from the ones we are supposed to dial.&lt;/p&gt;

&lt;p&gt;This way, our employees tasked with extracting call lists need not worry 
about making sure that all canceled numbers are manually removed, and why. In many countries, you have a legal obligation to adhere to a customer’s will never to be called again, so you need to be 100% sure you are doing this process right.&lt;/p&gt;

&lt;p&gt;So there are two related but different scenarios: in one case you want to “edit” the current run of your campaign only; in the other, you want to create a long-term database of numbers that are not to be recalled.
And, in practice, you likely want to do both things on actual campaigns you are running.&lt;/p&gt;

&lt;h2 id=&quot;how-do-blacklists-work&quot;&gt;How do blacklists work?&lt;/h2&gt;

&lt;p&gt;WombatDialer checks a number against blacklists &lt;strong&gt;every time it has to dial it&lt;/strong&gt;. If a number is present on any blacklist, then it is not dialed at all and it goes straight to a special state &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;BLACKLIST&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;As WombatDialer will try dialing an unsuccessful number multiple times and with different rules, a number might then live for a while in a state when it has already been called, but Wombat still wants to dial it in the future.
At any time you add that number to a blacklist, all further redials are automatically blocked.
This is handy because sometimes recalls may happen after hours or days from the first trial, so it makes sense that we can pull the handbrake on them at any time.&lt;/p&gt;

&lt;p&gt;We can even blacklist a number for a specified period only; by setting the attribute &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;BLACKLISTED_UNTIL&lt;/code&gt; on a call to a specific date, we make sure that the given number is blacklisted only up to that point in time. Similarly, as with plain call lists, the same number can be present multiple times on a blacklist; and WombatDialer makes sure that if it has a time limit, it is enforced. A number with no time limit is considered blacklisted forever.&lt;/p&gt;

&lt;p&gt;As you do for lists, you can have multiple blacklists linked to the same campaign - the difference here is that while calls from plain lists are loaded in sequence, one at a time, every number to dial is checked at once against all blacklists linked to that campaign. Having multiple blacklists is handy because you can use them as different “rules” - for example, you could have a temporary blacklist that you use to avoid recalling people that just called in, and at the same time, a general blacklist (maybe shared between all of your campaigns) where you keep customers that are never to be recalled. This gives you a lot of flexibility in how you organize your work.&lt;/p&gt;

&lt;h2 id=&quot;plain-lists-vs-blacklists&quot;&gt;Plain lists vs blacklists&lt;/h2&gt;

&lt;p&gt;So, what is the difference between a normal call list and a blacklist? The answer, surprisingly, is “none”.
Being a blacklist or a normal list depends on the role that the list plays in the campaign. This means that all functions meant to update lists work the same way in both cases.&lt;/p&gt;

&lt;p&gt;For example, you can ask WombatDialer to add the current number to a list as a disposition rule at the end of the call cycle.
It will simply oblige, and then it is up to you to decide if you want to use that list to place or to avoid further recalls.&lt;/p&gt;

&lt;h2 id=&quot;blacklists-and-multiple-numbers&quot;&gt;Blacklists and multiple numbers&lt;/h2&gt;

&lt;p&gt;WombatDialer can use a set of numbers to reach out to customers (see “Using multiple numbers per call” in its User Manual). For example, when calling a person, it can first try their home number, then their mobile, then their office…. as you see fit. In WombatDialer lingo, this is called a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;MULTINUM&lt;/code&gt; - and while we use it as the “main” number in the identity, on every attempt the number dialed is rotated in a round-robin fashion.&lt;/p&gt;

&lt;p&gt;When blacklisting, you want to stop all calls going to a specific person - so you add the main number to a blacklist, and it will
automatically block all further recalls. On the other hand, additional numbers cannot be blocked directly.&lt;/p&gt;

&lt;p&gt;This is not usually an issue, because the main number, the one that must be blocked, will be tied to the person’s identity on your database.&lt;/p&gt;

&lt;h2 id=&quot;apis-and-integrations&quot;&gt;APIs and integrations&lt;/h2&gt;

&lt;p&gt;We have so far seen that blacklists, by their nature, tend to be very dynamic. Sometimes you decide which customers
to call based on a fixed, given list of numbers, in other cases, you will use the API to “drip-feed” numbers to Wombat when there is a need to call them - for example, a visitor leaving their number on your website
might be added to a current campaign. If all goes well, they will be recalled in a few seconds.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: all examples below are issued as HTTP GET calls. To maintain readability, we break them into multiple lines and may not quote all characters properly. You should.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is how you would do it using Wombat APIs:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;    http://127.0.0.1:8080/wombat/api/calls/
        ?op=addcall
        &amp;amp;campaign=WEBSITE
        &amp;amp;number=1234
        &amp;amp;attrs=NAME:John,SURN:Doe
        &amp;amp;schedule=2024-03-18.14:00:00
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This says “Call number 1234 on campaign WEBSITE, where we know that the person’s name is John and their surname is Doe, after 2 PM today”. Behind the scenes, their number is added to a list called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;WEBSITE/AUTO&lt;/code&gt; that Wombat manages for you,
and will then do the recalls.&lt;/p&gt;

&lt;p&gt;But what happens if they call us in the meantime, and we want to cancel the call? in this case, we have to know 
which blacklist to use - that is, one that is currently linked to the campaign WEBSITE. Let’s say it was called DNC.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;    http://127.0.0.1:8080/wombat/api/lists/
        ?op=addToList
        &amp;amp;list=DNC
        &amp;amp;numbers=1234,REASON:recalled
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This says “Add number 1234 to list DNC”. As you know that list DNC is a blacklist that is set for the campaign WEBSITE, once you add the number, every number to be called on that campaign will be checked and skipped if necessary. While it’s not mandatory, we suggest adding a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;REASON&lt;/code&gt;
attribute to that number, so we know WHY this number was blacklisted and, possibly, by whom.&lt;/p&gt;

&lt;p&gt;You could also do the opposite - what if there is a new case open for the same customer, and you need to remove this number from the list DNC? you could use the
following API call:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;    http://127.0.0.1:8080/wombat/api/calls/
        ?op=cancelBlacklist
        &amp;amp;list=DNC
        &amp;amp;numbers=1234
        &amp;amp;reason=NEWCASE
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This says “If there is number 1234 on the list DNC, mark it so that it is not used for blacklisting, and write the reason for de-blacklisting as NEWCASE”. This is because it is important to keep track of why a number was added to a blacklist or removed from it.&lt;/p&gt;

&lt;p&gt;When adding a new number to a blacklist, you could use any attribute to keep track of the reason - WombatDialer does not care, but it will make your life easier when auditing what went on. When removing, WombatDialer writes a special attribute &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;BLACKLISTED_CANCELLED&lt;/code&gt; that contains the reason you gave it and the time the de-blacklisting happened.&lt;/p&gt;

&lt;p&gt;Note that, to cancel a blacklisting, it must be canceled on &lt;em&gt;all&lt;/em&gt; the blacklists linked to that campaign where the number might be present. If the number is present multiple times on the same list, all the instances where it is currently blacklisting (that is, where it was not already canceled or where its blacklisting period has already expired) will be changed to earmark them as canceled.&lt;/p&gt;

&lt;p&gt;At this point, of course, you are free to add the number again if you need to cancel it again.&lt;/p&gt;

&lt;h2 id=&quot;wrapping-up&quot;&gt;Wrapping up&lt;/h2&gt;

&lt;p&gt;We expect that, at this time, you will have a solid understanding of what to use blacklists for, and how you should use them.&lt;/p&gt;

&lt;p&gt;With them, you can set up flexible, effective, and eco-friendly campaigns that will help your business succeed and help make life easier for your customers.&lt;/p&gt;

&lt;p&gt;Happy dialing!&lt;/p&gt;

&lt;h2 id=&quot;what-now&quot;&gt;What now?&lt;/h2&gt;

&lt;p&gt;If you’d like a test-drive, visit &lt;a href=&quot;https://www.wombatdialer.com/&quot;&gt;https://www.wombatdialer.com/&lt;/a&gt; for a full featured trial.&lt;/p&gt;

</description>
        <pubDate>Mon, 04 Dec 2023 00:00:00 +0100</pubDate>
        <link>https://www.wombatdialer.com/blog/blog/2023/12/04/understanding-blacklists/</link>
        <guid isPermaLink="true">https://www.wombatdialer.com/blog/blog/2023/12/04/understanding-blacklists/</guid>
        
        <category>23.12</category>
        
        <category>blacklist</category>
        
        <category>outbound</category>
        
        
      </item>
    
      <item>
        <title>WombatDialer 23.12: Dialing into a Better Experience!</title>
        <description>&lt;p&gt;WombatDialer, the go-to tool for outbound dialing on the Asterisk/FreePBX platform, just dropped a game-changing update - version 23.12. Buckle up, because it’s got some nifty improvements that’ll make your dialing experience smoother than ever.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;blacklists-got-an-upgrade&quot;&gt;Blacklists Got an Upgrade&lt;/h2&gt;

&lt;p&gt;The big ask from the Wombat community is here - the power to cancel a number from blacklists. No more workarounds; it’s a direct hit. You’re not deleting records; you’re updating them with reasons for cancellatiion. Wombat’s got your back, preserving information for future analysis.&lt;/p&gt;

&lt;h2 id=&quot;seamless-integration&quot;&gt;Seamless Integration&lt;/h2&gt;

&lt;p&gt;Wombat’s all about teamwork. Now, HTTP notifications and Asterisk dial-plans get all the details they need for your call. Making Wombat part of complex data dances? Easier than ever.&lt;/p&gt;

&lt;h2 id=&quot;documentation-makeover&quot;&gt;Documentation Makeover&lt;/h2&gt;

&lt;p&gt;Blacklists got a revamp, and so did the User Manual. A brand new section, “Understanding Blacklists,” takes you on a journey through lists, blacklists, multinumbers, and API calls. Real-life examples? They’ve got those too. Check it out on GitHub and contribute your own wisdom.&lt;/p&gt;

&lt;h2 id=&quot;embracing-the-modern-era&quot;&gt;Embracing the Modern Era&lt;/h2&gt;

&lt;p&gt;With CentOS 7 waving goodbye, WombatDialer ensures a smooth transition to CentOS 8/9 and Rocky Linux 8/9. Not a fan of RHEL derivatives? Fear not, the Debian installation tutorial got a facelift for flawless execution on current systems.&lt;/p&gt;

&lt;p&gt;Wombat’s staying hip by fully supporting the latest MySQL and MariaDB versions. Choose your database adventure. Still clinging to Java 8? It’s cool, but Java 11 is here for better performance and future-proofing. WombatDialer - where tradition meets the future.&lt;/p&gt;

&lt;p&gt;Upgrade now and dive into a dialing experience that’s flexible, integrated, and well-documented. WombatDialer 23.12: it’s not just an update; it’s a game-changer.&lt;/p&gt;

&lt;h2 id=&quot;what-now&quot;&gt;What now?&lt;/h2&gt;

&lt;p&gt;All details for this release are available on our &lt;a href=&quot;https://docs.loway.ch/News/231201_wd2312.html&quot;&gt;What’s New in WombatDialer 23.12&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To update from a previous version, see &lt;a href=&quot;https://docs.loway.ch/WombatDialer/050_Sysadmin.html#WBT-UPGRADING&quot;&gt;Updating&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you’d like a test-drive, visit &lt;a href=&quot;https://www.wombatdialer.com/&quot;&gt;https://www.wombatdialer.com/&lt;/a&gt; for a full featured trial.&lt;/p&gt;

</description>
        <pubDate>Mon, 04 Dec 2023 00:00:00 +0100</pubDate>
        <link>https://www.wombatdialer.com/blog/blog/2023/12/04/WD2312-DialIntoABetterExperience/</link>
        <guid isPermaLink="true">https://www.wombatdialer.com/blog/blog/2023/12/04/WD2312-DialIntoABetterExperience/</guid>
        
        <category>23.12</category>
        
        <category>WombatDialer</category>
        
        <category>release</category>
        
        
      </item>
    
      <item>
        <title>Creating a campaign from scratch using the JSON Configuration API</title>
        <description>&lt;p&gt;The JSON Configuration APIs that come with WombatDialer lets you perform anything
that you can do through the GUI right from any piece of software you write, in any 
programming language you like. But how?&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;A lot of customers asked for &lt;strong&gt;real-life examples&lt;/strong&gt; to get started - so we developed
a set of scripts, built for ease of reading and understanding, that complement the 
User manual and show some real-life examples that:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Display the &lt;strong&gt;current configuration&lt;/strong&gt; of your WombatDialer system&lt;/li&gt;
  &lt;li&gt;Display an existing campaign in JSON format - to be used as a template to create your own&lt;/li&gt;
  &lt;li&gt;Create a &lt;strong&gt;call list&lt;/strong&gt;, upload some numbers to it (with their own attributes) and then read them back&lt;/li&gt;
  &lt;li&gt;Create a &lt;strong&gt;campaign&lt;/strong&gt; from scratch -  associate it with a trunk and an EP, add a lists and a blacklist, and create some sample reschedule rules and disposition rules on it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This should be enough to make you productive in no time if you want to develop an 
API integration to WombatDialer, and complements the &lt;a href=&quot;https://docs.loway.ch/WombatDialer/100_APIs.html#JSONAPI&quot;&gt;The JSON configuration API&lt;/a&gt; as it appears on the User Manual.&lt;/p&gt;

&lt;p&gt;The full set if scripts is &lt;a href=&quot;https://github.com/Loway/OpenWombatDialerAddOns/tree/master/JSON_Configuration_API&quot;&gt;available on GitHub&lt;/a&gt; - if you create something out of it and want to share it, that’s a good starting point.&lt;/p&gt;

&lt;p&gt;On GitHub, we also have a number of other scripts and examples in our repo &lt;a href=&quot;https://github.com/Loway/OpenWombatDialerAddOns&quot;&gt;Open WombatDialer Add-Ons&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;wombatdialer-references&quot;&gt;WombatDialer References&lt;/h2&gt;

&lt;p&gt;For more technical information about WombatDialer please refer to the &lt;a href=&quot;https://www.wombatdialer.com/manuals.jsp&quot;&gt;User Manual&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Visit &lt;a href=&quot;https://www.wombatdialer.com/&quot;&gt;https://www.wombatdialer.com/&lt;/a&gt; for a full featured trial.&lt;/p&gt;

</description>
        <pubDate>Thu, 16 Nov 2023 00:00:00 +0100</pubDate>
        <link>https://www.wombatdialer.com/blog/blog/2023/11/16/JSON-Configuration-APIs/</link>
        <guid isPermaLink="true">https://www.wombatdialer.com/blog/blog/2023/11/16/JSON-Configuration-APIs/</guid>
        
        <category>APIs</category>
        
        <category>JSON</category>
        
        
      </item>
    
      <item>
        <title>Power Dialing at its Best</title>
        <description>&lt;p&gt;&lt;strong&gt;Your WombatDialer is quite a powerful tool&lt;/strong&gt;: it is able to scale up significantly in order to manage thousands of calls at once. Whether you have 100 or 10,000 channels, you do not want to hit a wall the day you roll-out in production.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;&lt;img src=&quot;https://www.wombatdialer.com/blog/img/post_imgs/image_WDP01.png&quot; alt=&quot;1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;First, let’s define what we mean by &lt;strong&gt;high-volume dialing&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For the purpose of this article, we define “high-volume” as an amount of calls that will saturate a stock Asterisk system.&lt;br /&gt;
It is hard to put a specific value here - it depends on the kind of hardware you use and what your PBX is actually doing when processing your calls. If you really want to put a number here, say it might be around 250 calls, plus or minus 150.&lt;/p&gt;

&lt;h2 id=&quot;optimizing-asterisk&quot;&gt;Optimizing Asterisk&lt;/h2&gt;

&lt;p&gt;As Wombat relies on Asterisk for dialing, it is important to understand what are the &lt;strong&gt;challenges to high-volume call processing on your Asterisk system&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;First, what you do really matters. The number of calls that your PBX will handle successfully depends on what you are doing on it and how expensive each call is. There are three usual suspects here: &lt;strong&gt;transcoding, call recording and AGI scripts&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Transcoding&lt;/strong&gt; will use a lot of CPU to translate audio from some format to another. This happens silently every time you play a recording in a format and your channel uses a different format. Your music on hold is an MP3 and your channels speaks G729 - that’s transcoding. While this is a very convenient feature Asterisk offers, it is a no-no for high volume dialing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Call recording&lt;/strong&gt; may get very expensive pretty soon, as it will use precious disk IOPS to write hundreds of audio files to disk and precious CPU cycles to convert audio into your favourite storage format.&lt;br /&gt;
If you really need call recording, you should make sure it is turned on only when needed (for example, a callee is in conversation with an agent), that your disks are as fast as you can get them (and a ramdisk is a good choice here) and that the storage format requires as little CPU as possible.&lt;br /&gt;
For large scale recording, using a separate passive (network) recorder might be a good option.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AGI scripts&lt;/strong&gt; require a process to be run on each invocation. They are often used in Asterisk as they provide a simple way to “glue” some logic and access to external services (webservices or databases) to the Asterisk dialplan.&lt;br /&gt;
They are typically written in slow, interpreted scripting languages and will definitely not scale. When running Wombat, it is usually a better option to pre-fetch any value of interest coming from external systems and having Wombat pass it to Asterisk as a channel variable.&lt;br /&gt;
For example, instead of running an AGI script that launches an interpreter that opens a database connection over which you run an SQL query to decide whether you should play a message in English or in Spanish, this could be a channel variable set by Wombat that already contains the name of a custom audio file to play back.&lt;/p&gt;

&lt;p&gt;The second big thing you should consider is whether a &lt;strong&gt;GUI-based system&lt;/strong&gt; is right for you.&lt;br /&gt;
Though having a GUI makes your life easier when administering the system, the kind of dial plan generated is often extremely byzantine and therefore slow. While this is done in order to offer you a ton of interesting features for your office PBX, you may find that you do not really need them all when you do large scale outbound dialing.&lt;br /&gt;
The best of both worlds is using some hand-coded dialplan for dialing out (the part that is called by Wombat), and using your favourite GUI for all other functions.&lt;/p&gt;

&lt;p&gt;A third area of concern is caused by the &lt;strong&gt;AMI interface&lt;/strong&gt; that Wombat uses to drive Asterisk.&lt;br /&gt;
The AMI protocol may get extremely chatty, as the system generates a lot of events, and this may lead to significant latency before all events are processed.&lt;br /&gt;
This can be addressed by filtering the set of events that Asterisk sends (for example: Wombat does not need dialplan execution events), but even in this case at some point the problem will manifest itself. Plus, Asterisk can only process so many requests per second, and at some point you will be wanting to generate too many calls for your Asterisk system to handle.&lt;/p&gt;

&lt;p&gt;One last and general issue with Asterisk is that Asterisk processes voice channels; if the system is overloaded and voice is not processed in real-time, you will encounter voice quality issues.&lt;br /&gt;
Calling people and offering them a broken or unintelligible audio message is a big no-no. So you should &lt;em&gt;make sure you have enough “capacity buffers” on your systems&lt;/em&gt; so that voice quality stays crystal-clear in every circumstance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The real solution to high-volume dialing is therefore scaling out&lt;/strong&gt;. This means running multiple Asterisk servers in parallel, each of which is processing only a limited set of channels that is well within its limits. Luckily, Wombat was designed from the start to handle a pool of Asterisk servers as if they were one single, larger machine. For Wombat there is almost no difference in processing 500 channels on one large Asterisk instance or 100 channels each on five different instances. This makes it possible to build real-world solutions that scale to the size of your problems.&lt;/p&gt;

&lt;h2 id=&quot;running-large-wombatdialer-instances&quot;&gt;Running large WombatDialer instances&lt;/h2&gt;

&lt;p&gt;Of course, WombatDialer has to work hard to drive a lot of calls at once.&lt;br /&gt;
It has to retrieve numbers and attributes from multiple lists, clear them against blacklists, keep track of recalls, and track live calls and live queues as each of them sends their own events. Plus, Wombat syncs the current state to a database quite often, so that in case something goes severely wrong and it crashes, it can restart exactly from where it left without losing any calls.&lt;br /&gt;
This is a lot of hard work, and happens in real-time.&lt;/p&gt;

&lt;p&gt;When running Wombat, there are a few item that have to be tuned to make sure that everything runs smoothly; namely:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;System I/O and database load&lt;/li&gt;
  &lt;li&gt;Dial latency and command queues&lt;/li&gt;
  &lt;li&gt;Network latency&lt;/li&gt;
  &lt;li&gt;JVM memory and GC policies&lt;/li&gt;
  &lt;li&gt;Humans!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;system-load&quot;&gt;System load&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;A running WombatDialer system can only be as fast as the database it syncs to&lt;/em&gt;. Though WombatDialer uses batching to send the database an efficient set of updates, at some point you are going to notice that there is significant I/O wait on the system.&lt;br /&gt;
You do not want I/O wait to go over 5-10%, because this makes Wombat less reactive; it takes more to fetch data and more to respond to changes on Asterisk, namely placing new calls.&lt;br /&gt;
This can be mitigated by tuning the amount of memory that is available for MySQL to be used as a cache; the default settings that MySQL ships with are inadequate to run thousands of parallel calls. &lt;br /&gt;
A faster disk layer (using SSDs and separate data disks) also helps a lot and can make all the difference.&lt;/p&gt;

&lt;p&gt;Plus, &lt;em&gt;Wombat has to fetch data from disk in order to know which calls are to be placed next&lt;/em&gt;. It does so by processing batches of calls, as this is way quicker than requesting each call separately, This means that when a channel is freed, Wombat already has a cached call ready to be placed. This value is controlled by the &lt;strong&gt;Batch size&lt;/strong&gt; parameter on each campaign. A smaller batch size will cause Wombat to do more database work, but will cause less latency to be added. 
We suggest using a value that is about 2x the number of possible channels for a given campaign.&lt;/p&gt;

&lt;h3 id=&quot;dial-latency&quot;&gt;Dial latency&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Dial latency&lt;/strong&gt; is the amount it takes for Asterisk to “confirm” a call after it has been requested.&lt;br /&gt;
On a smoothly running system, very few calls should be appearing on the &lt;strong&gt;Live page in state REQUESTED&lt;/strong&gt;. Those are calls that have been requested to Asterisk but have not yet been acknowledged. &lt;br /&gt;
Dial latency can be split into two parts:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The time it takes for a requested call to reach Asterisk&lt;/strong&gt;.&lt;br /&gt;
Asterisk cannot process an infinite set of requests per second, and will likely crash when overloaded. Wombat tries to mitigate this by dividing a command queue into “time units”, where only so-many items can be processed in each unit. For example, the default is to avoid sending more than 5 commands every 50 milliseconds. This is a conservative estimate, and depending on your Asterisk hardware a limit of 10 or event 20 messages every 50 milliseconds might be working for you. Having multiple Asterisk servers means that there are separate messages queues connecting to each PBX instance and so each queue only holds a fraction of all outgoing calls.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The time it takes for Asterisk to confirm that a requested call is being processed&lt;/strong&gt;.&lt;br /&gt;
If this time starts being in the order of magnitude of seconds, the system is likely overloaded. It is okay for confirmation times to spike up when starting a campaign with a lot of channels to fill at once; it is not okay to have them consistently high all of the time.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can keep track of the combined time by looking at the value named &lt;strong&gt;Wait Pre&lt;/strong&gt; in the reports, and by observing the percentage of calls in state REQUESTED on the Live page.&lt;br /&gt;
Watch out for maximum and average “Wait pre” times on your campaigns.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Additional network latency may be added by the network layer&lt;/em&gt;; WombatDialer is designed to work best with a local database and local Asterisk servers.&lt;br /&gt;
Turn-around time to the database and to the Asterisk servers should be ideally zero milliseconds; values higher than 100 milliseconds (e.g. running WombatDialer in the US with Asterisk servers in Europe and a database in Singapore) will not work for high-load scenarios.&lt;br /&gt;
Also, the bandwidth between all machines should be data-center or LAN class; consider that each large Asterisk instance might generate 4-5 megabit of events per second.&lt;/p&gt;

&lt;h3 id=&quot;memory-and-gc&quot;&gt;Memory and GC&lt;/h3&gt;

&lt;p&gt;As per memory, &lt;strong&gt;WombatDialer does not really need a lot of memory to run into&lt;/strong&gt; - you can have the engine process thousands of parallel calls in as little as 256M of heap.&lt;br /&gt;
This said, if you run reports, have multiple users accessing the system, keep the Live page open and upload new call lists at the same time, the amount or RAM needed might be significantly higher. Plus, as with all Java applications, having less available memory means that the JVM has to be more aggressive in garbage collections.&lt;br /&gt;
This leads to very uneven latency and it may even cause “stop the world” garbage collection events. This is something you want to avoid at all costs; memory is very cheap, so you should give Wombat a good amount or RAM to run into, and use a throughput-oriented generational garbage collector that is optimized to avoid major collection events at the price of using more working memory.&lt;/p&gt;

&lt;h3 id=&quot;usage-patterns&quot;&gt;Usage patterns&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The last item on our list are human usage patterns&lt;/strong&gt;; the less activity you will have on a system at peak dialing time, the better.&lt;br /&gt;
Don’t leave the Live page open “just in case”. Try to avoid running major reports or uploading very large lists when your system is fully loaded - most likely you can do it at a later time. &lt;em&gt;WombatDialer includes a very extensive API that allows for complete remote control of Wombat instances&lt;/em&gt;.&lt;/p&gt;

&lt;h2 id=&quot;wrapping-up&quot;&gt;Wrapping up&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;This said, it is reasonable to run thousands of parallel calls on a WombatDialer system with modern, high-end hardware&lt;/em&gt;.&lt;br /&gt;
During the years, we did some significant tuning and optimization on Wombat that means WombatDialer is about 2x as efficient as previous versions were.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In any case, remember to do a significant load test before going into production. Whether you have 100 or 10,000 channels, you do not want to hit a wall the day you roll-out in production.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Dialing thousands of channels may not be your piece of cake, but it’s nice to know that you can do it at the touch of a button. We believe that a good tool should give you margins for growth and preserve your existing investment and expertise. We work hard to make sure you will not have to worry about it.&lt;/p&gt;

&lt;h2 id=&quot;wombatdialer-references&quot;&gt;WombatDialer References&lt;/h2&gt;

&lt;p&gt;For more technical information about WombatDialer call center solution please refer to the &lt;a href=&quot;https://www.wombatdialer.com/manuals.jsp&quot;&gt;User Manual&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Visit &lt;a href=&quot;https://www.wombatdialer.com/&quot;&gt;https://www.wombatdialer.com/&lt;/a&gt; for a full featured trial.&lt;/p&gt;

&lt;p&gt;Attend our &lt;a href=&quot;https://v1.bookwhen.com/loway&quot;&gt;Free Webinars&lt;/a&gt; for a live demonstration of WombatDialer.&lt;/p&gt;
</description>
        <pubDate>Wed, 10 Nov 2021 00:00:00 +0100</pubDate>
        <link>https://www.wombatdialer.com/blog/blog/2021/11/10/power-dialing-at-its-best/</link>
        <guid isPermaLink="true">https://www.wombatdialer.com/blog/blog/2021/11/10/power-dialing-at-its-best/</guid>
        
        <category>performance</category>
        
        <category>power dialing</category>
        
        <category>predictive dialer</category>
        
        
      </item>
    
      <item>
        <title>Hey! There’s a Wombat in my Docker!</title>
        <description>&lt;p&gt;When Erwin started talking about ships and sailing, we considered it quite normal. But what is Erwin doing on an (apparently pirate) container ship?&lt;/p&gt;

&lt;p&gt;Yes - WombatDialer is now available as a working Docker image.&lt;/p&gt;

&lt;h4 id=&quot;why-is-this-cool&quot;&gt;Why is this cool?&lt;/h4&gt;

&lt;p&gt;Docker containers are a new standard for infrastructure management. Docker containers let you install and upgrade software without worrying about dependencies and software versions - each of them behaves as - if it was a separate virtual machine, but it is lightweight as the actual running processes and has very low latency.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;This plays very well with WombatDialer, that is an extremely flexible and scalable outbound dialer for the Asterisk PBX. It follows our philosophy that you should tell the system what you want done, not how, and that WombatDialer will take care of all the low-level details (errors, reschedules, call handling, server clustering, logging) while you focus on the high-value-added business application; be it call reminders, queue recalls, telephony surveys… you name it.&lt;/p&gt;

&lt;h4 id=&quot;what-does-this-means-for-wombatdialer&quot;&gt;What does this means for WombatDialer?&lt;/h4&gt;

&lt;p&gt;You can run the Dockerized version of WombatDialer in a single command on any Linux OS that supports Docker. So to test-drive WombatDialer on a new system running Docker v1.0+, you just enter:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker run -p 8080:8080 -P -d loway/wombatdialer
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This downloads an image containing Wombat and its database, and starts it by binding it to port 8080 of the local server. So you can connect it as http://[serverip]:8080/wombat and it will run immediately. Docker runs on CentOS 7 and Debian systems. Just make sure that you are running version 1 or newer. Want to test-drive it fully? Get a free WombatDialer demo key and start serious dialing immediately.&lt;/p&gt;

&lt;p&gt;To make sure it’s running and find out the id, enter:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker ps
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And to stop it:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker stop {id}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Each container is run as a separate instance; so you could have multiple distinct WombatDialers on the same box, just by binding them to a separate public port.&lt;/p&gt;

&lt;p&gt;Want to run a quick test? Just start a new instance, do your testing and throw it away. Each instance starts as a clean-slate, with a clean database and configuration ready to be customized.&lt;/p&gt;

&lt;p&gt;That’s nice but… how do I keep the data between different runs?&lt;/p&gt;

&lt;p&gt;WombatDialer uses a pattern called “data-only containers”. This means that you can have special containers that only contain the data (databases and custom configuration) where everything else is in a code image. You do this by creating a data-only container, giving it a name, in our case it’s “MYWBT”, and mounting it to your WombatDialer instance.&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker run --name=MYWBT loway/data true
docker run --volumes-from MYWBT -p 8080:8080 -P -d loway/wombatdialer
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;So if you run a WombatDialer instance without a special data container, everything will be put in the code image. If you do, all data that is supposed to be present on an update will be stored in the data-only container.&lt;/p&gt;

&lt;h4 id=&quot;you-want-to-upgrade-wombatdialer-because-a-new-version-is-out&quot;&gt;You want to upgrade WombatDialer because a new version is out?&lt;/h4&gt;
&lt;p&gt;Stop your existing Wombat instances, and run them again on the same data containers. Docker will download the latest version and when you connect to it, the database will be automatically updated.&lt;/p&gt;

&lt;h4 id=&quot;want-to-make-backups&quot;&gt;Want to make backups?&lt;/h4&gt;
&lt;p&gt;Connect to the data-only container using a tool like “nsenter” and run a backup job.&lt;/p&gt;

&lt;h4 id=&quot;what-is-coming-next&quot;&gt;What is coming next?&lt;/h4&gt;
&lt;p&gt;We expect Docker to play a significant role in infrastructure management. We believe that it makes it so simple to run WombatDialer instances that end up being just “fire and forget”. Plus, having higher performance, lower memory consumption and lower latency compared to a separate VM, it plays especially well for telephony applications.&lt;/p&gt;

&lt;h2 id=&quot;wombatdialer-references&quot;&gt;WombatDialer References&lt;/h2&gt;

&lt;p&gt;For more technical information about WombatDialer call center solution please refer to the &lt;a href=&quot;https://www.wombatdialer.com/manuals.jsp&quot;&gt;User Manual&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Visit &lt;a href=&quot;https://www.wombatdialer.com/&quot;&gt;https://www.wombatdialer.com/&lt;/a&gt; for a full featured trial.&lt;/p&gt;

&lt;p&gt;Attend our &lt;a href=&quot;https://v1.bookwhen.com/loway&quot;&gt;Free Webinars&lt;/a&gt; for a live demonstration of WombatDialer.&lt;/p&gt;
</description>
        <pubDate>Tue, 21 Sep 2021 00:00:00 +0200</pubDate>
        <link>https://www.wombatdialer.com/blog/blog/2021/09/21/wombatdialer-in-my-docker/</link>
        <guid isPermaLink="true">https://www.wombatdialer.com/blog/blog/2021/09/21/wombatdialer-in-my-docker/</guid>
        
        <category>Docker</category>
        
        <category>predictive dialer</category>
        
        
      </item>
    
      <item>
        <title>Introducing WombatDialer 21.06</title>
        <description>&lt;h1 id=&quot;wombatdialer-2106-released-today&quot;&gt;WombatDialer 21.06 released today&lt;/h1&gt;

&lt;p&gt;Loway is proud to announce the release of WombatDialer 21.06;
this release is mostly centered around the API side of WombatDialer 
and makes its integration with external systems easier and safer to run.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;WombatDialer boosts agents productivity and improves your contact center’s outbound flow.
You can easily implement automatic dialing, Text-to-Speech integration and call-back options on unanswered calls. You can configure your outbound campaigns with different dialing modes including direct, reverse, preview, manual and predictive.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What are the main improvements for this release?&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Improved API security&lt;/li&gt;
  &lt;li&gt;Backpressure on number uploads&lt;/li&gt;
  &lt;li&gt;AUTO calls start from attempt 0&lt;/li&gt;
  &lt;li&gt;Externally-fed API Queue end-points&lt;/li&gt;
  &lt;li&gt;GUI Improvements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On top of this, about &lt;em&gt;25 bugs and minor issues&lt;/em&gt; were fixed.&lt;/p&gt;

&lt;p&gt;It is immediately available as an RPM archive, a TGZ archive or a Docker image.&lt;/p&gt;

&lt;h2 id=&quot;improved-api-security&quot;&gt;Improved API security&lt;/h2&gt;

&lt;p&gt;When WombatDialer was created about almost 10 years ago, it was meant to be deployed on a local network. Things have changed quite a bit, and now we see a lot of deployments that go straight to the cloud.&lt;/p&gt;

&lt;p&gt;As it was meant to be run internally, and to be easy to interact with out of the Asterisk dial plan that is rather limited in its API interactions, while human users enjoyed full security access control, APIs were simpler and we suggested using an external HTTP server as a chokepoint whenever it was appropriate.&lt;/p&gt;

&lt;p&gt;Now, as an evolution, we offer &lt;strong&gt;token-based authentication&lt;/strong&gt; so that you can enforce a token to be present on all API calls. You can have multiple tokens enabled at once.&lt;/p&gt;

&lt;p&gt;This option must be enabled manually, but should allow for a safer deployment on networked systems.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;See: The WombatDialer User manual, section: 8.3.1&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;back-pressure-on-number-uploads&quot;&gt;Back-pressure on number uploads&lt;/h2&gt;

&lt;p&gt;If you have implemented a busy WombatDialer system, most likely you are aware of the fact that you can upload numbers one by one and have them added to a list that is running by calling a very simple HTTP API. This happens very fast, because Wombat will only make sure that the number is queued for being consumed before replying that it’s okay.&lt;/p&gt;

&lt;p&gt;This process was designed to upload numbers - for example for recalling customers who are finding a long busy queue - so you have just a few per second as the worst case,and we didn’t want to block the PBX for a longer time than strictly necessary.&lt;/p&gt;

&lt;p&gt;This works fine if you drip numbers in a small lots, but if you upload thousands of numbers at once, they end up being too many to be processed and Wombat may stall trying to process them all at once.&lt;/p&gt;

&lt;p&gt;In this version of Wombat we added &lt;strong&gt;back pressure control&lt;/strong&gt; to the call upload API, so that the call will not return unless the number has been added correctly to the campaign. This makes it way slower, but it also make sure that adding numbers will blend in correctly with a busy Wombat system. This behavior can be overridden by adding the parameter &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fireforget&lt;/code&gt;, that effectively restores the old behavior.&lt;/p&gt;

&lt;p&gt;We also fixed a possible issue with starvation that could happen if too many numbers were being added at the same time when campaigns were running. Now, any running campaigns have a higher priority and may delay numbers being added, but not the other way around.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;See: The WombatDialer User manual, section: 8.3.2&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;auto-calls-start-from-attempt-0&quot;&gt;AUTO calls start from attempt 0&lt;/h2&gt;

&lt;p&gt;This is again a change in behavior: on earlier Wombat versions, when you add a number to an AUTO list, it is considered a reschedule and not a “cold” number. You would notice it because its attempt number was 1 and not zero, and was not much of an issue in itself.&lt;/p&gt;

&lt;p&gt;The problem happens when you use this feature together with multi-numbers, because it being attempt #1 it will first attempt the second number and not the main one.&lt;/p&gt;

&lt;p&gt;This was confusing, and is now fixed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;See: The WombatDialer User manual, section: 8.3.2&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;experimental-feature-externally-fed-api-queue-end-points&quot;&gt;Experimental feature: Externally-fed API Queue end-points&lt;/h2&gt;

&lt;p&gt;WombatDialer was designed to work as a controller of one or more clustered PBX systems, so it’s expected that all the information about the state of agents it may be interested in will be immediately available from the PBX’s own update mechanisms when Wombat needs it to make a decision.&lt;/p&gt;

&lt;p&gt;Still, we are seeing a number of people interested in &lt;strong&gt;tracking the state of an external queue&lt;/strong&gt;, one that is not available on the PBX that Wombat is monitoring, and one that may be for example on a third-party’s premises, e.g. when you do call pre-qualification and have multiple clusters stacked hierarchically.&lt;/p&gt;

&lt;p&gt;To handle this, we thought that we could turn the problem on its head. Instead of being Wombat that goes out and tries to understand the state of a queue, and an external system will notify one but when something of interest happens, typically when one of the target agents changes its state. This happens through an API call.&lt;/p&gt;

&lt;p&gt;This feature is at the moment &lt;strong&gt;experimental&lt;/strong&gt;, because it’s still new and we want to understand how it could work in real life in a way that is simple enough to be used by the majority of our customers. Still like you can testify and benefit from it. Just remember that state updates it must be timely, otherwise Wombat cannot make the correct decisions.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;See: The WombatDialer User manual, section: 3.4.2. API-driven queue end-points&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;gui-improvements&quot;&gt;GUI Improvements&lt;/h2&gt;

&lt;p&gt;We’ve had a number of smaller changes that were meant to make the GUI easier to work with.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Buttons and end-point selectors on the Live page look better and are little easier to  use.&lt;/li&gt;
  &lt;li&gt;The endpoint configuration used used to display an outdated message.&lt;/li&gt;
  &lt;li&gt;The agent reverse dialing page was totally redesigned, so that so that it looks a bit better. That page was meant to be just an example of how to implement a reverse dialing page, but most people ended up using it as it is, and so we made sure it is cleaner.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;wombatdialer-references&quot;&gt;WombatDialer References&lt;/h2&gt;

&lt;p&gt;For more technical information about WombatDialer call center solution please refer to the &lt;a href=&quot;https://www.wombatdialer.com/manuals.jsp&quot;&gt;User Manual&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Visit &lt;a href=&quot;https://www.wombatdialer.com/&quot;&gt;https://www.wombatdialer.com/&lt;/a&gt; for a full featured trial.&lt;/p&gt;

&lt;p&gt;Attend our weekly &lt;a href=&quot;https://v1.bookwhen.com/loway&quot;&gt;Free Webinars&lt;/a&gt; for a live demonstration of WombatDialer.&lt;/p&gt;

</description>
        <pubDate>Mon, 31 May 2021 00:00:00 +0200</pubDate>
        <link>https://www.wombatdialer.com/blog/blog/2021/05/31/wombatdialer-predictive-dialer-release-2106/</link>
        <guid isPermaLink="true">https://www.wombatdialer.com/blog/blog/2021/05/31/wombatdialer-predictive-dialer-release-2106/</guid>
        
        <category>predictive dialer</category>
        
        <category>WombatDialer</category>
        
        <category>dialer</category>
        
        <category>release</category>
        
        <category>21.06</category>
        
        <category>APIs</category>
        
        
      </item>
    
      <item>
        <title>Handle queue peak times more effectively with WombatDialer call-backs</title>
        <description>&lt;h1 id=&quot;how-can-you-handle-your-call-center-peak-times-more-effectively-while-agents-are-working-from-home&quot;&gt;How can you handle your call center peak times more effectively while agents are working from home?&lt;/h1&gt;

&lt;p&gt;Due to recent &lt;strong&gt;COVID19 pandemic&lt;/strong&gt;, most call centers are adopting remote working solutions. This can create a problem as agents will work from home or outside the company, staff is reduced and your service level performance suffers.&lt;/p&gt;

&lt;p&gt;If you are running an inbound call centre it often happens, especially with reduced staff or remote workers that you experience long waiting times in specific days of the week or hours.&lt;/p&gt;

&lt;p&gt;Wait times peak and abandon rates spike can be very frequent. Your call center managers will be very concerned of having to hire and train some temporary people in order to handle load that only happens on a few days.&lt;/p&gt;

&lt;p&gt;With WombatDialer predictive dialer you can successfully manage this situation using &lt;strong&gt;Queue Call-Back feature&lt;/strong&gt;.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;WombatDialer is highly scalable software, multi-server and works with your &lt;strong&gt;Asterisk PBX&lt;/strong&gt;. With its campaign management tools it boosts agents productivity and improves your outbound campaigns with automatic dialing, queue recalls functions, call forwarding options, and different dialing modes including direct, reverse, preview, manual and predictive.&lt;/p&gt;

&lt;p&gt;You can configure your Asterisk PBX so that when people are tired of waiting, they press a digit and get to a menu where they can leave their number. Then the system queues their call and attempts to call them at a convenient time but only when some of your agents are sitting idle.&lt;/p&gt;

&lt;p&gt;This helds your waiting times and abandon rates to go down, and by placing calls at a convenient time you can smooth out the workload of your agents during the day, just by moving agents to a dedicated inbound queue.&lt;/p&gt;

&lt;p&gt;To do this on a plain Asterisk system you will have to create a database and write a script that reads back from it.
You have to handle invalid numbers and busy numbers. You need to have a GUI of some kind for the manager to start and stop dialing and you have to adapt to the number of available agents. Additionally you have to report on this activities and to avoid flooding the trunks of your PBX with too many calls. In other words, it’s the kind of activity that gets more complex the more you think about it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;That’s what WombatDialer is for.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You can use WombatDialer as a &lt;strong&gt;call-back engine&lt;/strong&gt;. It can be controlled by an external HTTP API, so you can do that from the Asterisk dial-plan. It has a definite topology and call back rules, so you get the number of calls you expect on one or more Asterisk servers. It follows opening hours so calls are never placed at the wrong time; it does not interfere with calls that are not its own and retries calls automatically. It keeps track of call completions and knows what to do in case of invalid and busy numbers.&lt;br /&gt;
It has reports of its own and can work with QueueMetrics for powerful and detailed reports.&lt;/p&gt;

&lt;p&gt;If you are interested in this feature do not hesitate to contact us, our engineers will guide you towards the best solution for your call center daily management with Queue call-back.&lt;/p&gt;

&lt;p&gt;Start your WombatDialer predictive dialer free full featured trial at &lt;a href=&quot;https://www.wombatdialer.com&quot;&gt;https://www.wombatdialer.com/&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;wombatdialer-references&quot;&gt;WombatDialer References:&lt;/h2&gt;

&lt;p&gt;For more technical information about WombatDialer call center solution please refer to the &lt;a href=&quot;https://www.wombatdialer.com/manuals.jsp&quot;&gt;User Manual&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Visit &lt;a href=&quot;https://www.wombatdialer.com/&quot;&gt;https://www.wombatdialer.com/&lt;/a&gt; for a full featured trial.&lt;/p&gt;

&lt;p&gt;Attend our &lt;a href=&quot;https://v1.bookwhen.com/loway&quot;&gt;Free Webinars&lt;/a&gt; for a live demonstration of WombatDialer.&lt;/p&gt;
</description>
        <pubDate>Tue, 02 Jun 2020 00:00:00 +0200</pubDate>
        <link>https://www.wombatdialer.com/blog/blog/2020/06/02/wombatdialer-handle-peak-times/</link>
        <guid isPermaLink="true">https://www.wombatdialer.com/blog/blog/2020/06/02/wombatdialer-handle-peak-times/</guid>
        
        <category>predictive dialer</category>
        
        <category>dialer</category>
        
        <category>remote working</category>
        
        <category>call back</category>
        
        <category>handle peak</category>
        
        
      </item>
    
      <item>
        <title>Introducing WombatDialer 20.02</title>
        <description>&lt;h1 id=&quot;wombatdialer-release-version-2002&quot;&gt;WombatDialer Release Version 20.02&lt;/h1&gt;

&lt;p&gt;Loway is proud to announce the release of WombatDialer 20.02;
it was designed to make the life of administrators easier, with many 
small fixes that improve the overall experience of running the dialer 
for both small and very large systems.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;&lt;em&gt;What are the main improvements for this release?&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Improved handling of black lists&lt;/li&gt;
  &lt;li&gt;Tracking of attended and unattended transfers from queues&lt;/li&gt;
  &lt;li&gt;Improved  GUI&lt;/li&gt;
  &lt;li&gt;Improvements to the API, with full visibility of JMX internals&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On top of this, about &lt;em&gt;40 bugs and minor issues&lt;/em&gt; were fixed.&lt;/p&gt;

&lt;h2 id=&quot;improved-black-lists&quot;&gt;Improved black-lists&lt;/h2&gt;

&lt;p&gt;You asked and we listened: this is an apparently simple change that has deep implications. WombatDialer has
&lt;strong&gt;powerful black-list&lt;/strong&gt; where numbers can be added at any time and for any specified duration of time - 
one minute to a month or more. As you can imagine, black-lists are central to compliance with 
local regulation in many parts of the world.&lt;/p&gt;

&lt;p&gt;So far, black-lists were checked only when starting a new call, so if the call was allowed and it needed
multiple attempts to go through, all of them would be made even if the number had been black-listed in 
the mean time.&lt;/p&gt;

&lt;p&gt;With WombatDialer 20.02, black-lists are checked on each and every attempt, so as soon as a number
is black-listed, all subsequent attempts to dial it will be caught. This means you can use black-lists 
in a way that is more natural, and create new scenarios: for example, to cancel further scheduled outbound calls 
when a caller happens to call in first.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;See: The WombatDialer User manual, section: 3.6.6. Black lists&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;tracking-of-attended-and-unattended-transfers&quot;&gt;Tracking of attended and unattended transfers&lt;/h2&gt;

&lt;p&gt;It is quite a common scenario for outbound contact centres to have agents contact and qualify a prospect, and then 
&lt;strong&gt;transfer&lt;/strong&gt; them to the appropriate department. When this happens, the original agent will be free again to
take another call.&lt;/p&gt;

&lt;p&gt;Historically, call transfer support on queues with Asterisk was not that good, and only unattended transfers were supported. Luckily, this has improved significantly since Asterisk 13, and WombatDialer now supports it fully 
for both &lt;strong&gt;attended&lt;/strong&gt; and &lt;strong&gt;unattended&lt;/strong&gt; transfers, making the agent ready to take 
a new call as soon as a previous one is transferred.&lt;/p&gt;

&lt;p&gt;You can use both attended and unattended transfers, and it works in direct and reverse dialing mode, with or without
predictive over-dialling.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;See: The WombatDialer User manual, section: 3.8.3. Call transfers&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;improved-gui&quot;&gt;Improved GUI&lt;/h2&gt;

&lt;p&gt;Selecting &lt;strong&gt;multiple runs&lt;/strong&gt; for inspection on the Reports page is easier, with a select all/unselect all checkbox for each campaign.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.wombatdialer.com/blog/img/post_imgs/image_WDNR01.png&quot; alt=&quot;1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Users can now &lt;strong&gt;change their own password&lt;/strong&gt; right from the GUI, through a new integrated password change panel:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.wombatdialer.com/blog/img/post_imgs/image_WDNR02.png&quot; alt=&quot;2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Copy Campaign feature&lt;/strong&gt; requires a new, separate security key called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;COPY&lt;/code&gt;. On upgrade of an existing system, 
you will see that the option is disabled until the new key is granted.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Reverse Step-wise dialer panel&lt;/strong&gt; had a face-lift to make integration with QueueMetrics more natural and 
working with it more pleasant.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.wombatdialer.com/blog/img/post_imgs/image_WDNR03.png&quot; alt=&quot;3&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Dialer State page&lt;/strong&gt; now features a different icon for stop-and-restart, as it looked too similar to
the one used to refresh current state on the home page.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.wombatdialer.com/blog/img/post_imgs/image_WDNR04.png&quot; alt=&quot;4&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;improvements-to-the-api&quot;&gt;Improvements to the API&lt;/h2&gt;

&lt;p&gt;The elephant in the room here is &lt;strong&gt;JMX counters&lt;/strong&gt;: these are the standard mechanism a Java 
program uses to publish performance counters. They expose a wealth of information
on what WombatDialer is doing internally - memory and CPU usage, number of operations, delays on queues, 
fine performance of many separate operations, number and delay of messages exchanged with the PBX, for a total of over 140 counters.&lt;/p&gt;

&lt;p&gt;Now, WombatDialer exposes all of them as a simple JSON service, without the hassle and the 
complexity of setting up a JMX client. So it is very easy to push them to a graphing or monitoring back-end
in order to observe and monitor performance over time.&lt;/p&gt;

&lt;p&gt;The API now returns the correct campaign-list association as soon as it is created, saving you
a second round-trip to fetch this information on campaign creation.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;See: The WombatDialer User manual, section: 8.3.7. JMX statistics&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;misc-items&quot;&gt;Misc items&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Full compatibility with Asterisk 15 and 16 (current LTS)&lt;/li&gt;
  &lt;li&gt;Extensive testing of PJSIP channel support&lt;/li&gt;
  &lt;li&gt;Fixed issue with local logging where data would not persisted to the database on some restarts&lt;/li&gt;
  &lt;li&gt;Addressed an auth bypass bug on campaign creation&lt;/li&gt;
  &lt;li&gt;Addressed security bypass on end-points through the GUI&lt;/li&gt;
  &lt;li&gt;Compact and easier-to-read representation of AMI blocks in debug logs&lt;/li&gt;
  &lt;li&gt;Pause events would not be tracked correctly on Asterisk 13+&lt;/li&gt;
  &lt;li&gt;Improved set-up wizard&lt;/li&gt;
  &lt;li&gt;Upgraded GWT version and collapsed obsolete browser versions into single build.&lt;/li&gt;
  &lt;li&gt;Clean-up of various deprecated methods&lt;/li&gt;
  &lt;li&gt;Manual preview mode enforces Reverse Dialling in  the editor&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;get-it-now&quot;&gt;Get it now!&lt;/h1&gt;

&lt;p&gt;WombatDialer 20.02 is immediately available, as a RPM package for CentOS 6+, a tar.gz archive 
or a pre-configured Docker image. Get it from &lt;a href=&quot;https://www.wombatdialer.com/installation.jsp&quot;&gt;https://www.wombatdialer.com/installation.jsp&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The updated User Manual can also be found on the Downloads page.&lt;/p&gt;

&lt;p&gt;If you currently have a licensed WombatDialer system, you can upgrade now at no extra cost.&lt;/p&gt;

&lt;p&gt;We welcome your comments and feedback.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Happy dialing!&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;wombatdialer-references&quot;&gt;WombatDialer References:&lt;/h2&gt;

&lt;p&gt;For more technical information about WombatDialer call center solution please refer to the &lt;a href=&quot;https://www.wombatdialer.com/manuals.jsp&quot;&gt;User Manual&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Visit &lt;a href=&quot;https://www.wombatdialer.com/&quot;&gt;https://www.wombatdialer.com/&lt;/a&gt; for a 30 days full featured trial.&lt;/p&gt;

&lt;p&gt;Attend our &lt;a href=&quot;https://v1.bookwhen.com/loway&quot;&gt;Free Webinars&lt;/a&gt; for a live demonstration of WombatDialer.&lt;/p&gt;
</description>
        <pubDate>Mon, 17 Feb 2020 00:00:00 +0100</pubDate>
        <link>https://www.wombatdialer.com/blog/blog/2020/02/17/wombatdialer-release-2002/</link>
        <guid isPermaLink="true">https://www.wombatdialer.com/blog/blog/2020/02/17/wombatdialer-release-2002/</guid>
        
        <category>predictive dialer</category>
        
        <category>dialer</category>
        
        <category>release</category>
        
        <category>20.02</category>
        
        
      </item>
    
  </channel>
</rss>
