element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Hack the Holidays
  • Challenges & Projects
  • Project14
  • Hack the Holidays
  • More
  • Cancel
Hack the Holidays
Hack the Holidays Blog The Sa(d)nta Hotline
  • Blog
  • Forum
  • Documents
  • Leaderboard
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Hack the Holidays to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: Gough Lui
  • Date Created: 24 Dec 2022 3:02 AM Date Created
  • Views 1694 views
  • Likes 18 likes
  • Comments 2 comments
  • hacktheholidays
  • calling
  • freepbx
  • santa
  • pstn
  • phone
  • sip
  • telephone
  • raspbx
  • voicemail
  • asterisk
  • hacktheholidaysch
  • hack the holidays
Related
Recommended

The Sa(d)nta Hotline

Gough Lui
Gough Lui
24 Dec 2022
The Sa(d)nta Hotline

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)
    • Scripting and Recording
    • Setting Up Virtual Extensions
    • Customising Greetings
  • Handling Incoming Calls
  • Opening Up to the World
  • The Sa(d)nta Hotline Experience
  • Conclusion

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.

image

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.

image

To do this, we add virtual extensions as no hardware will be connected to them.

image

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.

image

Of course, voicemail has to be enabled as well.

image

The configuration can then be applied.

Customising Greetings

To customise greetings requires logging into the User Control Panel at <IP-ADDRESS>/ucp.

image

By default, new users have a tour that they can skip, but there is no dashboard set-up, so one must be added.

image

The voicemail widget then has to be added into the dashboard.

image

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.

image

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”.

image

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”.

image

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.

image

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:

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

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.

  • Sign in to reply

Top Comments

  • DAB
    DAB over 2 years ago +1
    Cool project.
  • javagoza
    javagoza over 2 years ago

    Nice project! I have been using Asterisk for several call center projects and point of sale terminals over the phone for years. It has brought back good memories.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • DAB
    DAB over 2 years ago

    Cool project.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube