720 Commits

Author SHA1 Message Date
Hung-ying Tyan
306137d97f SIP telephony cleanup.
+ Remove unused classes.
+ Remove unused imports.
+ Remove unused code.
+ add DEBUG flag.

Change-Id: Ie1236d909d971093b68b066d3d8c1857ac89f56f
2010-10-02 08:30:48 +08:00
Hung-ying Tyan
10e2120bdd Merge "Add CallManager/Phone.setEchoSuppressionEnabled()." into gingerbread 2010-10-01 14:52:00 -07:00
Dianne Hackborn
0a69f59760 Merge "Rub in a little 'ol log-b-gone." into gingerbread 2010-09-30 19:03:38 -07:00
Dianne Hackborn
cef65eeb03 Rub in a little 'ol log-b-gone.
Mmmmmm...  great fresh scent!

Change-Id: I050e70b31b5d4a9c6731f15a4b51a3620a33a78d
2010-09-30 18:27:22 -07:00
Jake Hamby
f51eadaf1f Typo fixes in comments and minor code cleanups.
* 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
2010-09-30 15:43:34 -07:00
Hung-ying Tyan
23f21600d0 Add CallManager/Phone.setEchoSuppressionEnabled().
Change-Id: I7bc6241e6fa815787799a53d6f3a076567edc361
2010-09-30 12:34:41 +08:00
Hung-ying Tyan
0e41230481 Catch exceptions in SipPhone.canTake().
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
2010-09-30 08:30:36 +08:00
Hung-ying Tyan
421c34c162 SipPhone: revise hangup() in SipCall and SipConnection.
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
2010-09-30 08:26:59 +08:00
David Brown
158d390f53 Implement contacts lookup (caller-id) for incoming SIP calls.
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
2010-09-28 17:47:36 -07:00
Hung-ying Tyan
624d5b4e8c SIP: add DisconnectCause.SERVER_ERROR
and fix how SipErrorCode.SERVER_ERROR is determinted from server response, not
from local exceptions.

http://b/issue?id=3041332

Change-Id: Idce67e29858d5c7573b98b7fa1fac074913d71d6
2010-09-28 14:54:13 +08:00
Chung-yih Wang
245475925e Fix the startAudio order for 3-way calls.
Change-Id: Ib387b4b1f641f9bf52dd6007d23aee08f0925811
2010-09-28 12:46:04 +08:00
Hung-ying Tyan
368d796e2e Fix build.
Change-Id: I30f2615bc080db2c672e0391fd8bc735de17fcbf
2010-09-28 12:05:40 +08:00
Hung-ying Tyan
2b4f5cfd9b Don't enter DISCONNECTING state when the call/connection is not alive
http://b/issue?id=3027719

Change-Id: I1b52418a3695e96b48538fbf14497e34d2cfdda9
2010-09-28 09:01:26 +08:00
Hung-ying Tyan
025a39af34 SIP: misc fixes
+ 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
2010-09-28 01:52:42 +08:00
Hung-ying Tyan
00a22064ef SipService: handle cross-domain authentication error
and add new CROSS_DOMAIN_AUTHENTICATION error code and OUT_OF_NETWORK
DisconnectCause.

http://b/issue?id=3020185

Change-Id: Icc0a341599d5a72b7cb2d43675fbddc516544978
2010-09-27 10:45:24 -07:00
Chung-yih Wang
bd2294204e Fix the unhold issue especially if one is behind NAT.
+call startAudio() when call is established.

Change-Id: Ib6a1e34017fb83007ce275da1991058e8b803833
2010-09-27 23:53:39 +08:00
John Wang
8f5a1211dc Merge "Add debug functions." into gingerbread 2010-09-26 13:53:33 -07:00
John Wang
55bc084bf4 Add debug functions.
Enable more debug in CallManager.

Change-Id: Iaf66e31dc67f7ca9123fe5d8b351a21b1ec8b987
2010-09-26 13:39:55 -07:00
Hung-ying Tyan
194bbcce9b SIP: longer timeout for making call, shorter for cancelling
http://b/3021865

