Recently, the national carrier in Australia (Telstra) began advertising free calls to Santa from their payphones just by dialling #HOHOHO. Never having the chance to do this as a kid (as it only first entered service in 2021 to my knowledge), I decided to dial it for myself as an adult and analyse just where it was being served out of and how it worked. Then I discovered that there were many Santas out there just waiting to be called, but all of these were pretty bland.
The Santa messages from all around the world were so generic … so jolly and out-of-touch. The world isn’t like this – it’s more complicated, nuanced and precarious. Technology in itself can prove to be a challenge even at the best of times and recent events definitely have been rather tumultuous. Sure, the kids may not need to know this, but perhaps they might benefit from taking off those rose-coloured glasses from time to time. I kid, I kid …
Not satisfied with their depictions of Santa (despite not being a Christian myself) and having recently revived some “rescued” Cisco IP Phone 7945s from the scrapheap, I decided to start my own Sa(d)nta Hotline. This one is definitely not as jolly and is perhaps more for adult consumption. It’s a chance for me to learn a bit more about running my own IP-PBX at home and handling some unusual usage scenarios.
But first … I need to hack this site to get this post to go up …
Table of Contents
Rolling Your Own Hotline with FreePBX (and Some IP Phones)
If you want to follow along, then chances are you will need a server of some description that can run FreePBX and a SIP phone which can be an ordinary telephone plugged into an analog telephone adapter (ATA), an IP desk phone or a soft-phone app running on a mobile, tablet or PC. I’ve got my own FreePBX installation running on a virtual machine on a low-power SBC, but you can also run RasPBX instead.
If you only intend to use the set-up locally within your local network, it’s quite easy to follow the prompts and get started. But if you have NATs to traverse and need to get external trunks working, then that can get a bit complex depending on the other networking equipment you have. Nevertheless, I won’t cover this part of the set-up in this post as it will vary depending on your particular circumstances.
The first thing you need to do is to set up an Extension for your phone so it can connect to FreePBX. You can add a pjsip extension, set a username and password and then configure your phone accordingly with the server address being the IP address of your PBX. If all is well, the phone should register with the PBX and it should be possible to dial *43 and get an echo test. If registration fails, usually it’s a case of having issues with the username or password – after a few incorrect attempts, the firewall may lock you out, so it’s probably good to start tinkering with the firewall on the PBX disabled. Now the fun part begins.
Scripting and Recording
Of course, if you want your own line, you’re going to have to record a few messages. You’ll have to decide how many messages you want and how the caller will navigate between them. I used a Zoom PCM recorder to record a few scripts I had dreamt up over the past three days, referencing just some of the issues with technology and engineering of the recent years. I tried to make it as humorous as possible. It is also necessary to record a few call-answer and flow messages as well.
Once recorded, it’s into an audio editor for some noise reduction, volume equalisation, trimming and resampling to 16kHz 16-bit Mono WAV files to make it easy to upload to the PBX and take advantage of wideband audio for local clients with that capability.
Call-answer and call-flow recordings can be uploaded to the “System Recordings” module for later use. Greetings have to be uploaded separately.
Setting Up Virtual Extensions
The easiest way I thought of to make a “three-choice” Sa(d)nta Hotline was to make three extensions, each with their own custom voicemail greeting, and the ability to record voicemail. This way, my friends from the internet could leave me a message, if they so wished.
To do this, we add virtual extensions as no hardware will be connected to them.
A number has to be chosen – so I used 5001-5003 for this experiment. A password also needs to be configured and used later to access the User Control Panel so that you can configure the voicemail greeting.
Of course, voicemail has to be enabled as well.
The configuration can then be applied.
Customising Greetings
To customise greetings requires logging into the User Control Panel at <IP-ADDRESS>/ucp.
By default, new users have a tour that they can skip, but there is no dashboard set-up, so one must be added.
The voicemail widget then has to be added into the dashboard.
Then the small cog for “Settings” needs to be clicked in the corner of that widget. Navigating to the second tab allows customising the greetings – upload the same recording into every slot for best results.
Then logout and repeat for each of the virtual extensions so they each have a custom greeting. By now, calling each of the extensions from a registered phone on the PBX should play the greeting and plop you into the voicemail – if so, you’re almost there.
Handling Incoming Calls
This part is where things become tricky. When you want to have an incoming call distribute to one of many extensions, the first thing I thought of were “Ring Groups”. This would ring a set of extensions with a predefined strategy (e.g. sequential, random, all) until one answered or the system gave up and routed to the default destination. I tried this, but couldn’t get it to work, as it detected all my virtual extensions as not being “present”, so instead, the call just failed into the default destination. I tried setting the presence to ignore for each line but to no avail – “Ring Groups” just doesn’t follow the extension’s call-forward-unavailable.
The next thing that is usually the answer is “Queues”. This is similar in concept but is more like what you might find when you call into a business. Your call is placed into a queue and agents (extensions) are tried until one answers. Unfortunately, this too suffers from the same issue – it just bypasses the extensions entirely and ignores any call-forward-unavailable. With just one default route, this would not work – I even tried appending a “#” to the end of the extension number to indicate it should follow through but it didn’t seem to work.
Instead, I had to settle for a compromise, in this case, a “Dynamic Route”.
This basically enables a phone-tree type menu, from which we can select the recording for the greeting, expected responses, a recording for when invalid selections are made and a default destination. By configuring menu selections, we can get them to dump right into the custom extension based on their selection of 1, 2 or 3, which will then hit the voicemail.
Unfortunately, such dynamic routes are not directly accessible, so one more piece of configuration is necessary – to create a “Misc. Application”.
This way, I have bound 555-SANTA to the SantaRoute dynamic route. A call from an internal PBX phone to 555-SANTA should result in the call flow we desired.
Opening Up to the World
While it is a bit late, it would be nice to share this with the world in some way to make this project “real”. As a result, I set up a trunk with my Voice Service Provider (VSP) which had a Direct Inward Dialling (DID) number. With the trunk successfully registered, one has to set an inbound route for the trunk that will dump into the dynamic route configured earlier.
With that, now people on regular PSTN phones can now reach my Sa(d)nta Hotline!
The Sa(d)nta Hotline Experience
For a limited time only, you too can have the Sa(d)nta Hotline Experience simply by dialling
+61 2 8064 1804
(Australia, Landline Number).
Keep in mind that all calls are recorded and may be uploaded to the internet and that all callers are responsible for call charges! The number only has a single line, so please be patient if you get a busy signal. Also, it may go out of service if I lose internet connectivity (and haven’t reset the router, as the SIP ALG goes nuts – I’m behind a multiple NAT situation so this is the only way SIP VoIP could ever work).
If you’ve arrived too late or can’t ring the number for yourself, you can treat yourself to a full demonstration in the video below:
Video Link: https://www.youtube.com/watch?v=IPm5kDxOWbM
Conclusion
I think it’s clear that I’m no comedian. In fact, I’d consider myself barely an engineer … but I do hope this has bought a smile to your face, perhaps even a chuckle, as you (hopefully) have picked up on all the subtle (and not-so-subtle) references to various tech-related issues of late. Consider this my depiction of what I feel Santa could be experiencing in this technology-laden world. A more “realistic” take on what a modern Santa may be facing. In the end, this is all a bit of fun – so I hope you enjoyed it. I certainly learned a lot about how to get FreePBX to do some very unusual things with calls and even though the humble landline is long gone, perhaps we can still indulge in a little nostalgia from time to time.
Happy Holidays, Merry Christmas and a Happy New Year to you all. Thanks for all your support throughout the year and look forward to seeing you again in the next. Feel free to leave me a message on any of the Sa(d)ntas if you dare (at your own cost) – I’d love to hear from you.
Top Comments