summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/java/com/android/server/sip/SipSessionGroup.java15
1 files changed, 12 insertions, 3 deletions
diff --git a/services/java/com/android/server/sip/SipSessionGroup.java b/services/java/com/android/server/sip/SipSessionGroup.java
index 06b6ec9397a5..3d002aaeaf72 100644
--- a/services/java/com/android/server/sip/SipSessionGroup.java
+++ b/services/java/com/android/server/sip/SipSessionGroup.java
@@ -712,9 +712,15 @@ class SipSessionGroup implements SipListener {
case Response.UNAUTHORIZED:
case Response.PROXY_AUTHENTICATION_REQUIRED:
if (!handleAuthentication(event)) {
- Log.v(TAG, "Incorrect username/password");
- onRegistrationFailed(SipErrorCode.INVALID_CREDENTIALS,
- "incorrect username or password");
+ if (mLastNonce == null) {
+ onRegistrationFailed(SipErrorCode.SERVER_ERROR,
+ "server does not provide challenge");
+ } else {
+ Log.v(TAG, "Incorrect username/password");
+ onRegistrationFailed(
+ SipErrorCode.INVALID_CREDENTIALS,
+ "incorrect username or password");
+ }
}
return true;
default:
@@ -869,6 +875,9 @@ class SipSessionGroup implements SipListener {
case Response.PROXY_AUTHENTICATION_REQUIRED:
if (handleAuthentication(event)) {
addSipSession(this);
+ } else if (mLastNonce == null) {
+ endCallOnError(SipErrorCode.SERVER_ERROR,
+ "server does not provide challenge");
} else {
endCallOnError(SipErrorCode.INVALID_CREDENTIALS,
"incorrect username or password");