Release 5.1

From Vodia PBX Wiki
Jump to: navigation, search


General Information

We support Windows 32/64 bit, snom ONE mini (ARM), CentOS 32/64-bit, Debian 32/64-bit versions, FreeBSD 9.1 (64 bit) and Apple MacOS on Intel and PowerPC.

New Installations

For new installations instructions are available on the Installations page.


Warning xl.png Before upgrading make a backup of the working directory. If anything goes wrong with the upgrade, you can restore the file system and resume operations from that backup. We suggest that you prepare for an upgrade, so that the impact on your users are minimized. You can perform the upgrade while the system is running, then schedule a reboot at midnight. The system will then perform an upgrade only if there is no call active; otherwise it will wait. See Configuration Schedule for more information.

Warning xl.png If you have made changes to the templates (web pages, email templates or PnP templates), please double check which of those changes are still necessary. New versions introduce bug fixes or new features that make such changes superfluous or even counterproductive. Keeping modifications of old versions may cause problems.

Upgrades from Version 5

For upgrades from version 5 you need to log in as administrator to the web interface of snom ONE and then navigate to the system tab. There is a field called Software Update.


All you need to do is copy & paste the following URL into your input field: After hitting the Save button, the system will start downloading the new software. The web interface will notify when the software update was finished. On the same page you can schedule a reboot or perform the reboot from the operating system. After the system boots up, you should be running the new software.

Also check how to licenses your snom ONE Version 5 Licensing your snom ONE.

Upgrades from 4.5

Warning xl.png After upgrading to version 5 you need a new license key. You can get a license key from WE STRONGLY RECOMMEND THAT YOU GET THAT KEY BEFORE YOU UPGRADE. Your server needs to have access to the internet during the installation phase and it needs to be able to resolve DNS addresses. As with every upgrade, you should make a backup of the PBX installation, so that if anything should go wrong, you can revert back to the previous installation.

For upgrades from version 4.5 you need to log in as administrator to the web interface of snom ONE and then navigate to the system tab. There is a field called Software Update. Then copy & paste the following URL into your input field: After hitting the Save button, the system will start downloading the new software. Give it one or two minutes, then check the log file for messages. On the same page you can now schedule a reboot or perform the reboot from the operating system. After the system boots up, you should be running the new software.

If you want to perform a "manual" upgrade, you can just swap out the executable. The link in the executable is contained in the above XML file. In order to do this, you should first download the new executable, rename the old executable and then rename the new executable to the original name. There is no need to reboot the server for a software upgrade.

Please notice that for the snom ONE SoHo (AKA snom training kit) you need to perform a manual upgrade. Please visit for more information.

Upgrades from other version 4 releases and version 3 releases

Upgrades from other version 4 releases are similar. If you have the Software Update field, you can use that the same way it is being used with version 4.5. Because the trunk header settings may have changed during the upgrade, you have to pay special attention to the trunk header settings after the upgrade. If the Software Update field is not available in the used version, you must first use the upgrade procedure to upgrade to version 4.5 and then perform another upgrade from there.

Release Notes 5.1.0

New Features

WebRTC: We have added support for the WebRTC protocol. Calls can be placed from the web browser to a PBX trunk. This new feature is currently limited to the Chrome web browser.

Trunks: Trunks can now be "inter-office". This feature was in the web interface for some time, but was not implemented sufficiently. This new feature makes it also possible to route incoming calls from trunks out on other trunks, for example for terminating calls in remote offices.

Trunks: We have added a redirection destination when all CO lines are busy. This new features simulates the carrier redirecting calls when there are no more CO lines available. In contrast to the carrier behavior, the call can now be redirected to local resources on the PBX, for example announcing that the number of lines have been exhausted and callers can leave a voicemail.

Trunks: We have seem many providers having problems with the RTCP-XR parameters in the SDP body. Previously it was possible to disable the feature on the system bases; however consequently this useful feature would not be available for extensions or other trunks. Because of that we have added a parameter that tells the PBX to suppress the RTCP-XR parameters.

Translations: In previous versions, we had to add a large CSV file in order to change or add translation items. We have made that a lot easier now by using a central language item dictionary which is collocated with the snom ONE web site. Users can start editing the pages and the emails in place now and choose to contribute their translations to the next snom ONE build.