Change-Id: I354ebcc00f1ac68e4b7b466745c36aeb314f9138
2010-09-25 06:09:00 +08:00
Hung-ying Tyan
84a357bb6a Refactoring SIP classes to get ready for API review.
+ 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
2010-09-24 10:06:59 +08:00
Chung-yih Wang
4c571a62b1 Fix the build.
Change-Id: I6e3f683be22ab834ca1b83a1dbb0b3acd62645d2
2010-09-21 13:38:17 +08:00
Chung-yih Wang
9779b714f4 Revert the ANSWERING state.
+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
2010-09-21 11:51:51 +08:00
John Wang
ee2ef3220f Merge "Use PhoneBase in the phone list." into gingerbread 2010-09-20 15:35:02 -07:00
Hung-ying Tyan
8544560ccc SipPhone: fix missing-call DisconnectCause feedback
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
2010-09-20 13:06:30 +08:00
Hung-ying Tyan
97963794af SIP: convert enum to static final int.
Converts SipErrorCode and SipSessionState.

Change-Id: Iee3a465649ea89d395b2336bbd673c25113e5f93
2010-09-20 09:51:31 +08:00
John Wang
0a30e454eb Use PhoneBase in the phone list.
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
2010-09-17 18:07:23 -07:00
John Wang
bd53554f8a Add debug function.
Change-Id: If2381b04b08876f78ac93833f848f099de5c6104
2010-09-17 13:53:45 -07:00
Hung-ying Tyan
1d1583573d SipPhone: do not append SIP domain to PSTN number
in the CallerInfo so that only PSTN number is shown in the call log.

http://b/issue?id=2982632

Change-Id: I414f01d16ce64ecb8da7c6943ea7f080bcfd2794
2010-09-17 16:00:31 +08:00
Hung-ying Tyan
afa583e655 SipAudioCall: expose startAudio()
so that apps can start audio when time is right.

Change-Id: I7ae96689d3a8006b34097533bc2434bc3814b82a
2010-09-17 15:58:18 +08:00
Hung-ying Tyan
9352cf1a4d Add timer to SIP session creation process.
+ 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
2010-09-17 13:31:05 +08:00
Chung-yih Wang
d8f3d16735 Add a new phone state ANSWERING.
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
2010-09-16 19:09:16 +08:00
Chung-yih Wang
94e498332a Fixing the NPE in SipPhone
bug id: http://b/2987816

Change-Id: Iee252eee0a5243b70ff0b6f287279f92235b5b2d
2010-09-15 19:39:01 +08:00
Hung-ying Tyan
5306e0a85d Merge "SIP: add PEER_NOT_REACHABLE error feedback." into gingerbread 2010-09-14 23:10:03 -07:00
Hung-ying Tyan
ae076d3981 SIP: add PEER_NOT_REACHABLE error feedback.
http://b/issue?id=3002033

Change-Id: Ib64b08919d214acbab89945ac19dc113a68e62ad
2010-09-15 11:30:45 +08:00
John Wang
59f9bae81d Complete event registration in CallManager.
1. Originally CallManager registers for all phone events provided by registerFor interface,

which will cause error msg such as "registerForXXX() in PhoneBase should not be called, CDMAPhone inactive."

for CDMA only events. Register for those events only if phone is CDMA phone.

2. Add registerForPostDialCharacter().

Note, we can't use notifyRegistrants() in handler since we need send

the character that is being processed in msg.arg1.

Change-Id: I48037c8a8e225bb82e203836a041f81f2445f4d8
2010-09-14 16:01:50 -07:00
jsh
2ec0e6fe1e Unhide GsmCellLocation.getPsc().
bug: 2465036
Change-Id: If071c4e0f1f3484c010ec908b02800361cbf8a86
2010-09-14 11:13:27 -07:00
John Wang
e7b92d7b53 Merge "Return immutable copies of private callList." into gingerbread 2010-09-14 10:28:33 -07:00
Hung-ying Tyan
13f6270eb1 SipAudioCall: use SipErrorCode instead of string in onError()
and fix callback in setListener().

Change-Id: Ic2622df992a2ad45cb1e3f71736f320897ae8fb3
2010-09-14 21:36:10 +08:00
John Wang
bc0e400d78 Return immutable copies of private callList.
Change-Id: I3da97acf89e044515e98fa04233dd378c32c250d
2010-09-13 19:10:21 -07:00
Hung-ying Tyan
d231aa880a SipService: deliver connectivity change to all sessions.
+ add DATA_CONNECTION_LOST to SipErrorCode
+ convert it to Connection.DisconnectCause.LOST_SIGNAL in SipPhone

