summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hung-ying Tyan <tyanh@google.com> 2010-10-06 17:08:43 -0700
committer Android Git Automerger <android-git-automerger@android.com> 2010-10-06 17:08:43 -0700
commitf209cd70623f837026fb6c41e40a421291be62d0 (patch)
tree95640615b5bb5350a553cc526d2d477afdc55f62
parent828c89ba8e76224bc61702fa3b9c093300825ba0 (diff)
parenta785a59c831256f274627f8f8eb77f9d54508916 (diff)
am a785a59c: am 718e0033: Merge "SIP: add SERVER_UNREACHABLE error code." into gingerbread
Merge commit 'a785a59c831256f274627f8f8eb77f9d54508916' * commit 'a785a59c831256f274627f8f8eb77f9d54508916': SIP: add SERVER_UNREACHABLE error code.
-rw-r--r--telephony/java/com/android/internal/telephony/Connection.java1
-rwxr-xr-xtelephony/java/com/android/internal/telephony/sip/SipPhone.java3
-rw-r--r--voip/java/android/net/sip/SipErrorCode.java5
-rw-r--r--voip/java/com/android/server/sip/SipSessionGroup.java4
4 files changed, 11 insertions, 2 deletions
diff --git a/telephony/java/com/android/internal/telephony/Connection.java b/telephony/java/com/android/internal/telephony/Connection.java
index 0d983b572945..07f90cdda99d 100644
--- a/telephony/java/com/android/internal/telephony/Connection.java
+++ b/telephony/java/com/android/internal/telephony/Connection.java
@@ -40,6 +40,7 @@ public abstract class Connection {
MMI, /* not presently used; dial() returns null */
INVALID_NUMBER, /* invalid dial string */
NUMBER_UNREACHABLE, /* cannot reach the peer */
+ SERVER_UNREACHABLE, /* cannot reach the server */
INVALID_CREDENTIALS, /* invalid credentials */
OUT_OF_NETWORK, /* calling from out of network is not allowed */
SERVER_ERROR, /* server error */
diff --git a/telephony/java/com/android/internal/telephony/sip/SipPhone.java b/telephony/java/com/android/internal/telephony/sip/SipPhone.java
index 55e300276921..6ed9295112c3 100755
--- a/telephony/java/com/android/internal/telephony/sip/SipPhone.java
+++ b/telephony/java/com/android/internal/telephony/sip/SipPhone.java
@@ -874,6 +874,9 @@ public class SipPhone extends SipPhoneBase {
public void onError(SipAudioCall call, int errorCode,
String errorMessage) {
switch (errorCode) {
+ case SipErrorCode.SERVER_UNREACHABLE:
+ onError(Connection.DisconnectCause.SERVER_UNREACHABLE);
+ break;
case SipErrorCode.PEER_NOT_REACHABLE:
onError(Connection.DisconnectCause.NUMBER_UNREACHABLE);
break;
diff --git a/voip/java/android/net/sip/SipErrorCode.java b/voip/java/android/net/sip/SipErrorCode.java
index eb7a1aec4dfc..a55ab2511257 100644
--- a/voip/java/android/net/sip/SipErrorCode.java
+++ b/voip/java/android/net/sip/SipErrorCode.java
@@ -61,6 +61,9 @@ public class SipErrorCode {
/** Cross-domain authentication required. */
public static final int CROSS_DOMAIN_AUTHENTICATION = -11;
+ /** When the server is not reachable. */
+ public static final int SERVER_UNREACHABLE = -12;
+
public static String toString(int errorCode) {
switch (errorCode) {
case NO_ERROR:
@@ -87,6 +90,8 @@ public class SipErrorCode {
return "DATA_CONNECTION_LOST";
case CROSS_DOMAIN_AUTHENTICATION:
return "CROSS_DOMAIN_AUTHENTICATION";
+ case SERVER_UNREACHABLE:
+ return "SERVER_UNREACHABLE";
default:
return "UNKNOWN";
}
diff --git a/voip/java/com/android/server/sip/SipSessionGroup.java b/voip/java/com/android/server/sip/SipSessionGroup.java
index bc377cfbb25b..37fffa8fd1f9 100644
--- a/voip/java/com/android/server/sip/SipSessionGroup.java
+++ b/voip/java/com/android/server/sip/SipSessionGroup.java
@@ -480,7 +480,7 @@ class SipSessionGroup implements SipListener {
public void run() {
try {
processCommand(command);
- } catch (SipException e) {
+ } catch (Throwable e) {
Log.w(TAG, "command error: " + command, e);
onError(e);
}
@@ -1218,7 +1218,7 @@ class SipSessionGroup implements SipListener {
private int getErrorCode(Throwable exception) {
String message = exception.getMessage();
if (exception instanceof UnknownHostException) {
- return SipErrorCode.INVALID_REMOTE_URI;
+ return SipErrorCode.SERVER_UNREACHABLE;
} else if (exception instanceof IOException) {
return SipErrorCode.SOCKET_ERROR;
} else {