77 Commits

Author SHA1 Message Date
Hall Liu
ffa4a812f8 Add @TestApi annotations to CS-side RTT APIs for CTS
CTS tests need both the in-call and connection service sides of the APIs
to test Telecom functionality properly, so annotating the hidden-for-now
connection service APIs with TestApi.

Test: part of CTS
Change-Id: I3711729d7e8c8aff2735f4da9fbd04bcca6b4942
2017-03-30 13:49:12 -07:00
Hall Liu
6bb5110f2c Merge "Add further Connection-side APIs for RTT (part 2)" 2017-03-07 21:44:43 +00:00
Hall Liu
b64ac4c57a Add further Connection-side APIs for RTT (part 2)
Add methods and callbacks to facilitate local and remote RTT initiation
and termination in the middle of a call. Adds @hide Connection-side APIs
to communicate with the ConnectionService, as well as plumbing for
RemoteConnections.

Test: manual, through telecom testapps
Merged-In: Ia80604b7dff8586ff222dbccdbe55e91aab02178
Change-Id: Ia80604b7dff8586ff222dbccdbe55e91aab02178
2017-03-06 16:48:24 -08:00
Tyler Gunn
159f35c8e4 API review cleanups/changes.
- Change onCreateIncomingConnectionFailed/onCreateOutgoingConnectionFailed
to accept the connection mgr phone account as the first parameter.
- For the video APIs, pass the target SDK of the caller into along so
that the Telecom permission check can have fallback behavior for older API
versions.
- Add guidance for how UX should be shown in onShowIncomingCallUi API.
API guidance follows how the Dialer app shows its notification and full
screen UX.

Test: Manual, CTS.
Bug: 35767711
Bug: 35767096
Change-Id: Ib343f0eda1a4d067a38c553f33f140b4efcf3e48
2017-03-06 11:04:55 -08:00
Tyler Gunn
d736a6b2c2 Merge "Self managed CS implementation." 2017-02-06 22:32:14 +00:00
Tyler Gunn
cd6ccfd23c Framework fixes to support VoLTE conf calls via RemoteConnectionServices.
Fixing some issues with the addExistingConnection and addConference APIs
on ConnectionService.  When a connection manager relays the addition of
an existing connection or a conference to Telecom, it will assign a new
ID to the new connection/conference.  Due to how RemoteCSes work, the
Connection/Conf will be added directly via TelephonyConnectionService and
also via the connection manager's connection service.  Because the ID
changes, we ended up adding these twice. Conferences weren't a problem in
the GSM conference case because the TElephonyConnectionService's
ConnectionServiceWrapper didn't know of the IDs for the children of the
conference.  However, due to how the existing connections work its not the
case for VoLTE conferences.  To mitigate this, I'm passing the original
connection/conference ID to the connection manager via extras (ugh) and
using this to ensure that when the new existing connection/conference is
added to telecom that the same ID is used.  This ensures that we can
properly de-dupe the requests from TelephonyConnectionService and the
connection manager.

Also, there was some missing code in RemoteConnectionService which would
cause it to not properly track existing connections.

Bug: 31464792
Change-Id: I436f4438fd000ea48ebea7ceb75105bd3f456e46
2017-02-06 12:31:53 -08:00
Tyler Gunn
44e019140e Self managed CS implementation.
Add required AIDL changes to pass along connection fails.

Test: Manual
Bug: 34159263
Merged-In: I0a24ff786b2867aa4e19ac79959df54a04983251
Change-Id: I0a24ff786b2867aa4e19ac79959df54a04983251
2017-02-06 16:20:12 +00:00
Tyler Gunn
f50354363c Adding self-managed connection service APIs.
1. Adding new APIs for self-managed connection services.
2. Adding Telecom package-level documentation.

Test: Manual (unit, cts pending; this is just scaffolding for now)
Bug: 34159263
Change-Id: Ic226ec8bfcb2fbcc02fe802b47499e47aab17d0a
2017-01-18 14:44:43 -08:00
Christine Hallstrom
2830ce9a09 Add ability to set supported audio routes on phone accounts and connection
The set audio routes are used by Telecom to restrict where the audio may
be routed to. For example, an account can specify that calls may not be
routed over bluetooth headsets, which will prevent a new call from being
routed to this source.

This is a cherry-pick of abandoned ag/1521009.

Bug: 32958838
Change-Id: Idd5e4d38b157f11454f3d991385644f2f384596e
2016-12-13 17:48:50 -08:00
Brad Ebinger
90b6e78657 Merge "Readability improvements in Logging"
am: d51df736f6

