Close
0%
0%

Home-made analogue PBX

My project to learn about analogue telephony by building my own PBX, aimed at home use

Similar projects worth following
I'm working on an PBX for home use, supporting 8 extensions and 1 outside line. It will be (to make up a term) a "transparent" PBX, meaning that incoming calls ring all extensions by default, and no special digit is required to dial an outside number. The goal is to allow it to be used like a completely normal single-line setup, with the PBX functionality like being able to dial an extension as an extra feature on top. In terms of number schemes, that will be done by exploiting ranges of numbers not used in my country. For example, where I am there is nothing that can be dialled on a normal phone line that begins with "30", so my extensions can be numbered 301, 302, etc, removing the annoying need with most business or hotel systems to dial "1" or "9" to get an outside line. I'm going to build it up step-by-step and publish circuit diagrams for each phase, to try to make it serve some kind of educational purpose for other weirdos still interested in analogue telephony in 2026.

Here's my rough plan:

Phase 1: Experiments

Small scale breadboard experiments to figure out different elements needed for the full solution, and work out how the overall circuit will need to look.

  • Powering two telephones so they can talk to each other
  • Powering two telephones without them talking to each other
  • Creating a "voice bus" that phones can be connected to using relays (or SSRs)
  • Making a telephone ring (generating the 25Hz 90V ringing signal)
  • Detecting hook status (when the phone is picked up, and also when it is answered while ringing)
  • Getting audio into the bus (to provide dial tone, etc)
  • Getting audio from the bus (to listen for DTMF tones)

Phase 2: Bare-bones build with microcontroller

Build a fully working, but basic, PBX.

  • Selecting a microcontroller or SBC to be the brains of the solution (currently leaning towards a Raspberry Pi as it's powerful enough to be able to do the tone generation and DTMF detection in software and has a built-in ADC/DAC).
  • Connecting all the digital and analogue inputs and outputs required to monitor each line, connect them to the voice bus and make them ring as required.
  • Writing the software to control everything and connect calls.

Phase 3: Add features

At this point most of the hardware will be in place to start adding cool features in software. Things I want to add include:

  • SIP-based outside line support
  • Caller ID
  • Blinkenlights! To monitor hook status, ringing, anything else I can think of

  • Experiment 1: Connecting two telephones together

    George Dewar04/08/2026 at 01:18 0 comments

    This experiment is about as far as I got as a child playing with telephones. Back then I thought it was really cool to make a telephone work independently, but wished I could do more advanced things, like making them ring (which will be a later experiment). This will be well-known territory for many readers, but it's good to start with the basics.

    The simplest DIY thing you can do with a telephone is to simply power it with a 9V battery. And if you put two of them in parallel (with one small resistor, for reasons explained soon - it took me by surprise), they can talk to each other! Electrically, this is the same as having two phones in your house which are on the same phone line, except the line is just a 9V battery.

    Each phone is able to generate DTMF tones if it's a touchtone phone, but of course there's no machinery listening to those tones to do anything with them.

    To physically connect a phone there are many options:

    • Use a keystone Cat5e/6 jack (aka RJ45, aka 8P8C). You only need the centre two pins, but this is a really easy thing to get hold of. An RJ11 phone plug will plug into the larger RJ45 socket just fine.
    • Use a real phone jack. In my country this is a BT jack, but in the US and many other countries it's an RJ11 (aka 6P2C).
    • Cut up a phone cable to access the wires.
    • Cut up an Ethernet cable and use a joiner to join the RJ45 plug to the RJ11 plug of the phone cord.

    I opted for the first option. The two phones I’m using are pictured below. One is a 1990s Telecom NZ model, while the other is a cheap new one. I connected each phone to a Cat6 jack. The new one uses an RJ11 jack, while the old one needed a BT to RJ11 adapter (in fact I used a BT to RJ45, but it makes no difference).

    The blue pair as labelled on the jack (or in an Ethernet cable) is the one that connects to the centre pins, which a telephone uses. So, I punched down wires to the blue pair on each jack. The wires I used are from one of the pairs of a solid-core Cat5e cable.

    A telephone presents an open or near-open circuit when it’s on-hook, but when it goes off-hook it presents an effective DC resistance of around 200 ohms. Normally, the line voltage is 48VDC (really it would be -48VDC, but the fact that it’s negative doesn’t matter to the phone or to this experiment) and the current is limited by resistance inside the central office equipment, and the line itself (a few km of thin wire). When a phone goes off-hook, the current drawn causes the voltage at the phone to drop to around 6-9V.

    If we applied 48V to a phone off-hook without all that resistance, we’d probably burn it out with it drawing 48V/200Ω=240mA. But if we apply 9V, we don’t need any current limiting as the phone’s natural resistance is enough to limit the current to a safe value.

    So as I set up this experiment I figured “easy” – no resistor required. And indeed, you can hook the two phones up in parallel to a 9V battery with no resistor, and they will both operate happily. However, what I found was that very little audio was getting from one phone to the other. The reason for this was that the phone has to modulate the line voltage to send its audio signal, but the 9V battery (or power supply) is such a low impedance source that it resists the fluctuations. I don't remember having this issue when I tried this as a kid, but I also don't remember precisely how I wired it up. It's also possible that a less-fully-charged battery would have high enough internal resistance to solve the problem itself.

    The solution, for the purposes of this simple experiment, is to add a small resistor between the battery and the circuit. I found that 47Ω was enough (100Ω allowed slightly too much voltage drop for both phones to work properly), but possibly even lower would have been fine.

    Here is a circuit diagram of the setup, with a 200Ω resistor representing each phone:

    The effect of the resistor...

    Read more »

View project log

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates