Skip to main content

Release Notes 58.0

The new release 58 introduces a completely renewed web interface, some important updates for secure connections and comes with a number of smaller fixed and new features. To check if your version can be upgraded to version 58, check https://vodia.com/mplan.

New web interface

The new version uses a completely redesigned web interface. This new interface is responsive, so that also the administrators can navigate the PBX from mobile devices. It separates javascript code from the web content itself and from the style sheets. This makes it easier to customize the look of the web interface and remove or add functionality. It is now even possible to use the PBX as a small web server for general purpose web pages. The login screen can easily be customized to appear as a landing page with links to other pages of the service provider, reducing the need to run separate web servers.

Added graphs on system admin web pages. When navigating system administrator pages, the new web interface always shows the number of calls and the number of registrations, so that the administrator always has those graphs in sight. SVG Logos. The concept for banners was dropped and replaced by a new tenant logo approach. Domains may upload their own logos that are used alongside the operator's logo (by default the Vodia logo). The logos for the phones are stored in JPEG format and can be uploaded separately. This is needed because of the different padding requirements for VoIP phones; mixing VoIP phone logos with the web interface logo makes it unnecessarily complicated to have appealing customization for tenants. The operators logos can be changed on the file system. SVG graphs. The graphs for CPU load, calls and other information is displayed in vector graphics. This is because todays displays with sub-pixel resolution can display more details than the pixel images of the previous version could provide. For the MOS graph, the PBX generates PNG images where the number of calls determines the transparency in the picture at this point, giving the image a 3D touch for the call quality of the system. Email connections. For each email connection, the new web interface shows a list of the currently used email connections. This makes it easier to see the email activity on the system. REST API. The whole web interface is now using REST-API commands. This is according modern web design, but it also makes it possible to completely script the interaction with the PBX. Old "ssi" commands are still in the PBX code, however are not used any more by the new web interface and will eventually phased out and removed from the code. Non-standard port. Login on non-standard port as user was not working in previous versions. Third party login. A third-party login was added. This is a new API call that creates a session token on behalf of one of the users which can be passed to a client. This way third party applications that need to integrate WebRTC voice calls (e.g. CRM applications or accounting software) don’t need to load the user’s passwords into the client. The login can be done by system and domain administrators.

Provisioning

pnp.xml file. Instead of having all of the provisioning information in just one file, the new version uses several files for this purpose now. For each vendor the PBX now uses its own file. This makes it easier to perform software upgrades for the PBX, because a smaller portion of the file needs to be changed. Those files can now be customized on domain level, making it easier to stage changes in domains or to make changes for specific customers.

Polycom. The master file now contains a settings that keeps Polycom phones from uploading their call lists every time a call has ended.

Grandstream. New models like the Grandstream 3275 were added. Button profiles for models like the Grandstream 1628 were added. The firmware path is now a parameter; this makes it easier to provision certain firmware versions, for example dropping the firmware into the PBX tftp directory.

Snom. For the small models, the function of the display keys can be programmed through provisioning parameters now. Some models did not have enough buttons to address the available extension boards.

Aastra/Mitel. The templates for Aastra and Mitel have been dramatically improved. This includes region-specific additions. The PBX now supports Digest authentication for authentication, so that those phones can also store their authentication information after the initial pairing with the PBX.

Yealink. New Yealink models 56 and 58 were added. Also the PBX now provisions the audio ring files for the phones, so that incoming phone calls sound the same across different devices. More Yealink button types are now supported, including private line, voice mail, LDAP, DND and intercom. If buttons are not defined, the PBX now deletes the button assignment instead of leaving the last configuration intact. The SRTP negotiation for Yealink was not clear and has been improved. Administrators can now specify the firmware links for the Yealink phones. The zero-touch API for Yealink was updated, using the "isOverride" parameter.

Alcatel. Alcatel-branded phones were added to the provisioning profiles.

HTek. The HTek button numbers were updated.

Security

TLS versions. The PBX now has settings that define what minimum version should be used for HTTP/SIP and for WebRTC media. This setting became necessary to keep older devices working, because by default the PBX will raise the requirements for TLS. The RC4 cipher was disabled by default now, clients must support AES now.

