HaloApp: Een Telefoongesprek Is een Verdeeld Systeem
WebRTC voelt makkelijk in een demo en valt uit elkaar op echte mobiele netwerken. Wat een mobiel-eerst communicatiewerkruimte ons leerde over wat er echt breekt.
Elke WebRTC-tutorial eindigt met een gesprek tussen twee laptops op hetzelfde Wi-Fi. Elke productie-VoIP-app begint met een gesprek van een telefoon op mobiele data naar een deskphone achter een NAT die je haat. HaloApp is een lange lijst lessen over die kloof.
De state machine is het product
Een gesprek is geen vinkje — het is een state machine: registreren, overgaan, verbonden, in de wacht, herverbinden, netjes beëindigd, slecht beëindigd. Elke transitie heeft een faalmodus met eigen UI en herstelpad. Wat gebruikers betrouwbaarheid noemen, is de volledigheid van deze machine. We besteden een orde van grootte meer tijd aan herverbinden na netwerkverlies dan aan het eerste geslaagde gesprek.
NAT-traversal is een mensenprobleem
ICE, STUN, TURN — de theorie is netjes. In de praktijk eten sommige firewalls STUN-bindings als ontbijt; het eerlijke antwoord is een eigen TURN-relay met voldoende bandbreedte. De belangrijkste beslissing was geen slimme code maar het vroeg accepteren van eigen relay-infrastructuur.
De demo-naar-productie-checklist
Test op gethrotteld mobiel netwerk, niet op kantoor-Wi-Fi. Kill de app midden in een gesprek. Vliegtuigmodus, dertig seconden. Overleeft je state machine dat — dan heb je een product.
