/**@class android.telephony.ims.ImsCallProfile implements android.os.Parcelable @extends java.lang.Object Parcelable object to handle IMS call profile. It is created from GSMA IR.92/IR.94, 3GPP TS 24.229/TS 26.114/TS26.111. It provides the service and call type, the additional information related to the call. @hide */ var ImsCallProfile = { /** It is for a special case. It helps that the application can make a call without IMS connection (not registered). In the moment of the call initiation, the device try to connect to the IMS network and initiates the call. */ SERVICE_TYPE_NONE : "0", /** It is a default type and can be selected when the device is connected to the IMS network. */ SERVICE_TYPE_NORMAL : "1", /** It is for an emergency call. */ SERVICE_TYPE_EMERGENCY : "2", /** IMSPhone to support IR.92 & IR.94 (voice + video upgrade/downgrade) */ CALL_TYPE_VOICE_N_VIDEO : "1", /** IR.92 (Voice only) */ CALL_TYPE_VOICE : "2", /** VT to support IR.92 & IR.94 (voice + video upgrade/downgrade) */ CALL_TYPE_VIDEO_N_VOICE : "3", /** Video Telephony (audio / video two way) */ CALL_TYPE_VT : "4", /** Video Telephony (audio two way / video TX one way) */ CALL_TYPE_VT_TX : "5", /** Video Telephony (audio two way / video RX one way) */ CALL_TYPE_VT_RX : "6", /** Video Telephony (audio two way / video inactive) */ CALL_TYPE_VT_NODIR : "7", /** VideoShare (video two way) */ CALL_TYPE_VS : "8", /** VideoShare (video TX one way) */ CALL_TYPE_VS_TX : "9", /** VideoShare (video RX one way) */ CALL_TYPE_VS_RX : "10", /** @hide */ EXTRA_CONFERENCE : "conference", /** Boolean extra property set on an {@link android.telephony.ims.ImsCallProfile} to indicate that this call is an emergency call. The {@link android.telephony.ims.ImsService} sets this on a call to indicate that the network has identified the call as an emergency call. */ EXTRA_EMERGENCY_CALL : "e_call", /** @hide */ EXTRA_VMS : "vms", /** @hide */ EXTRA_CALL_MODE_CHANGEABLE : "call_mode_changeable", /** @hide */ EXTRA_CONFERENCE_AVAIL : "conference_avail", /** @hide */ EXTRA_OEM_EXTRAS : "OemCallExtras", /** Rule for originating identity (number) presentation, MO/MT. {@link android.telephony.ims.ImsCallProfile#OIR_DEFAULT} {@link android.telephony.ims.ImsCallProfile#OIR_PRESENTATION_RESTRICTED} {@link android.telephony.ims.ImsCallProfile#OIR_PRESENTATION_NOT_RESTRICTED} */ EXTRA_OIR : "oir", /** Rule for calling name presentation {@link android.telephony.ims.ImsCallProfile#OIR_DEFAULT} {@link android.telephony.ims.ImsCallProfile#OIR_PRESENTATION_RESTRICTED} {@link android.telephony.ims.ImsCallProfile#OIR_PRESENTATION_NOT_RESTRICTED} */ EXTRA_CNAP : "cnap", /** To identify the Ims call type, MO {@link android.telephony.ims.ImsCallProfile#DIALSTRING_NORMAL} {@link android.telephony.ims.ImsCallProfile#DIALSTRING_SS_CONF} {@link android.telephony.ims.ImsCallProfile#DIALSTRING_USSD} */ EXTRA_DIALSTRING : "dialstring", /** Default presentation for Originating Identity. */ OIR_DEFAULT : "0", /** Restricted presentation for Originating Identity. */ OIR_PRESENTATION_RESTRICTED : "1", /** Not restricted presentation for Originating Identity. */ OIR_PRESENTATION_NOT_RESTRICTED : "2", /** Presentation unknown for Originating Identity. */ OIR_PRESENTATION_UNKNOWN : "3", /** Payphone presentation for Originating Identity. */ OIR_PRESENTATION_PAYPHONE : "4", /** A default or normal normal call. */ DIALSTRING_NORMAL : "0", /** Call for SIP-based user configuration */ DIALSTRING_SS_CONF : "1", /** Call for USSD message */ DIALSTRING_USSD : "2", /** Call is not restricted on peer side and High Definition media is supported */ CALL_RESTRICT_CAUSE_NONE : "0", /** High Definition media is not supported on the peer side due to the Radio Access Technology (RAT) it is are connected to. */ CALL_RESTRICT_CAUSE_RAT : "1", /** The service has been disabled on the peer side. */ CALL_RESTRICT_CAUSE_DISABLED : "2", /** High definition media is not currently supported. */ CALL_RESTRICT_CAUSE_HD : "3", /** String extra properties oi : Originating identity (number), MT only cna : Calling name ussd : For network-initiated USSD, MT only remote_uri : Connected user identity (it can be used for the conference) ChildNum: Child number info. Codec: Codec info. DisplayText: Display text for the call. AdditionalCallInfo: Additional call info. CallPull: Boolean value specifying if the call is a pulled call. */ EXTRA_OI : "oi", /***/ EXTRA_CNA : "cna", /***/ EXTRA_USSD : "ussd", /***/ EXTRA_REMOTE_URI : "remote_uri", /***/ EXTRA_CHILD_NUMBER : "ChildNum", /***/ EXTRA_CODEC : "Codec", /***/ EXTRA_DISPLAY_TEXT : "DisplayText", /***/ EXTRA_ADDITIONAL_CALL_INFO : "AdditionalCallInfo", /***/ EXTRA_IS_CALL_PULL : "CallPull", /** String extra property Containing fields from the SIP INVITE message for an IMS call */ EXTRA_ADDITIONAL_SIP_INVITE_FIELDS : "android.telephony.ims.extra.ADDITIONAL_SIP_INVITE_FIELDS", /** Extra key which the RIL can use to indicate the radio technology used for a call. Valid values are: {@link android.telephony.ServiceState#RIL_RADIO_TECHNOLOGY_LTE}, {@link android.telephony.ServiceState#RIL_RADIO_TECHNOLOGY_IWLAN}, and the other defined {@code RIL_RADIO_TECHNOLOGY_*} constants. Note: Despite the fact the {@link android.telephony.ServiceState} values are integer constants, the values passed for the {@link #EXTRA_CALL_RAT_TYPE} should be strings (e.g. "14" vs (int) 14). Note: This is used by {@link com.android.internal.telephony.imsphone.ImsPhoneConnection# updateImsCallRatFromExtras(Bundle)} to determine whether to set the {@link android.telecom.TelecomManager#EXTRA_CALL_NETWORK_TYPE} extra value and {@link android.telecom.Connection#PROPERTY_WIFI} property on a connection. */ EXTRA_CALL_RAT_TYPE : "CallRadioTech", /** Similar to {@link #EXTRA_CALL_RAT_TYPE}, except with a lowercase 'c'. Used to ensure compatibility with modems that are non-compliant with the {@link #EXTRA_CALL_RAT_TYPE} extra key. Should be removed when the non-compliant modems are fixed. @hide */ EXTRA_CALL_RAT_TYPE_ALT : "callRadioTech", /**@hide */ mServiceType : "null", /**@hide */ mCallType : "null", /**@hide */ mRestrictCause : "null", /**@hide */ mCallExtras : "null", /**@hide */ mMediaProfile : "null", /***/ CREATOR : "null", /** */ getCallExtra : function( ) {}, /** */ getCallExtra : function( ) {}, /** */ getCallExtraBoolean : function( ) {}, /** */ getCallExtraBoolean : function( ) {}, /** */ getCallExtraInt : function( ) {}, /** */ getCallExtraInt : function( ) {}, /** */ setCallExtra : function( ) {}, /** */ setCallExtraBoolean : function( ) {}, /** */ setCallExtraInt : function( ) {}, /**Set the call restrict cause, which provides the reason why a call has been restricted from using High Definition media. */ setCallRestrictCause : function( ) {}, /** */ updateCallType : function( ) {}, /** */ updateCallExtras : function( ) {}, /**Updates the media profile for the call. @param {Object {ImsCallProfile}} profile Call profile with new media profile. */ updateMediaProfile : function( ) {}, /** */ toString : function( ) {}, /** */ describeContents : function( ) {}, /** */ writeToParcel : function( ) {}, /** */ getServiceType : function( ) {}, /** */ getCallType : function( ) {}, /** @return {Number} The call restrict cause, which provides the reason why a call has been restricted from using High Definition media. */ getRestrictCause : function( ) {}, /** */ getCallExtras : function( ) {}, /** */ getMediaProfile : function( ) {}, /**Converts from the call types defined in {@link android.telephony.ims.ImsCallProfile} to the video state values defined in {@link VideoProfile}. @param {Object {ImsCallProfile}} callProfile The call profile. @return {Number} The video state. */ getVideoStateFromImsCallProfile : function( ) {}, /**Translates a {@link android.telephony.ims.ImsCallProfile} {@code CALL_TYPE_*} constant into a video state. @param {Number} callType The call type. @return {Number} The video state. */ getVideoStateFromCallType : function( ) {}, /**Converts from the video state values defined in {@link VideoProfile} to the call types defined in {@link android.telephony.ims.ImsCallProfile}. @param {Number} videoState The video state. @return {Number} The call type. */ getCallTypeFromVideoState : function( ) {}, /**Badly named old method, kept for compatibility. See {@link #presentationToOir}(int). @hide */ presentationToOIR : function( ) {}, /**Translate presentation value to OIR value @param {Number} presentation @return {Number} OIR values */ presentationToOir : function( ) {}, /**Translate OIR value to presentation value @param {Number} oir value @return {Number} presentation value @hide */ OIRToPresentation : function( ) {}, /**Checks if video call is paused @return {Boolean} true if call is video paused */ isVideoPaused : function( ) {}, /**Determines if the {@link android.telephony.ims.ImsCallProfile} represents a video call. @return {Boolean} {@code true} if the profile is for a video call, {@code false} otherwise. */ isVideoCall : function( ) {}, /**Set the emergency number information. The set value is valid only if {@link #getServiceType} returns {@link #SERVICE_TYPE_EMERGENCY} Reference: 3gpp 23.167, Section 6 - Functional description; 3gpp 24.503, Section 5.1.6.8.1 - General; 3gpp 22.101, Section 10 - Emergency Calls. @hide */ setEmergencyCallInfo : function( ) {}, /**Set the emergency service categories. The set value is valid only if {@link #getServiceType} returns {@link #SERVICE_TYPE_EMERGENCY} If valid, the value is the bitwise-OR combination of the following constants: <ol> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED} </li> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_POLICE} </li> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AMBULANCE} </li> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_FIRE_BRIGADE} </li> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MARINE_GUARD} </li> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MOUNTAIN_RESCUE} </li> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MIEC} </li> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AIEC} </li> </ol> Reference: 3gpp 23.167, Section 6 - Functional description; 3gpp 22.101, Section 10 - Emergency Calls. */ setEmergencyServiceCategories : function( ) {}, /**Set the emergency Uniform Resource Names (URN), only valid if {@link #getServiceType} returns {@link #SERVICE_TYPE_EMERGENCY}. Reference: 3gpp 24.503, Section 5.1.6.8.1 - General; 3gpp 22.101, Section 10 - Emergency Calls. */ setEmergencyUrns : function( ) {}, /**Set the emergency call routing, only valid if {@link #getServiceType} returns {@link #SERVICE_TYPE_EMERGENCY} If valid, the value is any of the following constants: <ol> <li>{@link EmergencyNumber#EMERGENCY_CALL_ROUTING_UNKNOWN} </li> <li>{@link EmergencyNumber#EMERGENCY_CALL_ROUTING_NORMAL} </li> <li>{@link EmergencyNumber#EMERGENCY_CALL_ROUTING_EMERGENCY} </li> </ol> */ setEmergencyCallRouting : function( ) {}, /**Set if this is for testing emergency call, only valid if {@link #getServiceType} returns {@link #SERVICE_TYPE_EMERGENCY}. */ setEmergencyCallTesting : function( ) {}, /**Set if we have known the user intent of the call is emergency. This is only used to specify when the dialed number is ambiguous when it can be identified as both emergency number and any other non-emergency number; e.g. in some situation, 611 could be both an emergency number in a country and a non-emergency number of a carrier's customer service hotline. */ setHasKnownUserIntentEmergency : function( ) {}, /**Get the emergency service categories, only valid if {@link #getServiceType} returns {@link #SERVICE_TYPE_EMERGENCY} @return {Number} the emergency service categories, If valid, the value is the bitwise-OR combination of the following constants: <ol> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED} </li> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_POLICE} </li> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AMBULANCE} </li> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_FIRE_BRIGADE} </li> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MARINE_GUARD} </li> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MOUNTAIN_RESCUE} </li> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MIEC} </li> <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AIEC} </li> </ol> Reference: 3gpp 23.167, Section 6 - Functional description; 3gpp 22.101, Section 10 - Emergency Calls. */ getEmergencyServiceCategories : function( ) {}, /**Get the emergency Uniform Resource Names (URN), only valid if {@link #getServiceType} returns {@link #SERVICE_TYPE_EMERGENCY}. Reference: 3gpp 24.503, Section 5.1.6.8.1 - General; 3gpp 22.101, Section 10 - Emergency Calls. */ getEmergencyUrns : function( ) {}, /**Get the emergency call routing, only valid if {@link #getServiceType} returns {@link #SERVICE_TYPE_EMERGENCY} If valid, the value is any of the following constants: <ol> <li>{@link EmergencyNumber#EMERGENCY_CALL_ROUTING_UNKNOWN} </li> <li>{@link EmergencyNumber#EMERGENCY_CALL_ROUTING_NORMAL} </li> <li>{@link EmergencyNumber#EMERGENCY_CALL_ROUTING_EMERGENCY} </li> </ol> */ getEmergencyCallRouting : function( ) {}, /**Get if the emergency call is for testing purpose. */ isEmergencyCallTesting : function( ) {}, /**Checks if we have known the user intent of the call is emergency. This is only used to specify when the dialed number is ambiguous when it can be identified as both emergency number and any other non-emergency number; e.g. in some situation, 611 could be both an emergency number in a country and a non-emergency number of a carrier's customer service hotline. */ hasKnownUserIntentEmergency : function( ) {}, };