I did update FW, but that didn't prevent the OFFLINE thing from happening again. When I try making a call in that state, I hear something like "network status... IP address not available, Reason 00" as described here:
http://www.obitalk.com/forum/index.php?topic=6396.0Power-cycling my OBi200 unit fixes it, as usual.
I *suspect* what happens is that there's a brief power glitch (had some lightning/thunder yesterday) that nobody even notices EXCEPT FOR the OBi200 and/or my router. The OBi is still up (and it is using a static IP address), the router is still up, the logs don't show a reboot, but the router somehow no longer recognizes the OBi until the OBi is power-cycled. In case of interest my router is "Linksys EA6350 Dual-Band Wireless-AC Gigabit Router" which its debug output says is running OpenWrt/Linaro GCC 4.8-2014.01 r40864.
Maybe the simplest solution is to just put the router and the OBi on a UPS.
I may also have a basic misunderstanding about how routers work. I know that LAN IP addresses can be setup as allocated by DHCP configured at the router, or as a static IP configured at the device. You can also set within the router a DHCP reserved address, inside the DHCP pool of IP address, linked to a specific MAC address. Until now I had my OBi200 set to a static address outside of my router's DHCP pool and that worked, except occasionally as noted above. I did not explicitly tell my router anything about this static address and there's no obvious way to do so. Another thing I can do is set a DHCP reserved address inside the DHCP address pool for my OBi200 MAC in the router, and then also set my OBi200 to that same IP as a static IP. I don't know if that is "proper" but it does work. I'm not sure if it is more or less reliable in cases of momentary power failure, than the un-reserved static IP outside the DHCP pool.