History log of /frameworks/base/voip/java/com/android/server/sip/SipService.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2dd9134c6b2da47f4816bc0f72a0e4924aca4f84 04-Apr-2012 Chia-chi Yeh <chiachi@android.com> SIP: push the logic of finding local address down to SipSessionGroup.

This allows different accounts binding on different IP addresses,
such as one on IPv4 and another on IPv6.

Bug: 4169057
Change-Id: I0bb36669394c281330091673fa338adea8f782cd
/frameworks/base/voip/java/com/android/server/sip/SipService.java
c2bd6162eddad0cdfdafc037142e043680ffa705 28-Dec-2011 Chia-chi Yeh <chiachi@android.com> SipService: grab Wi-Fi lock only when necessary.

Change-Id: Ie432049156e70b6748426b959b653f21bfc504a1
/frameworks/base/voip/java/com/android/server/sip/SipService.java
cb6ee06f62c20ae036a206667097f20b837b11ab 19-Nov-2011 Chia-chi Yeh <chiachi@android.com> SIP: turn off verbose logs.

Bug: 5616713
Change-Id: Iaf2e6878731d10d7f4f2a7cd8af71f4517780642
/frameworks/base/voip/java/com/android/server/sip/SipService.java
ee59e6a9fc69241b286acb7b55a22b8393c81222 28-Sep-2011 Chia-chi Yeh <chiachi@android.com> SipService: handle connectivity changes correctly.

This patch assumes that for the same network type,
there MUST be a DISCONNECTED between two CONNECTEDs.
Also removes the Wi-Fi scanning since the framework
already handles this when a WifiLock is held.

Bug: 4283795
Change-Id: I08481e70c651cffcbb516c8cc6584c919078fa4f
/frameworks/base/voip/java/com/android/server/sip/SipService.java
d17b6d526648c372be761097e55c19767d5dba7d 09-Sep-2011 Chia-chi Yeh <chiachi@android.com> SIP: fix keep-alive measurement and increase the timeout.

Bug: 5226511
Change-Id: I1283790581496b1ff4e583a8d9379cdc39f78c20
/frameworks/base/voip/java/com/android/server/sip/SipService.java
9edfa107575b5905c9ae0a2fa0d6f0cc19595300 01-Jul-2011 Hung-ying Tyan <tyanh@google.com> Keep last known keepalive interval to avoid duplicate effort.

The current implementation always starts with default minimum interval when
the measurement process starts. By keeping last known good interval, we can
save the time in re-measurement.

Change-Id: I8f1720acafaa7e101855fe0c66d5c7b0e578e0d7
/frameworks/base/voip/java/com/android/server/sip/SipService.java
f89654dd2847cc574dfa6a44806289f7e69e17b7 01-Jul-2011 Hung-ying Tyan <tyanh@google.com> Do not hold wifi lock when SIP is also available over mobile network.

Bug: 3111564
Change-Id: Ifc76e5c378d620e40ce4adf6ffa20807e9750fdb
/frameworks/base/voip/java/com/android/server/sip/SipService.java
129d0b08fdf9588f7c8feeb9db3def30973c092e 29-Jun-2011 Hung-ying Tyan <tyanh@google.com> Make NAT port timeout measurement more flexible.

In two ways:
(1) When there's a session timeout, restart the measurement at a later time
instead of just stalling.
(2) When there's a port change, do not re-measure the interval if the current
interval works well in the past. We keep success count and decrement it
by half when there's a port change. When the count is below a threshold,
we restart the measurement process.

Change-Id: I7256464435a5e2d2a239bfccaa004e9ceb1d9ce5
/frameworks/base/voip/java/com/android/server/sip/SipService.java
e65f3a896f03bba5327ce4f3989c0422855450ca 24-Jun-2011 Hung-ying Tyan <tyanh@google.com> Restart NAT port timeout measurement when keepalive fails and other fixes

Misc keepalive fixes including:
+ Restart NAT port timeout measurement when keepalive fails. The max interval
is set to the current keepalive interval.
+ When exception occurs during sending a keepalive, restarts registration.
+ When exception occurs during measurement, retry for a limited times before
giving up.

Change-Id: I7aa787a5ec7c4c9b4334aa1017371d9049b3520c
/frameworks/base/voip/java/com/android/server/sip/SipService.java
12750701d0f90ed0166f5ddcf588c1235efe830a 23-Jun-2011 Hung-ying Tyan <tyanh@google.com> Keep the keepalive process going after NAT port is changed.

