← Frameable Tech Weblog

We made "ding" sounds in Microsoft Teams when people join a call

We made "ding" sounds in Microsoft Teams when people join a call

What is it about the way that we humans are wired — that hearing a "hello" from a colleague who just joined a long-running video call causes a jolt of surprise/panic/anxiety to those already in the call, but hearing a "ding" followed by the same "hello" causes no such alarm?

Working sessions in video calls

Our team will often have thematic collaborative working sessions running throughout for swaths of the day, where we are working on one project or another. Whoever is working on the project, whether designers, engineers, or marketing folk, will drop in and work on their piece of the puzzle, asking questions, offering help, scheming about how to tackle the next part, etc.

It is a wonderfully human way to work. We all share our screens so we can see what each other are doing in the moment, so we know when to ask questions, and so we can see progress as it happens. It is legitimately helpful that we can all see as design work is making its way from sketches to high-fidelity mockups; prototypes are getting hardened; integration tests are getting fixed; a marketer is getting our announcement communications into place in the CMS, etc. Everyone sees all of this happening without having to proactively ask and answer, without the need for a project manager holding progress update meetings or other big ceremony.

But — every time someone new joins and says hello, there's a collective moment of brain-scrambling disruption. The voice of this new human is startling! We noticed though, that a notification sound beforehand makes all the difference. When there's a notification sound and then the human voice, all is well — no brain scrambling disruption, but of course everyone still knows of the newcomer.

A hack in the physical world

We use Microsoft Teams for our video calls, which (amazingly) has no option for notification sounds when people join, unless of course they're joining by telephone! So, we had to hack the system. And then, we had to hack it again after that.

In our first attempt, everyone just found a real-life bell of some sort they could use to announce their arrival. When they joined, they would unmute and simply ring the bell. It made a huge difference. And so, problem solved, right? Alas, our success was short-lived. Once Teams rolled out "voice isolation" with no option to turn it off, our hack was moot, since the bell sounds just stopped coming through.

Time for a robot

With the real-life bells censored by the algorithms, we needed a new approach. So we embarked upon building a bot for Teams that would follow us around and announce our arrivals.

Our first challenge was getting the bot to join all of our internal calls automatically. The Graph API doesn't offer any real-time mechanism for knowing when a call starts specifically, but we noticed that a callStarted event chat message does come through. It turns out that with a subscription to /chats/getAllMessages we can actually get notified when any video call starts up.

The next challenge was to get our bot to join the call itself. Once we have the callId from the callStarted event, we can POST to /communications/calls/{callId} and we will see the bot now present in the video call.

Now we that we have a bot in the call, we need for it to notify everyone when a user joins or leaves. Luckily, we will receive the webhook notifications we need, back to our application service that spawned the bot. From there, we can respond by sending a POST to /communications/calls/{callId}/playPrompt so that everyone will hear the notification sound.

It's working!  Our announcer bot is in the call, emitting sounds when people join and leave.
It's working! Our announcer bot is in the call, emitting sounds when people join and leave.

In the end, this approach is mostly better — it actually works, and works consistently. One way that it's not quite as good (yet), is that we don't immediately know from the notification sound who it was that joined the call. We realized in retrospect that we had come to know the individual bell sounds for each person. Logan had the cash register bell, Daniel had the tambourine, etc. Going forward we'll have to make the notification sounds customizable per-person!

So why, then?

So anyway, why do we prefer the notification sounds in the first place? Our best guess is that our brains really just appreciate the extra few seconds to adjust to the presence of a new person in the mix.

In the real world, we recognize when someone is joining a conversation, and can make room for them with a pause or a greeting, while we ready ourselves for a potential adjustment to the conversational flow. Without the notification, it's an abrupt change and we feel the need to respond urgently. With call join notifications in our Teams calls we were able to regain that bit of humanity.

Thanks for reading...

We make truly awesome collaboration tools for Microsoft Teams, and we'd love to show you around.

Talk to us →

Check out some of our wonderful products