Polycom: We have added the Polycom Root CA as a trusted certificate source. This will make secure provisioning eventually possible, even without having a publically signed certificate in the PBX. Also, we have added the feature back that Polycom can reserve multiple lines for an extension.

Park Orbit: The message that is being played to the user after the call is parked can now selected on per park orbit bases.

Access List: The list is now generated by a script that sorts the addresses by their value.

CDR: In domain and system listing, the PBX now shows the CDR overview instead of the trunk or extension records.

Administration: Domain administrators can now have email addresses for receiving notifications in the domain.

Service flags may now be changed also by PIN, in addition to being on the list of extensions that may change the state without a PIN. That makes it easier for outside callers to change the state, for example on snow days.

Administration: Extensions that are not active are not included in the reporting.

Changed Behavior

Transfer Back: For the blind transfer, the PBX previously had the feature of a "smart transfer". This functionality was difficult with several SIP devices, as it required a rich implementation of the blind transfer feature. The new behavior just calls the transfer originator back in case that the transfer fails, similar to the behavior with parked calls.

Port allocation: The port allocation previously allocated the HTTP, HTTPS and LDAP ports in a block. If one of the allocated ports could not be allocated, the PBX would retry to allocate the whole block again. That often led to difficult port allocation problems, especially on Linux where the operating system does not allow exclusive allocation of ports if there are still connections in wait state. The new implementation allocates ports on per-port bases, so that those ports that were allocated successfully are not changed any more.

Domain IP addresses: When a domain contains a name which corresponds to a socket binding, the PBX would prefer that IP address when sending out UDP packets for SIP traffic. What that means is that you can essentially bind a domain to an IP address. For that the SIP ports must contains a list of IP address and ports that can be matched by the domain names. This is a useful feature when multi-tenant setups require that every tenant runs on a separate IP address. This feature also works with IPv6.

Web interface: We have extended the use of JSON objects for lists. The lists for the domains have been ported to JSON. We have included the country code in the domain overview, so that administrators get reminded that it is better to tell the PBX how numbers should be interpreted. Other lists include the list of trunks, and the address book list.

Grandstream: Added support for provisioning GXP140x phones.

Recording: The web interface now shows the recorded calls for the domain, hunt groups, ACD groups and also per user. The user interface shows the calls where the user was involved. Calls can be downloaded from the web interface.

Importing Certificates: Previously, the PBX would take any private key with a certificate. That was causing tricky problems when the keys got mixed up. Therefore the new version checks if the private key matches the certificate when importing it through the web interface.

Passwords: We have added a central JavaScript code that checks the user’s passwords. This script checks if the passwords comply with the password policy on the system (if applicable) and if the repetition password matches.

Extension cleanup: When cleaning up the extension, the PBX now also cleans up the call history. This is important for example in hotel rooms, where guests should not be able to see the previous guest call history.

DISA: When using DISA, the PBX should not present the originally caller-ID and instead it should show the caller-ID of the extension.

MAC: After a restart, the PBX checks if the MAC tables are in correspondence with the extension settings and changes them if necessary.

When creating an extension, there is no more field for passwords. Instead, the PBX is generated good passwords by default. Also, the PBX automatically opens the new extension for provisioning (unless disabled by a new settings).

Bug Fixes

ACD: The number of callers waiting in the queue was including the number of callers who were already connected.

Dial Plan: Rejecting dial plan entries required that the replacement pattern was set. That did not even made sense. Now the replacement pattern can remain empty and the PBX would still reject the call when the destination matches.

CSTA: It could happen that there were multiple CSTA subscription from the same device. Now the PBX makes sure that there is only one. Also, the HTTP session ID could get mixed up, even if there was only one session.

Domains: Depending on which version was used, deleting a domain left the domain alias in the database, causing problems adding that same domain name back to the system.

Multiple MAC: Depending on the version, the PBX did not update the whole address list for a MAC address (multiple extensions). That was causing issues for example when provisioning multiple snom m9 handsets.

Voicemail to email: Depending on the speed of the file system, the PBX could get into a race condition when sending out the email attachments. This could result in empty or half-finished recordings. This race condition should be gone now.