This is a regression from the CL that makes the keep-alive process a reusable
component.

Change-Id: I1d580588e9e303c532bf620056fc0fe88a2fdcda
/frameworks/base/voip/java/com/android/server/sip/SipService.java
4a267a9158a62010cd76ab93681586ea8e3d6015 22-Jun-2011 Hung-ying Tyan <tyanh@google.com> Move the keepalive process to SipSessionImpl and make it reusable.

Reuse the new component in the original keepalive process and the NAT port
mapping timeout measurement process.

This is the foundation for fixing the following bug.

Bug: 3464181

Change-Id: If7e951c000503fa64843942ad062c4d853e20c8d
/frameworks/base/voip/java/com/android/server/sip/SipService.java
5621554033089d1c07d53f56e8cd9787125d6e28 14-Jun-2011 Hung-ying Tyan <tyanh@google.com> Move WakeupTimer out of SipService.

This is to prepare to move keepalive process to SipSessionGroup before fixing
the following bug.
Bug: 3464181

Change-Id: I57d8f6effad76706b5a76e1269c53d558db88ae4
/frameworks/base/voip/java/com/android/server/sip/SipService.java
bb0a989c17cd6135c8d9c8566507521d4d927fe0 10-Mar-2011 Chung-yih Wang <cywang@google.com> Add KeepAlive Interval Measurement.

Change-Id: Id5ea2fcfa0bcd45198e773a5842d39eacc8ae400
/frameworks/base/voip/java/com/android/server/sip/SipService.java
f46013b67219b0b2e95fcebb0e51e9816ab0ce94 18-Jan-2011 Hung-ying Tyan <tyanh@google.com> Merge "Merge "SipService: registers broadcast receivers on demand."" into honeycomb
e9b54077274d0c4066093cd90dabca59b3d9a157 07-Jan-2011 Hung-ying Tyan <tyanh@google.com> Merge "SipService: registers broadcast receivers on demand."

The previous implementation registers receivers when SipService starts up.
If the user doesn't use SIP at all, SipService will still process connecivity
and wifi state change events, which involves holding wake lock and thus
consumes power unnecessarily.

With this CL, SipService is completely idle if the user doesn't use SIP at all.
It registers receivers only when at least one account is opened.

Bug: 3326998
Change-Id: Idea43747f8204b0ccad3fc05a1b1c0b29c9b2557
/frameworks/base/voip/java/com/android/server/sip/SipService.java
40f2cacbc9ab00d34c2a4f49519921bbf6b5293a 06-Jan-2011 Hung-ying Tyan <tyanh@google.com> Merge "SipService: release wake lock for cancelled tasks."

Bug: 3327004
Change-Id: Ice47f973b5f2969f26eaa83a3e4795b2e153ba8b
/frameworks/base/voip/java/com/android/server/sip/SipService.java
262cdfca7a0940735d3a08779e2d01bfdf639294 02-Nov-2010 Hung-ying Tyan <tyanh@google.com> Correct SipService.isOpened() implementation.

Make it return true for all existing accounts.
Rename mOpened to mOpenedToReceiveCalls to make it less confusing.

Bug: 3155849
Change-Id: I327f411bf76afd73434ad1fa2ffef3db1e35d778
/frameworks/base/voip/java/com/android/server/sip/SipService.java
60c45d026907edbe340c8cf9e1723b3dd34f8b6a 22-Oct-2010 Hung-ying Tyan <tyanh@google.com> Clean up pending sessions on incoming call in SipService

Bug: 3122186
Change-Id: I25c9aa19d138f6940a29025d54e7bc2ffb7daa29
/frameworks/base/voip/java/com/android/server/sip/SipService.java
4944fdd771d2a629b3c1af8097df5eb2de02d9ee 19-Oct-2010 Chung-yih Wang <cywang@google.com> Periodically scan wifi when wifi is not connected and wifi lock is
grabbed in SipService.

