Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 97963794 authored by Hung-ying Tyan's avatar Hung-ying Tyan
Browse files

SIP: convert enum to static final int.

Converts SipErrorCode and SipSessionState.

Change-Id: Iee3a465649ea89d395b2336bbd673c25113e5f93
parent 5b930c49
Loading
Loading
Loading
Loading
+14 −18
Original line number Original line Diff line number Diff line
@@ -476,10 +476,10 @@ public final class SipService extends ISipService.Stub {
        }
        }


        @Override
        @Override
        public void onError(ISipSession session, String errorClass,
        public void onError(ISipSession session, int errorCode,
                String message) {
                String message) {
            if (DEBUG) Log.d(TAG, "sip session error: " + errorClass + ": "
            if (DEBUG) Log.d(TAG, "sip session error: "
                    + message);
                    + SipErrorCode.toString(errorCode) + ": " + message);
        }
        }


        public boolean isOpened() {
        public boolean isOpened() {
@@ -535,7 +535,7 @@ public final class SipService extends ISipService.Stub {
        private int mBackoff = 1;
        private int mBackoff = 1;
        private boolean mRegistered;
        private boolean mRegistered;
        private long mExpiryTime;
        private long mExpiryTime;
        private SipErrorCode mErrorCode;
        private int mErrorCode;
        private String mErrorMessage;
        private String mErrorMessage;


        private String getAction() {
        private String getAction() {
@@ -591,10 +591,9 @@ public final class SipService extends ISipService.Stub {
                if (mSession == null) return;
                if (mSession == null) return;


                try {
                try {
                    SipSessionState state = (mSession == null)
                    int state = (mSession == null)
                            ? SipSessionState.READY_TO_CALL
                            ? SipSessionState.READY_TO_CALL
                            : Enum.valueOf(
                            : mSession.getState();
                                    SipSessionState.class, mSession.getState());
                    if ((state == SipSessionState.REGISTERING)
                    if ((state == SipSessionState.REGISTERING)
                            || (state == SipSessionState.DEREGISTERING)) {
                            || (state == SipSessionState.DEREGISTERING)) {
                        mProxy.onRegistering(mSession);
                        mProxy.onRegistering(mSession);
@@ -602,12 +601,12 @@ public final class SipService extends ISipService.Stub {
                        int duration = (int)
                        int duration = (int)
                                (mExpiryTime - SystemClock.elapsedRealtime());
                                (mExpiryTime - SystemClock.elapsedRealtime());
                        mProxy.onRegistrationDone(mSession, duration);
                        mProxy.onRegistrationDone(mSession, duration);
                    } else if (mErrorCode != null) {
                    } else if (mErrorCode != SipErrorCode.NO_ERROR) {
                        if (mErrorCode == SipErrorCode.TIME_OUT) {
                        if (mErrorCode == SipErrorCode.TIME_OUT) {
                            mProxy.onRegistrationTimeout(mSession);
                            mProxy.onRegistrationTimeout(mSession);
                        } else {
                        } else {
                            mProxy.onRegistrationFailed(mSession,
                            mProxy.onRegistrationFailed(mSession, mErrorCode,
                                    mErrorCode.toString(), mErrorMessage);
                                    mErrorMessage);
                        }
                        }
                    }
                    }
                } catch (Throwable t) {
                } catch (Throwable t) {
@@ -621,7 +620,7 @@ public final class SipService extends ISipService.Stub {
        }
        }


        public void run() {
        public void run() {
            mErrorCode = null;
            mErrorCode = SipErrorCode.NO_ERROR;
            mErrorMessage = null;
            mErrorMessage = null;
            if (DEBUG) Log.d(TAG, "~~~ registering");
            if (DEBUG) Log.d(TAG, "~~~ registering");
            synchronized (SipService.this) {
            synchronized (SipService.this) {
@@ -714,18 +713,15 @@ public final class SipService extends ISipService.Stub {
        }
        }


        @Override
        @Override
        public void onRegistrationFailed(ISipSession session,
        public void onRegistrationFailed(ISipSession session, int errorCode,
                String errorCodeString, String message) {
                String message) {
            SipErrorCode errorCode =
                    Enum.valueOf(SipErrorCode.class, errorCodeString);
            if (DEBUG) Log.d(TAG, "onRegistrationFailed(): " + session + ": "
            if (DEBUG) Log.d(TAG, "onRegistrationFailed(): " + session + ": "
                    + errorCode + ": " + message);
                    + SipErrorCode.toString(errorCode) + ": " + message);
            synchronized (SipService.this) {
            synchronized (SipService.this) {
                if (!isStopped() && (session != mSession)) return;
                if (!isStopped() && (session != mSession)) return;
                mErrorCode = errorCode;
                mErrorCode = errorCode;
                mErrorMessage = message;
                mErrorMessage = message;
                mProxy.onRegistrationFailed(session, errorCode.toString(),
                mProxy.onRegistrationFailed(session, errorCode, message);
                        message);


                if (errorCode == SipErrorCode.INVALID_CREDENTIALS) {
                if (errorCode == SipErrorCode.INVALID_CREDENTIALS) {
                    if (DEBUG) Log.d(TAG, "   pause auto-registration");
                    if (DEBUG) Log.d(TAG, "   pause auto-registration");
+44 −42
Original line number Original line Diff line number Diff line
@@ -300,7 +300,8 @@ class SipSessionGroup implements SipListener {
            boolean isLoggable = isLoggable(session, event);
            boolean isLoggable = isLoggable(session, event);
            boolean processed = (session != null) && session.process(event);
            boolean processed = (session != null) && session.process(event);
            if (isLoggable && processed) {
            if (isLoggable && processed) {
                Log.d(TAG, "new state after: " + session.mState);
                Log.d(TAG, "new state after: "
                        + SipSessionState.toString(session.mState));
            }
            }
        } catch (Throwable e) {
        } catch (Throwable e) {
            Log.w(TAG, "event process error: " + event, e);
            Log.w(TAG, "event process error: " + event, e);
@@ -331,7 +332,8 @@ class SipSessionGroup implements SipListener {


        public boolean process(EventObject evt) throws SipException {
        public boolean process(EventObject evt) throws SipException {
            if (isLoggable(this, evt)) Log.d(TAG, " ~~~~~   " + this + ": "
            if (isLoggable(this, evt)) Log.d(TAG, " ~~~~~   " + this + ": "
                    + mState + ": processing " + log(evt));
                    + SipSessionState.toString(mState) + ": processing "
                    + log(evt));
            if (isRequestEvent(Request.INVITE, evt)) {
            if (isRequestEvent(Request.INVITE, evt)) {
                RequestEvent event = (RequestEvent) evt;
                RequestEvent event = (RequestEvent) evt;
                SipSessionImpl newSession = new SipSessionImpl(mProxy);
                SipSessionImpl newSession = new SipSessionImpl(mProxy);
@@ -356,7 +358,7 @@ class SipSessionGroup implements SipListener {
    class SipSessionImpl extends ISipSession.Stub {
    class SipSessionImpl extends ISipSession.Stub {
        SipProfile mPeerProfile;
        SipProfile mPeerProfile;
        SipSessionListenerProxy mProxy = new SipSessionListenerProxy();
        SipSessionListenerProxy mProxy = new SipSessionListenerProxy();
        SipSessionState mState = SipSessionState.READY_TO_CALL;
        int mState = SipSessionState.READY_TO_CALL;
        RequestEvent mInviteReceived;
        RequestEvent mInviteReceived;
        Dialog mDialog;
        Dialog mDialog;
        ServerTransaction mServerTransaction;
        ServerTransaction mServerTransaction;
@@ -447,8 +449,8 @@ class SipSessionGroup implements SipListener {
            return null;
            return null;
        }
        }


        public String getState() {
        public int getState() {
            return mState.toString();
            return mState;
        }
        }


        public void setListener(ISipSessionListener listener) {
        public void setListener(ISipSessionListener listener) {
@@ -521,7 +523,7 @@ class SipSessionGroup implements SipListener {
            mState = SipSessionState.PINGING;
            mState = SipSessionState.PINGING;
            try {
            try {
                processCommand(new OptionsCommand());
                processCommand(new OptionsCommand());
                while (SipSessionState.PINGING.equals(mState)) {
                while (SipSessionState.PINGING == mState) {
                    Thread.sleep(1000);
                    Thread.sleep(1000);
                }
                }
            } catch (SipException e) {
            } catch (SipException e) {
@@ -547,7 +549,8 @@ class SipSessionGroup implements SipListener {
        public String toString() {
        public String toString() {
            try {
            try {
                String s = super.toString();
                String s = super.toString();
                return s.substring(s.indexOf("@")) + ":" + mState;
                return s.substring(s.indexOf("@")) + ":"
                        + SipSessionState.toString(mState);
            } catch (Throwable e) {
            } catch (Throwable e) {
                return super.toString();
                return super.toString();
            }
            }
@@ -555,7 +558,8 @@ class SipSessionGroup implements SipListener {


        public boolean process(EventObject evt) throws SipException {
        public boolean process(EventObject evt) throws SipException {
            if (isLoggable(this, evt)) Log.d(TAG, " ~~~~~   " + this + ": "
            if (isLoggable(this, evt)) Log.d(TAG, " ~~~~~   " + this + ": "
                    + mState + ": processing " + log(evt));
                    + SipSessionState.toString(mState) + ": processing "
                    + log(evt));
            synchronized (SipSessionGroup.this) {
            synchronized (SipSessionGroup.this) {
                if (isClosed()) return false;
                if (isClosed()) return false;


@@ -570,30 +574,30 @@ class SipSessionGroup implements SipListener {
                boolean processed;
                boolean processed;


                switch (mState) {
                switch (mState) {
                case REGISTERING:
                case SipSessionState.REGISTERING:
                case DEREGISTERING:
                case SipSessionState.DEREGISTERING:
                    processed = registeringToReady(evt);
                    processed = registeringToReady(evt);
                    break;
                    break;
                case PINGING:
                case SipSessionState.PINGING:
                    processed = keepAliveProcess(evt);
                    processed = keepAliveProcess(evt);
                    break;
                    break;
                case READY_TO_CALL:
                case SipSessionState.READY_TO_CALL:
                    processed = readyForCall(evt);
                    processed = readyForCall(evt);
                    break;
                    break;
                case INCOMING_CALL:
                case SipSessionState.INCOMING_CALL:
                    processed = incomingCall(evt);
                    processed = incomingCall(evt);
                    break;
                    break;
                case INCOMING_CALL_ANSWERING:
                case SipSessionState.INCOMING_CALL_ANSWERING:
                    processed = incomingCallToInCall(evt);
                    processed = incomingCallToInCall(evt);
                    break;
                    break;
                case OUTGOING_CALL:
                case SipSessionState.OUTGOING_CALL:
                case OUTGOING_CALL_RING_BACK:
                case SipSessionState.OUTGOING_CALL_RING_BACK:
                    processed = outgoingCall(evt);
                    processed = outgoingCall(evt);
                    break;
                    break;
                case OUTGOING_CALL_CANCELING:
                case SipSessionState.OUTGOING_CALL_CANCELING:
                    processed = outgoingCallToReady(evt);
                    processed = outgoingCallToReady(evt);
                    break;
                    break;
                case IN_CALL:
                case SipSessionState.IN_CALL:
                    processed = inCall(evt);
                    processed = inCall(evt);
                    break;
                    break;
                default:
                default:
@@ -640,8 +644,8 @@ class SipSessionGroup implements SipListener {
        private void processTransactionTerminated(
        private void processTransactionTerminated(
                TransactionTerminatedEvent event) {
                TransactionTerminatedEvent event) {
            switch (mState) {
            switch (mState) {
                case IN_CALL:
                case SipSessionState.IN_CALL:
                case READY_TO_CALL:
                case SipSessionState.READY_TO_CALL:
                    Log.d(TAG, "Transaction terminated; do nothing");
                    Log.d(TAG, "Transaction terminated; do nothing");
                    break;
                    break;
                default:
                default:
@@ -666,18 +670,18 @@ class SipSessionGroup implements SipListener {
                return;
                return;
            }
            }
            switch (mState) {
            switch (mState) {
                case REGISTERING:
                case SipSessionState.REGISTERING:
                case DEREGISTERING:
                case SipSessionState.DEREGISTERING:
                    reset();
                    reset();
                    mProxy.onRegistrationTimeout(this);
                    mProxy.onRegistrationTimeout(this);
                    break;
                    break;
                case INCOMING_CALL:
                case SipSessionState.INCOMING_CALL:
                case INCOMING_CALL_ANSWERING:
                case SipSessionState.INCOMING_CALL_ANSWERING:
                case OUTGOING_CALL:
                case SipSessionState.OUTGOING_CALL:
                case OUTGOING_CALL_CANCELING:
                case SipSessionState.OUTGOING_CALL_CANCELING:
                    onError(SipErrorCode.TIME_OUT, event.toString());
                    onError(SipErrorCode.TIME_OUT, event.toString());
                    break;
                    break;
                case PINGING:
                case SipSessionState.PINGING:
                    reset();
                    reset();
                    mReRegisterFlag = true;
                    mReRegisterFlag = true;
                    mState = SipSessionState.READY_TO_CALL;
                    mState = SipSessionState.READY_TO_CALL;
@@ -753,7 +757,7 @@ class SipSessionGroup implements SipListener {
                int statusCode = response.getStatusCode();
                int statusCode = response.getStatusCode();
                switch (statusCode) {
                switch (statusCode) {
                case Response.OK:
                case Response.OK:
                    SipSessionState state = mState;
                    int state = mState;
                    onRegistrationDone((state == SipSessionState.REGISTERING)
                    onRegistrationDone((state == SipSessionState.REGISTERING)
                            ? getExpiryTime(((ResponseEvent) evt).getResponse())
                            ? getExpiryTime(((ResponseEvent) evt).getResponse())
                            : -1);
                            : -1);
@@ -1062,10 +1066,9 @@ class SipSessionGroup implements SipListener {
            mProxy.onCallEstablished(this, mPeerSessionDescription);
            mProxy.onCallEstablished(this, mPeerSessionDescription);
        }
        }


        private void fallbackToPreviousInCall(SipErrorCode errorCode,
        private void fallbackToPreviousInCall(int errorCode, String message) {
                String message) {
            mState = SipSessionState.IN_CALL;
            mState = SipSessionState.IN_CALL;
            mProxy.onCallChangeFailed(this, errorCode.toString(), message);
            mProxy.onCallChangeFailed(this, errorCode, message);
        }
        }


        private void endCallNormally() {
        private void endCallNormally() {
@@ -1073,9 +1076,9 @@ class SipSessionGroup implements SipListener {
            mProxy.onCallEnded(this);
            mProxy.onCallEnded(this);
        }
        }


        private void endCallOnError(SipErrorCode errorCode, String message) {
        private void endCallOnError(int errorCode, String message) {
            reset();
            reset();
            mProxy.onError(this, errorCode.toString(), message);
            mProxy.onError(this, errorCode, message);
        }
        }


        private void endCallOnBusy() {
        private void endCallOnBusy() {
@@ -1083,11 +1086,11 @@ class SipSessionGroup implements SipListener {
            mProxy.onCallBusy(this);
            mProxy.onCallBusy(this);
        }
        }


        private void onError(SipErrorCode errorCode, String message) {
        private void onError(int errorCode, String message) {
            cancelSessionTimer();
            cancelSessionTimer();
            switch (mState) {
            switch (mState) {
                case REGISTERING:
                case SipSessionState.REGISTERING:
                case DEREGISTERING:
                case SipSessionState.DEREGISTERING:
                    onRegistrationFailed(errorCode, message);
                    onRegistrationFailed(errorCode, message);
                    break;
                    break;
                default:
                default:
@@ -1115,7 +1118,7 @@ class SipSessionGroup implements SipListener {
            }
            }
        }
        }


        private SipErrorCode getErrorCode(int responseStatusCode) {
        private int getErrorCode(int responseStatusCode) {
            switch (responseStatusCode) {
            switch (responseStatusCode) {
                case Response.TEMPORARILY_UNAVAILABLE:
                case Response.TEMPORARILY_UNAVAILABLE:
                case Response.FORBIDDEN:
                case Response.FORBIDDEN:
@@ -1151,7 +1154,7 @@ class SipSessionGroup implements SipListener {
            return exception;
            return exception;
        }
        }


        private SipErrorCode getErrorCode(Throwable exception) {
        private int getErrorCode(Throwable exception) {
            String message = exception.getMessage();
            String message = exception.getMessage();
            if (exception instanceof UnknownHostException) {
            if (exception instanceof UnknownHostException) {
                return SipErrorCode.INVALID_REMOTE_URI;
                return SipErrorCode.INVALID_REMOTE_URI;
@@ -1169,10 +1172,9 @@ class SipSessionGroup implements SipListener {
            mProxy.onRegistrationDone(this, duration);
            mProxy.onRegistrationDone(this, duration);
        }
        }


        private void onRegistrationFailed(SipErrorCode errorCode,
        private void onRegistrationFailed(int errorCode, String message) {
                String message) {
            reset();
            reset();
            mProxy.onRegistrationFailed(this, errorCode.toString(), message);
            mProxy.onRegistrationFailed(this, errorCode, message);
        }
        }


        private void onRegistrationFailed(Throwable exception) {
        private void onRegistrationFailed(Throwable exception) {
@@ -1262,7 +1264,7 @@ class SipSessionGroup implements SipListener {
    private static boolean isLoggable(SipSessionImpl s) {
    private static boolean isLoggable(SipSessionImpl s) {
        if (s != null) {
        if (s != null) {
            switch (s.mState) {
            switch (s.mState) {
                case PINGING:
                case SipSessionState.PINGING:
                    return DEBUG_PING;
                    return DEBUG_PING;
            }
            }
        }
        }
+3 −3
Original line number Original line Diff line number Diff line
@@ -124,7 +124,7 @@ class SipSessionListenerProxy extends ISipSessionListener.Stub {
    }
    }


    public void onCallChangeFailed(final ISipSession session,
    public void onCallChangeFailed(final ISipSession session,
            final String errorCode, final String message) {
            final int errorCode, final String message) {
        if (mListener == null) return;
        if (mListener == null) return;
        proxy(new Runnable() {
        proxy(new Runnable() {
            public void run() {
            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) {
            final String message) {
        if (mListener == null) return;
        if (mListener == null) return;
        proxy(new Runnable() {
        proxy(new Runnable() {
@@ -179,7 +179,7 @@ class SipSessionListenerProxy extends ISipSessionListener.Stub {
    }
    }


    public void onRegistrationFailed(final ISipSession session,
    public void onRegistrationFailed(final ISipSession session,
            final String errorCode, final String message) {
            final int errorCode, final String message) {
        if (mListener == null) return;
        if (mListener == null) return;
        proxy(new Runnable() {
        proxy(new Runnable() {
            public void run() {
            public void run() {
+20 −19
Original line number Original line Diff line number Diff line
@@ -802,15 +802,15 @@ public class SipPhone extends SipPhoneBase {


    private static Call.State getCallStateFrom(SipAudioCall sipAudioCall) {
    private static Call.State getCallStateFrom(SipAudioCall sipAudioCall) {
        if (sipAudioCall.isOnHold()) return Call.State.HOLDING;
        if (sipAudioCall.isOnHold()) return Call.State.HOLDING;
        SipSessionState sessionState = sipAudioCall.getState();
        int sessionState = sipAudioCall.getState();
        switch (sessionState) {
        switch (sessionState) {
            case READY_TO_CALL:            return Call.State.IDLE;
            case SipSessionState.READY_TO_CALL:            return Call.State.IDLE;
            case INCOMING_CALL:
            case SipSessionState.INCOMING_CALL:
            case INCOMING_CALL_ANSWERING:  return Call.State.INCOMING;
            case SipSessionState.INCOMING_CALL_ANSWERING:  return Call.State.INCOMING;
            case OUTGOING_CALL:            return Call.State.DIALING;
            case SipSessionState.OUTGOING_CALL:            return Call.State.DIALING;
            case OUTGOING_CALL_RING_BACK:  return Call.State.ALERTING;
            case SipSessionState.OUTGOING_CALL_RING_BACK:  return Call.State.ALERTING;
            case OUTGOING_CALL_CANCELING:  return Call.State.DISCONNECTING;
            case SipSessionState.OUTGOING_CALL_CANCELING:  return Call.State.DISCONNECTING;
            case IN_CALL:                  return Call.State.ACTIVE;
            case SipSessionState.IN_CALL:                  return Call.State.ACTIVE;
            default:
            default:
                Log.w(LOG_TAG, "illegal connection state: " + sessionState);
                Log.w(LOG_TAG, "illegal connection state: " + sessionState);
                return Call.State.DISCONNECTED;
                return Call.State.DISCONNECTED;
@@ -832,30 +832,31 @@ public class SipPhone extends SipPhoneBase {
        }
        }


        @Override
        @Override
        public void onError(SipAudioCall call, SipErrorCode errorCode,
        public void onError(SipAudioCall call, int errorCode,
                String errorMessage) {
                String errorMessage) {
            switch (errorCode) {
            switch (errorCode) {
                case PEER_NOT_REACHABLE:
                case SipErrorCode.PEER_NOT_REACHABLE:
                    onError(Connection.DisconnectCause.NUMBER_UNREACHABLE);
                    onError(Connection.DisconnectCause.NUMBER_UNREACHABLE);
                    break;
                    break;
                case INVALID_REMOTE_URI:
                case SipErrorCode.INVALID_REMOTE_URI:
                    onError(Connection.DisconnectCause.INVALID_NUMBER);
                    onError(Connection.DisconnectCause.INVALID_NUMBER);
                    break;
                    break;
                case TIME_OUT:
                case SipErrorCode.TIME_OUT:
                case TRANSACTION_TERMINTED:
                case SipErrorCode.TRANSACTION_TERMINTED:
                    onError(Connection.DisconnectCause.TIMED_OUT);
                    onError(Connection.DisconnectCause.TIMED_OUT);
                    break;
                    break;
                case DATA_CONNECTION_LOST:
                case SipErrorCode.DATA_CONNECTION_LOST:
                    onError(Connection.DisconnectCause.LOST_SIGNAL);
                    onError(Connection.DisconnectCause.LOST_SIGNAL);
                    break;
                    break;
                case INVALID_CREDENTIALS:
                case SipErrorCode.INVALID_CREDENTIALS:
                    onError(Connection.DisconnectCause.INVALID_CREDENTIALS);
                    onError(Connection.DisconnectCause.INVALID_CREDENTIALS);
                    break;
                    break;
                case SOCKET_ERROR:
                case SipErrorCode.SOCKET_ERROR:
                case SERVER_ERROR:
                case SipErrorCode.SERVER_ERROR:
                case CLIENT_ERROR:
                case SipErrorCode.CLIENT_ERROR:
                default:
                default:
                    Log.w(LOG_TAG, "error: " + errorCode + ": " + errorMessage);
                    Log.w(LOG_TAG, "error: " + SipErrorCode.toString(errorCode)
                            + ": " + errorMessage);
                    onError(Connection.DisconnectCause.ERROR_UNSPECIFIED);
                    onError(Connection.DisconnectCause.ERROR_UNSPECIFIED);
            }
            }
        }
        }
+2 −5
Original line number Original line Diff line number Diff line
@@ -49,14 +49,11 @@ interface ISipSession {


    /**
    /**
     * Gets the session state. The value returned must be one of the states in
     * Gets the session state. The value returned must be one of the states in
     * {@link SipSessionState}. One may convert it to {@link SipSessionState} by
     * {@link SipSessionState}.
     * <code>
     *      Enum.valueOf(SipSessionState.class, session.getState());
     * </code>
     *
     *
     * @return the session state
     * @return the session state
     */
     */
    String getState();
    int getState();


    /**
    /**
     * Checks if the session is in a call.
     * Checks if the session is in a call.
Loading