Dial D for Dolphin

A telephonic mystery.

Image: Luca Rossato

My landline rang. The Caller ID listed no name, but the phone number was similar to mine. Same area code. Same prefix (first three digits). “Hello?” I answered.

Silence. Then, click.

I get a hang-up almost every single day. A low estimate would be two hundred per year. I never call back. But this time, I did. I’m not sure why. Perhaps I was concerned that it was an important call — someone calling from my son’s school, maybe. Or maybe I was a little annoyed that someone called me only to hang up on me when I answered. Maybe I was bored. Maybe I was curious. Maybe a little of all those things.

“Hello Flipper,” a drowsy, robotic female voice greeted me. Then I heard the shrill trills of an actual dolphin. “Press 1 to connect with your fish,” the robot commanded, now sounding more sprightly. “Press 2 to let it go.”

Huh? Who or what did I just call?

“I’m sorry, I didn’t get your response,” the robot told me, and she sounded somewhat forlorn now. “Please enter 1 to connect with the fish. Enter 2 to say goodbye to Flipper.”

I followed my instincts. I pressed 2 to let my fish go.

It hung up on me.

What?! What the hell was that?

I called back. This time I pressed 1.

“We are connecting you to your fish,” the robot assured me.

I waited.

“This is exciting,” Tyler Wilcox said after he pressed 1 on my phone. He waited. “Are you there?” No one answered him. “Is this the sound of a fish?” He looked at me. “I don’t know what to say to the fish.” Then he said, “I don’t think there are fish on the phone waiting. Does it just keep going?”

I didn’t answer.

“All right,” he said, hanging up the phone, “disconnect from my fish. I’ve gotten what I need.”

I asked him what he thought about it.

“This is kind of terrifying. I feel like these kinds of things never end well.”

“For who?” I asked him.

“I don’t know. It just ends up with you standing in a room somewhere, looking in a mirror, and you realize that you’re a dolphin maybe? It makes me think of Lost Highway…That’s what you’re going to get sooner or later: Flipper is in your house. Like you’re going to connect to the fish at some point, and it’s gonna be like, ‘Hello, David. We’ve been waiting for you.’ Something is going to happen,” he concluded, and we laughed.

But there was something slightly creepy about it.

The next day, I awoke thinking about Flipper. Specifically the drugged-out, sinister quality of the robot voice who said “Hello Flipper.” It wasn’t a greeting like, “Hello, Flipper!” And it wasn’t a name like “Hello Kitty.” It was more like “Hulloflipper.” It almost sounded like she was taunting me with a made-up word. Like she was HAL 9000’s more primitive sister — just as evil, but with no interest in hiding it.

I scrolled through my Caller ID, found the number, and dialed it back again.

Hulloflipper…

I had expected the number to be out of service. But there it was. I pressed 1 to connect with my fish. And I waited. And waited. No one answered. It didn’t disconnect me, but it just let me hang there. No hold music. No occasional assurance that my call would be answered soon. Just nothing. Eerie silence. Or were there ghostly voices somewhere in there?

I asked if anyone was there. (Could anyone hear me? Was I being recorded?) No one answered. Eventually I hung up.

There had to be an explanation. I came up with a few theories.

Perhaps there was a reboot of the “Flipper” TV series in the works, and this was part of some weird marketing campaign that had gone live prematurely. Or maybe it was a college psychology experiment. There was something in the language, “connect with your fish” or “let it go” that seemed somehow significant.

I took to Twitter and searched there. Nothing. So, I tweeted about it myself, and found nothing more than further validation that I was, in fact, not completely crazy to be researching this: Starlee Kine (host of the endlessly entertaining podcast “Mystery Show”) liked my tweet.

I went to Google. I searched various keywords and found absolutely nothing at first. Then, finally, I hit upon just the right combination of search terms, and there it was: Flipper. All of it. All of it and more.

I gave my friends, Jeff and Jessey Eagan, the phone number to dial. “…It’s roping you into this whole mind meld of whatever they’re trying to do to you. They’re winning, I think, as well.”

While there were countless Google results for Flipper, there was only one result for my Flipper. It was found on GitHub, a massive, sprawling website dedicated to posting and collaborating on code. This page was the motherlode. Actually it was more than that. It was Flipper. Flipper’s code. And it dated back to 2014.

Here’s an example:

It takes 417 lines of code to finally get there, but there it is: “Hello Flipper”. Then there’s this, from line 469:

And that sound of the actual dolphin? Let’s visit lines 536 to 539:

Like I said, there was more — additional dialogue that I hadn’t heard. Here’s lines 437 to 439:

In all my times calling the number and pressing buttons and holding the line to be connected to my fish, I had never heard it tell me that I “have a dolphin on the line,” and to “Watch out, he’s hungry!” And what did “whisper-to-the-fish” mean?

