hn.today

Resurrecting iChat Audio and Video Conferencing

blog.pipetogrep.org48 points12 comments
Screenshot of Resurrecting iChat Audio and Video Conferencing

This explains how iChat AV on older Macs (Leopard/Snow Leopard) can be made to perform audio/video calls again by recreating Apple's long-defunct SNATMAP service. iChat originally fetched configuration.apple.com/configurations/macosx/ichat/1/snatmap.txt to learn an SNATMAP UDP endpoint, then used that server on UDP port 5678 to discover each peer's public IP/port so peers could establish an RTP connection through NAT. Modern redirects to HTTPS break the old TLS stack, so iChat falls back to exchanging private LAN addresses and calls fail. Using packet captures and an LLM to reverse-engineer the protocol, a simple spec was produced: 16-byte UDP request/response packets containing a type (1=request, 2=response), nonce, and IP/port fields; the server returns the caller's external IP and port. A small Python SNATMAP implementation was written from that spec.

The recreated service was validated in a lab built from two NATed OpenWrt VMs and two Macs behind them, with an ejabberd XMPP server and lighttpd serving snatmap.txt. Practical deployment steps are provided: host configuration.apple.com to a server running snatmap and serve /configurations/macosx/ichat/1/snatmap.txt containing snatmap://YOUR_SERVER_IP:5678, ensure your router preserves source ports (enable in pfSense/OPNsense), or use the author's public server by adding "157.230.2.213 configuration.apple.com" to /etc/hosts. Logitech USB webcams (eg. C920) work, spec and source code are linked for self-hosting.

Read on blog.pipetogrep.org12 comments on Hacker News

Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.

More in Security

The daily digest

Today's best Hacker News stories, summarized and screenshotted, one email a day.