can someone explain to me (or may be point me to the right direction) how webxdc realtime channels networking is physically implemented in Delta.chat app?
I know how sip works for example. Signalling server is used to set up rtc streams but sometimes you need a rtc proxy if too much nat is happening. something similar is with torrents, where you have torrent server signalling. How webxdc realtime channel signalling is implemented? and how does it deal with NAT?
For signalling Delta Chat sends an email with iroh relay address and public key of the peer. Relay used is either from the chatmail server or one of the public relays provided by iroh itself.
Iroh relay code is at iroh/iroh-relay at main · n0-computer/iroh · GitHub
Relay connection is then upgraded to p2p connection if possible.
wow. great answer, thank you. and great effort sticking to having decentralized communication platform. now watching latest n0 iroh experiments with p2p audio & video streaming. I hope they will succeed and we will have it in Delta chat eventually