Commit Graph

130 Commits

Author SHA1 Message Date
Suresh Koleti
0c22feffaa IMS: Add support for STK CC feature
-- Add interface in IImsUtListener to get data for
   UNSOL_ON_SS.
-- Add new file ImsSsData to store the data received
   as part of UNSOL_ON_SS.
-- Add approprate error codes and strings to support
   to show error dialogs to user.
-- Add ImsUtInterface API's to indicate UNSOL_ON_SS
   to ImsPhoneCallTracker.

Test: Manual
Bug: 64685331
Change-Id: I023c1af0d521e5b19ecce1576c4caa299ae468e3
2017-12-06 21:00:24 +05:30
Jordan Liu
c1c29dbf45 Merge "IMS: Add new APIs for call barring operations" 2017-12-01 00:25:43 +00:00
Benergy Meenan Ravuri
f6e372b1fb IMS: Add new APIs for call barring operations
Add below APIs to perform call barring operations for a
specified service class.

queryCallBarringForServiceClass
updateCallBarringForServiceClass

Test: Manual
Bug: 37559543
Change-Id: I438d3527f0e4b2c09de3f7e44e6b80df82b915ae
2017-11-30 18:03:12 +05:30
Mohamed
037749df03 Add SMS over IMS APIs
- Adds public APIs that IMS providers will implement/use
- Adds aidl APIs for internal communications to support SMS over IMS.
- First pass at documentation of APIs.

Moving over from  ag/3265442

Bug: 69846044

Test: None
Change-Id: Ic665a2a7d64a56417bcf2a159d6b88b05cdb832a
2017-11-29 16:14:57 -08:00
Brad Ebinger
216b3ce485 Refactor ImsService to AIDL
The ImsService was originally designed as a flat
interface, all ImsFeatures would be forwarded
through ImsService. This has been refactored to
using AIDL interfaces for each feature, as it
is more straightforward.

Test: Manual, Telephony IMS Unit Tests
Change-Id: Ibe065ddec6f180eabda03cf06f842c642a11114f
2017-11-16 21:28:36 +00:00
Brad Ebinger
9a6369dbd5 Remove ImsService Feature Interfaces
The ImsService feature interfaces were designed
to support a flat ImsService AIDL. This is not
necessary anymore, so this interface is being
removed as part of prep for the new ImsService
definition.

Test: Manual
Change-Id: Iefbcd168441ce2547523cf3e6a99ab3de5f3f823
2017-11-07 11:05:51 -08:00
Tyler Gunn
6c350bbb1d Handle alternate status values.
Some carriers use sendrecv to indicate a call in a conference is active,
and sendonly to indicate that the remote party has held the call.
Adding support for these status values.

This ensures that remotely held calls for these carriers are set to held.

Test: Manual
Bug: 33272103
Merged-In: Ie386bdb4c77df1305d80f604f48174794c3ee0c1
Change-Id: I4a950c4e143d5ac396b30569dbda0b1cf4e92a3e
2017-10-27 12:55:32 -07:00
Tyler Gunn
c4fd93e43b Fix ImsCallProfile parceling and add protection for invalid parcelables.
Two things:
1. The writeToParcel and readFromParcel in the ImsCallProfile never
worked; they were not parceling the Bundle properly.
2. Ensuring on writeToParcel that invalid Bundle contents are removed and
not sent across a Binder interface.

The existing Bundle.filterValues method accomplishes this by ensuring only
primitive types and android.* namespace parcelables are included in the
Bundle.  We use this to ensure that when the ImsCallProfile instances cross
the binder call boundary, package-local Parcelables don't cause the
Bundle to be invalidated when unmarshaled in a place where the
pacakge-local parcelable is not available.

Test: Manual, also wrote new unit tests
Bug: 65562929
Change-Id: Iea982d14a053414b9a4daba998c021c61902119d
2017-09-12 19:13:30 -07:00
Brad Ebinger
df99d59284 Adds ERROR state to ImsConfig
Adds the ERROR return state for bool provisioning values
so that we can throw an Exception in some cases.

