summaryrefslogtreecommitdiffstats
path: root/voip/java
diff options
context:
space:
mode:
authorHung-ying Tyan <tyanh@google.com>2010-10-08 08:59:38 +0800
committerHung-ying Tyan <tyanh@google.com>2010-10-08 11:57:18 +0800
commitaa562ffdb8f728569e6957b742f271eb7303f878 (patch)
tree69732b3f4a4ffc393bef584b4982a9b79bb73dec /voip/java
parent08faac3c26e12863858e1534985dd950193f755f (diff)
downloadframeworks_base-aa562ffdb8f728569e6957b742f271eb7303f878.zip
frameworks_base-aa562ffdb8f728569e6957b742f271eb7303f878.tar.gz
frameworks_base-aa562ffdb8f728569e6957b742f271eb7303f878.tar.bz2
SipService: add permission check for using API
Change-Id: Ifd85ba07f1b913011cb3e80e5027c67bfe3db280
Diffstat (limited to 'voip/java')
-rw-r--r--voip/java/com/android/server/sip/SipService.java25
1 files changed, 21 insertions, 4 deletions
diff --git a/voip/java/com/android/server/sip/SipService.java b/voip/java/com/android/server/sip/SipService.java
index 1fa2400..db1931b 100644
--- a/voip/java/com/android/server/sip/SipService.java
+++ b/voip/java/com/android/server/sip/SipService.java
@@ -123,6 +123,8 @@ public final class SipService extends ISipService.Stub {
}
public synchronized SipProfile[] getListOfProfiles() {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.USE_SIP, null);
boolean isCallerRadio = isCallerRadio();
ArrayList<SipProfile> profiles = new ArrayList<SipProfile>();
for (SipSessionGroupExt group : mSipGroups.values()) {
@@ -134,6 +136,8 @@ public final class SipService extends ISipService.Stub {
}
public void open(SipProfile localProfile) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.USE_SIP, null);
localProfile.setCallingUid(Binder.getCallingUid());
try {
createGroup(localProfile);
@@ -146,6 +150,8 @@ public final class SipService extends ISipService.Stub {
public synchronized void open3(SipProfile localProfile,
PendingIntent incomingCallPendingIntent,
ISipSessionListener listener) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.USE_SIP, null);
localProfile.setCallingUid(Binder.getCallingUid());
if (incomingCallPendingIntent == null) {
Log.w(TAG, "incomingCallPendingIntent cannot be null; "
@@ -159,7 +165,7 @@ public final class SipService extends ISipService.Stub {
incomingCallPendingIntent, listener);
if (localProfile.getAutoRegistration()) {
group.openToReceiveCalls();
- if (isWifiOn()) grabWifiLock();
+ if (isWifiActive()) grabWifiLock();
}
} catch (SipException e) {
Log.e(TAG, "openToReceiveCalls()", e);
@@ -181,6 +187,8 @@ public final class SipService extends ISipService.Stub {
}
public synchronized void close(String localProfileUri) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.USE_SIP, null);
SipSessionGroupExt group = mSipGroups.get(localProfileUri);
if (group == null) return;
if (!isCallerCreatorOrRadio(group)) {
@@ -191,10 +199,12 @@ public final class SipService extends ISipService.Stub {
group = mSipGroups.remove(localProfileUri);
notifyProfileRemoved(group.getLocalProfile());
group.close();
- if (isWifiOn() && !anyOpened()) releaseWifiLock();
+ if (isWifiActive() && !anyOpened()) releaseWifiLock();
}
public synchronized boolean isOpened(String localProfileUri) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.USE_SIP, null);
SipSessionGroupExt group = mSipGroups.get(localProfileUri);
if (group == null) return false;
if (isCallerCreatorOrRadio(group)) {
@@ -206,6 +216,8 @@ public final class SipService extends ISipService.Stub {
}
public synchronized boolean isRegistered(String localProfileUri) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.USE_SIP, null);
SipSessionGroupExt group = mSipGroups.get(localProfileUri);
if (group == null) return false;
if (isCallerCreatorOrRadio(group)) {
@@ -218,6 +230,8 @@ public final class SipService extends ISipService.Stub {
public synchronized void setRegistrationListener(String localProfileUri,
ISipSessionListener listener) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.USE_SIP, null);
SipSessionGroupExt group = mSipGroups.get(localProfileUri);
if (group == null) return;
if (isCallerCreator(group)) {
@@ -229,6 +243,8 @@ public final class SipService extends ISipService.Stub {
public synchronized ISipSession createSession(SipProfile localProfile,
ISipSessionListener listener) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.USE_SIP, null);
localProfile.setCallingUid(Binder.getCallingUid());
if (!mConnected) return null;
try {
@@ -241,6 +257,8 @@ public final class SipService extends ISipService.Stub {
}
public synchronized ISipSession getPendingSession(String callId) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.USE_SIP, null);
if (callId == null) return null;
return mPendingSessions.get(callId);
}
@@ -330,9 +348,8 @@ public final class SipService extends ISipService.Stub {
}
}
- private boolean isWifiOn() {
+ private boolean isWifiActive() {
return "WIFI".equalsIgnoreCase(mNetworkType);
- //return (mConnected && "WIFI".equalsIgnoreCase(mNetworkType));
}
private synchronized void onConnectivityChanged(