1This package provides access to IP Multimedia Subsystem (IMS) functionality, 2especially making and taking VoLTE calls using IMS. 3At the moment, this only supports VoLTE calls which is compliant to GSMA IR.92 specification. 4 5For 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 14To get started, you need to get an instance of the ImsManager by calling ImsManager#getInstance(). 15 16With the ImsManager, you can initiate VoLTE calls with ImsManager#makeCall() 17and ImsManager#takeCall(). Both methods require a ImsCall#Listener that 18receives callbacks when the state of the call changes, such as 19when the call is ringing, established, or ended. 20 21ImsManager#makeCall() requires an ImsCallProfile objects, representing the call properties 22of the local device. ImsCallProfile can creates by ImsManager 23using the specified service and call type. 24ImsCallProfile is created by referring GSMA IR.92, GSMA IR.94, 3GPP TS 24.229, 253GPP TS 26.114 and 3GPP TS 26.111. 26 27To receive calls, an IMS application MUST provide a BroadcastReceiver that 28has the ability to respond to an intent indicating that there is an incoming call. 29The default action for the incoming call intent is ImsManager#ACTION_IMS_INCOMING_CALL. 30And, the application frees to define the action for the incoming call intent. 31 32There 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 46ImsManager 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 50ImsCall 51 Provides IMS voice / video calls over LTE network. 52 53ImsCallGroup 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 58ImsCallProfile 59 Parcelable object to handle IMS call profile 60 It provides the service and call type, the additional information related to the call. 61 62ImsConferenceState 63 It provides the conference information (defined in RFC 4575) for IMS conference call. 64 65ImsConnectionStateListener 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 70ImsException 71 It provides a general IMS-related exception. 72 73ImsReasonInfo 74 It enables an application to get details on why a method call failed. 75 76ImsServiceClass 77 It defines an identifier for each IMS service category. 78 79ImsStreamMediaProfile 80 Parcelable object to handle IMS stream media profile. 81 It provides the media direction, quality of audio and/or video. 82 83ImsUtInterface 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 90CallGroup 91 Wrapper class which has an ICallGroup interface. 92 93CallGroupBase 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 99CallGroupManager 100 Manages CallGroup objects. 101 102ICallGroup 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 107ImsCallSession 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 111ImsStreamMediaSession 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.