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
Currently the SipPhone class manually creates a CallerInfo object, and
populates it with very basic info from the SIP address, when making an
outgoing call.
But this is no longer needed, now that we do caller-id lookup properly for
SIP addresses (based on real data from the contacts database -- see
bug 3004127 and change https://android-git.corp.google.com/g/70555).
And in fact the presence of this initial CallerInfo object actually
*disabled* contacts lookup for outgoing calls (bug 3072731).
This change removes all that CallerInfo-related stuff from SipPhone.
(Thus SipPhone is now consistent with the other phone objects, like
GSMPhone and CDMAPhone, in that it doesn't muck with CallerInfo data at
all, but instead lets the phone app do it.)
Also, update isUriNumber() to handle "%40" in case the passed-in string is
URI-escaped. (Nobody depends on that now, but it may be needed in the
future, and it's certainly safe to say that "%40" will never be found in a
legal PSTN number.)
TESTED:
- Outgoing SIP call:
- In-call UI shows correct contact info
- After the call, Call Log shows correct contact info
- Incoming SIP call:
- In-call UI shows correct contact info
- After the call, Call Log shows correct contact info
- PSTN calls:
- correct contact info everywhere
Bug: 3072731
Change-Id: I51434e4e5ad66d2e8ff51fc220001fb74485f0f5
Add mock ril controller commands and test cases:
- testStartIncomingCallAndHangup: test start incoming cal and hangup remote
- testSetCallTransitionFlag: test call transition flag and call state transition
Change-Id: I25ff8ef7931159ef7101b5e8638b9b7438db4f66
Using mimeType causes an IPC request to contacts which can
be slow. This can cause an ANR of the Phone app. This change
parses the URL and to decide which column to use for the person_id
and thus should not cause an ANR.
bug: 3060704
Change-Id: I750c72746c7269e162f0338c0a3e00230a600519
+ CallManager: fix getFirstActiveRingingCall(), getActiveFgCall(), getFirstActiveBgCall()
+ Set DisconnectCause to be INCOMING_REJECTED when a call is rejected
http://b/issue?id=3049671
Change-Id: Ica1d81ca4b71ab0ceb2ab437b82bbb4ccf86fe92
Adding changes to be able to have access to missing data to SUPL
(celld, imsi, WAP_PUSH and SMS)
Change-Id: I0207f7f7ea6595ed3fd7021cb732feddf52e4cf9
Signed-off-by: Mike Lockwood <lockwood@android.com>
Let SipSession return it when UnknownHostException is caught.
Add DisconnectCause.SERVER_UNREACHABLE in Connection and have SipPhone report
it when receiving SERVER_UNREACHABLE from SipSession.
http://b/issue?id=3061691
Change-Id: I944328ba3ee30c0a9386e89b5c4696d4d9bde000
* Fix some typos in Javadoc and log messages.
* Remove redundant initializer in BluetoothAdapter.readOutOfBandData()
* Use canonical "UTF-8" charset name instead of "UTF8" in
BluetoothDevice.convertPinToBytes()
Change-Id: I58cd5dc48a7ad0053d204c5f590b4b3d438d8672
Exceptions may throw during canTake() as the peer may cancel the call and
result in a race with this method call.
Change-Id: I61903d601d8f9b2dcb4c4fbe1586e2c1a1069109
http://b/issue?id=3033868
Make them DISCONNECTED immediately. Don't enter DISCONNECTING state and wait
until SipSession ends the session. SipSession will get timed out eventually
but PhoneApp/user don't need to know this detail and wait.
This should fix the bug:
http://b/issue?id=3027719
Change-Id: Ida5a1bd09d08b9d591721384b4978127619aab51
CallerInfoAsyncQuery can now handle SIP addresses in addition to regular
phone numbers: if the number passed in to startQuery() is actually a "URI
number", we now treat it as a SIP address and look it up directly in the
Data table.
If it's a regular phone number, the behavior is unchanged: we use the
PhoneLookup table as before.
This piece of the fix covers only the contact lookup for incoming calls;
we still need some more cleanup of the CallerInfo class in order to get
the call log working.
Bug: 3004127
Change-Id: I0fcb80f9de5b8ecf99d31ee92e0889ddb07216fd
and fix how SipErrorCode.SERVER_ERROR is determinted from server response, not
from local exceptions.
http://b/issue?id=3041332
Change-Id: Idce67e29858d5c7573b98b7fa1fac074913d71d6
+ check REQUEST_TERMINATED response on INVITE not CANCEL,
+ check if a TransactionTerminatedEvent matches the ongoing transaction,
+ add log to track SipConnection disconnect events.
Change-Id: I28325be62ac44e4a7507d3c4b5b78b066c0ea2ad
and add new CROSS_DOMAIN_AUTHENTICATION error code and OUT_OF_NETWORK
DisconnectCause.
http://b/issue?id=3020185
Change-Id: Icc0a341599d5a72b7cb2d43675fbddc516544978
+ replace SipAudioCall and its Listener interfaces with real implementations,
+ remove SipAudioCallImpl.java, most of it is has become part of SipAudioCall,
+ add SipSession and its Listener classes to wrap ISipSession and ISipSessionListener,
+ move SipSessionState to SipSession.State,
+ make SipManager keep context and remove the context argument from many methods of its,
+ rename SipManager.getInstance() to newInstance(),
+ rename constant names for action strings and extra keys to follow conventions,
+ set thread names for debugging purpose.
Change-Id: Ie1790dc0e8f49c06c7fc80d33fec0f673a9c3044
+fix the unknown call flash for answering an incoming call and
updating the screen if the background call got dropped.
+change the getFirstActiveBgCall to return the call if the state
is not IDLE. This will help to fix unknown flash if the background
call got dropped.
Change-Id: I9803ccebd919acbd5296e7dfde7dc5f29cc9f180
also fix delivering bad news before closing a SipAudioCallImpl object so that
apps can get the current audio-call object state before it's closed:
http://b/issue?id=3009262
Change-Id: I94c19dae8b4f252de869e614ec462b19b4ff2077
For bug 3001613.
Only use PhoneBase (not PhoneProxy) in CallManager.
Both PhoneBase and PhoneProxy implement Phone interface,
such as dial(). The real implementation, for
example in GSM, is in GSMPhone extending from PhoneBase.
So that foregroundCall.getPhone() returns GSMPhone obj. On the other hand,
PhoneFactory.getDefaultPhone() returns PhoneProxy obj, which has a class
member of GSMPhone.
Therefore for phone returned by PhoneFacotry, which is used by PhoneApp,
phone.getForegroundCall().getPhone() != phone
Change-Id: I8a304098dd86762aaee56fb3c8b76c883e8c9a4f
+ add timer parameter to ISipSession.make/changeCall(),
+ add timer paramter to SipAudioCall.make/answer/hold/continueCall()'s,
+ add timer parameter to SipManager.makeAudioCall(),
+ modify implementation in SipSessionGroup, SipAudioCallImpl accordingly,
+ make SipPhone to use it with 8-second timeout.
http://b/issue?id=2994748
Change-Id: I661a887e5810087ddc5e2318335e2fa427f80ec6
The state ANSWERING is set when we answer an incoming sip call, i.e.
sending a 'OK' response to the peer. The state will be set to ACTIVE
once the 'ACK' from peer is received.
Change-Id: I84ee3cc68222eb34e032896ce23f7431d4ad774a