How I won TADHack – Number Mapping with Restcomm Visual Designer

This post first appeared on the Blog of TeleStax.

Following Alan’s work and the TADSummit/TADHack in 2014 I have been fascinated: He managed to get a crowd together that deals with Telecom’s problems, but from an angle and with a spirit that is entirely different (i.e. significantly better) than “typical operator conferences” I’ve seen and attended before.

I could not make it to both initial meetings, but had the pleasure to attend the second TADSummit in Istanbul at the end of last year. It was a nice gathering of likeminded colleagues and “the new generation of potential Telco vendors”. Yes, in most of my posts and presentations you’ll see me emphasize the importance of a different mindset than the one traditional vendors still have when it comes to – well just about anything :).

After TADSummit I’ve felt quite excited to also attend a TADHack myself, but it wasn’t until recently that I was not quite sure what to hack together. In my day job I’m not a programmer, but deal with Telecom’s network evolution and design mainly. Over the years I managed however to always find a side project to try out some programming languages and approaches that interest me and that help me connect more with the IT part of the operator world. When we stumbled across a problem in one of the recent business meetings at work, several options for solutions have been discussed, but all of them were rather complex and required a lot of internal systems integration. It was then when I thought to reserve a couple of spare hours over a weekend and try to apply some of the things learned at TADSummit – with one of the components that has been part of the most impressive demo at this event.

The problem was to map fixed and mobile phone numbers of customers in an efficient way. It should avoid visiting a shop in person as well as complex integration with existing systems. It sounded to me it’s time to investigate the options of Telecom’s Application Development :)

About the number mapping problem

Subscribers often have multiple registered phone numbers for good reasons – mobile phone number, home/family number, office number and others.

As a matter of fact, there is no standardized way to find out what are the phone numbers that a user controls, nor what the user prefers to use these numbers for.

If such simple mapping information were available, one can imagine a number of productivity applications and daily workflow efficiencies that can be realized. Some examples:

  • During office hours, when the user is in their office and wireless reception is poor, calls to the mobile number can be forwarded to the office line.
  • When the user is at home, mobile phone calls from friends can be forwarded to their IPTV phone after 8am and before 8pm.
  • After hours calls to the office line from VIP customers can be escalated to the personal mobile phone unless the user is floating on an inflatable banana near a Caribbean Island.

The solution

The solution I came up with – that was presented at TADHack 2015 in London, UK – allows anyone to map a fixed number and a mobile number by themselves using only their fixed and mobile devices respectively. The solution consists of three main components:

  • API logic
  • Restcomm
  • Nexmo

The API logic has been developed using Node.js and the restify module, amongst others. It implements a RESTful CRUD interface and some advanced logic to interact with both Restcomm and Nexmo. It also interacts with a demo website that contains a short set of instructions for using the service as well as an overview of all mapped numbers.

The service is initiated by sending an SMS from the mobile that should be linked to the service (via Nexmo) – including the fixed number that should be linked. The service responds with a PIN to this mobile number that needs to be entered from the fixed line.

The next step is calling the service from the fixed line, entering the PIN, and receiving a confirmation: This is Restcomm’s task. Restcomm is “called” and will interact with the API as “external service”. At first, it will check if the calling number has been requested to be mapped. If not, it will announce instructions how to get started. Otherwise it will ask directly for entering the PIN. After the 4 digit PIN is “gathered” it will be compared through the API. Depending on the response it will either announce an error or initiate the mapping of both number. The call will end with an announcement that both numbers have been mapped successfully.

The service uses the following of Restcomms features:

  • Play
  • Collect
  • External Service interaction
  • Variables & conditional linking of modules

The Restcomm flow is shown below.

For the demo, Restcomm has been setup on a Digital Ocean host and required only little integration and interaction (caused by not RTFM on my side :) with TeleStax’ team to make it fully working.

A key feature I think is noteworthy is the Restcomm Visual Designer. I have not found any other tool that is as easily usable and fast to create an interactive application as this. The application could be developed fast, the complex functions of Restcomm were rather self-explanatory.

Conclusion

The enabler is ready now and has also been demonstrated in a small showcase (you can call Restcomm, enter a fixed number and it will connect to the corresponding mobile number through a Twilio trunk). See video below

I am already working on developing interesting ideas for its further use as well as for the Restcomm application server to be part of my next hack or the solution to a new problem we may stumble across.

I fully enjoyed my first TADHack, and am very happy that the jury decided in the end to award my hack with a price. Thanks to all the sponsors, in particular TeleStax for the assistance during these two intense days.

The demos from the participants were all very good (and are also available online) and I have been really impressed by what has been created in such a short amount of time by everyone.

I would like to say a big ‘Thank you’ to Alan for all the efforts he put, for the great organization and perfect execution as well as his contribution to the ecosystem. TAD is a very important initiative and increasingly relevant for vendors and operators alike. I can wholeheartedly say that getting involved is time/money well spent!

The application is available at https://www.number-mapper.com for the duration of the TADHack competition.

All materials are available at https://github.com/s-schumann/tadhack-2015-london.