[Standards] Offline Feature Negotiation and Device Lists
ralphm at ik.nu
Mon Feb 17 14:27:13 UTC 2020
On 17-02-2020 14:58, Matthew Wild wrote:
> > If we have to handle the case where there is no available device to
> handle the feature, what is this protocol to be used for?
I don't think there's a way that all cases can be handled perfectly.
I want to expand my original use case with video calls. Our development
of calls was in stages: first voice calls, later video. That means that
at a certain point, there'd be three types of clients: ones that didn't
support calls, ones that supported voice calls, and ones that supported
voice and video calls. It is very useful to users to know what they can
do in this situation.
Even if your account would signal that there is a registered device that
can handle calls, a call attempt might still fail for all kinds of
reasons. That's fine. Knowing that there's no such potential device,
however, is useful to know, especially in the case where they are not
online. A client could choose to not show a button to initiate a call.
Similarly, if your contact has two devices: one capable of voice calls,
one capable of video calls, you can offer the user to initiate a video
call. Both would ring, and video would simply fail to be negotiated.
This is fine, as the contact might also have chosen to only respond with
voice, even if offered video.
In short: service discovery is a way to better inform the other party of
possible interaction patterns. It is not a guarantee that they actually
More information about the Standards