82 Commits

Author SHA1 Message Date
Scott Main
02b1d685cc docs: revise javadocs for sip
add a package description, revise class descriptions and edit some method docs

Change-Id: Ice969a99c830349674c65d99e4b7a6f1d2f24a7e
2010-10-28 16:37:43 -07:00
Hung-ying Tyan
60c45d0269 Clean up pending sessions on incoming call in SipService
Bug: 3122186
Change-Id: I25c9aa19d138f6940a29025d54e7bc2ffb7daa29
2010-10-22 09:01:49 +08:00
Hung-ying Tyan
e87b644402 Add permission requirements to SipAudioCall and SipManager javadoc.
Bug: 3116259

Change-Id: I00a033794e9d3e1c2d2ccfe4e612cd50003ec2ee
2010-10-21 03:27:20 +08:00
Hung-ying Tyan
9b449e5606 Remove ringtone API from SipAudioCall.
(watch out auto-merge conflict for SipAudioCall).

Bug: 3113033, related CL: https://android-git/g/#change,75185

Change-Id: Ib48d3b990e229e0b341e47e10e76934e1a50d10f
2010-10-20 22:51:22 +08:00
Chung-yih Wang
4944fdd771 Periodically scan wifi when wifi is not connected and wifi lock is
grabbed in SipService.

bug: http://b/3077454
Change-Id: I153974325c29e0f927c8eb7fdbc4725aaf10087d
2010-10-19 14:09:30 -07:00
Hung-ying Tyan
0a6e717fb6 Handle dialing a SIP call to self.
Reply BUSY HERE response so server may redirect the call to the voice mailbox.

http://b/issue?id=3103072
http://b/issue?id=3109479

Change-Id: I81f5dd59ad87298dd9dda87084538ee460eabba8
2010-10-19 14:00:11 -07:00
Joe Onorato
431bb22695 Reduce logging.
Remember, the system and main logs are
    - Shared resources
    - Primarily for recording problems
    - To be used only for large grained events during normal operation

Bug: 3104855
Change-Id: I136fbd101917dcbc8ebc3f96f276426b48bde7b7
2010-10-19 15:08:05 -04:00
Chung-yih Wang
b4116c09fb Fix the incorrect environment variable name for the thread pool size.
bug: http://b/3099715
Change-Id: I531048414f22c8edcd9c4f815c12a0bdd6347640
2010-10-19 11:31:52 +08:00
John Huang
45bd8303fe Merge "Uncomment SIP/VOIP feature check in SipManager." into gingerbread 2010-10-18 13:41:04 -07:00
Hung-ying Tyan
a0cdfbf5b7 Uncomment SIP/VOIP feature check in SipManager.
http://b/issue?id=2971947

Change-Id: I3afa8eb03c4e347b382213dd388354365f766b2f
2010-10-18 19:48:04 +08:00
Chung-yih Wang
66cc5355a1 Set the thread pool size of NIST sip stack to one.
Set the thread pool size to one to fix the out-of-order packets
seen in sip service when the device is waken up from sleep.

bug:http://b/3099715
Change-Id: Ia169e3fde77488068c369e3345ecf6a6d8ddf792
2010-10-18 16:00:47 +08:00
Hung-ying Tyan
28f63c0689 SipService: add wake lock for incoming INVITE packets.
+ Keep the wake lock for 500ms. (Some measurements on N1 indicate 160~180ms
  needed to bring up InCallScreen but since INVITE doesn't come in frequently
  we can be more generous just to be safe.)
+ Move MyWakeupLock out of SipService so SipSessionGroup can use it without
  awkward inter-dependency with SipService.
  + Add acquire(int timeout) to be used to create the "timed" wake lock.

http://b/issue?id=3081828

Change-Id: Iffd1d78d1a5cae9f795252ada75310917095204d
2010-10-15 09:25:17 +08:00
Hung-ying Tyan
bd57eeafe0 SipService: add wake lock for multiple components.
+ Add MyWakeLock to maintain a global wake lock for multiple components.
  + Use a Set to store components that want to hold the lock.
  + When the first component enters the set, we grab the global wake lock.
  + When the set becomes empty, we release the global lock.
  + In places like no account being opened to receive calls, we reset the
    wake lock just to be safe from possible leakage.
+ Make MyExecutor aware of the wake lock. It will grab the wake lock on
  behalf of the task so that tasks don't need to worry about the lock.
  + Connectivity receiver is modified to be executed in MyExecutor.
  + WakeupTimer handler is already protected by AlarmManager's wake lock but
    all the timeout handlers that register themselves to the WakeupTimer are
    to be executed in MyExecutor to be protected by the wake lock.
  + Remove unnecessary code in the Keepalive and registration processes. Since
    both processes are executed in MyExecutor submitted by the WakeupTimer (as
    they are timeout handlers registered to the WakeupTimer), they don't need
    to add themselves to MyExecutor explicitly in their run() callbacks.