I couldn’t tell what any of it meant because even though I was looking right at the very DNA of Flipper, I couldn’t read it. Nearly 700 lines of Java code. I can’t read Java.

Github listed three users who posted (and presumably wrote) the code: swmitchell, smitchell2240 (an alias of the first?), and lfavaro-daitan. These were the people who knew what Flipper was, why it was calling me, and what it was doing when I called it.

Neither of the S. Mitchell accounts listed any contact info or identifying information. Lfavaro-daitan’s profile listed his name, Luciano Favaro, his email address, and where he worked (both the company, and his location in Brazil). I emailed him and told him I was writing a tech-related story about a phone-based application that I found the code for on GitHub. Six minutes later, he wrote me back: “Hi David, could you give me more details?”

Delighted, confident, I wrote him back and told him that I would be glad to tell him everything on the phone. He did not write back. The next day I sent a quick note assuring him that this was a humorous story, and asked again if he could spare me some of his time. He did not write back. A few days later, I followed up again. He did not write back.

The next week, I emailed him again, and I gave him the option of using a pseudonym. He did not write me back. I called his work. He did not have an extension, the receptionist told me. Luciano was elusive. But it seemed to me, he was merely a collaborator on the code. Smitchell2240 was the actual uploader.

I registered as a GitHub user hoping to unlock a messaging feature. But there wasn’t one. So I navigated to another project that smitchell2240 had worked on and left a comment asking for him to get in touch with me, and provided my email address. I heard nothing.

Smitchell2240 was only followed by one other user: dtolb, who had a much more robust presence on GitHub. His name was listed as Daniel Tolbert. I very easily located Daniel’s email addresses and sent him a note asking if he could help me get in touch with smitchell2240. I heard nothing.

I took to Google and searched if there was a way to contact a GitHub user who didn’t post an email address. I read through various threads and learned that there was a time when the site actually did offer a private messaging feature, but they had since removed it. And then I found a thread on StackExchange.com that explained how one could find a user’s email address by following a list of steps. “Clone on your local machine the repository,” it said. “Search for an event stating ‘user_test pushed to [branch] at [repository]’…” None of it made any sense.

I texted my friend and colleague Ben Cramer in New York, and I told him to call the number. He wrote back, “I love it. It’s the best possible outcome of a call we would all assume to be some malicious effort.” I gave him a ring and asked him to walk me through his experience calling the number.

“I’m just playing arm-chair psychologist on myself, which is kind of what I do, I guess, I don’t know. I’m not a fisherman…it’s not even a fish, is it?”

A few days later, I attended a dinner party with our friends The Welles. As our kids scrambled off to play, I met Sarah Welle’s brother, John Erck who was in town from California. We enjoyed gin and tonics as the kids ate mac and cheese, and I told myself to not bring up Flipper, because it seemed like a weird dinner party topic. But then when I asked John what he did for a living, he told me he was a developer. Jamie Welle is also a developer. I was sitting right across from two developers, and we’d just put a movie on for the kids.

So I told them about Flipper. Actually, I didn’t tell them. I pulled out my phone, dialed the number and put it on speaker so they could hear it. “Hulloflipper” the robot intoned. “It’s kind of creepy!” Sarah Welle said. I told them I had found the code on GitHub, and before I could say anything else, both John and Jamie got up from the table to get their laptops. The dinner table quickly became mission control.

What followed was a solid 30 minutes of them reading through the code and all of us hypothesizing. Jamie was fairly sure it was a sample app. He said “it looks to be an example for an app called the Bandwidth app. So this is code they provide if you’re learning how to use the Bandwidth app. To give you an idea of how to use it.”

John wasn’t so sure. He wondered if “maybe it’s an experiment.” Jamie was mainly curious about the purpose of the app. Reading through the code, he found mentions of bridging calls and creating outbound calls. This made Sarah wonder if by calling in, we were “creating a call to a new victim.” It didn’t seem like a coincidence that the Hello Flipper number was local to my own phone number. We tested a theory: if we input a phone number after we connected to our fish, could we bridge (or merge) the calls together? Jamie called Hello Flipper, pressed 1 to connect to the fish, and then typed in John’s phone number. We waited in suspense, but John’s phone failed to ring.

“Maybe they’re testing the idea of calling from local numbers to local people to get an uptick in their answer rates…So maybe the dolphin is an insignificant part of the app,” John hypothesized. Jamie looked up the company called Bandwidth and found that they offered voice and messaging APIs and services. They even leased phone numbers.

If the app was really a sample application, then why was it deployed and active? Especially since it was written in 2014, and this was nearly three years later. And also: Why Flipper? What was with the fish stuff?

