I always wonder why theres no call pc to pc button/menu for a contact that is logged in with psi and spark. now i have the solution - and i want to propose a minor fix for your code:
imagine the following flow:
user A is logged in with psi 0.10 (not supporting jingle)
user B loggs in with spark 2.5.3 and sees user A online, not having jingle enabled (whats correct)
user A loggs in with spark 2.5.3
user B still thinks A has no jingle support.
thats because you’‘re probing for jingle support only on loading the plugin. although you have a presence listener that removes jingle-support (at least i think that the code from JinglePlugin.addPresenceListener() does this) you don’'t add a presence listener that probes a client for jingle support when it comes online with an least another resource.
i think there sould be spend some more time in the logic how to detect jeingle support and the code from JinglePlugin.addPresenceListener() is not correct either … i think …
imagine the following:
user A logged in with spark
user B logged in with spark
(both see that the other has jingle enabled)
user A loggs in with psi 0.10
(nothing changes for both of them in spark)
user A loggs out with psi
JinglePlugin.addPresenceListener() from user B defects a !presence.isAvailable() and removes jingle-support for user A what is wrong …