+ Make the keepalive process wait for at most 3 seconds instead of forever for
  server response. It could cause the wake lock to be held longer than necessary
  and is a potential cause for ANR.

http://b/issue?id=3081828

Related bug:
http://b/issue?id=3087153

Change-Id: Idee0ddb837e67daa0d5092c012bb242bd7c18431
2010-10-14 16:54:47 +08:00
Hung-ying Tyan
4f8fd10f76 Make SipService listen to WIFI state change events.
+ Grab a WIFI lock if any account is opened to receive calls and WIFI is enabled
+ Release the WIFI lock if no account is opened to receive calls or WIFI is
  disabled
+ Remove screen on/off event receiver

http://b/issue?id=3077454

Change-Id: Ifdf60a850bcf4106c75ec1e7563b26d8b33d7e92
2010-10-13 17:11:58 +08:00
Hung-ying Tyan
f1b1eec9de Merge "SipService: mScreenOn is flipped to wrong value." into gingerbread 2010-10-12 19:44:17 -07:00
Hung-ying Tyan
d6fc979edb SipService: mScreenOn is flipped to wrong value.
http://b/issue?id=3077454

Change-Id: I23b6f70730074689b939e449c2c202ce8ffb586f
2010-10-13 10:25:07 +08:00
Hung-ying Tyan
ebc886c857 Fix SipSessionGroup from throwing ConcurrentModificationException
http://b/issue?id=3087256

Change-Id: I67df64105db7c1295649f1f3ce77f99025ce3d44
2010-10-12 15:41:11 +08:00
Hung-ying Tyan
685b61b711 SipService: fix a missing switch-case break.
Change-Id: I638eecd8000293d4cb37b3595c02ca33df4924eb
2010-10-12 10:46:29 +08:00
Hung-ying Tyan
692cac9fdd SipHelper: add debug log for challenge responses.
Change-Id: If0143a0f076ef30b1b8998e477df933923bfa7b1
2010-10-11 11:26:50 +08:00
Chung-yih Wang
c7fda188ae Do not release the wifi lock if the screen is off.
We need to be able to receive calls if the device is able to
reassociate with any AP later on.

Change-Id: Ib7aafb98386bf250ed9b5ec0a5b519594efa1649
2010-10-09 08:37:40 +08:00
Hung-ying Tyan
aa562ffdb8 SipService: add permission check for using API
Change-Id: Ifd85ba07f1b913011cb3e80e5027c67bfe3db280
2010-10-08 11:57:18 +08:00
Hung-ying Tyan
08faac3c26 Unhide SIP API.
Change-Id: I09468e3149a242a3b1e085ad220eb74f84ac6c68
2010-10-08 08:31:42 +08:00
Hung-ying Tyan
9db99a4dc1 Make SipService broadcast SIP_SERVICE_UP when it's up.
http://b/issue?id=3062010

Change-Id: I13419fa3a8fdfba1977260f703e4dcaa42a6606c
2010-10-07 09:15:25 +08:00
Hung-ying Tyan
ee8a884f35 SIP: Fix busy authentication loop.
Add a retry count and give up after two attempts.
Also stop auto registration when server is unreachable.
And rename onError() to restartLater() for better readability.

http://b/issue?id=3066573

Change-Id: Icfa65c58546a1e2bf8e59e29584a3926c53c479b
2010-10-07 07:04:46 +08:00
Hung-ying Tyan
718e0033e6 Merge "SIP: add SERVER_UNREACHABLE error code." into gingerbread 2010-10-04 23:03:26 -07:00
Hung-ying Tyan
c6548fd9ed SIP: add SERVER_UNREACHABLE error code.
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
2010-10-05 13:30:28 +08:00
Hung-ying Tyan
323d3671ac SipService: supply PendingIntent when open a profile.
The SipService used to take an action string and broadcasts an intent with
that action string when an incoming call is received. The design is not safe
(as the intent may be sniffed) and inflexible (can only received by
BroadcastReceiver). Now we use PendingIntent to fix all these.

Companion CL: https://android-git.corp.google.com/g/#change,71800

Change-Id: Id12e5c1cf9321edafb171494932cd936eae10b6e
2010-10-05 10:13:25 +08:00
Hung-ying Tyan
9ea96c6cad SIP: minor fixes.
+ Log error instead of crashing app process in SipManager's ListenerRelay.
+ Terminate dialog and transaction in SipSessionGroup.reset().
+ Remove redundant reset() in SipSessionGroup.

