I’m not sure how diverse my readership is, and some of my readers are not really interested in the tech end of what I play around with, so let this be a bit of warning that this will be on the tech end of what I am interested in.
I am in the process of building a PBX. In case you are wondering, PBX is short for Private Branch Exchange. Some of the big names in the industry are Avays, Nortel and Lucent. There are many others, but those are pretty much the big names. Where a PBX is primarily used is when a business has more than 4 phone lines coming in to the office, and they need to be able to transfer calls from one phone to another.
Related to the PBX is the Voice Mail system. Octel is the ‘big’ name here. Why this is ‘related’ and not ‘part’ of the PBX is that for most systems a voice mail system is a computer with a few phone lines coming into it that acts as an extension off the PBX and usually is not part of the PBX itself, though that is changing as well.
Another related platform is the Voice Response Unit, VRU, or the stupid phone system firewall that tries to isolate tech support from customers. I don’t immediately have a need for one of these, however that may change. Most of these are little more than a collection of recordings along with a touch tone recognition system. Some of the more advanced systems can handle verbal responses as well, recognizing numbers, letters, words and occasionally short phrases (usually on the lines of ‘tech support’.
My immediate interest is in building a small phone system that allows me to place calls from one IP or WiFi phone, to another. Over time I would like to add the ability to connect to the phone systems, being able to use one of the phones I’ve gotten working to place and receive calls to normal phones and IP phones on the internet.
The obvious question is ‘Why do you want to do this? Up front I’ll admit that I don’t need a bunch of phone numbers, or phone lines into my apartment. II may very well run a small business of sorts in my spare time, but it’s not taking a significant amount of my time right now, and I’m not really expecting to do a lot of expansion any time soon.
My own reason is that I’m interested in the underlying technology. I’ve been doing network related stuff for over 25 years now, Everything from maintenance and repairs on multi-channel phone backbone hardware on up to Wan, Lan and related technology. I think the idea of a PBX is really just an extension to that.
Ok, time to get down to what ammounts to brass tacks. I’m not going to be buying a PBX from one of the big guys. As noted I don’t have the commercial interest, and at least in part it defeats the objective of learning through implementation. Instead I will be using a platform called Asterisk that runs on a number of different operating systems, though is most recognized under Linux. In the short term the idea is to get a couple of IP phones to talk to each other. Longer term will be to replace several phone systems and hopefully be able to extend the coverage of my phones from strictly within my apartment to most of the city block that I am on. A much longer term objective will be to add a sytem that will handle unknown callers in a method I consider reasonable, though those callers may not. (I’m not a big fan of telemarketers, so they are probably not going to be very encouraged to keep trying to call me.
I have a few ‘strange’ requirements. As an example, any phone that picks up and dials ’911′ should be immediately forwarded to the external 911 system. WiFi phones should be able to connect to the system locally and remotely. If I’m in a coffee shop with an open access point, I should be able to place calls. This applies to soft phones on laptops or tablets as well. There may be a requirement for those devices to enter a passcode to establish a long distance call if the conversation is going to be billable, however I haven’t decided how I’m going to implement that. One possibility there is to use Perfect Paper Passwords from Steve Gibson’s systems discussed on Security Now, modified to be 4 or 8 digit numbers rather than text, but we’ll see. It’s a decision for the future.
One of the things that I am interested in doing is hooking this up so that I can also use my amateur radio hardware and software to take and place calls. That’s something for down the road though.
To get started I’ve already set up a server. For that I stopped at my local Microcenter and picked up a PowerSpec V50 small formfactor computer, installed Ubuntu on it, and installed the Asterisk software. i have also collected several wifi UTStarcom wifi phones that were originally provisioned for Vonage. These may, or may not, provide me with the phones I need, but if they do, I’ll be satisfied. As an alternative to the UTStarcom phones, and one that I will probably use first, there are several softphone systems available for Linux that will allow me to establish and test phone service withinmy network even before I get the UTStarcom phones set up.
As an example of what I am contemplating longer term, the following diagram may help:

The phones in the upper left would be cell phones, such as my own, or of family who would like to use my pbx for an alternate voicemail system, or the like. The ‘phones’ beside them are IP phones that plug into a network switch (the blue round thing below them) as are the computers with a V in them, PCs running phone software of some sort. Below those is a separate wifi network, possibly infrastructure, more likely ad-hoc, that the wifi phones connect to the PBX a little more directly through. Off to the left is my firewall setup, which will allow call traffic into and out from my network, to the Internet in general (below) or specific internet users such as cell phones above.
Obviously things can get very complicated pretty fast, so let’s start with some ideas of how to set things up. Each phone and computer above will have it’s own extension. Stuff in the ‘local’ network will have an extension in the range 2###, phones connected via wifi will be 3### series extensions. This is purely to keep track of what type of device is being used. If I need to at a later date, I may set IP ‘Phones’ (the type that look like a phone, and don’t interface directly with a computer) up in the 4### range. In the long run, I hope to use 1### for extentions that map to external phones such as cell phones, and family phones, but I may throw those up to the 8### range I don’t know. 9### is reserved for setting up various external call connections. 0 will be a virtual operator of some sort, but that’s for much later down the line.
So, that’s the plan at the moment. It’s subject to change, but if you don’t start out with a plan of some sort, you’re pretty much lost from the get go.
Very interesting, I have 3 lines into my house; family, my work and wifes work. I would like to link them up so we can answer any with any (except out of hours), etc. But that is not the reason for contacting. I wondered how the MicroCenter PowerSpec V50 performed? Clearly it is low spec (which is fine), but I wondered about its reliability. If you have been running yours since Feb 09 you may have some feedback by now. Does it run hot? Very hot? Has it kept going (I assume for PBX you left it on). I know you change the OS (which I may do to), so its the underlying hardware I am interested in. Many thanks for reading, double thanks if your reply.
Comment by Mark Garnett — August 9, 2009 @ 9:28 pm
It isn’t about to run crisis, but then I don’t do a lot of gaming either. (My PS3 is primarily my blue ray player, I’ve had that for over a year and I don’t think I’ve fired up one game yet.
1.6 ghz dual core processor, that comes with 512 meg of ram, I’m ugrading that to 2 gig on all of these boxes. (I currently have 5) Even at 512meg though I’ve been using one as my primary workstation for the past month. The case is designed to hold a laptop style sata hard drive, and comes with either a 60 gig, or 80 gig depending upon when you buy it. The ones I’ve replaced have gone mostly to 200 gig or higher capacity, after all the price for such a drive and the added memory is about a $100 hit these days.
The PBX has been somewhat back burnered while I study up on things. It has been on (except for an event after a power outage a couple of weeks back. (Moving it to a stand along UPS after I update the system today. memory and ‘apt-get dist-upgrade’ to get current kernel and hardware updates.) Remember as well that Internally I will be using purely digital traffic so unless I have to transcode on the box for some reason (hooking up a 56k pcm call to a 16k adpcm for example) I don’t expect that this box will ever be heavily loaded in my environment.
I recommend taking a look at the system requirements for Asterisk in various environments to see what your needs would be, but something like the V.50 should cover a load of up to 10 lines digitally without too much trouble. The board does have a pci slot on it, however the case does not really support adding a board, so if you are thinking of adding a digium board with fxs and fxo ports, you might want to look at a different case. At that point you may find it just as easy to look at the N101 which comes with a faster processor, more memory, and Ubuntu pre-installed. (at which point you should only need a monitor on the system long enough to tell it not to look for a monitor in the future, change to no gui mode, install the asterisk services, and make sure sshd is set up so you can log in across your network.
Two things will impact how ‘hot’ the box gets. In my experience these boxes run cool enough that I would not be concerned about leaving them running long term. The two things that impact the heat in these things are system load, and their environment. If you wrap one of these up in a blanket, or store it in an insulated cooler without providing air flow, they will get hot, and probably will have problems. For system load, I would be more concerned about the hard drive than the system itself. It is mounted in the top of the case, but air-flow through the case is generally side to side. There are vents in the top, and you could mount a fan to draw air through there if you are concerned, but for most people the basic install should not pose a significant issue. Don’t pile a lot of papers and stuff on it, but again if you have a place where you are going to set it up near where phone and cable enter the house, you probably have a good idea of how to make sure that heat should not be an issue going forwards.
The box does not have ‘feet’ on it by default. 4 stick on feet come in the box, and you can apply them to either side, or the ‘bottom’ depending upon how you want to configure it. If you are going to set it up on a mounting board at the phone dmark, or cable entrance, I would mount the feet to the ‘bottom’ that then gets placed against the board, with the case fan evacuating to the top, and mounted with straps, or a shelf bracket folded to hold the box against the board. That leaves the ports on the left side, and the ‘front’ on the right side, which you should leave both ‘clear’ so you can access the optical drive if need be, and plug in devices as necessary.
There are also serial and parallel interface on the box, so if you wanted to set up a vt-100 terminal to monitor messages, or add a printer to dump syslog messages to, both should be reasonably easy to set up. (Nice for being able to point out that you have hard copy of user ‘x’ placing 75 calls to some stranger over the past week, if it comes up. Also useful for seeing if your security policies are set up properly, which can be important on a system receiving SIP calls and piping them out the land line for outgoing international calls.
Comment by Rusty — August 10, 2009 @ 1:05 pm