From a620cb19e9610a125c14a3cde94800e56a36b44d Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Tue, 22 Feb 2022 11:03:16 -0500 Subject: [PATCH] PSTN gateways contacts can do voice calls If we are in a fallback situation (no presence) then always allow AUDIO if domain matches a known PSTN gateway. --- .../eu/siacs/conversations/xmpp/jingle/RtpCapability.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/eu/siacs/conversations/xmpp/jingle/RtpCapability.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/RtpCapability.java index 8a7581f044194f5a305e21e3a7db62c87755da7b..e3deaba5b4a4cc3e7088f23b6f59b578e50031f0 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/jingle/RtpCapability.java +++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/RtpCapability.java @@ -13,6 +13,7 @@ import eu.siacs.conversations.entities.Presence; import eu.siacs.conversations.entities.Presences; import eu.siacs.conversations.entities.ServiceDiscoveryResult; import eu.siacs.conversations.xml.Namespace; +import eu.siacs.conversations.xmpp.Jid; public class RtpCapability { @@ -62,7 +63,13 @@ public class RtpCapability { public static Capability check(final Contact contact, final boolean allowFallback) { final Presences presences = contact.getPresences(); + if (presences.size() == 0 && allowFallback && contact.getAccount().isEnabled()) { + Contact gateway = contact.getAccount().getRoster().getContact(Jid.of(contact.getJid().getDomain())); + if (gateway.showInRoster() && gateway.getPresences().anyIdentity("gateway", "pstn")) { + return Capability.AUDIO; + } + return contact.getRtpCapability(); } Capability result = Capability.NONE;