diff options
-rwxr-xr-x | telephony/java/com/android/internal/telephony/sip/SipPhone.java | 4 | ||||
-rw-r--r-- | voip/java/android/net/sip/SipAudioCallImpl.java | 16 |
2 files changed, 11 insertions, 9 deletions
diff --git a/telephony/java/com/android/internal/telephony/sip/SipPhone.java b/telephony/java/com/android/internal/telephony/sip/SipPhone.java index 3e9fb99..0a87ddb 100755 --- a/telephony/java/com/android/internal/telephony/sip/SipPhone.java +++ b/telephony/java/com/android/internal/telephony/sip/SipPhone.java @@ -823,7 +823,9 @@ public class SipPhone extends SipPhoneBase { @Override public void onCallEnded(SipAudioCall call) { - onCallEnded(Connection.DisconnectCause.NORMAL); + onCallEnded(call.isInCall() + ? Connection.DisconnectCause.NORMAL + : Connection.DisconnectCause.INCOMING_MISSED); } @Override diff --git a/voip/java/android/net/sip/SipAudioCallImpl.java b/voip/java/android/net/sip/SipAudioCallImpl.java index 111bfff..ccf4d15 100644 --- a/voip/java/android/net/sip/SipAudioCallImpl.java +++ b/voip/java/android/net/sip/SipAudioCallImpl.java @@ -269,7 +269,6 @@ public class SipAudioCallImpl extends SipSessionAdapter @Override public void onCallEnded(ISipSession session) { Log.d(TAG, "sip call ended: " + session); - close(); Listener listener = mListener; if (listener != null) { try { @@ -278,12 +277,12 @@ public class SipAudioCallImpl extends SipSessionAdapter Log.e(TAG, "onCallEnded()", t); } } + close(); } @Override public void onCallBusy(ISipSession session) { Log.d(TAG, "sip call busy: " + session); - close(false); Listener listener = mListener; if (listener != null) { try { @@ -292,6 +291,7 @@ public class SipAudioCallImpl extends SipSessionAdapter Log.e(TAG, "onCallBusy()", t); } } + close(false); } @Override @@ -316,12 +316,6 @@ public class SipAudioCallImpl extends SipSessionAdapter + ": " + message); mErrorCode = errorCode; mErrorMessage = message; - synchronized (this) { - if ((mErrorCode == SipErrorCode.DATA_CONNECTION_LOST) - || !isInCall()) { - close(true); - } - } Listener listener = mListener; if (listener != null) { try { @@ -330,6 +324,12 @@ public class SipAudioCallImpl extends SipSessionAdapter Log.e(TAG, "onError()", t); } } + synchronized (this) { + if ((errorCode == SipErrorCode.DATA_CONNECTION_LOST) + || !isInCall()) { + close(true); + } + } } public synchronized void attachCall(ISipSession session, |