How to build your own phone company with WebRTC and Node.js

I’m reposting this article because it’s very cool and anybody can try it and probably succeed on their first attempt.

the title of the original article is Build your own phone company with WebRTC and a weekend. I added the Node.js part because it a core tool used to make the application happen.

I intend to give this a try before the end of this month, so if you try it before I do, let us know how you fared. With out further ado, here’s how the author started:

Maybe I have been working in the communications industry too long, but much of the usual telephone experience seems ridiculously antiquated to me. Using a string of digits as a user address? Anyone can call you for any reason they want whether I know them and want to speak to them or not? Of all of the telephony systems daily nuisances, I find conference calls to be the worst! The process of looking up a random string of digits to dial into a bridge, listen to the same repetitive prompts, and then needing to look up and enter another random string of digits drives me insane every time. I would prefer to just provide a user-friendly URL, like the I own and to make my phone service available when I choose.

Also, a video option would be nice – sometimes. I like to do video calls with my parents so they can see my kids which means negotiating which video telephony service we will use first, usually via text message, based on who happens to be sitting in front of what device. Allowing multi-party video would be even better so I can let my kids have one camera to show off in the background and I can call in with another to have a real conversation.

There are many solutions out there for the problems above, but none of them allow me to “own” the solution and change it to fit my needs. Fortunately I know something about WebRTC and have rudimentary programming skills, so I set out to make my own phone service during the holiday break.

Read the complete article here.

WebRTC Node.js

Related Posts

How to customize Mageia 4 KDE Mageia 4 has just been released. Screen shots from test installations of the Cinnamon, KDE and GNOME 3 editions have already been published (see Magei...
How to customize Linux Mint 10 After a review of Linux Mint 10, the next logical step is to write a few tutorials and tips for those that might need it. The first of these tutorials...
How Linux Distros Configure and Manage LVM This is part 2 of a multi-part series on Linux logical volume management. If you are not already familiar with LVM, you may read part 1 here We ar...
How to install Linux Mint 10 on a btrfs file system Linux Mint 10 is the first version of Linux Mint with built-in support for the B-tree File System (btrfs). Btrfs is one of the newest file systems in ...
How to delete DigiNotar CA certificate from Firefox DigiNotar B.V., a unit of VASCO Data Security International, Inc., is an Internet Trust Service Provider based in the Netherlands. Part of their busin...
Tips for installing a Linux distribution on an external hard drive Installing a Linux distribution on an external hard drive should be easy and once installed, you should have no problem booting it from any computer. ...

We Recommend These Vendors and Free Offers

ContainerizeThis 2016 is a free, 2-day conference for all things containers and big data. Featured, will be presentations and free, hands-on workshops. Learn more at

Launch an SSD VPS in Europe, USA, Asia & Australia on Vultr's KVM-based Cloud platform starting at $5:00/month (15 GB SSD, 768 MB of RAM).

Deploy an SSD Cloud server in 55 seconds on DigitalOcean. Built for developers and starting at $5:00/month (20 GB SSD, 512 MB of RAM).

Want to become an expert ethical hacker and penetration tester? Request your free video training course of Online Penetration Testing and Ethical Hacking

Whether you're new to Linux or are a Linux guru, you can learn a lot more about the Linux kernel by requesting your free ebook of Linux Kernel In A Nutshell.

Leave a Comment

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