Twinlife and WebRTC: An Interview With Michel Gien

February 20, 2014

Envisioning new ways to call.

The “phone call” has been with us for decades. But is it the best way? Or the only one? Many think it isn’t.

Twinlife is one such company. Based in France, where a large community of WebRTC developers is brewing, they are trying to change the way calls are made – making them permission-based.

Michel GienI took the time to sit with Michel Gien, CEO of Twinlife, to get a better understanding of their twinme service and this notion of permission-based calling.


What is twinme about?

Twinme is all about making people communicate with each other remotely like they do in real life when they meet physically.

In real-life, let’s say you meet someone on the street, on the subway or in a bar, you don’t need to know anything about him/her to say hello, chat about the weather or engage in a chat about sports or politics. You don’t need to know their name or anything about them. This is very different from the status quo in communications, whether it’s a phone call, Skype/VoIP, or a Social/Messenger app, both parties must be part of the same network, service provider and/or platform and exchange information like their phone number, their email address, their user name, their status, their availability and other personal information before any communication can even occur.

What happened to just communicating with someone whether you know them or not? In the real world, interactions and communications occur without the parties knowing each other, whether it’s the baker selling you bread, or the fellow sports fan sitting next to you at the game cheering on your team.  Much of our communications in the real world happen with people we don’t know yet and maybe not all communications need to be predicated on my social graph.  After all, there are far more people I don’t know than people I do.

WebRTC addresses part of the problem by providing a universal peer-to-peer real-time communication engine allowing anyone with an internet (mobile or fixed) connection to potentially interact with anyone else with an internet connection. Twinme complements it by providing people or companies with a universal and intelligent way to create, modify, revoke, distribute, exchange, manage and control as many contact identities – you can call them “numbers”, as they need that can be used to establish WebRTC-based communication channels with them.

Moreover, with twinme, there is no need to register to call someone, and there is no need to register either when you want to be called on your smartphone.

In other words, twinme gives people a way to interact anonymously with others remotely, and to let “them” manage how they want to be seen by others, depending on the circumstances, just like they do in real life by deciding how they want to be known by the person they talk to on the street.

You can kind of think of twinme like PayPal for communications. PayPal figured-out that people wanted to pay for things without surrendering their credit card numbers to parties they didn’t know or trust and who weren’t part of the same network, eg. Visa, MasterCard. Twinme allows people to communicate and share without surrendering their personal information to people they may not know or trust and who may not be part of the same network.


What excites you about working in WebRTC?

WebRTC is exciting for three reasons:

  1. It enables peer-to-peer real-time communications without the need to go through 3rd party servers (except to deal with firewalls). This gives complete control of the interaction to each end of the communication channel instead of a 3rd party that sits in the middle
  2. It does not impose any constraint on how communications are established. It just assumes that, at some point, A knows about how to call B, and both can initialize their peer-to-peer connection
  3. It is intrinsically asymmetrical: A needs to know how to call B, but B does not need to know about A at all

This is quite disruptive to our current communications paradigm. With WebRTC, centralized communication service providers are not needed anymore: it is the essence of communications without the overhead of needing an intermediary or unwanted surrendering of unnecessary information.


You decided to change the way we make calls, and introduce this notion of a twincode. What does this provide?

Twincodes are unique and “intelligent” contact handles that can be created from the twinme application on a mobile device (Android at this point), or on the web app on any web browser.

A twincode can be used to call someone with any WebRTC-enabled browser (Chrome at this point) without having to register anywhere, or with the twinme application on a mobile device.

A twincode currently has a name and an avatar.  However, it is able to carry all sorts of other attributes depending on its use case.  Such attributes could be, for example, its validity and life cycle information (on what dates it can be used, at what time of the day, for how long, etc), the communication format enabled once the connection has been established (audio, video, text, files, email, etc.), etc.  Attributes are “processed” locally when the twincode is “activated” by the caller.  It could thus refuse to place a call, for example, if the current date and time is not within the twincode validity period.  But in each case, it serves purely as the “permission” required to interact and communicate.

Twincodes are each uniquely identified by a URL that can be transmitted as a button on a website or a mobile application, cut/paste into a document, email, QR-Code, NFC, or built-in twinme mechanisms.

