树莓派mesh 通信

今天跟大家唠唠树莓派Mesh通信这事儿。本来想用旧的树莓派3跑MNDVM,结果我顺手给刷回了原版系统,想着试试新装的meshchat。结果这一登上去权限不对了,连文字都发不出去,别提语音和文件了。 说起局域网里的聊天传文件,其实飞鸽传书挺好用。电脑端在Windows或macOS上直接解压就能用,也不用装什么驱动。Android手机去Google Play搜“飞鸽传书”,点两下就装好。 功能上挺全的,能发图片、表情,还能撤回消息。建个群聊的话,既可以@全体也能@某个人,消息同步起来基本感觉不到延迟。语音通话只要在同一局域网里,点一下头像就能接通。传文件最大能到1GB,就算中间断了也不会丢包。这种应急用的Mesh网络,飞鸽传书几乎不用怎么设置,依赖也少,插上树莓派当热点就能开聊。 要是想打语音视频电话,就必须搭个SIP服务器。电脑版的Linphone填个局域网IP就能直拨通话,延迟也就200毫秒左右。 可到了Android版就容易闪退。我在raspbx(就是开源的Asterisk)上注册后发现问题出在NAT穿透上。树莓派的外网IP老变来变去,手机端没法一直保持注册状态。 我想了几个办法解决:把raspbx的注册超时时间缩短到30秒;给树莓派弄个固定的外网IP,再在路由器上做个DMZ映射;或者让Android手机用WiFi Direct或蓝牙共享局域网IP,绕开外网穿透的麻烦。 试了试效果还不错,电脑端打手机终于不闪退了铃声也响了。不过接听界面还是有点怪(可能是Linux版linphone的GTK3界面在ARM设备上不太友好)。 要是追求高清视频质量,我建议直接上WireGuard VPN加WebRTC做对等通信,这比折腾SIP服务器省心多了。