Twee jaar zijn we nu bezig met de doorontwikkeling van onze bellen-over-internet app. Dat was geen eenvoudige weg. We hebben heel veel stappen gezet en daar nemen we jullie graag in mee.
Toen we begonnen met de implementatie van bellen over internet in de app liepen we tegen één groot probleem aan. Apps draaien niet altijd op de achtergrond en zijn dus niet ‘klaar’ om een gesprek te ontvangen. Dit kun je op twee manieren oplossen. De eerste optie is om de app stiekem wakker te houden, maar dat vraagt veel stroom en is niet heel netjes.
De tweede optie was complexer.
Je kunt namelijk ook een bericht sturen naar de telefoon met het verzoek om de app te starten zodat deze klaar is voor een gesprek. Deze zogenaamde push technology hebben we twee jaar geleden grotendeels zelf moeten ontwikkelen, omdat dit simpelweg nog niet bestond. We gebruikte ongedocumenteerde delen van het Android en iOS-platform om dit voor elkaar te krijgen en toen we dit werkend hadden, was dit een enorme doorbraak.
Inmiddels is deze technologie een stuk verder en is de zogenaamde middleware push technologie gedeeltelijk vervangen door natuurlijk gedrag van smartphones en hun besturingssystemen.
De tweede uitdaging was de wisseling van netwerken. Als jij aan het bellen bent en je loopt van WiFi naar 4G dan verandert het IP-adres van je telefoon. Dat moeten wij door hebben en daarop direct de audiostroom doorsturen naar het nieuwe IP-adres. Technisch een lastige uitdaging, maar inmiddels kun je van WiFi naar 4G en weer terug met slechts een audio hapering. De verbinding blijft actief. Hierin zijn we ook geholpen door de nieuwe generatie smartphones. De computerchips en software die daarin zitten gaan beter om met netwerkwisselingen. Tot slot denken we hier in de toekomst nog een stap in te kunnen maken, waarmee je nog minder audiohaperingen gaat ervaren.
Nu de push werkte, werd het mogelijk om gesprekken met één druk op je scherm aan te nemen op Android. Op iPhones was dit een ander verhaal. iOS gaf je geen optie om een inkomende gesprek scherm te tonen. Daar kwam verandering in met de introductie van Callkit een verbetering in iOS, het besturingssysteem van je iPhone. Deze liet dit wel toe en zo brachten we begin 2017 een nieuwe versie van de app voor iOS uit met Callkit integratie.
Met een app wil je kunnen bellen en eigenlijk wil je dezelfde kwaliteit op je mobiel als die je hebt met je bureautoestel. Dat was ons streven. Kwaliteit komt echter met een prijs. Hoe hoger de kwaliteit van een geluidscodec -het algoritme waarmee je de audio verpakt- hoe meer bandbreedte je nodig hebt. Een betrouwbare verbinding is dan essentieel. 4G is het meest stabiel qua reactiesnelheid (latency) en hoeveelheid bandbreedte echter niet iedere provider heeft overal 4G.
Na veel testen zijn we inmiddels succesvol overgestapt op een andere codec. De nieuwe versleuteltechniek gebruikt niet alleen minder bandbreedte -4 minuten bellen kost je hiermee ongeveer 1 MB aan data- maar hij kan pakketten ook beter repareren. Daarmee is de audiokwaliteit van bellen over WiFi enorm verbeterd.
De volgende uitdaging die zich voordoet, is dat je niet altijd een 4G- of WiFi-verbinding hebt. Veel netwerken in Nederland zijn 3G+. Op een iPhone zie je dit niet; er staat simpelweg 3G op je telefoon. Op een Android toestel is 3G+ het H symbool of het H+ symbool dat je ziet op je scherm. De nieuwe codec stelt ons in staat om ook te kunnen bellen over 3G+ en na veel testen hebben we dit dus voor een groot aantal van deze 3G+ type netwerken op Android aangezet. Voor iOS gaan we dit binnenkort doen.
En dan bluetooth. Op iPhone was de stap om bluetooth stabiel werkend te krijgen een eenvoudige. Op Android was het een drama door de manier waarop de verschillende versies van Android hiermee om gaan. Maar na lang klussen hebben we nu een mooie stabiele oplossing gevonden zodat je nu in de auto, over bluetooth je gesprekken kunt voeren.
Na twee jaar ontwikkelen hebben we daarmee een app die:
En daar zijn we trots op, maar we zijn nog niet klaar. Zo willen we graag encrypted bellen standaard gaan activeren in de app. Verder willen we een slimme persoonlijke “gemiste oplossingen” lijst maken. Tot slot willen we een mooi overzicht van de beschikbaarheid van je collega’s en hun gesprekstatus om daarmee intern bellen en doorverbinden nog eenvoudiger te maken.
Deze ontwikkelingen zijn alleen mogelijk door onze grote groep bèta-testers, die ons voorzien van alle feedback om de app door te ontwikkelen. We zijn altijd op zoek naar klanten die het aandurven bèta-tester te worden.
Alle broncode is open source, dus mocht je een eigen bel app willen maken, dan hebben wij al een hoop zaken voor je opgelost!
In de afgelopen jaren hebben we veel geschreven over ondernemen, zelfsturend werken, de handigste tools en nog veel meer. Dus leef je uit!
Ga naar het blogoverzichtVan 29 november 2017