Trais elements, in sulet intent
Tecnicamain è Timmy construì en ina moda fitg pragmatica: Flutter per l'app, WebRTC per audio e video en temp real, e Firebase per la coordinaziun. Jau na vuleva betg construir ina plattafurma enorma che maina tut tras il cloud. Mintga part duai savair uschè pauc sco pussaivel e tuttina lavurar a moda fidada cun las autras.
WebRTC: colliaziun directa, criptada da standard
WebRTC (Web Real-Time Communication) transmetta audio e video tranter l'apparat dal pop e quel dals geniturs. En il meglier cas flueschan las datas directamain tranter ils dus apparats, peer-to-peer, senza in server da medias tranteren.
Mintga colliaziun WebRTC utilisescha DTLS-SRTP da standard. Sch'ins intercetta pachets da rait, na survegn ins nagin audio ni video legibel. Questa criptaziun fa part dal protocol e na po betg simplamain vegnir deactivada en WebRTC.
Quai era il punct impurtant per mai: las datas dad audio e video da la stanza dal pop na tutgan betg sin mes server. Ellas restan tranter voss apparats.
Signalaziun via Firebase Firestore
Avant che WebRTC possia cumenzar, ston ils apparats chattar in l'auter e negoziar co ch'els pon stabilir ina colliaziun. Questa part sa numna signalaziun. Timmy utilisescha per quai Firebase Firestore, la banca da datas en il cloud da Google.
I vegnan barattadas mo datas tecnicas da colliaziun:
- Offertas e respostas SDP: Descrivan las capacitads dals apparats (codecs sustegnids, resoluziuns e.u.v.).
- Candidats ICE: Vias da rait pussaivlas, tras las qualas ils apparats pon cuntanscher in l'auter.
Audio e video na vegnan betg arcunads en Firebase. Firestore transporta mo las datas tecnicas da colliaziun. Timmy criptescha er questa stresa da signalaziun, uschia che Firestore na daventa betg in lieu da scuntrada en text cler per SDP ed ICE.
Servers TURN: cura che la via directa na funcziuna betg
Tschertas raits blochegeschan colliaziuns directas, per exempel firewalls stricts u tscherts operaturs da telefonia mobila. Lura dovra WebRTC in server relay TURN (Traversal Using Relays around NAT).
Timmy emprova l'emprim il server TURN local e dovra Cloudflare sco soluziun da reserva, sche la relay locala n'è betg disponibla u è surchargiada. La relay trametta vinavant pachets criptads. Ella na survegn naginas clavs per l'audio u il video; la criptaziun da WebRTC resta intacta.
Ils credenzials TURN vegnan furnids d'ina Firebase Cloud Function ed èn valabels mo durant 24 uras. Credenzials permanents en ina app da babyphone fissan memia ristgads per mes gust.
Colliaziuns en vischinanza: ils apparats sa chattan automaticamain
Per evitar pass da configuraziun cumplitgads tranter l'apparat dal pop e quel dals geniturs, utilisescha Timmy Nearby Connections. Google metta a disposiziun questa funcziun da scuverta via Bluetooth e Wi-Fi.
L'apparegliaziun automatica en Timmy funcziuna senza endatar manualmain in code: ils apparats sa scuvran in l'auter e chattan il medem punct da scuntrada per il barat da clavs. Sche quai na funcziuna betg, pudais Vus endatar in code da 4 caracters. Il code d'apparegliaziun na banduna mai l'apparat; Firestore vesa mo in hash criptografic (SHA-256) sco identificatur dal document.
Autentificaziun anonima
Timmy utilisescha Firebase Anonymous Authentication. A l'emprima avertura survegn mintga apparat ina ID temporara ed anonima. I na dat nagin conto, nagina adressa dad e-mail e nagin pled-clav. La ID serva mo per far respectar las reglas da Firestore: mo apparats autentifitgads dastgan leger u scriver datas da sesida.
L'architectura: tgi trametta e tgi retschaiva
Timmy ha dus modus:
- Modus pop (emettur): L'apparat registrescha audio cun il microfon e l'al trametta via WebRTC a l'apparat dals geniturs. Opziunalmain po vegnir activada la camera; lura vegn er il video tramess directamain.
- Modus geniturs (recepider): L'apparat retschaiva audio e video, mussa il stream da la camera ed offra push-to-talk per trametter curts messadis vocals a l'apparat dal pop.
Funcziuns da controlla sco push-to-talk e camera en u or utiliseschan in DataChannel, in ulteriur chanal da WebRTC che trametta pitschens messadis criptads directamain tranter ils apparats.
Pertge Flutter?
Flutter è il framework da Google per apps sin pliras plattafurmas. Per Timmy vul quai dir che jau poss scriver ina gronda part da la logica ina giada e l'utilisar sin Android ed iOS. Timmy è disponibel sin Android, e la versiun per iOS è prest pronta per la publicaziun. Damain code duplicà munta damain lieus, nua che sbagls pon sa zuppar.
Resumaziun
La regla tecnica è simpla: Timmy duai mo tractar las datas ch'el dovra propi. WebRTC protegia las datas dad audio e video, Firebase coordinescha l'installaziun da la colliaziun, TURN vesa mo pachets criptads e Nearby Connections simplifitgescha l'apparegliaziun.
Buna tecnologia daventa in pau invisibla en la vita da mintgadi. Ella funcziuna senza transfurmar la stanza dal pop en in project da cloud.