Natalie's Nonsense Nook

Getting Paged with Class: The Red Phone

Published on

So, you may remember the old rotary phone I restored a while back. Now that I’m in the on-call rotation for real at work, I figured I’d make the phone a little more useful than just a desk phone. In our pager bot setup at work, I can add any amount of numbers to call or text. I configured it to call/text my cell phone and call a special number that will bypass any phone tree or anti-spam measures short of explicit phone number blocking, and ring my red phone. This was fairly trivial to do in FreePBX by just adding a new inbound route and directing it to a ring group which included my red phone.

But the problem with this setup was that the phone rang normally when you called the page number, and caller ID was not a thing in the 60s, so I wanted a way to be able to tell before I picked up that the phone call was a page rather than someone trying to reach me about my car’s extended warranty. I planned to accomplish this with a custom ringtone. I know you can do this via the Alert-Info header in SIP, but I didn’t feel like configuring it, plus my understanding is that sometimes the header values that trigger the different ringtones varies from manufacturer to manufacturer. I have a mixed environment of Polycom and Grandstream primarily, plus a bunch of other random softphones and VoIP-adjacent devices like conference room DSPs. So with this in mind I went with a bit more low-tech solution. I ran the call flow through a module that rewrites the incoming caller ID so that the extension can be configured to set a custom ringtone for that calling number, which is a bit hacky but works. The call flow looks roughly like this:

Pager DID -> "Set Caller ID" feature in FreePBX -> Ring Group -> Extensions

So as far as my red phone’s ATA is concerned, it’s getting called by an internal ring group extension, not whatever 10-digit number is actually calling it. But this rewrite only gets fired when you call the special page number, not any other number. As a result it’s far easier to set up custom ringtones, as it doesn’t rely on programming each extension with the full phone number(s) of whatever service you expect to have page you. Or, in the case of one of my partner’s incidents, the on-call schedule was not set up correctly, and someone just went and found her contact info via the pager system and called her directly 🙃. With this set up, I was able to call the phone via the normal number and have it ring like a normal phone; but when the page number was called it rang with a custom 3-ring burst.

Have I gotten paged with it yet? No, thankfully. In the process of writing this I actually got paged twice. The phone rang both times with the special ring, and I was able to use the rotary dial to ACK the page (equivalent to pressing 1 on a touch-tone keypad).

I’ve also made a small modification to the phone setup from the last post - I moved the ATA. Originally, the ATA sat under my desk and rode PoE/IP back to the switch and into my network. However recently I moved it into the store room with the NAS and the rest of my networking equipment. This was partially to free up space under my desk, but also to make it more like a quasi CO of sorts for the phone - the plan being to move the ATA from a port on the main Cisco switch to a dedicated port on my router, and power it from a large 12v LiFePO4 (LFP) battery along with the router and the ONT from my ISP. This would remove the dependency on the main network switch, and allow basic network connectivity for the ATA in the event of a power outage for an extended period of time (not awake or home to start/connect the generator, generator broken/ran out of fuel, generator was stolen, etc). It also can serve as a hardwired backup phone line if a nearby cell tower goes out, which has happened before in particularly destructive storms. However, I only have RJ45-terminated Cat5e wiring at home, and not an RJ11 in sight, so I cut roughly a third of the phone’s cable off and crimped an RJ45 plug on both ends of the half. So this way the phone itself terminated to an RJ45 for the wall plate at my desk, and on the other end there’s an RJ45 to RJ11 adapter cable for the patchbay on the networking shelf to connect to the ATA.

Picture of RJ45-terminated phone line

(6 is my computer, 5 is my phone, and the blue/aqua cable is OM4 fiber.)

I also ended up tweaking the ATA settings a bit to better cater to the rotary phone. First I enabled the “Boost Ringer Power” setting and set the ringer bias on the phone all the way up. This boosted the ringer volume considerably and resulted in the striker hitting the bells much more reliably. Before, sometimes it would sound weak and only hit one of the bells. I also played with the hook flash settings a bit so that I could put people on hold and do 3-way conferences. Lastly I bumped up the receiver gain a bit in the ATA, as it was a bit hard to hear the far end without really concentrating. Overall I’m very happy with the changes, and the pager function works great.