IMS Call Extras Feature

Call extras for MT calls are propagated
from IMS Service layer till the UI layer
using the 'setExtras' methods.

Change-Id: Ie7a40f5d818eb17ebafdac8c0616e6acf532e27a
CRs-Fixed: 724860
Creating connections for conference event package participants.

- Add "addExistingConnection" method to connection service which provides
a way for a connection service to notify telecom of a pre-existing
connection (connections are normally created through telecom).
- Modify TelephonyConferenceController to retrieve its state from a
multiparty connection in the conference (in the case of IMS calls, this
would be the ImsCall that manages the conference) instead of just taking
the first one.

Bug: 18057361
Change-Id: I26993aec54ecb0ce90ae6983fd3eed9d8d0a5773

Adding method to get disconnect cause from conference

Bug: 17842499
Change-Id: Ifb6e61d50d66aa8e8299e7024b2ab6d1d0f9d878

Add functions to update on conference changes.

+ Add onConferenceChanged() to Connection, so that the Connection can
make act on changes to the conference.
+ Add a utility function to PhoneCapabilities to remove a capability
from a PhoneCapabilities bitmask. Figure this abstracts some bit
logic away to make things more readable.

Bug: 17429707
Change-Id: I0c97731a95dd6573488cd10f094a63abe2428bce

Support disconnecting conference participants from conference.

- Added "onDisconnectConferenceParticipant" method used to inform a
connection acting as the conference host that one of the participants
should be disconnected.
- Added "VIRTUAL_CALL" PhoneCapability used to indicate that a call cannot
be the active or background call, but only be a child of another call.

Bug: 18228141
Bug: 18176606
Change-Id: I7aec631cc89c0f08e174b24ce3a9cb547b47e36b

Replace onConferenceChanged with onConnectionAdded.

This change is motivated by a desire to be able to adjust the
phone capabilities of a conference depending on its connections.

Turns out Connection is not a good place to do this, because when
the conference is set, this code is only fired if the connection
service already contains the conference. Conference makes more
sense to do this anyways, at the end of the day.

+ Add onConnectionAdded function to Conference.java.
- Remove onConferenceChanged function from Connection.java.

Bug: 18241753
Change-Id: Ib9212a8483a7a7b542618697399bbab8b2701b04

Change access to removeConnection so we can override it.

Bug: 18056632
Bug: 18240234
Change-Id: I4e82051a27f3565e9a854df8b27c35300cdbe2ad

Add functions to update on conference changes.

+ Add onConferenceChanged() to Connection, so that the Connection can
make act on changes to the conference.
+ Add a utility function to PhoneCapabilities to remove a capability
from a PhoneCapabilities bitmask. Figure this abstracts some bit
logic away to make things more readable.

Bug: 17429707
Change-Id: I0c97731a95dd6573488cd10f094a63abe2428bce

Add helper method for checking phone capabilities.

I'm figuring this can help standardize phone capability checks when
need to do all over the place.

Bug: 17429707
Change-Id: I97327fd08158de3c18d186b6092597a1d4abcf14

Conference event package performance improvement.

- Instead of sending each participant to the telephony conference
controller, all participants are sent at once.  This way the conference
only needs to be recalculated once.

Bug: 18057361
Change-Id: I86205fc7f1d2648bb180fc7eaf3ad611955952f9

Make add-call a global property of telecom. (1/4)

ADD_CALL didn't make sense as a property of Connection or Call.
This changes it to be a global property instead.

Bug: 18285352
Change-Id: I658e7a6977a848600272cde2914612c8691bb801

Add telephony.DisconnectCause for merged IMS call.

When merged, IMS calls are consolidated into one call. Thus they
"disconnect", even though the user can continue to comminucate
with the party on that call.

We want to recognize this scenario so we can control relevant
behaviors (ie.don't play the "end call" tone in this case).

Bug: 18291234
Change-Id: I93247f88ed74467470504bec88fcfb7ed714f0ff

Change Connections to allow setting conferenceable with conferences.

- Added IConferenceable interface used so that connections and conferences
can both be considered candidates as "conferenceable" with a connection.
- Fixed ConnectionService#conference to support cases where either call 1
or call 2 is a conference and the other is a connection.  Previously did
not support cases where call 2 is a conference.

Bug: 18200934
Change-Id: I32a8dd30a154d6280f2ae89fd147817235998465

Add GENERIC_CONFERENCE to phone capabilities.

This is a temporary capability to recognize CDMA conference calls
so we can show the right strings in the InCallUi. This should be
moved to CallProperties when possible. b/18434985

Bug: 18284408
Change-Id: Ia3e2ff91c8f8a91ff0123df4d3e6a581bdf85895

Propagating isMultiParty indicator from RIL up into Telephony layer.

- Adding isMultiParty() method to IImsCallSession AIDL.

Bug: 18058253
Change-Id: I1c44d3db0f7aa00a3ae6efb1231c5ddd39ab20ac

IMS call merge call-back changes.

Renaming callSessionMerged to callSessionMergeStarted.
Adding callSessionMergeComplete callback for when merge successfully
completes.

Bug: 18056632
Change-Id: I8fc73b6c9db5e7970de81d8c3e09abc80f1a262f

Communicating participant changes to conference controller.

- Add new ConferenceParticipant parcelable class which represents a
single participant contained in the conference event package.
- Adding callbacks/listeners to Connection to handle changes to
participant state.

Bug: 18057361
Change-Id: Iadfebe84959f30f8e835f282aa994c0b92768aa6

IMS: Add support for HD icon display related information

Added support to pass the restrict cause associated with the peer
in order to enable display of the HD icon when necessary.Added
support to pass local audio codec information and defined values
for new codecs not defined.

Change-Id: If05d46bdb3907a0ec7efdde48337a7932a7a5c21

Change-Id: Iadfebe84959f30f8e835f282aa994c0b92768aa6