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

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

Keep original phone number in SipConnection.

In case it's a PSTN number carried by an Internet call, the phone app can still
get the original phone number from Connection.getAddress() instead of getting a
SIP URI.

http://b/issue?id=3085996

Change-Id: Ie6c66100a4b5b2ce3f73baa1b446761cd51d7727
parent a28d5aff
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -56,8 +56,8 @@ abstract class SipConnectionBase extends Connection {
    private DisconnectCause mCause = DisconnectCause.NOT_DISCONNECTED;
    private PostDialState postDialState = PostDialState.NOT_STARTED;

    SipConnectionBase(String calleeSipUri) {
        dialString = calleeSipUri;
    SipConnectionBase(String dialString) {
        this.dialString = dialString;

        postDialString = PhoneNumberUtils.extractPostDialPortion(dialString);

+15 −4
Original line number Diff line number Diff line
@@ -387,7 +387,8 @@ public class SipPhone extends SipPhoneBase {
            try {
                SipProfile callee =
                        new SipProfile.Builder(calleeSipUri).build();
                SipConnection c = new SipConnection(this, callee);
                SipConnection c = new SipConnection(this, callee,
                        originalNumber);
                connections.add(c);
                c.dial();
                setState(Call.State.DIALING);
@@ -578,6 +579,7 @@ public class SipPhone extends SipPhoneBase {
        private SipAudioCall mSipAudioCall;
        private Call.State mState = Call.State.IDLE;
        private SipProfile mPeer;
        private String mOriginalNumber; // may be a PSTN number
        private boolean mIncoming = false;

        private SipAudioCallAdapter mAdapter = new SipAudioCallAdapter() {
@@ -659,10 +661,16 @@ public class SipPhone extends SipPhoneBase {
            }
        };

        public SipConnection(SipCall owner, SipProfile callee) {
            super(getUriString(callee));
        public SipConnection(SipCall owner, SipProfile callee,
                String originalNumber) {
            super(originalNumber);
            mOwner = owner;
            mPeer = callee;
            mOriginalNumber = originalNumber;
        }

        public SipConnection(SipCall owner, SipProfile callee) {
            this(owner, callee, getUriString(callee));
        }

        void initIncomingCall(SipAudioCall sipAudioCall, Call.State newState) {
@@ -735,7 +743,10 @@ public class SipPhone extends SipPhoneBase {

        @Override
        public String getAddress() {
            return getUriString(mPeer);
            // Phone app uses this to query caller ID. Return the original dial
            // number (which may be a PSTN number) instead of the peer's SIP
            // URI.
            return mOriginalNumber;
        }

        @Override