diff options
author | Hung-ying Tyan <tyanh@google.com> | 2010-09-15 11:23:22 +0800 |
---|---|---|
committer | Hung-ying Tyan <tyanh@google.com> | 2010-09-15 11:30:45 +0800 |
commit | ae076d3981fda732d54b6c6e37e5659b2e7ba130 (patch) | |
tree | 0be4664793a64e1e90ef9e6b639a84cd3aab0b8f /services/java | |
parent | 88203cb111cd9605edcdedb402f8f2a96f8f01e1 (diff) | |
download | frameworks_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.java | 14 |
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; |