diff options
| author | 2010-10-06 17:08:43 -0700 | |
|---|---|---|
| committer | 2010-10-06 17:08:43 -0700 | |
| commit | f209cd70623f837026fb6c41e40a421291be62d0 (patch) | |
| tree | 95640615b5bb5350a553cc526d2d477afdc55f62 | |
| parent | 828c89ba8e76224bc61702fa3b9c093300825ba0 (diff) | |
| parent | a785a59c831256f274627f8f8eb77f9d54508916 (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.
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 { |