[Standards] Offline Feature Negotiation and Device Lists

Ralph Meijer 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 mailing list