Trunk Headers: The "trunk" header variable could contain content that is not useful.

Web login: Depending on the version, when the user selected to stay logged in, the PBX could mix up the session cookies and permanent cookies, making it hard to log in again. This was replaced now with a changed session duration for the "stay logged in" case.

Active Calls in Web Interface: Where were some glitches with the display of active calls in the web interface.

Buttons: When restoring domains from a backup, the importing of the button problems could be buggy.

Provisioning: When the PBX is provisioning domain names instead of IP addresses and there is no domain context available, fall back to provisioning the global DNS name for the PBX or the IP address. When there is no MAC address available in the context, then also don’t provision MAC addresses and their associate passwords. The duration how long accounts are open for provisioning is not a global setting.

TFTP: Also TFTP file names can contain forward slashes which must be stripped in order to locate the right file.

UPDATE: Responses to UPDATE did not contain the content-type header.

Logging: Logging the call packets in the domain did not include the first INVITE.

T38: Depending on the version, calls could be randomly flagged as fax calls, suppressing proper media negotiation (this was already fixed in the 5.0.10a release).

General: Under certain circumstances the system would not start up at all because the initial start email could not be sent out.

Yealink: The provisioning of the time zones was not robust and could lead to wrong daylight saving values.

Polycom: Changed the default for the attendant behavior.

Hunt groups, attendant groups: When forking to a cell phone, the PBX could sometimes for find the right dial plan for the call.

Release Notes 5.1.1

New Features

Text messaging: The PBX now supports text messaging. This feature is for admin purposes only right now. Admin notifications can now be send by email and/or by text messages (SMS). The email templates don’t contain the necessary texts for sending text messages to the yet, but the logic is already available in the code.

Grandstream: Models 1400, 1450 and 2100 have been added to the list of supported devices.

Localization: The French texts have been redone. Incoming calls may now select a specific language depending on the caller-ID, e.g. for processing countries in their preferred language.

Changed Behavior

Provisioning: When an account is provisioned the first time, the PBX now adds temporarily the associated IP address to the whitelist. This avoids annoying blacklisting after the provisioning.

SIP: There is equipment out there that cannot deal with quoted parameters in the digest authentication. The PBX now quotes the parameter only if there is a comma character in the list of supported methods.

Bug Fixes

Admin: The web interface JavaScript was not processing the passwords correctly. This caused problems with changing passwords for the admins. This should be under control now.

DISA: When calling in from the call phone into the private virtual assistant, the PBX was not choosing the right dial plan for an outbound call. The user heard a message like "the system denied the call". This bug may have also caused problems with similar functions, e.g. the calling card.

Buttons: Fixed agent group login/logout led for automatic profiles. Fixed redirection key and its led.

CDR: When sending out the trunk CDR at midnight, the PBX was looking at the start time stamp. That was not exact, as the end time stamp defines which calls should be included in the report.

FAX: When receiving FAX, the PBX was always using the same file name for storing the message in the file system. That caused problems when receiving multiple faxes at the same time. Now the system is using a unique name.

Release Notes 5.1.2

New Features

Action URL: The PBX can now trigger HTTP requests based on events. The focus is on property management systems like hotel environments, but can also be used in other environments like hospitals and shared offices.

Text Messages: Users may now receive emails when they have a new voicemail and missed a call. This will be done automatically when the user has a cell phone number set and the domain or the system has a text messaging URL defined.

Accounting: The PBX offers the total duration of registration for extensions now. It is available through the SNMP interface.

Authentication: The authentication for admin-level functions (e.g. SOAP/REST) can now also be based on username and password, not only by IP address.

Locations: Added user locations list and the ability to change user locations instantly from a single page on the domain.

Polycom: Polycom phones can now use the speed dial button type for provisioning phones.


Logging: The logging for call object related events have been streamlined to reference the object number in all messages.

Click 2 Dial: The click-to-dial link may now contain the domain name when the global flag for using the DNS names is set.

Registration: For systems with a lot of registrations, the internal registration database could get inefficient after some time. The new organization should make lookups much faster.

