summaryrefslogtreecommitdiffstats
path: root/services/java
diff options
context:
space:
mode:
authorHung-ying Tyan <tyanh@google.com>2010-09-15 11:23:22 +0800
committerHung-ying Tyan <tyanh@google.com>2010-09-15 11:30:45 +0800
commitae076d3981fda732d54b6c6e37e5659b2e7ba130 (patch)
tree0be4664793a64e1e90ef9e6b639a84cd3aab0b8f /services/java
parent88203cb111cd9605edcdedb402f8f2a96f8f01e1 (diff)
downloadframeworks_base-ae076d3981fda732d54b6c6e37e5659b2e7ba130.zip
frameworks_base-ae076d3981fda732d54b6c6e37e5659b2e7ba130.tar.gz
frameworks_base-ae076d3981fda732d54b6c6e37e5659b2e7ba130.tar.bz2
SIP: add PEER_NOT_REACHABLE error feedback.
http://b/issue?id=3002033 Change-Id: Ib64b08919d214acbab89945ac19dc113a68e62ad
Diffstat (limited to 'services/java')
-rw-r--r--services/java/com/android/server/sip/SipSessionGroup.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/services/java/com/android/server/sip/SipSessionGroup.java b/services/java/com/android/server/sip/SipSessionGroup.java
index 3d002aa..a3bf3eb 100644
--- a/services/java/com/android/server/sip/SipSessionGroup.java
+++ b/services/java/com/android/server/sip/SipSessionGroup.java
@@ -1036,8 +1036,7 @@ class SipSessionGroup implements SipListener {
private void onError(Response response) {
int statusCode = response.getStatusCode();
- if (!mInCall && ((statusCode == Response.TEMPORARILY_UNAVAILABLE)
- || (statusCode == Response.BUSY_HERE))) {
+ if (!mInCall && (statusCode == Response.BUSY_HERE)) {
endCallOnBusy();
} else {
onError(getErrorCode(statusCode), createErrorMessage(response));
@@ -1046,11 +1045,22 @@ class SipSessionGroup implements SipListener {
private SipErrorCode getErrorCode(int responseStatusCode) {
switch (responseStatusCode) {
+ case Response.TEMPORARILY_UNAVAILABLE:
+ case Response.FORBIDDEN:
+ case Response.GONE:
case Response.NOT_FOUND:
+ case Response.NOT_ACCEPTABLE:
+ case Response.NOT_ACCEPTABLE_HERE:
+ return SipErrorCode.PEER_NOT_REACHABLE;
+
+ case Response.REQUEST_URI_TOO_LONG:
case Response.ADDRESS_INCOMPLETE:
+ case Response.AMBIGUOUS:
return SipErrorCode.INVALID_REMOTE_URI;
+
case Response.REQUEST_TIMEOUT:
return SipErrorCode.TIME_OUT;
+
default:
if (responseStatusCode < 500) {
return SipErrorCode.CLIENT_ERROR;