Change-Id: Ifbf29d2c9607ffe1a1a50b0c131ee3a4e81a0d0e
2010-10-04 08:07:42 +08:00
Hung-ying Tyan
b031957d52 SipService: turn off verbose logging
Change-Id: I264662ba17d215d532f58b6ee793e569fe67c334
2010-10-01 07:09:30 +08:00
Hung-ying Tyan
9e1d308e99 Add uri field to SipManager.ListenerRelay
in case mSession is not available.

Change-Id: Ifee2c129e48aa1177f648f176413ab6aa5606770
2010-09-30 15:00:34 +08:00
Hung-ying Tyan
6a53489ae5 SipService: add UID check.
Only allow creator or radio user to access profiles.

Change-Id: I548938f117926bcc878419142d1b5d818a4e70df
2010-09-30 12:40:11 +08:00
Chia-chi Yeh
0a537b78d3 Merge "RTP: Enable AMR codec." into gingerbread 2010-09-29 18:32:24 -07:00
Hung-ying Tyan
2365b78e64 Merge "SIP: misc fixes." into gingerbread 2010-09-29 18:12:12 -07:00
Chia-chi Yeh
f88fc1fa90 RTP: Enable AMR codec.
Change-Id: I49e6bdc1b67306b44173f2f346f8372a50264870
2010-09-30 08:55:12 +08:00
Hung-ying Tyan
fb3a98b1d8 SIP: misc fixes.
+ Fix keepalive timer event leak due to the race between stopping timer and
  the async'ed timeout handler
+ SipSessionImpl: set state before handling an event to ensure we get correct
  state when some error occurs during handling the event.
+ Fix potential NPE in SipManager.ListenerRelay.getUri().

Change-Id: I021ee34f83059fd4fbb64b30bea427a5462aa51b
2010-09-30 08:10:17 +08:00
Chia-chi Yeh
f4ae94229d RTP: Enable GSM-EFR codec.
Change-Id: I9d84009e4557a0a82c1f9d7d543922741be97c77
2010-09-30 03:07:57 +08:00
Chia-chi Yeh
e006e4d2c9 Merge changes Iae1913fb,I38dbefef into gingerbread
* changes:
  RTP: Enable GSM codec.
  RTP: Refactor out G711 codecs into another file.
2010-09-28 19:40:59 -07:00
Chia-chi Yeh
a6f950c968 RTP: Enable GSM codec.
Change-Id: Iae1913fb0643f1c66b5d16f24d51924d363e5ef5
2010-09-29 10:36:52 +08:00
Hung-ying Tyan
6057cd00d9 SIP: Feedback any provisional responses in addition to RING
The only exception is TRYING.
Also remove an unused import in SipSessionGroup.

http://b/issue?id=3021865

Change-Id: I160982b0c4b417362f1fb961217db90c3a585ce5
2010-09-29 02:26:47 +08: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
Hung-ying Tyan
7e54ef71db Move SipService out of SystemServer to phone process.
Companion CL: https://android-git/g/#change,70187
http://b/issue?id=2998069

Change-Id: I90923ac522ef363a4e04292f652d413c5a1526ad
2010-09-28 05:19:35 +08:00
Hung-ying Tyan
fd144d7667 Merge "SipAudioCall: remove SipManager dependency." into gingerbread 2010-09-27 10:54:27 -07: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
Hung-ying Tyan
3a4197e642 SipAudioCall: remove SipManager dependency.
Change-Id: I2dc8bf427e52f64529ee0e0261362b975a8917c6
2010-09-24 23:27:40 +08:00
Chia-chi Yeh
658bec9567 SDP: remove dead code.
Change-Id: I2a5764a2b9cabc54b0ac18666e494c1cb39c4e9b
2010-09-24 10:17:42 +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
repo sync
0b7d6de155 Fix the build.
Change-Id: I82210cb2d41f532583f83ea17e6f2d8d49280a30
2010-09-23 14:52:24 +08:00
repo sync
84f7f6ba39 SIP: Make SipAudioCallImpl use SimpleSessionDescription instead of javax.sdp.
Change-Id: I7efff4f29ca84c3e7c17ef066b7186b514a777b2
2010-09-23 14:07:45 +08:00
Chia-chi Yeh
e6c0c10958 SDP: Add a simple class to help manipulate session descriptions.
Change-Id: I1631ee20e8b4a9ad8e2184356b5d13de66e03db1
2010-09-23 13:31:01 +08:00
Chia-chi Yeh
37adc522f6 RTP: Add two getters to retrieve the current configuration from AudioStream.
Change-Id: Iff588130653242f6ddd6a6b663df775ecb276768
2010-09-23 03:34:14 +08:00