Use scry/watch and ack to build a message queue robust to watch disconnects
eamsden opened this issue · comments
Switchboard relies on watches as the communication channel for the %switchboard-to-client
mark and the %incoming-call
mark. If a subscription fails then there is no way to recover dropped messages. In particular, this means that an SDP negotiation could be lost, hanging the call, and a client subscribing during an incoming call has no way to discover the already-ringing call.
There should be a scry namespace for un-acked incoming calls and un-acked incoming messages. This, combined with an acknowledgement mechanism and facts for updates, will allow robust message delivery to the client.