Release Notes 2.1.0
From Pbxnsip Wiki
Upgrade Procedure
The upgrade procedure for Windows is described in Installing in Windows (Manual Upgrade).
Changes
Cell Phone
Feature: In version 2.0.3 it became clear that while forking calls to cell phones is a great feature, customers want to have time when this feature is not available. Therefore we added the feature to specify the time of day when this forking happens. It can now be linked to a service flag or the user may specify the service hours per extension.
Agent Group
Feature: The agent group now includes an escalation level. The purpose of this escalation level is to keep the caller in line while including agents that are usually not directly involved in the queue (e.g. managers, agents of other groups).
Feature: When all agents are logged out, it does not make sense to accept more calls into the queue. The new pattern “#L” can be used as a virtual service flag for that queue which sends incoming callers to the night account. Agents must pull callers out of the queue manually until the queue is empty and they can go home.
Bugfix: The instant messaging notification function of the PBX has been redone. There were situations when the PBX would not send an update IM, so that the user would believe there is still a caller in the queue. However, the LED notification was working fine.
Bugfix: When a caller went into the ringing state and that caller disconnected the call, the PBX did not immediately pull out the next caller in line.
Bugfix. When notifying about the queue status, there were cases when those updates got lost during the disconnect from the PBX.
Feature: The queue name is now in the From-header, not the To-header. The To-header was problematic as most user-agents do not display the information in the To-header.
Call Pickup
Bug: When picking up a call, it could happen that the PBX picked up a connected call.
Feature: When picking up a call, the PBX now tries the latest call first. When picking up the oldest, it could happen that the PBX was picking up expired calls, which was technically okay, but surprising to the user.
Night Mode
The PBX now supports multiple night mode accounts while during the routing decision. The service flags and their respective destinations can now be entered as space-separated list.
Feature Codes
Bug: The prompts for black and white lists were mixed up. The logic itself was okay.
Feature: The code for go to voicemail and possible other codes can not start without a star symbol.
Feature: The codes for turning DND on and off and login/logout can now be the same, so that it is possible to easily provision them to user agents that are not able to differentiate between the actual state.
Auto Attendant
Feature: We added a simple park reminder that calls the extension back which parked the call. The time can be set on domain level.
Bugfix: When calling the auto attendant from another domain (e.g. by using a tel: alias), the PBX was pulling out information from the source domain, not the destination domain. That was not correct for the auto attendant and could cause some subtle confusion.
Feature: The attendant now accepts calls from the cell phone only if there is a PIN code set for that extension. This increases the security in case of caller-ID spoofing. The PIN code has to be entered anyway to place an outbound call.
Bugfix: When the PBX called back because of a camp on becoming available, the PBX was using the Caller-ID of the original call. This was a little bit confusing for the party that was waiting for the camp on, because the PBX was showing the ID of the station it was calling. Now it turns those numbers around and both called and calling party see each others numbers.
Feature: The selection of the 2nd language is more flexible and can be weaved into the general announcements. The PBX does not insist any more at the beginning of the auto attendant to select a language, this can be done in a later stage of the dialog.
Feature: Direct destinations can now also be called upon timeouts (just put a hash behind the direct destination). This makes it possible to have overlapping and conflicting plans, for example when "2" is for sales and there are extensions starting with "2".
Bug: When the auto attendant was setting timeouts (e.g. for automatic hang-up), those timeouts could still kick in to other accounts. For example, when going to a calling card from the auto attendant, that timeout could trigger the premature disconnect from the call.
Feature: When a call is redirected from the original extension, the PBX now indicates that in the From-header with a “R:” in the display name. This makes it possible to see on a plain SIP phone where the call originally went to.
Bugfix: There was a wrong busy tone file referenced in the auto attendant in one place. That has been corrected.
TAPI
Feature: The PBX now supports the usage of a TAPI service provider. For more information, see http://wiki.pbxnsip.com/index.php/TAPI_Service_Provider.
HTTP
Feature: The SIP and the HTTP passwords are now separate. This was a common request so that SIP passwords can be e.g. just numbers and the HTTP passwords can be alphanumeric.
Feature: Because most security problems come from weak passwords, the PBX now uses JavaScript to verify user input on passwords. Passwords and PIN codes now must meet certain quality criteria to be accepted. There are three levels available, weak, middle and highly secure.
Feature: When logging in from the localhost address, the user does not have to log in any more. This makes it much faster to troubleshoot the PBX. This feature can be disabled or extended by editing the new setting “pw_trusted”.
Feature: The appearance of the PBX slightly changed. The new version uses the web browser to render characters in the menu bar; this is much more flexible for translations and color changes.
Feature: The logo must now be stored in the local file system. This is a consequence from the appearance change.
Feature: The web interface now shows the registrations based on the From-header. The To-header approach had the disadvantage that it was hard to find out which phone did what subscription.
Feature: The web server now supports HTTP/1.0 also properly.
Feature: The CSV separator is now being guessed automatically. The previous version was insisting on a hard coded character, that was too strict.
Conferencing
Feature: The new conference subsystem is more efficient than the previous one. This should make it possible to have more conferencing on the same CPU.
Mailbox
Feature: The mailbox can now have up to five personal greetings. This feature is accessible from the main menu of the PBX with the key “9” and it lists the available greetings in the style of the search by name directory.
Bugfix: The envelope information was buggy when the message was on a different date. The PBX was using the day instead of the weekday for the announcement.
Media
Feature: The new PBX contains G.722 pass-through. This makes it possible to have high-quality calls inside the PBX.
Feature: The new in band DTMF detection seems to be more robust against the different styles of DTMF tones and it also supports the detection of FAX signals. This makes it possible to use the auto attendant for routing FAX to a specific extension.
Feature: If there is a RTP pass-through possible, the PBX now does this. This has performance benefits, but also decreases the overall jitter and delay in the system. The pass-through can happen on different levels, depending on if SRTP transcoding is necessary or not. The PBX automatically switches between the pass-through and the media-aware processing when there is music on hold or recording switched on or off.
Feature:
Bug: Large SDP numbers (more than 32 bit) were not handled correctly. This was not a very obvious bug, but some user agents like to use 64 bit numbers.
Feature: During hold, the PBX now sends only small keep-alive packets. This reduces the PBX workload in these situations and it also reduces the used bandwidth. This feature is useful when devices on a low-bandwidth link put a call on hold and want to place another call.
Bugfix: When the UA changed the SSRC during a media session, the PBX rejected the new stream. This was causing one-way audio.
Bugfix: The jitter buffer did not use the packet sequence number in cases when there could be an under run.
Feature: The T.38 subsystem has been redesigned to be completely agnostic. This was necessary because some user agents were using features that were not supported by the 2.0.3 version of the PBX.
Bugfix: When a recording was already going on, a user-initiated call recoding would not work properly. For example, when all calls are recorded anyway, the user could not record a specific part of the conversation and receive it as voice mail. This is working now. Also, the codes for the recording can now be complex (e.g. *32342), so that accidental recordings are less probable.
Feature: The global codec settings can now be changed from the web interface. This makes it much easier to change this setting, and it is not necessary to restart the service for this any more.
Feature: The PBX process now insists on attaching to a processor affinity. This makes the CPU performance of the process much more predictable and reduces the jitter. A new setting in the web interface can be used to override the default (which is to use processor 1).
Bugfix: When starting to enter DTMF into the IVR node, the PBX did not stop the media play out.
Bugfix: The music on hold buffer could be not initialized in the beginning. Now the PBX clears that memory before starting the process.
SIP
Feature: Added support for RFC 4916 (from-change). This way, the PBX can tell the phone during a transfer that the number has changed.
Feature: Packets that are received on an established TLS connection are not challenged if the sending party is registered. This makes the traffic on TLS much more efficient.
Feature: The calling party can now use the P-Preferred-Identity header to indicate what identity should be used for authentication.
Feature: There are still some user agents that send and receive UDP traffic from different ports (although this is extremely NAT unfriendly). However because it is the RFC we must support it, even if that breaks compatibility with devices that are really behind NAT, try to behave smart and present a public IP address to the PBX. Another reason to tell all users to turn anything off that has to do with STUN.
Feature: After an attended transfer the PBX attempts to send a re-INVITE, so that the codec is optimized between the two parties.
Feature: When receiving a callback, the caller-ID needed to be turned around on one side of the calls so that both parties can see who is calling.
Bugfix: Transferred calls could be candidates for call pickup, even if they are already connected. This bug has been fixed.
DNS
Feature: There were DNS servers that were returning a time to live of zero seconds. This was making it impossible to resolve the destination of a URI. The PBX limits now the duration of a DNS lookup to one minute.
System Settings
Feature: The system can not have a name. This name is e.g. used when sending out emails about the system status, making it easier to monitor several systems.
Feature: When uploading a system configuration through the load/restore web interface feature, the PBX now preserves the license information. This makes it easier to clone configurations.
Trunks
Feature: As the support of P-Asserted-Identity and P-Preferred-Identity is getting better, the PBX sends out these headers by default now. The setting for determining the right identity has been removed and replaced by a logic that should handle all cases without special programming.
Bug: When determining where the call comes from, the PBX would accept calls from accounts. This could be misused if the account has a dial plan assigned that can be abused for placing outbound calls.
Bug: The identification of trunks was too open. When the IP address did not match, the PBX would check if there was a domain name match. That made it possible to initiate calls that look like they are coming from a trunk without having to answer any challenges. We took that out, even at the risk that it breaks existing behavior.
Feature: When a trunk initiates a redirect, there was a problem that there was no user available that could be used for charging (and for the dial plan). This was e.g. a problem when using Microsoft Exchange. This problem is now solved by a new setting that explicitly tells the PBX what accounts to charge for such redirected calls.
Feature: STUN is not supported any more on the trunks. This is good news as most operators discover the use of a session border controller to make sure that calls can get through in any NAT type without troubleshooting each installation. Taking the STUN out became necessary because the internal codec re-negotiation feature would become too complex to support the extremely difficult call-flows for allocating dynamic STUN addresses.
Bugfix: The trunk authentication was not working properly when RFC 3325 was used on the inbound side. This made it hard to keep caller-ID when several PBX are used in a hierarchical form. Now the usage of the “id” indicator is using properly.
SOAP
Bug: There were several tag mismatch errors in SOAP parsing that have been fixed.
Bug: When receiving the PIN from the SOAP server for an external call, the PBX did not clear the internal PIN. Also, in the SOAP requests the name was sometimes incomplete.
Calling Cards
Feature: It is now possible to call internal accounts from the calling card account. This featrure must be enabled on the calling card account.
Feature: The PBX now first writes all files to a spooling directory before sending emails out. This makes it possible to re-try sending emails after the first email delivery failed, without the danger of running out of RAM memory.
Feature: Emails are now sent only in HTML format. The support of text-based emails has been dropped. This makes it easier to keep the different language translations up to date and it solves a number of problems that we found with email server that did not accept long lines (e.g. links that cannot be broken up to fit the line size).
Feature: The parsing of Email-addresses was difficult. Now the PBX accepts emails in the most popular formats (like "Joe Average" <joe@domain.com> and "Joe Average" [joe@domain.com]).
Feature: The PBX can now send emails that contain the CDR report of the day. This feature can be used as a “Mini-CDR-Tool”, so that operators keep an overview on the calls.
Bugfix: The Emails now contain only HTML. This seems to be okay today as most email clients support HTML. There was also a bug that caused interop issues with some Email servers, so that emails would come out blank. This seems also to be fixed now.
IP Subsystem
Feature: In order to run several instances on a system with multiple CPU cores it makes sense to bind one PBX process to a specific IP address. In order to make that happen, the PBX now will use the identity of that socket, no matter what the routing table looks like.
Feature: The status screen now shows more relevant information, for example the number of received and sent SIP packets.
Feature: The version 2.1 supports the new dongle license keys.
Plug and Play
Feature: Support for snom version 7 plug and play. This also supports the dynamic generation of the address book and missed calls log. It also includes the provisioning of firmware and setting of the buttons. For this, the new “buttons” mode is being used.
Feature: Plug and play files can now contain parameters that can be changed from the web interface. This makes it possible to keep the included provisioning files more generic, for example for changing the transport layer for certain SIP phones.
Feature: Plug and Play can now use HTTP to provision Polycom phones. This has the advantage that these phones can also be provisioned behind NAT.
Extensions Park List
Feature: The extension can now have a list of park orbits that should be searched for a free orbit. This makes it easier to park calls and make sure that only one orbit is being used.
Address Book
Feature: The domain address book is now also visible in the user mode in the web interface. This makes it possible that users that are logged into the web interface can use the domain address book for starting calls.
Bug: It seems that there was still a bug when finding an address book entry in a domain. This bug is now probably fixed.
Performance Measurement
Feature: The performance measurement could drift with the internal clock over time. Now the time pointer is always re-adjusted at the middle of the day. Also, the sampling interval was restored to 3 seconds so clean up false statistics when the interval is shorter.
64-bit Code
Feature: Now it is possible to generate 64-bit versions of the code. However, until there is a real need to do this we prefer to roll out 32-bit code.
