aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Bauersachs <ingo@jitsi.org>2015-10-04 18:14:33 +0200
committerIngo Bauersachs <ingo@jitsi.org>2015-10-04 18:14:33 +0200
commit30332994f39111aca5f9cf20343214c6c621cd0d (patch)
tree9c41e23cd85fa6826283ad4e8136b2b8493bf87e
parent3bf2eae97df480ac5280a5563d3c9870ff952166 (diff)
parent4778386ceae5eafbb9c2839dc9aac398a3c77562 (diff)
downloadjitsi-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
-rw-r--r--src/net/java/sip/communicator/impl/protocol/sip/OperationSetBasicTelephonySipImpl.java3
-rw-r--r--src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java13
-rw-r--r--src/net/java/sip/communicator/service/protocol/AbstractProtocolProviderService.java12
-rw-r--r--src/net/java/sip/communicator/service/protocol/ProtocolProviderFactory.java6
-rw-r--r--src/net/java/sip/communicator/service/protocol/ProtocolProviderService.java7
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