diff options
| author | 2010-09-17 16:58:51 +0800 | |
|---|---|---|
| committer | 2010-09-20 09:51:31 +0800 | |
| commit | 97963794af1e18674dd111e3ad344d90b16c922c (patch) | |
| tree | 837c389d57da8ef0a39b2e480bd4f641a2f37ffb | |
| parent | 5b930c49b12bdb1461a18491db768c642c38d498 (diff) | |
SIP: convert enum to static final int.
Converts SipErrorCode and SipSessionState.
Change-Id: Iee3a465649ea89d395b2336bbd673c25113e5f93
13 files changed, 208 insertions, 153 deletions
diff --git a/services/java/com/android/server/sip/SipService.java b/services/java/com/android/server/sip/SipService.java index 7e13d653d3bb..3f47be4bb445 100644 --- a/services/java/com/android/server/sip/SipService.java +++ b/services/java/com/android/server/sip/SipService.java @@ -476,10 +476,10 @@ public final class SipService extends ISipService.Stub { } @Override - public void onError(ISipSession session, String errorClass, + public void onError(ISipSession session, int errorCode, String message) { - if (DEBUG) Log.d(TAG, "sip session error: " + errorClass + ": " - + message); + if (DEBUG) Log.d(TAG, "sip session error: " + + SipErrorCode.toString(errorCode) + ": " + message); } public boolean isOpened() { @@ -535,7 +535,7 @@ public final class SipService extends ISipService.Stub { private int mBackoff = 1; private boolean mRegistered; private long mExpiryTime; - private SipErrorCode mErrorCode; + private int mErrorCode; private String mErrorMessage; private String getAction() { @@ -591,10 +591,9 @@ public final class SipService extends ISipService.Stub { if (mSession == null) return; try { - SipSessionState state = (mSession == null) + int state = (mSession == null) ? SipSessionState.READY_TO_CALL - : Enum.valueOf( - SipSessionState.class, mSession.getState()); + : mSession.getState(); if ((state == SipSessionState.REGISTERING) || (state == SipSessionState.DEREGISTERING)) { mProxy.onRegistering(mSession); @@ -602,12 +601,12 @@ public final class SipService extends ISipService.Stub { int duration = (int) (mExpiryTime - SystemClock.elapsedRealtime()); mProxy.onRegistrationDone(mSession, duration); - } else if (mErrorCode != null) { + } else if (mErrorCode != SipErrorCode.NO_ERROR) { if (mErrorCode == SipErrorCode.TIME_OUT) { mProxy.onRegistrationTimeout(mSession); } else { - mProxy.onRegistrationFailed(mSession, - mErrorCode.toString(), mErrorMessage); + mProxy.onRegistrationFailed(mSession, mErrorCode, + mErrorMessage); } } } catch (Throwable t) { @@ -621,7 +620,7 @@ public final class SipService extends ISipService.Stub { } public void run() { - mErrorCode = null; + mErrorCode = SipErrorCode.NO_ERROR; mErrorMessage = null; if (DEBUG) Log.d(TAG, "~~~ registering"); synchronized (SipService.this) { @@ -714,18 +713,15 @@ public final class SipService extends ISipService.Stub { } @Override - public void onRegistrationFailed(ISipSession session, - String errorCodeString, String message) { - SipErrorCode errorCode = - Enum.valueOf(SipErrorCode.class, errorCodeString); + public void onRegistrationFailed(ISipSession session, int errorCode, + String message) { if (DEBUG) Log.d(TAG, "onRegistrationFailed(): " + session + ": " - + errorCode + ": " + message); + + SipErrorCode.toString(errorCode) + ": " + message); synchronized (SipService.this) { if (!isStopped() && (session != mSession)) return; mErrorCode = errorCode; mErrorMessage = message; - mProxy.onRegistrationFailed(session, errorCode.toString(), - message); + mProxy.onRegistrationFailed(session, errorCode, message); if (errorCode == SipErrorCode.INVALID_CREDENTIALS) { if (DEBUG) Log.d(TAG, " pause auto-registration"); diff --git a/services/java/com/android/server/sip/SipSessionGroup.java b/services/java/com/android/server/sip/SipSessionGroup.java index baf9a8e96c10..b4c224160545 100644 --- a/services/java/com/android/server/sip/SipSessionGroup.java +++ b/services/java/com/android/server/sip/SipSessionGroup.java @@ -300,7 +300,8 @@ class SipSessionGroup implements SipListener { boolean isLoggable = isLoggable(session, event); boolean processed = (session != null) && session.process(event); if (isLoggable && processed) { - Log.d(TAG, "new state after: " + session.mState); + Log.d(TAG, "new state after: " + + SipSessionState.toString(session.mState)); } } catch (Throwable e) { Log.w(TAG, "event process error: " + event, e); @@ -331,7 +332,8 @@ class SipSessionGroup implements SipListener { public boolean process(EventObject evt) throws SipException { if (isLoggable(this, evt)) Log.d(TAG, " ~~~~~ " + this + ": " - + mState + ": processing " + log(evt)); + + SipSessionState.toString(mState) + ": processing " + + log(evt)); if (isRequestEvent(Request.INVITE, evt)) { RequestEvent event = (RequestEvent) evt; SipSessionImpl newSession = new SipSessionImpl(mProxy); @@ -356,7 +358,7 @@ class SipSessionGroup implements SipListener { class SipSessionImpl extends ISipSession.Stub { SipProfile mPeerProfile; SipSessionListenerProxy mProxy = new SipSessionListenerProxy(); - SipSessionState mState = SipSessionState.READY_TO_CALL; + int mState = SipSessionState.READY_TO_CALL; RequestEvent mInviteReceived; Dialog mDialog; ServerTransaction mServerTransaction; @@ -447,8 +449,8 @@ class SipSessionGroup implements SipListener { return null; } - public String getState() { - return mState.toString(); + public int getState() { + return mState; } public void setListener(ISipSessionListener listener) { @@ -521,7 +523,7 @@ class SipSessionGroup implements SipListener { mState = SipSessionState.PINGING; try { processCommand(new OptionsCommand()); - while (SipSessionState.PINGING.equals(mState)) { + while (SipSessionState.PINGING == mState) { Thread.sleep(1000); } } catch (SipException e) { @@ -547,7 +549,8 @@ class SipSessionGroup implements SipListener { public String toString() { try { String s = super.toString(); - return s.substring(s.indexOf("@")) + ":" + mState; + return s.substring(s.indexOf("@")) + ":" + + SipSessionState.toString(mState); } catch (Throwable e) { return super.toString(); } @@ -555,7 +558,8 @@ class SipSessionGroup implements SipListener { public boolean process(EventObject evt) throws SipException { if (isLoggable(this, evt)) Log.d(TAG, " ~~~~~ " + this + ": " - + mState + ": processing " + log(evt)); + + SipSessionState.toString(mState) + ": processing " + + log(evt)); synchronized (SipSessionGroup.this) { if (isClosed()) return false; @@ -570,30 +574,30 @@ class SipSessionGroup implements SipListener { boolean processed; switch (mState) { - case REGISTERING: - case DEREGISTERING: + case SipSessionState.REGISTERING: + case SipSessionState.DEREGISTERING: processed = registeringToReady(evt); break; - case PINGING: + case SipSessionState.PINGING: processed = keepAliveProcess(evt); break; - case READY_TO_CALL: + case SipSessionState.READY_TO_CALL: processed = readyForCall(evt); break; - case INCOMING_CALL: + case SipSessionState.INCOMING_CALL: processed = incomingCall(evt); break; - case INCOMING_CALL_ANSWERING: + case SipSessionState.INCOMING_CALL_ANSWERING: processed = incomingCallToInCall(evt); break; - case OUTGOING_CALL: - case OUTGOING_CALL_RING_BACK: + case SipSessionState.OUTGOING_CALL: + case SipSessionState.OUTGOING_CALL_RING_BACK: processed = outgoingCall(evt); break; - case OUTGOING_CALL_CANCELING: + case SipSessionState.OUTGOING_CALL_CANCELING: processed = outgoingCallToReady(evt); break; - case IN_CALL: + case SipSessionState.IN_CALL: processed = inCall(evt); break; default: @@ -640,8 +644,8 @@ class SipSessionGroup implements SipListener { private void processTransactionTerminated( TransactionTerminatedEvent event) { switch (mState) { - case IN_CALL: - case READY_TO_CALL: + case SipSessionState.IN_CALL: + case SipSessionState.READY_TO_CALL: Log.d(TAG, "Transaction terminated; do nothing"); break; default: @@ -666,18 +670,18 @@ class SipSessionGroup implements SipListener { return; } switch (mState) { - case REGISTERING: - case DEREGISTERING: + case SipSessionState.REGISTERING: + case SipSessionState.DEREGISTERING: reset(); mProxy.onRegistrationTimeout(this); break; - case INCOMING_CALL: - case INCOMING_CALL_ANSWERING: - case OUTGOING_CALL: - case OUTGOING_CALL_CANCELING: + case SipSessionState.INCOMING_CALL: + case SipSessionState.INCOMING_CALL_ANSWERING: + case SipSessionState.OUTGOING_CALL: + case SipSessionState.OUTGOING_CALL_CANCELING: onError(SipErrorCode.TIME_OUT, event.toString()); break; - case PINGING: + case SipSessionState.PINGING: reset(); mReRegisterFlag = true; mState = SipSessionState.READY_TO_CALL; @@ -753,7 +757,7 @@ class SipSessionGroup implements SipListener { int statusCode = response.getStatusCode(); switch (statusCode) { case Response.OK: - SipSessionState state = mState; + int state = mState; onRegistrationDone((state == SipSessionState.REGISTERING) ? getExpiryTime(((ResponseEvent) evt).getResponse()) : -1); @@ -1062,10 +1066,9 @@ class SipSessionGroup implements SipListener { mProxy.onCallEstablished(this, mPeerSessionDescription); } - private void fallbackToPreviousInCall(SipErrorCode errorCode, - String message) { + private void fallbackToPreviousInCall(int errorCode, String message) { mState = SipSessionState.IN_CALL; - mProxy.onCallChangeFailed(this, errorCode.toString(), message); + mProxy.onCallChangeFailed(this, errorCode, message); } private void endCallNormally() { @@ -1073,9 +1076,9 @@ class SipSessionGroup implements SipListener { mProxy.onCallEnded(this); } - private void endCallOnError(SipErrorCode errorCode, String message) { + private void endCallOnError(int errorCode, String message) { reset(); - mProxy.onError(this, errorCode.toString(), message); + mProxy.onError(this, errorCode, message); } private void endCallOnBusy() { @@ -1083,11 +1086,11 @@ class SipSessionGroup implements SipListener { mProxy.onCallBusy(this); } - private void onError(SipErrorCode errorCode, String message) { + private void onError(int errorCode, String message) { cancelSessionTimer(); switch (mState) { - case REGISTERING: - case DEREGISTERING: + case SipSessionState.REGISTERING: + case SipSessionState.DEREGISTERING: onRegistrationFailed(errorCode, message); break; default: @@ -1115,7 +1118,7 @@ class SipSessionGroup implements SipListener { } } - private SipErrorCode getErrorCode(int responseStatusCode) { + private int getErrorCode(int responseStatusCode) { switch (responseStatusCode) { case Response.TEMPORARILY_UNAVAILABLE: case Response.FORBIDDEN: @@ -1151,7 +1154,7 @@ class SipSessionGroup implements SipListener { return exception; } - private SipErrorCode getErrorCode(Throwable exception) { + private int getErrorCode(Throwable exception) { String message = exception.getMessage(); if (exception instanceof UnknownHostException) { return SipErrorCode.INVALID_REMOTE_URI; @@ -1169,10 +1172,9 @@ class SipSessionGroup implements SipListener { mProxy.onRegistrationDone(this, duration); } - private void onRegistrationFailed(SipErrorCode errorCode, - String message) { + private void onRegistrationFailed(int errorCode, String message) { reset(); - mProxy.onRegistrationFailed(this, errorCode.toString(), message); + mProxy.onRegistrationFailed(this, errorCode, message); } private void onRegistrationFailed(Throwable exception) { @@ -1262,7 +1264,7 @@ class SipSessionGroup implements SipListener { private static boolean isLoggable(SipSessionImpl s) { if (s != null) { switch (s.mState) { - case PINGING: + case SipSessionState.PINGING: return DEBUG_PING; } } diff --git a/services/java/com/android/server/sip/SipSessionListenerProxy.java b/services/java/com/android/server/sip/SipSessionListenerProxy.java index 747d79fda944..a4cd1029d8e0 100644 --- a/services/java/com/android/server/sip/SipSessionListenerProxy.java +++ b/services/java/com/android/server/sip/SipSessionListenerProxy.java @@ -124,7 +124,7 @@ class SipSessionListenerProxy extends ISipSessionListener.Stub { } public void onCallChangeFailed(final ISipSession session, - final String errorCode, final String message) { + final int errorCode, final String message) { if (mListener == null) return; proxy(new Runnable() { public void run() { @@ -137,7 +137,7 @@ class SipSessionListenerProxy extends ISipSessionListener.Stub { }); } - public void onError(final ISipSession session, final String errorCode, + public void onError(final ISipSession session, final int errorCode, final String message) { if (mListener == null) return; proxy(new Runnable() { @@ -179,7 +179,7 @@ class SipSessionListenerProxy extends ISipSessionListener.Stub { } public void onRegistrationFailed(final ISipSession session, - final String errorCode, final String message) { + final int errorCode, final String message) { if (mListener == null) return; proxy(new Runnable() { public void run() { diff --git a/telephony/java/com/android/internal/telephony/sip/SipPhone.java b/telephony/java/com/android/internal/telephony/sip/SipPhone.java index 4887950b4944..3e9fb99f42d6 100755 --- a/telephony/java/com/android/internal/telephony/sip/SipPhone.java +++ b/telephony/java/com/android/internal/telephony/sip/SipPhone.java @@ -802,15 +802,15 @@ public class SipPhone extends SipPhoneBase { private static Call.State getCallStateFrom(SipAudioCall sipAudioCall) { if (sipAudioCall.isOnHold()) return Call.State.HOLDING; - SipSessionState sessionState = sipAudioCall.getState(); + int sessionState = sipAudioCall.getState(); switch (sessionState) { - case READY_TO_CALL: return Call.State.IDLE; - case INCOMING_CALL: - case INCOMING_CALL_ANSWERING: return Call.State.INCOMING; - case OUTGOING_CALL: return Call.State.DIALING; - case OUTGOING_CALL_RING_BACK: return Call.State.ALERTING; - case OUTGOING_CALL_CANCELING: return Call.State.DISCONNECTING; - case IN_CALL: return Call.State.ACTIVE; + case SipSessionState.READY_TO_CALL: return Call.State.IDLE; + case SipSessionState.INCOMING_CALL: + case SipSessionState.INCOMING_CALL_ANSWERING: return Call.State.INCOMING; + case SipSessionState.OUTGOING_CALL: return Call.State.DIALING; + case SipSessionState.OUTGOING_CALL_RING_BACK: return Call.State.ALERTING; + case SipSessionState.OUTGOING_CALL_CANCELING: return Call.State.DISCONNECTING; + case SipSessionState.IN_CALL: return Call.State.ACTIVE; default: Log.w(LOG_TAG, "illegal connection state: " + sessionState); return Call.State.DISCONNECTED; @@ -832,30 +832,31 @@ public class SipPhone extends SipPhoneBase { } @Override - public void onError(SipAudioCall call, SipErrorCode errorCode, + public void onError(SipAudioCall call, int errorCode, String errorMessage) { switch (errorCode) { - case PEER_NOT_REACHABLE: + case SipErrorCode.PEER_NOT_REACHABLE: onError(Connection.DisconnectCause.NUMBER_UNREACHABLE); break; - case INVALID_REMOTE_URI: + case SipErrorCode.INVALID_REMOTE_URI: onError(Connection.DisconnectCause.INVALID_NUMBER); break; - case TIME_OUT: - case TRANSACTION_TERMINTED: + case SipErrorCode.TIME_OUT: + case SipErrorCode.TRANSACTION_TERMINTED: onError(Connection.DisconnectCause.TIMED_OUT); break; - case DATA_CONNECTION_LOST: + case SipErrorCode.DATA_CONNECTION_LOST: onError(Connection.DisconnectCause.LOST_SIGNAL); break; - case INVALID_CREDENTIALS: + case SipErrorCode.INVALID_CREDENTIALS: onError(Connection.DisconnectCause.INVALID_CREDENTIALS); break; - case SOCKET_ERROR: - case SERVER_ERROR: - case CLIENT_ERROR: + case SipErrorCode.SOCKET_ERROR: + case SipErrorCode.SERVER_ERROR: + case SipErrorCode.CLIENT_ERROR: default: - Log.w(LOG_TAG, "error: " + errorCode + ": " + errorMessage); + Log.w(LOG_TAG, "error: " + SipErrorCode.toString(errorCode) + + ": " + errorMessage); onError(Connection.DisconnectCause.ERROR_UNSPECIFIED); } } diff --git a/voip/java/android/net/sip/ISipSession.aidl b/voip/java/android/net/sip/ISipSession.aidl index 5661b8fdf07a..2d515dbd7481 100644 --- a/voip/java/android/net/sip/ISipSession.aidl +++ b/voip/java/android/net/sip/ISipSession.aidl @@ -49,14 +49,11 @@ interface ISipSession { /** * Gets the session state. The value returned must be one of the states in - * {@link SipSessionState}. One may convert it to {@link SipSessionState} by - * <code> - * Enum.valueOf(SipSessionState.class, session.getState()); - * </code> + * {@link SipSessionState}. * * @return the session state */ - String getState(); + int getState(); /** * Checks if the session is in a call. diff --git a/voip/java/android/net/sip/ISipSessionListener.aidl b/voip/java/android/net/sip/ISipSessionListener.aidl index 0a6220b1adf8..5920bca88647 100644 --- a/voip/java/android/net/sip/ISipSessionListener.aidl +++ b/voip/java/android/net/sip/ISipSessionListener.aidl @@ -79,8 +79,7 @@ interface ISipSessionListener { * @param errorCode error code defined in {@link SipErrorCode} * @param errorMessage error message */ - void onError(in ISipSession session, String errorCode, - String errorMessage); + void onError(in ISipSession session, int errorCode, String errorMessage); /** * Called when an error occurs during session modification negotiation. @@ -89,7 +88,7 @@ interface ISipSessionListener { * @param errorCode error code defined in {@link SipErrorCode} * @param errorMessage error message */ - void onCallChangeFailed(in ISipSession session, String errorCode, + void onCallChangeFailed(in ISipSession session, int errorCode, String errorMessage); /** @@ -114,7 +113,7 @@ interface ISipSessionListener { * @param errorCode error code defined in {@link SipErrorCode} * @param errorMessage error message */ - void onRegistrationFailed(in ISipSession session, String errorCode, + void onRegistrationFailed(in ISipSession session, int errorCode, String errorMessage); /** diff --git a/voip/java/android/net/sip/SipAudioCall.java b/voip/java/android/net/sip/SipAudioCall.java index 4abea205c6d3..0069fe065284 100644 --- a/voip/java/android/net/sip/SipAudioCall.java +++ b/voip/java/android/net/sip/SipAudioCall.java @@ -90,9 +90,9 @@ public interface SipAudioCall { * @param call the call object that carries out the audio call * @param errorCode error code of this error * @param errorMessage error message + * @see SipErrorCode */ - void onError(SipAudioCall call, SipErrorCode errorCode, - String errorMessage); + void onError(SipAudioCall call, int errorCode, String errorMessage); } /** @@ -126,7 +126,7 @@ public interface SipAudioCall { public void onCallHeld(SipAudioCall call) { onChanged(call); } - public void onError(SipAudioCall call, SipErrorCode errorCode, + public void onError(SipAudioCall call, int errorCode, String errorMessage) { onChanged(call); } @@ -318,10 +318,11 @@ public interface SipAudioCall { /** * Gets the state of the {@link ISipSession} that carries this call. + * The value returned must be one of the states in {@link SipSessionState}. * * @return the session state */ - SipSessionState getState(); + int getState(); /** * Gets the {@link ISipSession} that carries this call. diff --git a/voip/java/android/net/sip/SipAudioCallImpl.java b/voip/java/android/net/sip/SipAudioCallImpl.java index e61e8789b972..111bfff64ed1 100644 --- a/voip/java/android/net/sip/SipAudioCallImpl.java +++ b/voip/java/android/net/sip/SipAudioCallImpl.java @@ -81,7 +81,7 @@ public class SipAudioCallImpl extends SipSessionAdapter private WifiManager mWm; private WifiManager.WifiLock mWifiHighPerfLock; - private SipErrorCode mErrorCode; + private int mErrorCode = SipErrorCode.NO_ERROR; private String mErrorMessage; public SipAudioCallImpl(Context context, SipProfile localProfile) { @@ -100,7 +100,7 @@ public class SipAudioCallImpl extends SipSessionAdapter try { if ((listener == null) || !callbackImmediately) { // do nothing - } else if (mErrorCode != null) { + } else if (mErrorCode != SipErrorCode.NO_ERROR) { listener.onError(this, mErrorCode, mErrorMessage); } else if (mInCall) { if (mHold) { @@ -109,18 +109,18 @@ public class SipAudioCallImpl extends SipSessionAdapter listener.onCallEstablished(this); } } else { - SipSessionState state = getState(); + int state = getState(); switch (state) { - case READY_TO_CALL: + case SipSessionState.READY_TO_CALL: listener.onReadyToCall(this); break; - case INCOMING_CALL: + case SipSessionState.INCOMING_CALL: listener.onRinging(this, getPeerProfile(mSipSession)); break; - case OUTGOING_CALL: + case SipSessionState.OUTGOING_CALL: listener.onCalling(this); break; - case OUTGOING_CALL_RING_BACK: + case SipSessionState.OUTGOING_CALL_RING_BACK: listener.onRingingBack(this); break; } @@ -150,7 +150,7 @@ public class SipAudioCallImpl extends SipSessionAdapter mInCall = false; mHold = false; mSessionId = -1L; - mErrorCode = null; + mErrorCode = SipErrorCode.NO_ERROR; mErrorMessage = null; if (mSipSession != null) { @@ -175,10 +175,10 @@ public class SipAudioCallImpl extends SipSessionAdapter } } - public synchronized SipSessionState getState() { + public synchronized int getState() { if (mSipSession == null) return SipSessionState.READY_TO_CALL; try { - return Enum.valueOf(SipSessionState.class, mSipSession.getState()); + return mSipSession.getState(); } catch (RemoteException e) { return SipSessionState.REMOTE_ERROR; } @@ -294,15 +294,11 @@ public class SipAudioCallImpl extends SipSessionAdapter } } - private SipErrorCode getErrorCode(String errorCode) { - return Enum.valueOf(SipErrorCode.class, errorCode); - } - @Override - public void onCallChangeFailed(ISipSession session, String errorCode, + public void onCallChangeFailed(ISipSession session, int errorCode, String message) { Log.d(TAG, "sip call change failed: " + message); - mErrorCode = getErrorCode(errorCode); + mErrorCode = errorCode; mErrorMessage = message; Listener listener = mListener; if (listener != null) { @@ -315,10 +311,10 @@ public class SipAudioCallImpl extends SipSessionAdapter } @Override - public void onError(ISipSession session, String errorCodeString, - String message) { - Log.d(TAG, "sip session error: " + errorCodeString + ": " + message); - SipErrorCode errorCode = mErrorCode = getErrorCode(errorCodeString); + public void onError(ISipSession session, int errorCode, String message) { + Log.d(TAG, "sip session error: " + SipErrorCode.toString(errorCode) + + ": " + message); + mErrorCode = errorCode; mErrorMessage = message; synchronized (this) { if ((mErrorCode == SipErrorCode.DATA_CONNECTION_LOST) @@ -608,10 +604,10 @@ public class SipAudioCallImpl extends SipSessionAdapter try { startAudioInternal(); } catch (UnknownHostException e) { - onError(mSipSession, SipErrorCode.PEER_NOT_REACHABLE.toString(), + onError(mSipSession, SipErrorCode.PEER_NOT_REACHABLE, e.getMessage()); } catch (Throwable e) { - onError(mSipSession, SipErrorCode.CLIENT_ERROR.toString(), + onError(mSipSession, SipErrorCode.CLIENT_ERROR, e.getMessage()); } } diff --git a/voip/java/android/net/sip/SipErrorCode.java b/voip/java/android/net/sip/SipErrorCode.java index a27f7405c7ec..7496d28fdf54 100644 --- a/voip/java/android/net/sip/SipErrorCode.java +++ b/voip/java/android/net/sip/SipErrorCode.java @@ -24,34 +24,69 @@ package android.net.sip; * {@link ISipSessionListener#onRegistrationFailed}. * @hide */ -public enum SipErrorCode { +public class SipErrorCode { + /** Not an error. */ + public static final int NO_ERROR = 0; + /** When some socket error occurs. */ - SOCKET_ERROR, + public static final int SOCKET_ERROR = -1; /** When server responds with an error. */ - SERVER_ERROR, + public static final int SERVER_ERROR = -2; /** When transaction is terminated unexpectedly. */ - TRANSACTION_TERMINTED, + public static final int TRANSACTION_TERMINTED = -3; /** When some error occurs on the device, possibly due to a bug. */ - CLIENT_ERROR, + public static final int CLIENT_ERROR = -4; /** When the transaction gets timed out. */ - TIME_OUT, + public static final int TIME_OUT = -5; /** When the remote URI is not valid. */ - INVALID_REMOTE_URI, + public static final int INVALID_REMOTE_URI = -6; /** When the peer is not reachable. */ - PEER_NOT_REACHABLE, + public static final int PEER_NOT_REACHABLE = -7; /** When invalid credentials are provided. */ - INVALID_CREDENTIALS, + public static final int INVALID_CREDENTIALS = -8; /** The client is in a transaction and cannot initiate a new one. */ - IN_PROGRESS, + public static final int IN_PROGRESS = -9; /** When data connection is lost. */ - DATA_CONNECTION_LOST; + public static final int DATA_CONNECTION_LOST = -10; + + public static String toString(int errorCode) { + switch (errorCode) { + case NO_ERROR: + return "NO_ERROR"; + case SOCKET_ERROR: + return "SOCKET_ERROR"; + case SERVER_ERROR: + return "SERVER_ERROR"; + case TRANSACTION_TERMINTED: + return "TRANSACTION_TERMINTED"; + case CLIENT_ERROR: + return "CLIENT_ERROR"; + case TIME_OUT: + return "TIME_OUT"; + case INVALID_REMOTE_URI: + return "INVALID_REMOTE_URI"; + case PEER_NOT_REACHABLE: + return "PEER_NOT_REACHABLE"; + case INVALID_CREDENTIALS: + return "INVALID_CREDENTIALS"; + case IN_PROGRESS: + return "IN_PROGRESS"; + case DATA_CONNECTION_LOST: + return "DATA_CONNECTION_LOST"; + default: + return "UNKNOWN"; + } + } + + private SipErrorCode() { + } } diff --git a/voip/java/android/net/sip/SipManager.java b/voip/java/android/net/sip/SipManager.java index 9ee6f34c407e..31768d731a2d 100644 --- a/voip/java/android/net/sip/SipManager.java +++ b/voip/java/android/net/sip/SipManager.java @@ -511,10 +511,9 @@ public class SipManager { } @Override - public void onRegistrationFailed(ISipSession session, String errorCode, + public void onRegistrationFailed(ISipSession session, int errorCode, String message) { - mListener.onRegistrationFailed(getUri(session), - Enum.valueOf(SipErrorCode.class, errorCode), message); + mListener.onRegistrationFailed(getUri(session), errorCode, message); } @Override diff --git a/voip/java/android/net/sip/SipRegistrationListener.java b/voip/java/android/net/sip/SipRegistrationListener.java index 705f271d1edd..37c9ce2a6353 100644 --- a/voip/java/android/net/sip/SipRegistrationListener.java +++ b/voip/java/android/net/sip/SipRegistrationListener.java @@ -42,7 +42,8 @@ public interface SipRegistrationListener { * @param localProfileUri the URI string of the SIP profile to register with * @param errorCode error code of this error * @param errorMessage error message + * @see SipErrorCode */ - void onRegistrationFailed(String localProfileUri, SipErrorCode errorCode, + void onRegistrationFailed(String localProfileUri, int errorCode, String errorMessage); } diff --git a/voip/java/android/net/sip/SipSessionAdapter.java b/voip/java/android/net/sip/SipSessionAdapter.java index 6020f2c204ee..86aca3798b03 100644 --- a/voip/java/android/net/sip/SipSessionAdapter.java +++ b/voip/java/android/net/sip/SipSessionAdapter.java @@ -42,11 +42,11 @@ public class SipSessionAdapter extends ISipSessionListener.Stub { public void onCallBusy(ISipSession session) { } - public void onCallChangeFailed(ISipSession session, String errorCode, + public void onCallChangeFailed(ISipSession session, int errorCode, String message) { } - public void onError(ISipSession session, String errorCode, String message) { + public void onError(ISipSession session, int errorCode, String message) { } public void onRegistering(ISipSession session) { @@ -55,7 +55,7 @@ public class SipSessionAdapter extends ISipSessionListener.Stub { public void onRegistrationDone(ISipSession session, int duration) { } - public void onRegistrationFailed(ISipSession session, String errorCode, + public void onRegistrationFailed(ISipSession session, int errorCode, String message) { } diff --git a/voip/java/android/net/sip/SipSessionState.java b/voip/java/android/net/sip/SipSessionState.java index 5bab11203042..31e9d3f5992c 100644 --- a/voip/java/android/net/sip/SipSessionState.java +++ b/voip/java/android/net/sip/SipSessionState.java @@ -20,47 +20,75 @@ package android.net.sip; * Defines {@link ISipSession} states. * @hide */ -public enum SipSessionState { +public class SipSessionState { /** When session is ready to initiate a call or transaction. */ - READY_TO_CALL, + public static final int READY_TO_CALL = 0; /** When the registration request is sent out. */ - REGISTERING, + public static final int REGISTERING = 1; /** When the unregistration request is sent out. */ - DEREGISTERING, + public static final int DEREGISTERING = 2; /** When an INVITE request is received. */ - INCOMING_CALL, + public static final int INCOMING_CALL = 3; /** When an OK response is sent for the INVITE request received. */ - INCOMING_CALL_ANSWERING, + public static final int INCOMING_CALL_ANSWERING = 4; /** When an INVITE request is sent. */ - OUTGOING_CALL, + public static final int OUTGOING_CALL = 5; /** When a RINGING response is received for the INVITE request sent. */ - OUTGOING_CALL_RING_BACK, + public static final int OUTGOING_CALL_RING_BACK = 6; /** When a CANCEL request is sent for the INVITE request sent. */ - OUTGOING_CALL_CANCELING, + public static final int OUTGOING_CALL_CANCELING = 7; /** When a call is established. */ - IN_CALL, + public static final int IN_CALL = 8; /** Some error occurs when making a remote call to {@link ISipSession}. */ - REMOTE_ERROR, + public static final int REMOTE_ERROR = 9; /** When an OPTIONS request is sent. */ - PINGING; + public static final int PINGING = 10; + + /** Not defined. */ + public static final int NOT_DEFINED = 101; /** - * Checks if the specified string represents the same state as this object. - * - * @return true if the specified string represents the same state as this - * object + * Converts the state to string. */ - public boolean equals(String state) { - return toString().equals(state); + public static String toString(int state) { + switch (state) { + case READY_TO_CALL: + return "READY_TO_CALL"; + case REGISTERING: + return "REGISTERING"; + case DEREGISTERING: + return "DEREGISTERING"; + case INCOMING_CALL: + return "INCOMING_CALL"; + case INCOMING_CALL_ANSWERING: + return "INCOMING_CALL_ANSWERING"; + case OUTGOING_CALL: + return "OUTGOING_CALL"; + case OUTGOING_CALL_RING_BACK: + return "OUTGOING_CALL_RING_BACK"; + case OUTGOING_CALL_CANCELING: + return "OUTGOING_CALL_CANCELING"; + case IN_CALL: + return "IN_CALL"; + case REMOTE_ERROR: + return "REMOTE_ERROR"; + case PINGING: + return "PINGING"; + default: + return "NOT_DEFINED"; + } + } + + private SipSessionState() { } } |