diff options
author | Ingo Bauersachs <ingo@jitsi.org> | 2015-10-04 18:14:33 +0200 |
---|---|---|
committer | Ingo Bauersachs <ingo@jitsi.org> | 2015-10-04 18:14:33 +0200 |
commit | 30332994f39111aca5f9cf20343214c6c621cd0d (patch) | |
tree | 9c41e23cd85fa6826283ad4e8136b2b8493bf87e | |
parent | 3bf2eae97df480ac5280a5563d3c9870ff952166 (diff) | |
parent | 4778386ceae5eafbb9c2839dc9aac398a3c77562 (diff) | |
download | jitsi-30332994f39111aca5f9cf20343214c6c621cd0d.zip jitsi-30332994f39111aca5f9cf20343214c6c621cd0d.tar.gz jitsi-30332994f39111aca5f9cf20343214c6c621cd0d.tar.bz2 |
Merge pull request #51 from dpocock/sip-call-without-registration
Adapt high-level API to allow calls without registration
5 files changed, 40 insertions, 1 deletions
diff --git a/src/net/java/sip/communicator/impl/protocol/sip/OperationSetBasicTelephonySipImpl.java b/src/net/java/sip/communicator/impl/protocol/sip/OperationSetBasicTelephonySipImpl.java index 37f5ccc..5ee32c9 100644 --- a/src/net/java/sip/communicator/impl/protocol/sip/OperationSetBasicTelephonySipImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/sip/OperationSetBasicTelephonySipImpl.java @@ -2181,7 +2181,8 @@ public class OperationSetBasicTelephonySipImpl void assertRegistered() throws OperationFailedException { - if(!protocolProvider.isRegistered()) + if(protocolProvider.isRegistrationRequiredForCalling() && + !protocolProvider.isRegistered()) { throw new OperationFailedException( "The protocol provider should be registered before placing" diff --git a/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java b/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java index d34fe86..0fbcf23 100644 --- a/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java @@ -246,6 +246,19 @@ public class ProtocolProviderServiceSipImpl } /** + * Indicates whether or not this provider must registered + * when placing outgoing calls. + * + * @return <tt>true</tt> if the provider must be registered when placing a + * call and <tt>false</tt> otherwise. + */ + public boolean isRegistrationRequiredForCalling() + { + return getAccountID().getAccountPropertyBoolean( + ProtocolProviderFactory.MUST_REGISTER_TO_CALL, true); + } + + /** * Returns the state of the registration of this protocol provider with the * corresponding registration service. * @return ProviderRegistrationState diff --git a/src/net/java/sip/communicator/service/protocol/AbstractProtocolProviderService.java b/src/net/java/sip/communicator/service/protocol/AbstractProtocolProviderService.java index 70133c2..9a78eec 100644 --- a/src/net/java/sip/communicator/service/protocol/AbstractProtocolProviderService.java +++ b/src/net/java/sip/communicator/service/protocol/AbstractProtocolProviderService.java @@ -315,6 +315,18 @@ public abstract class AbstractProtocolProviderService } /** + * Indicates whether or not this provider must registered + * when placing outgoing calls. + * + * @return <tt>true</tt> if the provider must be registered when placing a + * call and <tt>false</tt> otherwise. + */ + public boolean isRegistrationRequiredForCalling() + { + return true; + } + + /** * Removes the specified registration state change listener so that it does * not receive any further notifications upon changes of the * RegistrationState of this provider. diff --git a/src/net/java/sip/communicator/service/protocol/ProtocolProviderFactory.java b/src/net/java/sip/communicator/service/protocol/ProtocolProviderFactory.java index 3c5bddd..7e8b9c8 100644 --- a/src/net/java/sip/communicator/service/protocol/ProtocolProviderFactory.java +++ b/src/net/java/sip/communicator/service/protocol/ProtocolProviderFactory.java @@ -185,6 +185,12 @@ public abstract class ProtocolProviderFactory public static final String FORCE_PROXY_BYPASS = "FORCE_PROXY_BYPASS";
/**
+ * The name of the property that indicates whether the client must
+ * be registered with a registrar when making outgoing calls.
+ */
+ public static final String MUST_REGISTER_TO_CALL = "MUST_REGISTER_TO_CALL";
+
+ /**
* The name of the property under which we store the user preference for a
* transport protocol to use (i.e. tcp or udp).
*/
diff --git a/src/net/java/sip/communicator/service/protocol/ProtocolProviderService.java b/src/net/java/sip/communicator/service/protocol/ProtocolProviderService.java index c5ba4f4..0c85e98 100644 --- a/src/net/java/sip/communicator/service/protocol/ProtocolProviderService.java +++ b/src/net/java/sip/communicator/service/protocol/ProtocolProviderService.java @@ -103,6 +103,13 @@ public interface ProtocolProviderService public boolean isRegistered(); /** + * Indicates whether or not this provider must registered + * when placing outgoing calls. + * @return true if the provider must be registered when placing a call. + */ + public boolean isRegistrationRequiredForCalling(); + + /** * Returns the state of the registration of this protocol provider with the * corresponding registration service. * @return ProviderRegistrationState |