http://b/issue?id=2992548

Change-Id: Ie8983c1b81077b21f46304cf60b8e61df1ffd241
2010-09-14 08:00:09 +08:00
Hung-ying Tyan
3d7606aa60 SIP: enhance timeout and registration status feedback.
http://b/issue?id=2984419
http://b/issue?id=2991065

Change-Id: I2d3b1dd3a70079ff347f7256f4684aea07847f4e
2010-09-13 17:45:39 +08:00
Hung-ying Tyan
25b52a2f97 SIP: remove dependency on javax.sip.SipException.
Change-Id: I77d289bef1b5e7f1ec0c0408d0bbf96c21085cd7
2010-09-13 16:50:12 +08:00
Jaikumar Ganesh
e442fb6c92 Merge "Register ServiceStateChanged to CallManager." into gingerbread 2010-09-10 15:54:19 -07:00
John Wang
d028bd0a5f Register ServiceStateChanged to CallManager.
Change-Id: I216bac222e1bfd93ad36c0aeafa85c232dd60abe
2010-09-10 15:23:21 -07:00
Wink Saville
887f2e401e Fix bug 2972138 Lost cell data connection and didn't get it back, DO NOT MERGE.
The problem was ConnectvityService was not notified if a permanent error
occurs on the default apn.

bug: 2972138
Change-Id: I7be17061695ae2ba3571d70f24dcc4fe96d9ede9
2010-09-10 10:50:31 -07:00
Hung-ying Tyan
903e103160 SIP: add SipErrorCode for error feedback.
Change-Id: I8b071d4933479b780a403d0bfa30511f4c23ca8f
2010-09-10 17:15:06 +08:00
John Wang
a48dc39bd5 Add hangupForegroundResumeBackground().
To fix bug 2968310.

Handle the operation of hangupForegroundResumeBackground while foreground call and background call come from different phones.

Change-Id: Id83ca1b75031a8391c95c7f8b2be40e9067dd4cd
2010-09-08 15:50:57 -07:00
Jake Hamby
bb37163323 Allow incoming SMS until internal storage is almost full.
Fix for bug 2382830: new incoming SMS should not be rejected when
running low on internal phone storage.

Testing revealed that the /data partition should have at least 256 KiB
available in order to prevent random app crashes (including system apps)
due to SQLite transaction failures. With 256 KiB free, the device should
safely boot without storage full errors. This takes into account the
36-40 KiB that the YAFFS2 filesystem reports as available even after
the partition has been completely filled. I've set the default full
threshold to 1 MiB to provide a generous safety margin.

For this bug, I changed the DeviceStorageMonitorService demon to send
two new hidden notifications for device storage "full" and "not full",
when the free space falls below the full threshold (default 1 MiB,
but configurable as a system setting), in addition to the existing
storage low/okay notifications sent when the storage crosses the threshold
of 90% full (also configurable).

The SMS code was changed to use these new notifications so that it can
accept messages until the data partition has been filled to the maximum
safe capacity rather than stopping when it hits 90% full. There should
be no negative impact on battery life because the additional check in
the storage polling service should be offset by an optimization to cache
the free threshold values which were previously being computed every time
through the loop.

While testing this change, I discovered that SMSDispatcher was being
instantiated twice, the first time in GSMPhone/CDMAPhone, and the second
time in SimSmsInterfaceManager / RuimSmsInterfaceManager. Changed the code
to pass the original SMSDispatcher to the Sim/RuimSmsInterfaceManager
constructor.

Change-Id: Ie0c6d05294778ab6ee42e0fa01313af96d824c77
2010-09-08 12:37:18 -07:00
Chung-yih Wang
6f0f870f16 Fix the dialing from contact for internet address.
the bug is http://b/issue?id=2982290

+Log outbound proxy address if exists for debugging.
2010-09-08 18:26:05 +08:00
Hung-ying Tyan
d580eee29b Merge "SipPhone: switch to its own phone type PHONE_TYPE_SIP." into gingerbread 2010-09-07 19:37:33 -07:00