Regular Phone Calls
One of the main features was that a regular phone call was made when someone used an intercom. That’s why we developed a Node.js backend to handle the calling logic. We also created an integration using the SIP protocol with a Norwegian mobile operator. Additionally, we facilitated door opening by pressing specific numbers (DTMF tones) during the call.
Video Calls
To implement video calls in the mobile app and to allow the calls to go through even if the phone is locked and the app is not running, we’ve used VOIP push notifications.
Complex Architecture
The Touchcom system has a complicated architecture and was maintained on our servers with use of kubernetes and rancher.
Optimisation
Optimisation was crucial as we were to provide a reliable video calling solution for intercoms. Those were devices with limited computing power (Asus Tinker Board Single Board Computer (SBC) running Linux). To find the middle ground between cost, development time and efficiency, we’ve chosen to develop an app for them in Electron and Node.js.
Service Monitoring System
As the system had to work as planned, Touchcom needed to react to any issues immediately. To meet this requirement, we’ve built another Node.js application with react frontend as a monitoring service. Since there are physical devices in end-customer buildings, we implemented our own self-hosted VPN network to which all devices were automatically connected at startup. Thanks to this, if something happens to the intercom, we can repair it remotely.
Handling a Weak Wi-Fi Signal
Another case was to address a non-stable Wi-Fi & mobile internet connection, so we designed the app to work offline and transfer data to the server when they would be connected again. When offline, video calling nor regular calling was not available, but RFID cards worked as usual.