I recently completed a PABX system upgrade, where I replaced an ageing Samsung iDCS PABX with a brand new 3CX VoIP system. Due to the lack of bandwidth in and out of the building, we decided to keep the existing Telstra OnRamp service for local calls and interface this with the new PABX using a Patton SmartNode rather than going exclusively to internet-delivered SIP trunks. This may change as the NBN is rolled out.

The Patton SmartNode allowed us to connect the existing Telstra 10/20/30 OnRamp service via it’s standard E1 connection, and create SIP trunks which could be setup within 3CX for inbound and outbound calls. In Australia, Telstra’s PRI service was branded as an OnRamp service, but is now called Telstra 10/20/30, for the different numbers of channels that are available. Telstra will artificially limit the number of channels available on an E1 PRI service, depending on the line rental fees you pay. Typically you also get a block of 100 PSTN numbers allocated to you for use on this service.

The physical connection of the Patton hardware was very easy. The existing Samsung iDCS system interfaced to the ISDN E1 via a RJ45, which had the same pinout as the new Patton hardware (I checked the manual to be sure). This was a very simple matter of plug and play, with no need to wire new cable from the MDF.

Configuration was less straight forward, as it has a couple of little tricks to do with the ISDN parameters. The 3CX software has a wizard which creates a config file to load into the Patton device. After a firmware update and loading said config file, inbound calls came through to my test VoIP handset. Bingo! We’re in business.

However, upon trying to make an outgoing call it failed with a “500 Internal Server Error”. No alternative number format (such as dropping the leading zero or removing the area code altogether) helped. I tracked this back to an issue with the SmartNode, not 3CX. By telnetting into the SmartNode, I was able to enable ISDN debug mode, which gave me a fairly verbose log of what was happening when I attempted to place a call.

These commands are used within the Patton SmartNode to get a verbose ISDN error log:

debug ccisdn signaling
debug isdn event {slot} {port} all

As I only had one E1 connection, slot and port were both set to zero.

Scouring through this log revealed a couple of suspicious messages, such as “unknown number – unknown numbering plan” and “invalid information element contents”. After some red herrings with number formatting and voice codecs, I worked out that the “invalid information element contents” error message was to do with the Q.931 Signalling Protocol. In Australia on PRI connections (e.g. Telstra OnRamp branded services) it needs to be set as “DSS1”. The default in this unit was “DSS-100”, which was not helpful at all. Unfortunately, the 3CX config wizard did not change this along with all the other local settings.

The other main setting you need to change is the B Channel Range. If you have a OnRamp 10 or OnRamp 20 branded service, rather than an OnRamp 30 service you need to change this range it cannot correctly select the D channel and calls may not function correctly. For an OnRamp 10, it’s a range of 1 to 10. Due to the nature of ISDN PRI services, it defaults to channels 1 to 30.

After configuring this, it was a matter of setting up inbound calling rules for all of the DID numbers. Although numbers are typically supplied by Telstra in blocks of 100, 3CX has no way to bulk-add these so you have to do them one by one. As this was a small install, I only added the ones we needed rather than every single one. Unassigned numbers were sent back to the main call group using the routing rule for the one-and-only port setup on the Patton.

Outgoing Caller ID numbers need to be configured on a per-extension basis, in the “Other” tab for each extension. These don’t necessarily need to be the number routed to the extension using the inbound rule – the number can be any number assigned and permitted by your telco.

Other than this, it was a very pleasant process to do the installation. This was my first time putting a 3CX system into production, and my first install involving interfacing a VoIP system with ISDN. 3CX is probably the best system so far I have worked with, and I recommend it if you are wanting to upgrade your PABX system.

The handsets we selected were the Yealink T32G. We selected these for their gigabit LAN ports, colour screens, 3CX support, and local availability. Several other phones were looked at, such a variety of Cisco small business phones however we had trouble sourcing these even in low volumes. Gigabit was very important on this job, and there are surprisingly few phones at the lower end of the market which support this. I will admit I wasn’t expecting the greatest handsets, but they have more than delivered. They feel very solid, have good voice quality, and are no-nonsense to setup and configure with 3CX. Plus, the colour screen looks very sharp.

We are also utilising the 3CX Fax Server, where faxes sent to a specific ISDN DID number are emailed as PDFs to the email address for a particular user. This removes the need to have an ATA interfacing an old-school fax machine to the VoIP network.

Overall I’m very happy with the system, and so too is my client. It’s providing a very robust telephony solution, with a lot more flexibility than the old system could every provide. We haven’t even scratched the surface of features, such as automated attendants, hot desking, smartphone clients, and the plethora of other bullet-point features available. I’m also a fan of their licensing model – charge per simultaneous call, rather than per feature. With the exception of some advanced call centre and hotel features, everything is available to use with a bog-standard license.

During this process, I actually became a reseller for 3CX, Patton SmartNodes and Yealink handsets. If you want a quote, shoot me an email and I’ll be happy to help out. Otherwise, there are plenty of other places to source this hardware and software from. It’s really quality, and I’ll recommend it even if I don’t make a cent from it!