Poodle attack. Older versions of the PBX did not check the padding in blocks, which could be used in certain kind of security attacks.

AltName in default certificate. The default certificate now includes the AltName attribute. Although in most cases the certificate will not be trusted anyway, it is today a good practice to include the AltName in all certificates.

Wildcard certificates. In the old version, wildcard certificates had to be loaded as system certificate. That made it impossible to host different families of domains on the same server. In the new version, wildcard certificates can also be used on domain level. The system will first try to find an exact match and if not found, try to match a wildcard certificate.

Others

Improved logic for determining CPU load. The PBX calculates the current CPU load for processing RTP packets based on wait/active cycles. This logic was working reasonably fine for display e.g. on the web interface. However for short term decision weather more calls can be accepted on the system, it could happen that there were not enough samples available, resulting in unneeded call rejections. The new algorithm makes sure that a reasonably long history is available to make call rejection decisions.

Trunk headers. The custom trunk headers may now also reference the user and domain general purpose parameters (e.g. {ext-param1]). This makes it easier to add extension and domain specific information to trunks.

Device dial plans. The device dial plans previously were assuming that the mailbox prefix was "8". However when this setting was changed, the device dial plans would not work any more. The new version introduces a variable that holds that prefix, this variable can be included in the dial plans now. The new default device dial plan includes this feature already.

Fill chars. Some user agents, especially soft phones, were including fill characters in phone numbers. For example instead of dialing "6173998147" they would dial "(617) 399 8147". This causes problems in the dialing process. The new version has a global settings of characters that should be ignored in that step.

ACD FAX. When a FAX hits an ACD, the PBX can now redirect that call to another destination, for example a mailbox that can convert the FAX into an email.

MWI subscriptions. According to the SIP standard, SIP endpoints need to subscribe to message waiting indication (MWI) events. However the reality is that certain devices don’t follow the standard and instead expect the PBX to send those notifications unsolicited. Sending MWI to devices that did not have a MWI subscription in the previous versions was not solving the problem properly, as subscriptions could temporarily drop out (e.g. because of bad network connectivity) and cause hard-to-find problems. We have added a parameter in the PnP configuration files that tells the PBX which user-agents expect such unsolicited notifications.

Paging announcements. The domain administrator can now decide if the user should hear an announcement tone at the beginning of the page. The tone rendered by the VoIP phone is independent from this new setting.

Webclient timeouts. When the web client received more than three timeouts, it would have that request stuck in the queue until the next reboot. This was causing major problems with CDR reporting when the CDR server was not totally stable. The new version deletes requests that times out three times and moves on in the queue.

Cell phone disconnect. The PBX would disconnect a user on his cell phone after a short period of time if the user did not press any button. This is a problem if that user has a parked call that would become inaccessible then. The new version does not drop the call if there are parked calls that need to be picked up by the user or somebody else.