LDAP: When searching LDAP entries, the PBX could return double entries. Instead the PBX now uses the common name as index and puts all found results under that record.

Mailbox: Make the play envelope information an extension setting.

Text Messages: Some messages on admin level had too much text to fit into short messages (140 character).

Web Client: When a web request fails, the PBX will retry again up to three times. This is increasing the probability that web request are actually delivered.

Web Server: The PBX now log on level 9 where the content for the web page comes from (built-in, file system, system, domain or user level). This helps trying to figure out why unexpected content is being produced, especially when provisioning phones.

DNS: The DNS client now also reads the /etc/hosts file from the file system.

Bug Fixes

Dial Plan: Forking calls to the cell phone could fail under certain conditions because the wrong dial plan was internally selected for the outbound call.

CSTA: Several fixes, including syntax error problems and losing the CSTA context when the connection got lost.

FAX: During recording of the voicemail message, the PBX could accidentally detect a FAX tone and abort the message recording. This was causing a lot of issues with incomplete messages. Now FAX tones are not interpreted while recording a voicemail message.

HTTP Session: The username and domain settings in the session could get mixed up. As a result, it could happen that after some time, domains could not be edited any more.

CDR Display: When global trunks were used, the CDR display in the web interface was causing a JavaScript error.

Text Messages: The ISO encoding was not working.

Service Flag: When using the PIN to authenticate callers, old DTMF input was not cleared before prompting for the PIN.

Release Notes 5.1.3

New Features

Virtual Offices. We have added a lot more flexibility for informing the called party about who is being called in the ACD. Depending on which alias name is being called, the PBX can now display the name of the called number like the ACD group name. It is also possible to play back a WAV file when the agent connects the call. This way, virtual offices can also be implements on devices that don’t properly support caller-ID display, for example cell phones and ATA.

WebRTC: When the user logs into the user portal, he may now also receive calls in the web browser. This reduces the need to have a separate softphone registered to the PBX. The user may now click on other links inside the user portal without losing the ongoing call.

PCAP: The new version supports recording of PCAP data for specific calls. As a filter, the administrator can check trunks or extensions. When the data is encrypted, the PBX writes the unencrypted data to the file. This is a tremendous advantage compared to running external tools for call analysis.

ActionURL: The ActionURL now also supports different methods, so that for example GET or POST can be used. Also, an action URL for room cleaned has been added for the hospitality industry. Busy on busy. We have introduced an explicit setting for busy on busy. In the old versions, the magic word “busy” for the redirection target was service that purpose; however it was hard to find that feature in the documentation. Domain email on emergency calls. When an emergency call is made in the domain, the PBX now can send an email to specified addresses.

CDR: We have added more schemes for CDR reporting. Now it is possible for example to send only CDR for outbound calls on trunks. Also, the simple CDR format had problems reporting the extension that started the call because of changes in the internal representation. Caller-ID Source. The source of the caller-ID can now be set for each trunk separately.

Simple hunt group. When calling an extension, the auto attendant may now also include other extensions when calling that extension. This avoids the usage of a separate hunt group for that purpose which maintaining the other features of the auto attendant like redirection to the cell phone and after timeout.

LDAP: We have added a secure LDAP port. Although the PBX was already supporting the StartTLS command for LDAP, some devices require a secure LDAP port right from the beginning. By default the PBX does not open this port; it has to be set explicitly during the setup of the system.

Recording review: There is a new star code that can be used to review recordings. Recordings can be marked as reviewed and the user can send emails for follow-up on recordings.

Provisioning: The PBX now writes a file “history.txt” in the generated folder that shows when what file was generated.

SIP trunks: Added 1wire and Vodafone (Arcor). Added a flag that makes it possible to communicate with trunks that are behind NAT.

Certificates: We have added a Vodia default certificate.


Snom firmware: By default, the PBX will now load on snom desktop phones. This upgrade also includes some minor adjustments. The firmware link is now provisioned using HTTPS, so that the PBX has the chance to determine for 7xx and 8xx what using is using the phone, so that domain-specific and even user-specific firmware versions can be deployed. The chance may affect customers that are still running very old firmware that does not support TLS yet.

