Millennium programming
Programming of a Millennium phone is a bit more tricky than other payphones. Technically, it needs the Millennium Manager to be accessible by a modem at any time. It validates credit card calls each time and updates the rates and uploads CDRs (call data records) regularly. There is a way to program it the way it (almost) wouldn't need the Manager anymore, unless there is an unexpected alarm or the call log gets full.
Below is the link to a reverse-engineered Millennium Manager alternative by Howard Harte:
github.com/hharte/mm_manager
It requires a PC runing Windows, Linux, or MacOS X. However, (this is my guess) Linux is the best option due to availability of C compiler and Python. Raspberry Pi should be fine. Compiling the software and putting things together is not trivial though. So for the hobby projects it's much easier to use the demo firmware (which is only available for the older boards, not the SMD type MTR2). Next, you need two phone lines, can be POTS or PBX. VoIP ATA may or may not work (a workaround should work though). System must be able to acceept 1-15 digit number. Also a modem is needed, capable of Bell 212A (1200 bps) standard. Github page describes the process in details.
I'm planning to challenge the modem requirement and contain everything needed in the Raspberry Pi. There is a softmodem module for Asterisk, but it has to be compiled from sources. Github project: https://github.com/InterLinked1/phreakscript/blob/master/apps/app_softmodem.c. However, the challenge is, project does not support Bell 212A standard. It does support ITU-T V.22 though, and worth noticing:
- V.22 is an international equivalent of Bell 212A (yeah, America has to be different)
- There is a possibility too, that the internal modem chip would talk to V.22 as well, without any modifications in the source code. [Need to check the IC spec sheets]
- Again, this is all in a very theoretical phase. But would be awesome to eliminate the need of a modem.
- The above modem is also useful for other non-Millennium COCOT boards (e.g. Protel boards).