diff options
| author | Hung-ying Tyan <tyanh@google.com> | 2010-10-12 11:22:54 +0800 |
|---|---|---|
| committer | Hung-ying Tyan <tyanh@google.com> | 2010-10-12 11:34:01 +0800 |
| commit | f5201ab71ff4d104265ab126e86afc6b81da8011 (patch) | |
| tree | 48ab6fef1e8c3d7eee81802ad96cd434f123c922 /telephony | |
| parent | a28d5aff5466a55149b9e6f9cd908fcc225c25ff (diff) | |
| download | frameworks_base-f5201ab71ff4d104265ab126e86afc6b81da8011.zip frameworks_base-f5201ab71ff4d104265ab126e86afc6b81da8011.tar.gz frameworks_base-f5201ab71ff4d104265ab126e86afc6b81da8011.tar.bz2 | |
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
Diffstat (limited to 'telephony')
| -rw-r--r-- | telephony/java/com/android/internal/telephony/sip/SipConnectionBase.java | 4 | ||||
| -rwxr-xr-x | telephony/java/com/android/internal/telephony/sip/SipPhone.java | 19 |
2 files changed, 17 insertions, 6 deletions
diff --git a/telephony/java/com/android/internal/telephony/sip/SipConnectionBase.java b/telephony/java/com/android/internal/telephony/sip/SipConnectionBase.java index dc4b27b..d546a08 100644 --- a/telephony/java/com/android/internal/telephony/sip/SipConnectionBase.java +++ b/telephony/java/com/android/internal/telephony/sip/SipConnectionBase.java @@ -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); diff --git a/telephony/java/com/android/internal/telephony/sip/SipPhone.java b/telephony/java/com/android/internal/telephony/sip/SipPhone.java index 67f13bd..1968552 100755 --- a/telephony/java/com/android/internal/telephony/sip/SipPhone.java +++ b/telephony/java/com/android/internal/telephony/sip/SipPhone.java @@ -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 |
