SIP: add DisconnectCause.SERVER_ERROR

and fix how SipErrorCode.SERVER_ERROR is determinted from server response, not
from local exceptions.

http://b/issue?id=3041332

Change-Id: Idce67e29858d5c7573b98b7fa1fac074913d71d6
This commit is contained in:
Hung-ying Tyan
2010-09-28 07:53:39 +08:00
parent 245475925e
commit 624d5b4e8c
3 changed files with 6 additions and 6 deletions

View File

@ -42,6 +42,7 @@ public abstract class Connection {
NUMBER_UNREACHABLE, /* cannot reach the peer */
INVALID_CREDENTIALS, /* invalid credentials */
OUT_OF_NETWORK, /* calling from out of network is not allowed */
SERVER_ERROR, /* server error */
TIMED_OUT, /* client timed out */
LOST_SIGNAL,
LIMIT_EXCEEDED, /* eg GSM ACM limit exceeded */

View File

@ -883,8 +883,10 @@ public class SipPhone extends SipPhoneBase {
case SipErrorCode.CROSS_DOMAIN_AUTHENTICATION:
onError(Connection.DisconnectCause.OUT_OF_NETWORK);
break;
case SipErrorCode.SOCKET_ERROR:
case SipErrorCode.SERVER_ERROR:
onError(Connection.DisconnectCause.SERVER_ERROR);
break;
case SipErrorCode.SOCKET_ERROR:
case SipErrorCode.CLIENT_ERROR:
default:
Log.w(LOG_TAG, "error: " + SipErrorCode.toString(errorCode)

View File

@ -82,7 +82,6 @@ class SipSessionGroup implements SipListener {
private static final boolean DEBUG = true;
private static final boolean DEBUG_PING = DEBUG && false;
private static final String ANONYMOUS = "anonymous";
private static final String SERVER_ERROR_PREFIX = "Response: ";
private static final int EXPIRY_TIME = 3600; // in seconds
private static final int CANCEL_CALL_TIMER = 3; // in seconds
@ -1099,8 +1098,8 @@ class SipSessionGroup implements SipListener {
}
private String createErrorMessage(Response response) {
return String.format(SERVER_ERROR_PREFIX + "%s (%d)",
response.getReasonPhrase(), response.getStatusCode());
return String.format("%s (%d)", response.getReasonPhrase(),
response.getStatusCode());
}
private void establishCall() {
@ -1204,8 +1203,6 @@ class SipSessionGroup implements SipListener {
return SipErrorCode.INVALID_REMOTE_URI;
} else if (exception instanceof IOException) {
return SipErrorCode.SOCKET_ERROR;
} else if (message.startsWith(SERVER_ERROR_PREFIX)) {
return SipErrorCode.SERVER_ERROR;
} else {
return SipErrorCode.CLIENT_ERROR;
}