Bug: 64540800
Test: Manual
Merged-In: Id412c0be939da6240a66a942730fd18badabb6c6
Change-Id: I0b79837c694d245999031ec65783857e114b7c75
2017-09-01 10:16:26 -07:00
Tyler Gunn
63769af59d Merge changes from topic 'call-session-may'
am: 21e4dbb6ed

Change-Id: I20a3a9f7808211187da8434a0b1490081a92e8d8
2017-08-11 18:33:44 +00:00
Tyler Gunn
21e4dbb6ed Merge changes from topic 'call-session-may'
* changes:
  Add callSessionMayHandover API to ImsCallSession.
  IMS: Support for Possible Call Session Handover
2017-08-11 18:14:02 +00:00
Brad Ebinger
44da663308 Merge "Change IMS callback AIDLs to be oneway"
am: a46600e0e7

Change-Id: If849e9ed61271bf233f4e149ef766e2e7b0d7851
2017-08-11 00:42:30 +00:00
Treehugger Robot
a46600e0e7 Merge "Change IMS callback AIDLs to be oneway" 2017-08-11 00:31:41 +00:00
Brad Ebinger
0f4db7d193 Change IMS callback AIDLs to be oneway
A bad behaving service was causing the IMS registration
callbacks to block indefinetly waiting for the callback
binder implementation in another process to finish. Since
we update the IMS registration in a loop, we were never getting
to the updates for the other processes.

This change moves the AIDL definition to oneway. Since these
are callback AIDLs, the caller doesn't need to wait
for the callbacks to return before sending the others.

Bug: 63137625
Test: Manual
Merged-In: I0e049166ddf3604d312748b63a94fa6ebe77c29d
Change-Id: Id39b6b70aa20bb9986bf293abe2f9e683da4252e
2017-08-10 23:15:41 +00:00
Brad Ebinger
bc13df8ce8 Merge "Add method that checks the Binder status of ImsConfig"
am: 6ffc855e8d

Change-Id: Ifa04b6260d51c17dc323fab918db0bdbf2bdea64
2017-08-10 23:02:56 +00:00
Brad Ebinger
9cf842c531 Add method that checks the Binder status of ImsConfig
Adds a method to check whether or not the ImsConfig
binder has died.

Bug: 62723694
Test: maual, follow bug procedure
Merged-In: I0ecd6a43d4375d3ac4d7d54b3d437832c0221f05
Change-Id: I9df6533e7e7dc69487cea50fada6c89599b031a3
2017-08-09 16:56:42 -07:00
Tyler Gunn
71c29cfad9 Add callSessionMayHandover API to ImsCallSession.
This matches the new AIDL definition in the API.

Test: Manual
Bug: 62489988
Change-Id: I97ad5b5359f19d533b5b8644fd37008c0c69bf9c
2017-08-08 13:10:48 -07:00
Anju Mathapati
efed6f6bd4 IMS: Support for Possible Call Session Handover
Adding the callSessionMayHandover API that allows
for the lower layers to indicate that the call session
may handover based on actions taken by the user/UI
layer.
The API provides current and target RAT information
pertaining to the possible handover.

Bug: 62489988
Test: Manual
Change-Id: I006462ce5688bb99a94d5135574fb2c17878685a
2017-08-08 12:52:53 -07:00
Brad Ebinger
095f72cc4c Merge "Add IMEI_NOT_ACCEPTED error code for IMS" am: 25ce41cf4c am: be34238840
am: 689edc736f

Change-Id: Ifd9fc089d7165506f6953e810c040de868f5bafe
2017-05-25 23:10:21 +00:00
Jayachandran Chinnakkannu
72edfe46fe Merge "Add new reason code for IMS Call ended during conference merge process" into oc-dev
am: a1755c4fd6

