The Wilhelmus Hotline: fun with Amazon Connect

tl;dr You can call the number below to listen to the Dutch national anthem (prefix +31 instead of 0 if you are calling internationally). Regular charges apply.

020 808 6209

Conception

A week or two ago, I was spending my Sunday browsing through the ever-expanding collection of Amazon Web Services when I stumbled upon Connect, Amazon’s service offering that allows companies to easily set up telephone help desk systems. Clearly, Amazon uses this (or something like it) for their own customer support phones, and decided to offer it to other companies as well.

Connect, like most of AWS, uses a ‘pay-for-what-you-use’ pricing model, with a small fee per day charged for using a phone number, a small fee per minute of call time, and a base per-minute service cost. What struck me was that the fee for just having a phone number was a few cents per day - perfect for playing around with.

Looking around a bit further, I noticed that the system was clearly built to be extended. The interaction between the caller and the system could be programmed using contact flows, in a neat visual editor.

A sample of the Amazon Connect visual editor.

The sample contact flows include interesting stuff like listening for DTMF tones (“for sales, press 4”), doing speech recognition and synthesis, and shuffling callers into queues, either based on conditions or randomly. In case you need to integrate it with anything, Connect can call Lambda functions. It is really quite neat.

My idea did not need any of that. At first, I wanted to build a prank phone number - dial the number, hear some classic 1987 dance-pop - but I was not looking forward to having to pay licensing fees on such a silly project. It was the weekend after King’s Day, and with a bit of lingering nationalism still in the back of my mind, I decided to make a Wilhelmus Hotline instead.

I grabbed a recording of our national anthem from Wikipedia, converted it to a wave file, and uploaded it to Connect as a voice prompt. (A voice prompt, of course, is a little soundbite like the “Thank you for calling Initech” at the beginning of a call.)

Creating a new Contact Flow that told Connect to just play the anthem then hang up took no time at all. Adding a real phone number took even less. With sweaty palms, I grabbed my cellphone and dialed the number.

It worked! The Hotline was live.

Spread

I knew just where to share it, too. The Cirkeltrek subreddit is one of those places that is clearly a parody, while being a bit unclear about what it is a parody of, exactly. It is a… very unique place, and I was sure they would appreciate something like this.

A screenshot of the reddit post.

The reddit post just had the phone number and some instructions on how to call from other countries. The post was upvoted right away, and I watched it slowly gain popularity. Comments started to roll in, too, including one from a guy who was going to use the Hotline at a wedding. All the while, I kept an eye on Connect’s logs: at the end of the day, more than 250 people had called the Hotline.

That was Sunday. The following Wednesday, Dutch radio DJ Michiel Jurrjens had somehow picked up the reddit post, talked about it on air, and wrote a tweet about it. Out of the blue, broadcaster RTV Oost called: they wanted to write a real, actual news article on the whole adventure. I tried to answer some questions as best I could, even the tricky ones, like “Why would you even do such a thing?!” RTV Oost would call back the day after for an actual radio interview.

Meanwhile, I watched as more calls were starting to come in. At this point, I was not only keeping an eye on the Connect logs, but also on the CloudWatch metrics: by default, Connect is limited to 100 concurrent callers.

The 4th of May is Remembrance Day in the Netherlands, and the 5th is Liberation Day. If there was ever a day to call a national anthem hotline, those two would be good candidates. A bit nervous about hitting Connect’s service limits, I sent a message to AWS Support, asking if the limits could be increased. An AWS rep got back to me right away, but had to confer with the service team to see if increasing the limits would negatively affect stability.

After a few hours, the limit was increased. Just in time, too.

A graph of concurrent callers, showing a large spike just after 21:30 UTC.

Half past eleven local time (21:30 UTC), the number of concurrent calls suddenly went through the roof: CloudWatch measured more than 50 concurrent callers.

A few minutes later, I got a notification of a reddit comment on the original post. “Hey, I just saw your number on RTL Late Night.” Whoops. My joke phone number had just been on national television.

Photo of a TV showing RTL 4, showing the tweet, showing the reddit post, showing the hotline
(Image: RTL, via Michiel Jurrjens)

Presenter Marieke Elsinga had found Michiel’s tweet and demonstrated how to call the number live on air.

Aftermath

As I am writing this, the Hotline has been called 9907 times. Traffic has slowed down considerably since the number was on TV: the viral phase has been over for a while now, as these things go. I intend to keep the service — if you can call it that — available for a while, just in case people somehow find a use for it.

I am extremely impressed at how easy AWS Connect was to set up, and amazed at the fact that it apparently scales to “show the number on national television”-levels of traffic without issue. While my AWS bill for this month will turn out to be quite a bit higher than I expected going into this adventure, I think it was well worth it.

All in all, the Wilhelmus Hotline is without a doubt simultaneously the most useless and the most popular thing I have ever built, and I am very glad I did it.

Thanks for reading! If you have any questions, comments or corrections, feel free to shoot me an email.