Change-Id: If7bb6955d615b8369ac41d3bb8ba96aa0cc752d2
2016-11-17 19:29:17 +00:00
Brad Ebinger
0c3541be65 Readability improvements in Logging
We now truncate Session method paths and IDs based on the Logging level
to improve Session Logging readability in logcat. If another external
session is started off of an existing external Session, the preceding
histories are replaced with "..." so that the Session information is not
overwhelming.

Bug: 26571395
Test: Unit Tests and manual tests pass
Change-Id: I9ffda3d64f1072fa6228a82a86116a5e47d18c96
2016-11-16 11:05:15 -08:00
Brad Ebinger
b32d4f8b5c Modify AIDLs to include Session.Info
Modifies the IConnectionService.aidl file to include Session.Info
information to pass from Telecom to Telephony, which is used to start
external Sessions in Telephony from Telecom.

Test: Manual testing and Unit Tests pass
Bug: 26571395
Change-Id: Ia09a0abfa13d5167542d4c67465ea9aa1930b58b
2016-10-28 12:14:24 -07:00
Brad Ebinger
3445f82907 Modify AIDLs to include Session.Info
Modifies the IConnectionService.aidl file to include Session.Info
information to pass from Telecom to Telephony, which is used to start
external Sessions in Telephony from Telecom.

Test: Manual testing and Unit Tests pass
Bug: 26571395
Change-Id: Ia09a0abfa13d5167542d4c67465ea9aa1930b58b
2016-10-27 16:11:18 -07:00
Cuihtlauac ALVARADO
0e5042e751 Merge "Fix parameter description" am: 750b523aa2 am: df5f3e6db8
am: b2a1ee15c9

Change-Id: I97356fde75e28e6074a819814353070a7e3327c0
2016-09-20 00:12:10 +00:00
Cuihtlauac ALVARADO
0b3b2a5f3b Fix parameter description
Correct parameter description text according to method name.

Change-Id: If6bd8254386a84efd338b58797c2c338ccb513b7
2016-09-13 14:49:41 +02:00
Tyler Gunn
c96b5e0873 Finalize MEP functionality.
1) Finish plumbing of PULLING_CALL state.
2) Add new disconnect cause used when maximum number of calls across
all devices has been reached.
3) Add PII mask for toString of ImsExternalCallState.

Bug: 29522023
Change-Id: I78a0a9f3c3d846cfc58a1c5bcc6f105027602cbc
2016-07-11 10:33:37 -07:00
Chenjie Luo
7e745ec49c Add null pointer check in removeConnection am: e370b538eb
am: 58642e6545

* commit '58642e65455ee9456993a2f6386402fbcec68ab8':
  Add null pointer check in removeConnection

Change-Id: Ia4d14a664c9869d1065313db6795ac4e72dee59d
2016-05-18 20:35:51 +00:00
Chenjie Luo
58642e6545 Add null pointer check in removeConnection
am: e370b538eb

* commit 'e370b538ebb6ca1072f270aee3003faaa0d1deb2':
  Add null pointer check in removeConnection

Change-Id: I7b615a8f7c7a89617c4f748ad74007ec73db6784
2016-05-18 20:29:17 +00:00
Chenjie Luo
e370b538eb Add null pointer check in removeConnection
Bug: 28607777
Change-Id: I199ed75740796540d243ad9f507ab2511c9ed3c1
2016-05-12 17:00:27 -07:00
Tyler Gunn
720c664401 Add connection properties to Connections.
- Per suggestion of API council, moving properties of a Connection from
CAPABILITIES_* to PROPERTIES_*.

Bug: 27458894
Change-Id: Icce921b03cda514a991646ed39a26559c7e91230
2016-03-24 20:20:11 -07:00
Tyler Gunn
dee56a8a79 Expand call/connection extras API.
Currently, connection extras are propagated up to Telecom as an
entire bundle.  This is not ideal, as any time a change is made to
the extras, the bundle needs to be fetched, changed, and then re-set on
the connection, where it is parceled to Telecom as a whole.

Using how extras on an Intent as inspiration, this CL adds separate
putExtras, putExtra, and removeExtra methods to allow manipulation of
the extras bundle without operating on it in its entirety.

This Cl also adds support for Calls modifying the extras bundle, with
changes propagated back down to ConnectionServices.

Bug: 27458894
Change-Id: I152340a3bca2dc03f170b06b172a6823410fb961
2016-03-23 16:06:34 -07:00
Tyler Gunn
7904a972e1 DO NOT MERGE Add new ConnectionEvent API (hide) to send a notification to Telecom
Connection event used to inform Telecom that it should play or stop
the on hold tone. This is used to play or stop a tone when the peer
puts the current call on hold.

