As an update to this and a bit of a thread revival, I've finally configured Elastix 2.5.0 with an old Compaq computer I had lying around, sporting a 1.5Ghz AMD Athlon processor, 500MB RAM, and a 500GB HDD. It's got an FXO card installed to connect it to the BT POTS line, and I've also connected it to a Sipgate SIP line for when the other line is busy (and also for the hell of it!).
I'm using 5x Cisco 7940 IP Phones, and 5x Gigaset R300H cordless handsets. The Gigaset phones run through a Gigaset N300IP. I can make internal calls by dialing 2XX on any of the phones. Any other number dialled the PBX works it out and sends it via one of the external lines. In total there's 12 extensions currently in use (5x Gigaset, 5x Cisco & 2 softphones on iPad & iPhone), which is a bit excessive for home use, but it was more about the project and learning new stuff.
First here's a pic of a couple of the phones used. Note the Cisco phone sporting the OcUK logo!:
The Cisco phones were by far one of the hardest parts to this, as they require a TFTP server to tell them where to get data such as the firmware and extension config info from. This also meant that I had to add custom DHCP option 150 to my Linksys Tomato router to point the phones to the TFTP server. Configuring other settings such as the logo, directories, and messages wasn't easy for me as I was and still am learning.
Here's a screenshot of the Elastix web GUI that nearly all the settings can be configured from:
Configuring the FXO card in the server was quite a challenging task, as Elastix is setup for a US POTS line, which meant that the phones wouldn't ring until approx. 9 rings, and no caller ID was being displayed. After a lot of Googling and research on other builds I found a way to change this, as it's not something that can be changed through the web GUI. Instead I had to use Putty to connect to the server and edit one of the config files, and that has fixed those issues.
Connecting the Gigaset N300IP was really easy, all I had to do was setup the extension information for each phone so that the N300IP would pass the call through to the phone.
See pic:
Next I'm looking at setting up a Linksys SPA3102 to connect an old phone to this setup, the useful thing with the SPA3102 is that if the power is off, or it can't connect to the server it will automatically pass through to the POTS line, so it keeps a phone still useable.
Hopefully I've covered everything, but if there's anything I've missed, or any questions on this please ask...