Change-Id: I4643358d6823fe56c31ac279ce34fe18710c4889
2017-05-13 00:49:11 +00:00
Toshiya Ikenaga
464157757a Add IMEI_NOT_ACCEPTED error code for IMS
Bug: 38256949
Change-Id: Ib14bd9f3e6b26db7c27170c56ec65e96c18abd67
2017-05-12 15:03:24 +00:00
Jayachandran C
666a12f423 Add new reason code for IMS Call ended during conference merge process
Test: Following scenarios for VoLTE and CS call and
      verified the cause sent in PreciseCallState.

 1) Conference call merge
 2) Conference call, one remote party ends the call
 3) Conference call, all remote parties end the call
 4) Conference call, hangup locally
 5) Normal call and hangup locally
 6) Normal call and remote party ends the call

Bug: 38225047
Change-Id: I36edb0cbff4b130b0942a46dc6c15a7d842789c2
2017-05-11 13:23:26 -07:00
Brad Ebinger
da21d753c7 Merge "Notify ImsService Status Correctly" into oc-dev
am: 9684d718fa

Change-Id: Ia056fd9cc30e673056e7e9b5140c498bb6abce1b
2017-05-10 23:54:32 +00:00
Brad Ebinger
eca799105f Notify ImsService Status Correctly
Modifies ImsService to allow multiple status callbacks in
for one ImsFeature. This better handles one ImsFeature
for normal/emergency calling.

Bug: 38001858
Test: Unit Testing
Merged-In: I70ae6f5349aef75aa86d54fe37a3c32459ea3afa
Change-Id: I70ae6f5349aef75aa86d54fe37a3c32459ea3afa
2017-05-10 16:45:14 +00:00
Brad Ebinger
e1b49b7654 Notify ImsService Status Correctly
Modifies ImsService to allow multiple status callbacks in
for one ImsFeature. This better handles one ImsFeature
for normal/emergency calling.

Bug: 38001858
Test: Unit Testing
Merged-In: I70ae6f5349aef75aa86d54fe37a3c32459ea3afa
Change-Id: I70ae6f5349aef75aa86d54fe37a3c32459ea3afa
2017-05-10 16:41:20 +00:00
Hall Liu
85313f8c35 Merge "IMS: RTT interface changes" am: 814fdf9312 am: bc56b97770
am: 7d1712e5b9

Change-Id: Ia5c6a16a69c71cfd96479e8df403669d5aaff6f9
2017-04-04 21:37:53 +00:00
Hall Liu
814fdf9312 Merge "IMS: RTT interface changes" 2017-04-04 21:21:17 +00:00
Brad Ebinger
ae8a95883b Merge "Remove non-localized message" am: ddbd256954 am: 70a09c00e5
am: 9c7b7f0de7

Change-Id: Ifc9f2278c7497f357b7db82ed27e6083351bf84b
2017-03-28 22:44:30 +00:00
Brad Ebinger
70a09c00e5 Merge "Remove non-localized message"
am: ddbd256954

Change-Id: Ia0fb7f8facca6d15485bf98f2a0538338a878962
2017-03-28 22:35:36 +00:00
Shuto Nagamatsu
e74c8103a4 Remove non-localized message
Remove non-localized english "code" from ImsException constructor.
Non-localized message causes user confusion.

Bug: 32792378
Change-Id: I0c71c35e7830db7de5b1d041211de54c92285b4d
2017-03-24 08:03:49 +09:00
Jayachandran Chinnakkannu
e7cd345537 Merge "Add new precise call fail causes and OEM causes" am: 9aa841d254 am: 4992b1533e
am: a7c4fdbf03

Change-Id: Iea9ee9c4a407638dfa19669b25d0c1534978d4a6
2017-03-17 22:41:35 +00:00
Jayachandran Chinnakkannu
4992b1533e Merge "Add new precise call fail causes and OEM causes"
am: 9aa841d254

Change-Id: I2b52c9c332fc73a37ac2c4c492ac9b85b2025897
2017-03-17 22:27:11 +00:00
Jayachandran C
5cbadddff2 Add new precise call fail causes and OEM causes
Bug: 35609963
Change-Id: Ia0579721e7132950ccfafd7be38f43d1963c016c
2017-03-16 15:43:41 -07:00
Anju Mathapati
7e177da50c IMS: RTT interface changes
Changes to implement RTT feature