BUG=25357778
Change-Id: I2669f8f5062449784a712b9dd28e576326fcc679
2016-03-17 18:34:27 -07:00
Tyler Gunn
876dbfb476 Add API support for multi-endpoint.
This CL includes changes required to support multi-endpoint (see the
design doc linked off the bug).

Main changes include:
- support for indicating if a call/connection is "external" to the device.
- support for indicating if an external call can be pulled from the
remote device to the local device.
- API used to initiate a pull of a call external to the current device to
the current device.
- Made the "connection event" API public (was previously @hide); this will
be used to support passing some error events involving pulling calls to
the incall ui.
- Added new InCallService metadata which will be used to determine if an
InCallService wants to be informed of external calls.
- New disconnect causes which will be used to expose the fact that a
multi-endpoint call was answered elsewhere and that a call ended because
it was pulled to another device.
- New call log call types to indicate if calls were answered elsewhere
or pulled to another device.

Bug: 27458894
Change-Id: I423f64ff965b5e50194635a51868c327782db2a1
2016-03-14 23:26:34 +00:00
Santos Cordon
256aa5afd7 Merge "Add APIs to support CDMA add-call limitations." into nyc-dev 2016-02-25 16:16:43 +00:00
Santos Cordon
a6018b9bf4 Add APIs to support CDMA add-call limitations.
Bug: 22850789
Change-Id: I63de958c6c788a7da5696416e59d2f43cbe633cc
2016-02-17 12:14:04 -08:00
Tyler Gunn
bd1eb1f105 Add new ConnectionEvent API (hide) to send a notification to Telecom
Connection event used to inform Telecom that it should play or stop
the on hold tone. This is used to play or stop a tone when the peer
puts the current call on hold.

BUG=25357778
Change-Id: I2669f8f5062449784a712b9dd28e576326fcc679
2016-02-16 14:36:20 -08:00
Bryce Lee
085796bdf5 Merge "DO NOT MERGE ANYWHERE" into cw-e-dev 2015-12-01 15:37:30 +00:00
Bryce Lee
842ec9c407 Merge "Add callback for connections to be notified when the ringer is silenced." into cw-e-dev am: 52bdf11583 am: b241487c16 am: 64e41590d2
am: 0ca7de9031

* commit '0ca7de90310034d118f21343a69a38ebc02dd0bc':
  Add callback for connections to be notified when the ringer is silenced.
2015-11-30 19:17:53 +00:00
Bryce Lee
cac50775b2 Add callback for connections to be notified when the ringer is silenced.
Bug: 25644529
Change-Id: Ie7dc9028cf6243d98b2d87ca4c8b3ffcd31e3676
2015-11-17 15:13:29 -08:00
Bryce Lee
dd976b1b0d DO NOT MERGE ANYWHERE
Add ability to set supported audio routes on phone accounts and connection.

The set audio routes are used by Telecom to restrict where the audio may
be routed to. For example, an account can specify that calls may not be
routed over bluetooth headsets, which will prevent a new call from being
routed to this source.

Bug: 25485578
Change-Id: Ia1ca665e9ae8852a2538ab7cbeb3a73217d9b03b
2015-11-17 12:31:53 -08:00
Tyler Gunn
6b3db37f3c Merge "Support for Telecom Call IDs." 2015-09-17 17:00:04 +00:00
Tyler Gunn
f0500bd635 Support for Telecom Call IDs.
Add support for caching telecom call ID in connection and conference
classes.

Enhance connection service call ID generation:
For "existing calls", the connection service will try to use a call ID
of the format ClassName@ID
Where ClassName is the ComponentName of the connection service, and ID
is a unique incrementing ID for the connection service.

Bug: 23357902
Change-Id: I2284b018465e2b330fc8a3b556758e9f34a2daba
2015-09-01 10:59:48 -07:00
Bryce Lee
8190168077 Add capability for a connection hand rejection text response.
Change-Id: Id90417736bed7ab8750144ccaf3c7b449ec832b8
2015-08-28 16:38:02 -07:00
Roshan Pius
5926761865 am 5aff3b54: Merge "Maintain call time across SRVCC (2/3)." into mnc-dev
* commit '5aff3b5489262ccff4b6f9e18e0d990ebfe4d7bc':
  Maintain call time across SRVCC (2/3).
2015-07-16 23:19:17 +00:00
Roshan Pius
e927ec02f5 Maintain call time across SRVCC (2/3).
When an IMS conference call encounters an SRVCC event requiring a
fallback to GSM/CDMA, we need to maintain the call time for the
conference host across this fallback. So, adding a connectTime attribute
in the underlying conference host's connection object which can be used
to account for the call time from the now inactive conference call into
the new call created.

