Wink Saville | ef36ef6 | 2014-06-11 08:39:38 -0700 | [diff] [blame] | 1 | This package provides access to IP Multimedia Subsystem (IMS) functionality, |
| 2 | especially making and taking VoLTE calls using IMS. |
| 3 | At the moment, this only supports VoLTE calls which is compliant to GSMA IR.92 specification. |
| 4 | |
| 5 | For the additional information, you can refer the below standard specifications. |
| 6 | - GSMA IR.92 : features for voice and sms profile |
| 7 | - GSMA IR.94 : video calling feature |
| 8 | - 3GPP TS 24.229 : IMS call control (SIP and SDP) |
| 9 | - 3GPP TS 26.114 : IMS media handling and interaction |
| 10 | - 3GPP TS 26.111 : Codec for CS multimedia telephony service (H.324) |
| 11 | - 3GPP TS 24.623 : XCAP over the Ut interface for manipulating supplementary services |
| 12 | (XCAP : XML Configuration Access Protocol) |
| 13 | |
| 14 | To get started, you need to get an instance of the ImsManager by calling ImsManager#getInstance(). |
| 15 | |
| 16 | With the ImsManager, you can initiate VoLTE calls with ImsManager#makeCall() |
| 17 | and ImsManager#takeCall(). Both methods require a ImsCall#Listener that |
| 18 | receives callbacks when the state of the call changes, such as |
| 19 | when the call is ringing, established, or ended. |
| 20 | |
| 21 | ImsManager#makeCall() requires an ImsCallProfile objects, representing the call properties |
| 22 | of the local device. ImsCallProfile can creates by ImsManager |
| 23 | using the specified service and call type. |
| 24 | ImsCallProfile is created by referring GSMA IR.92, GSMA IR.94, 3GPP TS 24.229, |
| 25 | 3GPP TS 26.114 and 3GPP TS 26.111. |
| 26 | |
| 27 | To receive calls, an IMS application MUST provide a BroadcastReceiver that |
| 28 | has the ability to respond to an intent indicating that there is an incoming call. |
| 29 | The default action for the incoming call intent is ImsManager#ACTION_IMS_INCOMING_CALL. |
| 30 | And, the application frees to define the action for the incoming call intent. |
| 31 | |
| 32 | There are two packages for IMS APIs. |
| 33 | |
| 34 | - com.android.ims |
| 35 | It provides the functionalities for the upper layer of IMS APIs. |
| 36 | In this moment, it is used by the VoLTE Phone application. |
| 37 | |
| 38 | - com.android.ims.internal |
| 39 | It provides the functionalities for the internal usage or lower layer of IMS APIs. |
| 40 | It needs to be implemented by the IMS protocol solution vendor. |
| 41 | |
| 42 | |
| 43 | |
| 44 | == Classes for com.android.ims == |
| 45 | |
| 46 | ImsManager |
| 47 | Provides APIs for IMS services, such as initiating IMS calls, and provides access to |
| 48 | the mobile operator's IMS network. This class is the starting point for any IMS actions. |
| 49 | |
| 50 | ImsCall |
| 51 | Provides IMS voice / video calls over LTE network. |
| 52 | |
| 53 | ImsCallGroup |
| 54 | Manages all IMS calls which are established hereafter the initial 1-to-1 call is established. |
| 55 | It's for providing the dummy calls which are disconnected with the IMS network after |
| 56 | merged or extended to the conference. |
| 57 | |
| 58 | ImsCallProfile |
| 59 | Parcelable object to handle IMS call profile |
| 60 | It provides the service and call type, the additional information related to the call. |
| 61 | |
| 62 | ImsConferenceState |
| 63 | It provides the conference information (defined in RFC 4575) for IMS conference call. |
| 64 | |
| 65 | ImsConnectionStateListener |
| 66 | It is a listener type for receiving notifications about changes to the IMS connection. |
| 67 | It provides a state of IMS registration between UE and network, the service availability of |
| 68 | the local device during IMS registered. |
| 69 | |
| 70 | ImsException |
| 71 | It provides a general IMS-related exception. |
| 72 | |
| 73 | ImsReasonInfo |
| 74 | It enables an application to get details on why a method call failed. |
| 75 | |
| 76 | ImsServiceClass |
| 77 | It defines an identifier for each IMS service category. |
| 78 | |
| 79 | ImsStreamMediaProfile |
| 80 | Parcelable object to handle IMS stream media profile. |
| 81 | It provides the media direction, quality of audio and/or video. |
| 82 | |
| 83 | ImsUtInterface |
| 84 | It provides APIs for the supplementary service settings using IMS (Ut interface, XCAP). |
| 85 | |
| 86 | |
| 87 | |
| 88 | == Classes for com.android.ims.internal == |
| 89 | |
| 90 | CallGroup |
| 91 | Wrapper class which has an ICallGroup interface. |
| 92 | |
| 93 | CallGroupBase |
| 94 | Implements ICallGroup interface. |
| 95 | Manages all calls which are established hereafter the initial 1-to-1 call is established. |
| 96 | It's for providing the dummy calls which are disconnected with the IMS network after |
| 97 | merged or extended to the conference. |
| 98 | |
| 99 | CallGroupManager |
| 100 | Manages CallGroup objects. |
| 101 | |
| 102 | ICallGroup |
| 103 | Provides the interface to manage all calls which are established hereafter the initial |
| 104 | 1-to-1 call is established. It's for providing the dummy calls which are disconnected with |
| 105 | the IMS network after merged or extended to the conference. |
| 106 | |
| 107 | ImsCallSession |
| 108 | Provides the call initiation/termination, and media exchange between two IMS endpoints. |
| 109 | It directly communicates with IMS service which implements the IMS protocol behavior. |
| 110 | |
| 111 | ImsStreamMediaSession |
| 112 | Provides the APIs to control the media session, such as passing the surface object, |
| 113 | controlling the camera (front/rear selection, zoom, brightness, ...) for a video calling. |