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
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
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
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
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
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
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
Changing "setCamera" prototype to include the uid.
Test: Unit test, manual test.
Bug: 32747443
Merged-In: I7e6eb617d724972b0fcbd2f9a27f5c3ee91efd2d
Change-Id: I7e6eb617d724972b0fcbd2f9a27f5c3ee91efd2d
New disconnect cause used when wifi call is dropped due to loss of wifi
connection.
Test: Manual, unit.
Merged-In: Iedaa9f54ff6dbfe90a6ce01fc9eb0aad126d05f0
Bug: 32571209
Change-Id: Iedaa9f54ff6dbfe90a6ce01fc9eb0aad126d05f0
New disconnect cause used when wifi call is dropped due to loss of wifi
connection.
Test: Manual, unit.
Bug: 32571209
Change-Id: Iedaa9f54ff6dbfe90a6ce01fc9eb0aad126d05f0
Adds support for dynamic ImsService Binding (change 1/3). Included
in this change:
- AIDLs for ImsServiceController
- ImsFeature/ImsServiceBase definitions
- KEY_CONFIG_IMS_PACKAGE_OVERRIDE CarrierConfig option
Test: Unit Tests in opt/telephony
Bug: 30290416
Change-Id: Ic4cb1d85a29681b08a6a525c588a72209862dcc3
Add ImsRegistrationListener API to report registration failures in
the following scenarios:
1. Idle mode failures - new IMS registration.
2. Ims registration handover failures - Handover of IMS registration
from one radio technology to another.
Bug: 33430556
Test: m
Change-Id: Ie3bafec41c0198a66aa3ebca660a2a060e511c39
Draft API to report registration failures in the following
scenarios:
1. Idle mode failures - new IMS registration.
2. Ims registration handover failures - Handover of IMS registration
from one access technology to another.
Bug: 33430556
Change-Id: Ie3bafec41c0198a66aa3ebca660a2a060e511c39
Adding reason code and disconnect causes for:
1. disconnects due to user disabling data.
2. disconnects due to data limit being reached.
Bug: 30702393
Change-Id: Id6ea5ee4f5aac1a8602094315f893e2f7b3cc8d6
Some modems use a lowercase version of this extra, which is not correct.
Adding an alternate definition so ImsCall can still determine the radio
type.
Bug: 28933314
Change-Id: I61d13a2aa447877e1c89c3ae474a8614c29492a1
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
Adding two new carrier config options:
1. treat_downgraded_video_calls_as_video_calls_bool - when there is an ongoing
call which was previously a video call (or is currently video call), some
carriers require that this is treated as if it is a video call for
telephony logic such as in (2).
2. drop_video_call_when_answering_audio_call_bool - if the user is in an
active video call (see (1)) over wifi, and an incoming audio call comes in,
when this carrier config option is "TRUE", the video call will be dropped
when the audio call is answered.
Adding new connection extra to indicate to the dialer app that answering
a ringing call will cause the current active video call to drop.
Bug: 29275420
Change-Id: Ied5dbabc8ff09045ba41c5eba2136adad10db80e
This allows to register additional IMS connection listeners.
IImsService.open() is no longer supposed to be used for that purpose.
Bug: 28150730
Change-Id: I949e0c912de66e82864934a1ad9ec2ec36f57909
Adding getVideoStateFromCallType method to ImsCallProfile, which basically
just breaks out some of the existing logic in getVideoStateFromImsCallProfile.
This is used to translate the CALL_TYPE_* from an external call to a
video state (used when pulling the call).
Added a new ImsReasonInfo code for when multi-endpoint fails to configure
because the modem does not support it.
Bug: 27458894
Change-Id: I226e79005dccf3e8cae30e4d448543adbe59f922
- Per suggestion of API council, moving properties of a Connection from
CAPABILITIES_* to PROPERTIES_*.
Bug: 27458894
Change-Id: Icce921b03cda514a991646ed39a26559c7e91230