ActionURL for mailbox. An ActionURL was added that is triggered when a new mailbox message is available. Because ActionURL methods are flexible, this method can be used e.g. to send text messages to users. The ActionURL may include voice transcriptions. It may also be used to send MMS messages, where the voicemail itself can be included in the message. JSON and XML encoding was introduced to make the encoding easier with modern API providers (see https://vodia.com/doc/actionurl).

Cell phone ringback. When calling the cell phone with the *00 star code, the ring back from the cell phone was not properly sent to the caller.

Auto attendant conference action. The auto attendant can now take callers into a conference room after they have entered the room number.

DID uniqueness. Then changing or setting the country code it was possible that DID numbers overlap across different domains. Although this should be a very rare event, the PBX now makes sure that this cannot happen.

Stuck paging. There was a potential race condition that could lead to stuck calls, especially when paging in slow networks.

Extended regular expressions. Case-insensitive comparisons could be still case sensitive in certain cases.

Web pages compression. The web server now can serve compressed files, which can significantly reduce the load times, especially on mobile devices.

Paging time limitation. The limitation for pages could be set in the web interface but had no impact on actual pages.

Attempts to deliver mailbox messages. When the PBX tried to deliver mailbox messages to a cell phone, the settings that control how many times it would try would be ignored. The default settings were very intrusive (calling every minute); the new settings are a lot less intrusive when trying to deliver the message (calling every hour).

Mailbox compression. The PBX now has a setting that instructs the PBX to compress mailbox messages or not.

CDR emails. When sending out emails with CDR lists the PBX will now include the extension for the call, if there was an extension.

DTMF history. The DTMF history in the CDR is now an array, not a map. This makes it easier to process.

Check-sync. The previous version tried to fix a problem with a firmware of a specific vendor, which turned out to be a bad idea for all the other devices. The fix was rolled back to as it was back before.

Spaces in CNAM. When matching patterns in trunks, spaces were not possible in CNAM. Now the patterns are URL-encoded, making such matches possible.

FAX email. The system now shows the number that was called, not the extension name. This is usually more useful as it includes the full phone number that was dialled.

Media timeout handling. When the PBX experiences a media timeout, it now first tries to send a Re-INVITE before disconnecting the call. Only if there is no response for the Re-INVITE the PBX will hang up. Previously it just hung up. This was causing problems with devices that use VAD or simply were always using one-way audio, typically paging devices.

Public IP address polling. When polling for the public IP address, the PBX now creates a log message on log level 3 when it detects and IP address change. This makes it easier to find problems when the polling is not working properly.

Domain backup. If the domain backup contains a trunk that is not available inside the backup, the PBX will now look for a global trunk. This makes it easier to backup and restore (move and clone) domains on hosted systems that use a global trunk for all termination. This change also includes a better logic to link the dial plan back to the trunks.

Device passwords. In addition to the SIP and HTTP password, the system now keeps a list of passwords associated with devices. Those passwords are always auto-generated and are stored alongside the MAC addresses for the device. This makes it a lot easier and safer to provision devices. When users change their SIP password, the automatically provisioned device will keep its password. This is very useful when a user changes the password for a soft phone; this change will not affect the VoIP phone registration any more.

ACD call statistics. Some of the call statistics were sorted by the end of the call, not by the beginning of the call. This was according to the user expectation and has been changed.

CDR format description. In the previous versions the format for writing the CDR with the cdr scheme was a global setting. Now the format can be passed as third parameter to the entry, e.g. cdr:192.168.1.2:10000:$w$5g$10c$5d, which will then override the global setting. There were more substitutes available for year, month and day.

ACD wait annoucement. The number of callers that need to be ahead of the entering caller that trigger the announcement is now a setting. In some cases it makes sense to announce the position always (number of callers equal to zero), in other cases it makes sense to annouce that only if there are several callers ahead.

Button profiles. In the previous versions, every domain had a copy of all available button profiles. This approach was ok for a few devices; however with an increasing number of devices and buttons this concept got out of control. In the new version, the domain administrator needs to create those profiles from the templates as needed.

Original Caller-ID. As the PBX routes the call through the system it changes the caller-ID. In certain cases the original caller-ID is needed. For this the PBX now makes a copy of the caller-ID when the call hits the PBX. It can be referenced e.g. in the hunt group for displaying the originally called number.

Dial plan and trunk names. The names in the dial plan and trunks were restricted to only certain characters. With the new web interface this restriction is not needed any more.

CO-line indication. The CO line can now also be indicated in the contact header. Certain PSTN gateways use this header. The system can now read the information from there.

Agent cell phone. Before actually calling an agent on the cell phone, the PBX need to determine if that agent is available. The availability may depend on the number of registered devices, but also on the selected times when the agent is available on the cell phone. In the older versions, that availability was not exactly the same like the calling logic. This could lead to situations when stages did not call anybody, essentially having the caller hanging in limbo. The new version fixes that by applying the same logic in both steps.

WebRTC user-agent ID. The WebRTC User-Agent field was hardcoded to Vodia. That was a problem for some operators who would like to see their own branding there. The new version puts there whatever has been set in the PBX.

Entering conference. Large conference servers usually require users to enter the conference number and confirm the entry with a # symbol. This makes sure that the PBX has received all digits. The old PBX version would wait until it has received the right amount of digits and then automatically search for the conference room. In the new PBX version, there is a global setting "terminate_dtmf" that determines the behavior now.