Twincode attributes

Can you give examples of a use case for twincodes?

Suppose you meet someone in a bar or at a party. You both would like to continue interacting remotely afterwards, but you are not ready to give your phone number, email address or social network username yet. And even if you do give yours, the other person will probably hesitate to call you because it would mean showing up his/her phone number, email address or social network username as well. This is when you could leave a twincode printed as a QR-code on a card, representing two avatars (say Batman and Catwoman) that appear on each other smartphone as one (Batman) scans the QR-code and click on it to call the other one (Catwoman).

As a professional, you may want to sell unit-based person-to-person remote services, such as a one hour class, a health, legal, astrology, you-name-it consultation. You could then “sell” twincodes to your clients on your website, which they can use to call you from their smartphone at the date, time, and for the duration of the consultation they paid for. Once done, the corresponding twincode will not be valid anymore.  This is just like going to a shop or an office to buy goods or services.

Another interesting use case is to have twincodes created by a “twincode factory”, operated by a company, to identify its generic functions (CEO, CTO, CFO, COO, HR, Marketing, Sales, Customer Support, Engineering, etc.).  The Inbound part of those twincodes could be handed over to real people filling these roles.  When a person leaves the company, or is not available for some reason, the “role” twincode can be handed over to someone else.  Such twincodes are similar to professional numbers that can be reassigned to another person, like a kind of virtual SIM card that is bound to a role and not necessarily to an individual.


Why would someone want to use twinme instead of other video chat services?

Twinme allows you to start interacting with someone you do not quite trust yet without giving away personal and permanent information such as a phone number, email address or a social network profile/identifier.

With twinme, (1) you do not need to register to use the service, (2) “you” generate and manage “your” identities, and you can generate as many as you want, (3) you can revoke unwanted contact information so people cannot call you unless you still want to, (4) you can associate a service or a transaction to a communication session, and handle both as a whole for monetization for example, and (5) you communicate securely in peer-to-peer HD audio/video thanks to WebRTC.


What technologies and architecture are you using for twinme?

WebRTC obviously! With STUN/TURN servers to deal with firewalls, and XMPP with a subset of Jingle and twincode management extensions over WebSockets for signaling.

We’re using also a lot of other open source technologies and components, such as OpenFire, PostgreSQL, Dojo toolkit, cloud-based infrastructure, etc.


Where do you see WebRTC going in 2-5 years?

We see WebRTC taking over internet-based real-time communications, in particular on mobile, where it should gradually displace traditional phone-based communications as smartphones get more powerful, as WebRTC codecs start leveraging HW acceleration, and as higher-speed mobile networks (4G then 5G) become more widely available.

With twinme to easily set up and fully control your connections, WebRTC to interact in peer-to-peer on your smartphone (and any other device for that matter) and a high speed data connection to the internet, you should get all you need to interact with others remotely, as you do today when you are face to face.

New communications usage models will appear such as telepresence for example, and we have a lot more ideas and use-cases that we’ll reveal when the time is right.


If you had one piece of advice for those thinking of adopting WebRTC, what would it be?

It’s happening whether you know it or not, whether you like it or not and faster than you think. Don’t wait or you’ll be hurt badly, and you’ll have a hard time recovering.


Given the opportunity, what would you change in WebRTC?

I’d accelerate the full use of co-processor acceleration for audio/video coding/decoding on smartphones to improve performance, save battery life, to reach par with, and ultimately surpass regular phone software.


What’s next for twinme?

Twinme will be released for public beta on Android and Chrome this week. We’ll start spreading the word at Mobile World Congress (MWC) in Barcelona, February 24-27.

The twinme API and SDK for Java (Android) and Javascript (Web) will be available on our website for developers to play with and invent great twincode/WebRTC-based applications, or to include twinme into their existing apps.

The next major milestones will be an iOS release and a radical user interface re-design to give it a fluid usage-oriented behavior.  Definitely stay tuned – we’re only getting warmed-up.

The interviews are intended to give different viewpoints than my own – you can read more WebRTC interviews.

You may also like

Two years of WebRTC Insights

Two years of WebRTC Insights

Your email address will not be published. Required fields are marked

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}