/**@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(  ) {},


};