The only person who could answer these questions was smitchell2240. I got Jamie and John to decipher the instructions for conjuring a Github user’s email address and got not one but two email addresses. One personal, one work. And he worked at Bandwidth. And smitchell2240’s one GitHub follower was also a Bandwidth employee.

I tried Steve’s personal account first. And I gave it a few days. But he didn’t write me back. So then I emailed at his work email address. Again, he didn’t write me back. I tried emailing Daniel Tolbert again. He didn’t write me back. I tried emailing another follower of a Flipper collaborator who also worked at Bandwidth. He didn’t write me back, either. I emailed Steve again at both email addresses, assuring him that I just wanted to solve a mystery. No response.

I tried calling the office and asking for him. He doesn’t have an extension, I was told. Then Jessey Eagan found something big: Steve had posted a GitHub comment, and it included his auto-signature, which included his phone numbers. So I called him. And called and called and called. But he never answered.

While I was spinning my wheels trying to reach Steve Mitchell, it occurred to me that speaking with literally anyone at Bandwidth would be progress. So I called their main phone number, and asked for the company’s PR person. They didn’t have one, they said. I asked who handles their media inquiries. Noreen Allen, I was told — their Chief Marketing Officer.

She was energetic in how she described her firm. “We work with companies that want to do cool, interesting things with voice and messaging services. So if you want to embed voice…[or] calling capabilities or messaging or texting capabilities into your app, into software, if you want to do something innovative with it in a new product, you come to Bandwidth.”

I asked her about scammy and strange phone calls that used software-based technology, and she was emphatic that Bandwidth had no tolerance for such a thing. She also told me that Bandwidth leases phone numbers to its customers and provides them with the ability to hide their own actual phone numbers. She explained that many services, such as Lyft, do the same thing, and it’s not just for privacy concerns, but also to protect revenue. After all, if you know the direct number of a Lyft driver you liked, you could just call that person directly and bypass Lyft all together.

I asked her if Bandwidth provided apps written with, for lack of a better term, “sample copy.” Lorem ipsum for telephone APIs, if you will. “Yeah, we do,” she answered. “We provide what are called SDKs or Software Development Kits and sample code for some very basic functions so that a developer, if they want to perform some of these basic functions using our platform, can take advantage of some of that sample code.” she explained.

Jamie Welle had pointed out to me that Hello Flipper was an SDK. Sensing that I might be closer to getting some answers about Flipper, I asked her if it was possible that sample code could be deployed. “I’d have to bring one of our developers on to ask about that. I don’t get into all the details on the development side,” she said.

She offered to arrange an interview with a developer. I asked her if she could connect me with Steve Mitchell in particular, as I had identified him as the possible creator of an app that I was interested in. She happily agreed. Feeling more confident than ever, I decided to do one last thing before we said goodbye: I decided to do a three-way call with her and with Flipper.

“That was very odd,” she said after it asked her if she wanted to connect with or let go of her fish. I asked her which option we should choose. “Let’s say hello to our fish,” she decided.

After I disconnected with Flipper, I asked her what she thought. “That sounds pretty bizarre. How funny. That is interesting. Very interesting. There’s some interesting stuff out there for sure.”

I awaited an email introduction to Steve from Noreen. No such email came. I had one last option. I texted him. “Hi, Steve!”

“Who are you?” he texted me back two minutes later. It had finally happened. I was actually communicating with Steve Mitchell.

“Flipper! Trying to decide if I should connect with my fish or let it go,” I texted back, thinking he’d appreciate the reference. No response. So I tried again, this time explaining that I’m a writer working on a fun story, trying to solve the mystery of Flipper. And I offered up-front for him to use a pseudonym.

“What’s your byline? Where can I read your material?” he wrote back.

I sent him an article I’d written about having Crohn’s Disease and a love for craft beer, and an essay I’d written about my favorite Stephen King book and how it was a sort of blue-collar White Noise.

“What do you want from me?” Steve asked.

I told him I wanted to interview him.

“About what?”

Frankly, at this point, it felt as if I was repeating myself, but I explained it again. I wanted him to help me solve the mystery of Flipper.

“What’s the mystery?” he texted back. Then “It’s a sample app.” And then “That’s all,” and then, “No mystery.”

I didn’t want to argue with him. I assured him this was a fun story and pleaded for just 10 minutes on the phone.

“Sorry.”

“You won’t?” I asked. “Do you know Flipper is live?” I asked.

“If you have questions about it, please contact sales and marketing,” he wrote back.

OK, I told him, but would it be alright if I sent him any follow-up questions via text?

“Best to talk with sales,” he said.

That was the last I heard from Steve Mitchell.

I called Bandwidth back and tried to interview a random support person about Flipper. He wouldn’t comment, and instead got in touch with Noreen Allen. Perhaps sensing that I might eventually reach someone on their sales or support line who would speak to me, she called me back promptly. She explained that she felt like the story was going in a direction that she didn’t want Bandwidth associated with.