Test: compilation
Change-Id: I6ce6993f5ecc321b91642cab297efb35cda3de2b
2017-03-07 16:21:05 -08:00
Abhishek Adappa
423b3bd84f Merge "Add a new ImsReasonInfo code" am: b4234e6af8 am: bb59947d90
am: 44f4430953

Change-Id: Iaaa2f91f36f0f57a81a5f0e7781564296654a33a
2017-02-23 22:32:50 +00:00
Abhishek Adappa
bb59947d90 Merge "Add a new ImsReasonInfo code"
am: b4234e6af8

Change-Id: Ia5174fafbc08acf559e35a28538d2b112b5cdb19
2017-02-23 22:22:40 +00:00
Treehugger Robot
b4234e6af8 Merge "Add a new ImsReasonInfo code" 2017-02-23 22:14:21 +00:00
Brad Ebinger
46681288bc Merge "reates base implementation of ImsService AIDLs" am: b60869db12 am: fe8d588dad
am: fe2a74bfee

Change-Id: I9b7885ead16666b57e3b77b2bb868f81fb68de3b
2017-02-23 20:19:50 +00:00
Brad Ebinger
fe8d588dad Merge "reates base implementation of ImsService AIDLs"
am: b60869db12

Change-Id: I6edf280213bee0756aad65148daafe3300849baa
2017-02-23 20:10:34 +00:00
Abhishek Adappa
2134e14bda Add a new ImsReasonInfo code
For IKEv2 authentication failure during ePDG tunnel establishment.

Test: make
Change-Id: I1d10efac806abfaa80d9875b908385f7732f293a
2017-02-22 19:16:58 -08:00
Brad Ebinger
21013dcf1b reates base implementation of ImsService AIDLs
This change introduces "base classes" of the AIDL interfaces that are
implemented in vendor provided ImsServices. This allows for new APIs
to be added to the AIDL files, along with stub implementation of those
AIDLs in the base classes. By extending from the base class, older
implementations of the AIDL interfaces will not need to be updated
when the interface changes.

This change also moves some of the com.android.ims classes from
frameworks/opt/net/ims to frameworks/base. Any class that will be
used in the new unbundled ImsService system will need to be in
the framework, as opposed to the optional library that they are
in now.

Bug: 30290416
Test: Manual
Change-Id: I4a186d8e910d6d4f711e983ec8d717fc5cbdefab
2017-02-22 16:58:50 -08:00
Brad Ebinger
caa5a35371 Merge "Remove Session ID from ImsService APIs that do not need it." am: 975be6c065 am: 50bc658e20
am: 8e8c26e25a

Change-Id: I7c7e02c23da5ef12bb0645be39eada1d11b8725c
2017-02-21 20:32:16 +00:00
Brad Ebinger
50bc658e20 Merge "Remove Session ID from ImsService APIs that do not need it."
am: 975be6c065

Change-Id: I09469d99bc68133a4de594507854c269e905c40e
2017-02-21 20:24:21 +00:00
Brad Ebinger
e63b35d0b2 Remove Session ID from ImsService APIs that do not need it.
Traditionally, to initiate a new call with the ImsService APIs,
you have to "open()" the interface, which returns a session ID.
This is not needed for querying other information, such as the
provisioning status of the ImsService slot.

Test: Manual
Change-Id: I155b291a49b9aa5ed9599f5a78b1e8d7ff9f8e1c
2017-02-17 14:50:48 -08:00
Brad Ebinger
c9c8b590c5 Merge "Adds @hide ImsService APIs" am: 2b879016d3
am: f46aa6f9ee

Change-Id: I12e10d796a7b2d56cacf8e9b53bb5e228b79ecc3
2017-02-17 20:29:13 +00:00
Brad Ebinger
1639c21be6 Adds @hide ImsService APIs
Adds @hide ImsService API implementations to be used for the new
dynamic ImsResolver.

