Overview
For quite some time, I've been reverse engineering the Panasonic APT ("Analog Proprietary Telephone", also known as the "Advanced Hybrid System") protocol.
This is a protocol for carrying button press information from phones, and also for carrying status information (LED controls and text to be displayed on an LCD) back from the PBX to the phone.
My aim with this project was to understand the protocol enough to either build a phone that connects to the Panasonic PBX I have, or to (eventually!) build a PBX myself that supports the APT protocol, in addition to a few others.
I've now got the documentation to a point where it's a good enough reference - there are still a few topics to be researched (how a voicemail system using the APT protocol interacts with a PBX, as well as some confirmation on the model ID codes for different types of phones), but this document covers enough of the basics of the protocol:APT Protocol Documentation
I've also attached some Verilog for implementing either the phone or PBX side.
It would probably be quite easy to implement on a microcontroller rather than an FPGA, but I'm intending to also support the "DPT" (Digital Proprietary Telephone, also known as "Digital Super Hybrid System") protocol on my custom PBX as well, and the DPT protocol is far easier implemented on an FPGA than on a microcontroller (more notes on the DPT protocol in a future blog post - DPT Protocol Documentation for the quick reference guide!).