bug: http://b/3077454
Change-Id: I153974325c29e0f927c8eb7fdbc4725aaf10087d
/frameworks/base/voip/java/com/android/server/sip/SipService.java
0a6e717fb6846f66b8dc853e079f2166307bfc60 18-Oct-2010 Hung-ying Tyan <tyanh@google.com> 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
/frameworks/base/voip/java/com/android/server/sip/SipService.java
431bb2269532f2514861b908d5fafda8fa64da79 19-Oct-2010 Joe Onorato <joeo@google.com> 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
/frameworks/base/voip/java/com/android/server/sip/SipService.java
28f63c06894b9ca9252f43bc54a098c0a785d4b4 14-Oct-2010 Hung-ying Tyan <tyanh@google.com> 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
/frameworks/base/voip/java/com/android/server/sip/SipService.java
bd57eeafe034cf850225db403700b5dc5db5ebcc 13-Oct-2010 Hung-ying Tyan <tyanh@google.com> 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
/frameworks/base/voip/java/com/android/server/sip/SipService.java
4f8fd10f761d562ad3a4e01e78fc7046d3c9936c 13-Oct-2010 Hung-ying Tyan <tyanh@google.com> 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
/frameworks/base/voip/java/com/android/server/sip/SipService.java
d6fc979edbba6c65cac1085fb5f2b8b972713758 13-Oct-2010 Hung-ying Tyan <tyanh@google.com> SipService: mScreenOn is flipped to wrong value.

http://b/issue?id=3077454

Change-Id: I23b6f70730074689b939e449c2c202ce8ffb586f
/frameworks/base/voip/java/com/android/server/sip/SipService.java
685b61b7117dbae94c5ceb5de4546ad23a4d3d0f 12-Oct-2010 Hung-ying Tyan <tyanh@google.com> SipService: fix a missing switch-case break.

Change-Id: I638eecd8000293d4cb37b3595c02ca33df4924eb
/frameworks/base/voip/java/com/android/server/sip/SipService.java
c7fda188aee215f1842111f5b9f711f7b844b4d4 09-Oct-2010 Chung-yih Wang <cywang@google.com> 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
/frameworks/base/voip/java/com/android/server/sip/SipService.java
aa562ffdb8f728569e6957b742f271eb7303f878 08-Oct-2010 Hung-ying Tyan <tyanh@google.com> SipService: add permission check for using API

Change-Id: Ifd85ba07f1b913011cb3e80e5027c67bfe3db280
/frameworks/base/voip/java/com/android/server/sip/SipService.java
9db99a4dc10ac0d5d3751f03ea51c0fed217d2f8 07-Oct-2010 Hung-ying Tyan <tyanh@google.com> Make SipService broadcast SIP_SERVICE_UP when it's up.

http://b/issue?id=3062010

Change-Id: I13419fa3a8fdfba1977260f703e4dcaa42a6606c
/frameworks/base/voip/java/com/android/server/sip/SipService.java
ee8a884f3504c981be8a1d6888b4590a0a394e05 06-Oct-2010 Hung-ying Tyan <tyanh@google.com> 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
/frameworks/base/voip/java/com/android/server/sip/SipService.java
323d3671ac813df8dd173f3f4d6cb681ee29f740 05-Oct-2010 Hung-ying Tyan <tyanh@google.com> 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
/frameworks/base/voip/java/com/android/server/sip/SipService.java
b031957d528840df0ccbd28651ecbf3c64d42718 01-Oct-2010 Hung-ying Tyan <tyanh@google.com> SipService: turn off verbose logging

Change-Id: I264662ba17d215d532f58b6ee793e569fe67c334
/frameworks/base/voip/java/com/android/server/sip/SipService.java
6a53489ae594d7cc373a00687d6ea2f23d0634df 13-Sep-2010 Hung-ying Tyan <tyanh@google.com> SipService: add UID check.

Only allow creator or radio user to access profiles.

Change-Id: I548938f117926bcc878419142d1b5d818a4e70df
/frameworks/base/voip/java/com/android/server/sip/SipService.java
fb3a98b1d8d0ad040980d509c4c5341928b9460b 30-Sep-2010 Hung-ying Tyan <tyanh@google.com> 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
/frameworks/base/voip/java/com/android/server/sip/SipService.java
7e54ef71db3320a751571bba5259fba816399421 25-Sep-2010 Hung-ying Tyan <tyanh@google.com> Move SipService out of SystemServer to phone process.

Companion CL: https://android-git/g/#change,70187
http://b/issue?id=2998069

Change-Id: I90923ac522ef363a4e04292f652d413c5a1526ad
/frameworks/base/voip/java/com/android/server/sip/SipService.java