diff --git a/telephony/java/com/android/internal/telephony/sip/SipConnectionBase.java b/telephony/java/com/android/internal/telephony/sip/SipConnectionBase.java index c139a644bfed3..209fe06676203 100644 --- a/telephony/java/com/android/internal/telephony/sip/SipConnectionBase.java +++ b/telephony/java/com/android/internal/telephony/sip/SipConnectionBase.java @@ -57,8 +57,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); diff --git a/telephony/java/com/android/internal/telephony/sip/SipPhone.java b/telephony/java/com/android/internal/telephony/sip/SipPhone.java index a951040321bc6..09d3c8efd9e20 100755 --- a/telephony/java/com/android/internal/telephony/sip/SipPhone.java +++ b/telephony/java/com/android/internal/telephony/sip/SipPhone.java @@ -390,7 +390,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); @@ -581,6 +582,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() { @@ -662,10 +664,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) { @@ -738,7 +746,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