DoS defense. The DoS algorithm was optimized, so that registration messages are treated in a different way than other messages. This should reduce the number of false alarms.

CDR email. The CDR email is now using the same database like the web interface. That means that all calls are in the list, also those who are not using any trunks.

Logging. We have added the logging group to the log itself. That makes it easier to find out in which group messages are generated and which log level needs to be changed to suppress messages. We have also started logging categories more systematically. For example, all ACD messages are logged in a similar way. Web-Design: We have introduced new layout in several places of the table. This helps moving more and more code into CSS and JavaScript instead of having it hardcoded in the program itself.

REST: We have converted several pages in the admin domain to use REST instead of server-side generated pages. This increases the flexibility of the design, makes the product more robust and makes it possible to remote control the PBX through the same API like the web browser.

HTML5: We have added audio tags that use the HTML5 capability to play back audio files right from the browser. This is used in several places, for example playback of recordings and verification of uploaded files.

Inbound call processing: The inbound call processing algorithms has grown over the last years to something that was very difficult to understand. We have re-written the subsystem. The new subsystem now has a clear usage of the country code and formats incoming calls on trunks depending on the selected caller-ID presentation on that trunk.

CSTA: For identifying the call in CSTA, the previous versions were using the call-leg ID instead of the call-ID. While this was avoiding problems with ambiguity, it was incompatible with some CSTA client implementations. Now the PBX is using the call-ID for identification purposes.

Remote Management: Older versions supported remote management of the PBX through notification messages. We took that feature out.

LDAP: When searching for names, the result set is now sorted case-insensitive. This eliminates double entries when the case is different.

Mailbox: When a caller accidentally entered a digit during the announcement phase, the mailbox would wait very long for the next digit. This could lead to situation when callers were leaving a message and then hanging up, without actually recordings the message. Now the PBX will prompt for the digits after a few seconds.

PnP: When automatically provisioning DNS names, the PBX now explicitly indicates what transport layer to use unless explicitly set to use the whole RFC3263 feature set. There was a lot of problems when phones needed to go through the whole procedure without any real need to do that.

Web Session: Over the years, there were session variables introduced all over the place that were introducing security problems and hard-to-understand behavior. This area has been cleaned up and functions in the PBX were introduced that safeguard the setting of certain variables.

IM Sending: We have introduces a message speed throttling. The problem was that in large domains, a change of status could cause a storm of messages that is service-affecting.

Database: The internal database could get very inefficient when there were a lot of registrations. Because of this, the new version uses an optimized version that is much faster and uses only slightly more memory.

Caller-ID update: When calling a number, the PBX now always sends an update to the caller updating the caller-ID. For example, when dialing a number that is in the address book, this will update the display of devices that support his method.

SIP ports: The SIP ports are now opened like the HTTP ports. In some environments, it could be difficult to get the server started up with all SIP ports open. The PBX then would endlessly loop trying to open all SIP ports. With the new approach it has a might higher probability to get all ports.

Codec: The G.726 codec now uses a dynamic code in the SDP. This increases the compatibility with most existing implementations in SIP endpoints.

Bug Fixes

Agent Login/Logout Buttons. The update messages for the login and logout buttons on the phones were generated in a very complicated way. This has now been changed. This improves the performance in large installations and it also made the algorithm easier to understand.

ACD Outbound: The callback lists could get mixed up between different ACD. Now the callback list are kept inside one ACD. Also, it is possible to add more than one number to the outbound call list.

Mailbox: When sending out emails with an attachment, the PBX could get locked up under certain conditions. Also, in Windows it could happen that recordings that are longer than 60 seconds were not showing up in the mailbox.

LDAP: It could happen that results from other domains were included in a LDAP search. This has been fixed.

FAX: When the FAX receiving fails, the PBX now disconnects the call. Otherwise the call could be on for a long time, blocking PSTN lines.

RTP: When the file system was very slow, logging media events could block the media play out. This subsystem has now been changed, so that the log messages are queued in a separate thread.

SIP: When the PBX received double SDP in messages that are otherwise different, it could confuse the offer/answer state machine.

Service Flag: When switch a call into a service flag, the status from the previous call element could accidentally be copied on to the service flag state, resulting into random input for the service flag.