BUG: 21918593
Change-Id: I13e7ae6e31f004e798776c02ac7a6ac09a10f0bd
2015-07-15 15:47:21 -07:00
Shriram Ganesh
6bf35acd7c Added support for mid-call enabled SRVCC conference call
When TelephonyConnection is created for an unknown connection,
the recalculation of conference participants have to be
retriggered. This is because, unless that TelephonyConnection is
added to ConnectionService, it cannot be added as part of a
conference call in CallsManager.

Change-Id: Ic9359104f02eddff655d84fd25f5c28c9158e5f4
2015-07-06 11:28:19 -07:00
Santos Cordon
895d4b8f63 Telecom API council changes.
- adding more javadocs.
- fixing javadoc on isEnabled
- renaming to CONFIGURE_PHONE_ACCOUNT

Bug: 21573551
Change-Id: Ice035b8573a08ea18181a73c9e9a462520a934f1
2015-06-29 16:17:47 -07:00
Santos Cordon
6b7f955c2d Add extras to Connections/Calls. (1/3)
Two major changes:
1) Add the notion of extras to a Connection.  These extras will be
parceled through to InCallService as Call.getExtras()
2) The previously existing Call.getExtras() has been renamed to
getIntentExtras(). This name better describes the fact that these
particular extras are from the original CALL or INCOMING_CALL intents.

Change-Id: I08c1baf4f08d54757f98012f0c08b423a707c53d
2015-05-28 09:43:00 -07:00
Yorke Lee
ad0bfe3ae2 Merge "Add BIND_TELECOM_CONNECTION_SERVICE permission" into mnc-dev 2015-05-14 02:06:54 +00:00
Yorke Lee
249c12e7b8 Add BIND_TELECOM_CONNECTION_SERVICE permission
Bug: 21088342
Change-Id: I465307899d83c4a3ee5e88a28554c4b867c1f4ba
2015-05-13 16:12:44 -07:00
Yorke Lee
4af5935c71 Rename AudioState to CallAudioState
Deprecate AudioState class and make methods @SystemApi where
necessary to minimize impact to SystemApi
Replace usages of AudioState inside Telecom sub-systems
Fire both onCallAudioStateChanged and onAudioStateChanged callbacks
for backward compatibility
Support both setAudioState and setCallAudioState for all classes

Bug: 21040387
Bug: 21088300
Change-Id: I3ec7b3afdaa344c6d639d1c421f1842d67f7d0f7
2015-05-13 14:58:15 -07:00
Tyler Gunn
6b3714939f Un-@hiding some missed VT APIs.
Bug: 20947116
Change-Id: Idda9b7c7debafbea8c42eaadb75c3375b2c8ddb2
2015-05-08 11:35:55 -07:00
Prerepa Viswanadham
b6f9da0b7f Merge commit '17455a3' into master_merge 2015-05-01 10:12:11 -07:00
Anthony Lee
17455a3d39 Add plumbing for merge failures and renable button. (3/4)
The merge failure is not plumbed up through any layer that
can trap the callback and act on it.  The first part of this
fix is to create that plumbing.  Then we need to reenable the
merge button. At this point in time, we leverage the fact
that forcing the call to reassess its capabilities will poke
the InCallUI to reenable the merge button. In the future, we
should plumb the merge failure all the way to InCallUI and
not only handle the button but display UI to the user. The UI
is currently being displayed by CallNotifier which is the wrong
place. See b/20530631 for more details.

Bug: 20229905
Change-Id: I0355ada46b484c6db4bee656c77386dd61be5e1f
2015-04-28 07:13:34 -07:00
Etan Cohen
94f2c27aca Merge commit '7f61051' into merge2 2015-04-24 14:02:07 -07:00
Tyler Gunn
4cf116ff20 Merge "API Cleanup - rename IConferenceable to Conferenceable." 2015-04-20 20:12:47 +00:00
Tyler Gunn
df2cbc8989 API Cleanup - rename IConferenceable to Conferenceable.
Bug: 20165255
Change-Id: If4cb323749b6ef9e8657506434d760d07c34167f
2015-04-20 09:13:01 -07:00
Jay Shrauner
6f20a6a2b4 DO NOT MERGE Remove connection substate
Bug:20300433
Change-Id: Ifefc08b5165de3e0b6ce92007e5f612879dcc4d9
2015-04-16 15:05:05 -07:00
Jay Shrauner
8f98843924 Remove connection substate
Bug:20300433
Change-Id: Ifefc08b5165de3e0b6ce92007e5f612879dcc4d9
2015-04-16 14:42:39 -07:00
Andrew Lee
3e3e2f2b9c Fix missing comma.
Change-Id: Ied739e7f1b6d548237821db553f27994b0ee92af
2015-04-16 13:49:30 -07:00