1) ImsService - The main class that all vendor ImsServices will implement.
ImsServices that implement this method must return their implementations
of MMTelFeature when onCreateMMTelFeature is called. The base ImsService
class also relays all method calls through itself as a proxy. So, when
Telephony calls a method, the ImsService figures out which MMTelFeature
should be called (by slot) and then calls that feature's method
implementation.

2) MMTelFeature/RcsFeature - Implements the I*Feature interfaces, which
are used on both sides of the interface. The vendor implemented ImsService
must implement all methods provided in the I*Feature interface in their
implementation of *Feature that they return to the ImsService.

3) ImsServiceProxy[Compat] - The Proxy interface in telephony that will be
called in ImsManager. When a method in this class is called, it will call
the respective AIDL function: Telephony -> IImsServiceController AIDL ->
vendor ImsService -> vendor ImsFeature implementation.
ImsServiceProxyCompat is there to provide backwards compatibility with
older ImsServices that do not use the new ImsService implementations.
It implements all of the methods that are defined in the new I*Feature
interfaces and translates them to the old ImsService AIDL calls.

Test: Adds Unit Tests (see frameworks/opt/telephony)
Merged-In: Id3466c178384158c788ab1d708ab108bb95866fc
Change-Id: Id3466c178384158c788ab1d708ab108bb95866fc
2017-02-16 11:14:26 -08:00
Brad Ebinger
15708a316b Adds @hide ImsService APIs
Adds @hide ImsService API implementations to be used for the new
dynamic ImsResolver.

1) ImsService - The main class that all vendor ImsServices will implement.
ImsServices that implement this method must return their implementations
of MMTelFeature when onCreateMMTelFeature is called. The base ImsService
class also relays all method calls through itself as a proxy. So, when
Telephony calls a method, the ImsService figures out which MMTelFeature
should be called (by slot) and then calls that feature's method
implementation.

2) MMTelFeature/RcsFeature - Implements the I*Feature interfaces, which
are used on both sides of the interface. The vendor implemented ImsService
must implement all methods provided in the I*Feature interface in their
implementation of *Feature that they return to the ImsService.

3) ImsServiceProxy[Compat] - The Proxy interface in telephony that will be
called in ImsManager. When a method in this class is called, it will call
the respective AIDL function: Telephony -> IImsServiceController AIDL ->
vendor ImsService -> vendor ImsFeature implementation.
ImsServiceProxyCompat is there to provide backwards compatibility with
older ImsServices that do not use the new ImsService implementations.
It implements all of the methods that are defined in the new I*Feature
interfaces and translates them to the old ImsService AIDL calls.

Test: Adds Unit Tests (see frameworks/opt/telephony)
Change-Id: Id3466c178384158c788ab1d708ab108bb95866fc
2017-02-16 11:03:31 -08:00
Tyler Gunn
58d8c5eb07 Merge "Change prototype for "setCamera" in IMS VideoProvider." am: c164b159f8 am: e55b11573e
am: 998655f80e

Change-Id: I01c5d8c15ce9377f126fc7268bd1a8ecee602dc8
2017-02-08 22:05:45 +00:00
Tyler Gunn
ca5cdb2d10 Change prototype for "setCamera" in IMS VideoProvider.
Changing "setCamera" prototype to include the uid.

Test: Unit test, manual test.
Bug: 32747443
Merged-In: I7e6eb617d724972b0fcbd2f9a27f5c3ee91efd2d
Change-Id: I7e6eb617d724972b0fcbd2f9a27f5c3ee91efd2d
2017-02-07 23:55:04 +00:00
Tyler Gunn
5819755163 resolve merge conflicts of d04c51ea37 to nyc-mr2-dev-plus-aosp
Test: Fix build.
Change-Id: I5808fc02502ced2195728ad146ef5523a8eb19ae
2017-02-03 13:41:17 -08:00