I leveled with her that I knew Flipper was a Bandwidth product. I told her that I wanted to interview a developer there because everyone who heard the Flipper app was intrigued by it. To my surprise, she agreed, and said she’d speak to some developers and see about arranging an interview.

Instead, a week went by and I got no word.

Noreen disappeared, Steve refused to respond, and the support people would not speak to me on or off the record. It made about as much sense to me as Hello Flipper itself. Why would they stonewall me over a sample app about a dolphin? Why all the secrecy?

I sent another friendly email to Noreen, and she sent this prepared comment:

We routinely create sample apps to [sic] for developers that illustrate the development possibilities of our voice and messaging APIs. Oftentimes, we’ll have fun with these sample apps and do something around a holiday, something tongue in cheek or pop culture-related. As an example, we created a sample app around Valentine’s day one year, where you could text or call a number we provided to receive a Valentine’s day greeting. The apps are not intended to be serious — they’re designed to spark creativity and illustrate a use case in an engaging manner.

This statement did nothing to satisfy my curiosity. Getting a “Valentine’s day greeting” on Valentine’s Day was not mysterious, and would not have sent me on a weeks-long hunt for answers about a 50-year old dolphin. It would not have inspired my friends to call the recipients of those greetings “victims.” Hello Flipper was not the same as a Valentine’s Day greeting on Valentine’s Day.

Plus, the statement also failed to address a pretty fundamental question: why had the “sample” come to life three years after the code was published? I thanked her and asked one last followup: how is a sample app live, and how is it making outbound calls?

She responded: “My colleagues determined that a third party made outbound phone calls to you by ‘spoofing’ that phone number. We take prompt action to address any spoofing incident that comes to our attention.” In other words, someone happened to spoof a phone number that traced back to a machine running the Hello Flipper app? What are the odds, I wondered. And anyway, a spoofed phone number told me nothing about Flipper.

A few days later, I had a beer with another friend of mine, Matt McKinney. I thought it would be a good idea to get one more recording of someone reacting to Hello Flipper. Like with my other friends, I gave him no preparation or introduction.

“Fuckin’ Verizon,” Matt muttered, thinking the call wasn’t connecting.

I got a sort of nervous, bad feeling. “Whoa, what the hell?” I said. “Nothing?”

I don’t know for sure if Bandwidth pulled it down, though the timing would suggest it. Or maybe it was a coincidence. Maybe the person who had deployed Flipper pulled it down on their own. As I write this, the Flipper code is still up on the Bandwidth repository on GitHub. But it’s no longer there when you dial the number.

Flipper had been driving me a little crazy. It was a maddening mix of dumb and mysterious and weird, and the fact that the company who created it flatly refused to talk to me about it (aside from two vague and nearly meaningless statements) only made it worse. Or did it make it better?

The likely truth is that Flipper really was just a mundane sample app, and it was accidentally deployed. The mysterious bridging-calls code was probably there to show how it could handle incoming calls, then create and route (and bridge) those incoming calls to a customer-support or sales queue. Sure, that still didn’t answer why it was making an outbound call, and I still had no idea why someone wrote code about an aquatic mammal from 1960s television show. But that’s very likely what the app was meant to demonstrate. But coming to that realization was the least rewarding part of the entire process.

Maybe, or almost certainly, Flipper was written about Flipper and fish because it was just a dumb joke between developers. But once it escaped from those confines, it took on a life of its own. And quirky/funny became something that one person said was “terrifying,” that another person compared to a David Lynch movie; when another person heard it, she called it “creepy”; when another person heard it, he thought it might be “an experiment”; when two other people heard it, they joked about how if something happened to me, they’d know the first thing they’d think would be “Hello Flipper”; and when someone else heard it, he said it was something everyone would “assume to be some malicious effort.”

After a month of obsessing about Hello Flipper: what did I really want the most? The mundane truth, or the dark mystery? Why had I called a hang-up back in the first place? And then why did I care about some primitive robot voice on the other end? The night I discovered Flipper was dead, I told my wife. She asked me, “Are you surprised?” I told her I wasn’t. But I was sad — even if the code itself was still there on GitHub, it just wasn’t the same. I wanted that drowsy, persistent robot to be out there in the wild, asking anyone who called it if they wanted connect to their fish or let it go. I wanted Flipper to trill at callers, to amuse them, to confuse them. There’s some interesting stuff out there, for sure.

David Obuchowski is a freelance writer and a musician. His features on craft beer, literature, music and culture have appeared in Deadspin, Gawker, and The Daily Beast. He plays guitar for Publicist UK (Relapse Records), Goes Cube (Old Flame/Greenway Records), and other projects.