I have been experimenting with the construction of a simple telephone Private Branch Exchange (PBX) using ready made telephony, audio WAV/MP3 players,and DTMF decoder modules built on a set of bread boards. You could probably buy a small PBX but what is more fun than building your own and writing the software to drive it?
The modules are connected to a Micromite PIC32 microcontroller that is running an embedded BASIC called MMBasic. I am using the 28 Pin PIC32 Micromite. I am very amazed by it capabilities.
To make it easier to develop on the BB_PBX I have a ESP8266 D1 Mini connected to the serial console of the PIC32 and am running ESP-LINK: Wifi-Serial Bridge firmware. This allows me to telnet to the BB_PBX and use the built-in editor on the Micromite to edit the code on my PC.
I don't have much working yet but I have developed most of the BASIC subroutines to make it work. I have exercised the ringing and control of the telephony modules, pulse dialing, and control of the SDCard audio player.
See my github for more detail on the code and modules