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 Vodia web site. Users can start editing the pages and the emails in place now and choose to contribute their translations to the next Vodia PBX 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.