3CX
This Windows-based Software PBX is very easy to configure and use, and is very much like using any other commercial PBX system that you may already be familiar with. This PBX also pays attention to the TO header, so I am only going to cover Inbound calls via SIP trunks.
Setting up the Trunk
From the menu on the left, select VOIP Providers, then Add Provider. In the name box, enter NumberGroup, and select Generic SIP Trunk option. Scroll to the bottom and click Next.

Enter sip.numbergroup-services.com into both the SIP server hostname and Outbound Proxy hostname boxes and click next.

Enter one of your DIDs, it doesn’t matter which even though it is a required field into the External Number box, and your trunk username and password in the Authentication ID and Authentication Password boxes respectively.
Enter an arbitrary number of maximum simultaneous calls, this field seems to be required although irrelevant. Click next to continue.

The next page configures where unhandled DIDs should be directed to. In this example I’ve left them as the default.

On the next page, configure an outbound route for the new trunk. For example enter ‘9’ as the prefix and leave all the other options default to use 9 to dial an outside line. Click Finish.

You have now created the trunk. You must now set up some advanced options to actually make calls work. On the list, double click the new trunk, click the advanced tab. Change the ‘Require registration for’ box to ‘In and Outgoing Calls’ and click Apply.

That’s it. The trunk should now register and you should be able to dial external numbers now.
Inbound calls
Firstly, set all DIDs to use the trunk using numbergroup’s control panel. In the 3CX control panel, select Inbound Routes from the menu on the left, then Add DID. Enter the DID into the first box and the mask box, including the preceding 44, for example 443300100998. Select Numbergroup in the Available ports and configure the call routing rule. Again I will leave this as to call extension 100 in this example. Click OK.

And that’s all there is to using 3CX with numbergroup!
