Package com.avaya.clientservices.calllog

## Interface CallLogItem

-     public interface CallLogItem

  Represents information about a call log item. Each call record is represented by CallLogItem object that provides several attributes such as call start time, remote address, call duration, etc. In addition, each CallLogItem may be associated with a `Contact` object which may be used to provide picture caller ID or a customized name for the remote party of a call log item.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `getCallCount()` |
    `java.util.List<CallLogItem>` | `getCallEvents()` | A CallLogItem (i.e.
    `CallLogActionType` | `getCallLogAction()` |
    `CallLogReadStatus` | `getCallLogReadStatus()` | This property indicates whether call log item is READ or UNREAD If server doesn't provide the read staus, value is UNDEFINED Call logs can be marked as read by invoking `CallLogService.markAllCallLogsAsRead(CallLogCompletionHandler)`
    `CallLogSourceType` | `getCallLogSource()` |
    `CallType` | `getCallType()` |
    `java.lang.String` | `getConferenceId()` |
    `java.lang.String` | `getConferencePasscode()` |
    `java.util.List<CallLogParticipant>` | `getConferenceRemoteParticipants()` | If this call log was, at any time during the call, a conference, this property represents those participants who were in that conference leg of the call.
    `long` | `getDurationInSeconds()` |
    `java.util.Date` | `getEndTime()` | The call end time (UTC).
    `CallForwardingInformation` | `getForwardingInformation()` |
    `java.lang.String` | `getHuntGroupName()` |
    `java.lang.String` | `getHuntGroupNumber()` |
    `int` | `getInstanceId()` |
    `boolean` | `getIsPresentationOnlyMode()` |
    `java.lang.String` | `getLineAppearanceOwner()` |
    `java.lang.String` | `getLocalUserName()` |
    `MissedCallReason` | `getMissedCallReason()` |
    `java.lang.String` | `getPortalURL()` |
    `CallPrecedenceLevel` | `getPrecedenceLevel()` |
    `CallPreemptionReason` | `getPreemptionReason()` |
    `java.util.Map<java.lang.String,​java.lang.String>` | `getProperties()` | NOTE: This is a place holder for future generic name/value pair properties.
    `Capability` | `getRedialCapability()` | Currently, this capability has a 1:1 mapping to `isCallerIdPrivate()`.
    `java.lang.String` | `getRemoteNumber()` |
    `java.util.List<CallLogParticipant>` | `getRemoteParticipants()` |
    `java.lang.String` | `getSendNNExtension()` |
    `java.util.Date` | `getStartTime()` | The call start time (UTC).
    `java.lang.String` | `getSubject()` | Call subject for this call log item.
    `SupervisorCallType` | `getSupervisorCallType()` |
    `java.lang.String` | `getTag()` |
    `long` | `getTotalCallDurationInSeconds()` | Duration of established call on answer.
    `java.lang.String` | `getVectorDirectoryNumberName()` |
    `java.lang.String` | `getVirtualRoomName()` |
    `boolean` | `isAutomaticCallDistributionCall()` |
    `boolean` | `isCallerIdPrivate()` | This property does not provide a mechanism to enforce redial disablement.
    `boolean` | `isConference()` |
    `boolean` | `isIgnored()` |
    `boolean` | `isRemote()` |
    `boolean` | `wasCallAConference()` |

- - ### Method Detail

    - #### getLocalUserName

          java.lang.String getLocalUserName()

      Returns:
        local user's identity.

    - #### getLineAppearanceOwner

          java.lang.String getLineAppearanceOwner()

      Returns:
        Extension of the call owner for bridged line appearances cases.

    - #### getRemoteParticipants

          java.util.List<CallLogParticipant> getRemoteParticipants()

      Returns:
        collection of participants for this call log item. This list represents those addresses/endpoints/users participated in this segment of the call, and does not represent the union of all users who participated in this call. The local user may have conversed with those RemoteParticipants listed in `getCallEvents()` records.

    - #### getConferenceRemoteParticipants

          java.util.List<CallLogParticipant> getConferenceRemoteParticipants()

      If this call log was, at any time during the call, a conference, this property represents those participants who were in that conference leg of the call. Conference remote participants represents a subset of all remote participants in all CallLogItems represented in CallEvents as well as those in the top level CallLogItem.
      Returns:
        conference participants

    - #### getSubject

          java.lang.String getSubject()

      Call subject for this call log item. Call subject can be set by the client to get the context of the call. For example the client can set a call subject for the call from the IM window and the CallLogItem will reflect that. Call subject can also be obtained from a conference.
      Returns:
        The subject for this call log item.

    - #### getStartTime

          java.util.Date getStartTime()

      The call start time (UTC).
      Returns:
        the call start time.

    - #### getEndTime

          java.util.Date getEndTime()

      The call end time (UTC).
      Returns:
        the call end time.

    - #### getDurationInSeconds

          long getDurationInSeconds()

      Returns:
        duration of the first leg of the call in seconds.

    - #### getTotalCallDurationInSeconds

          long getTotalCallDurationInSeconds()

      Duration of established call on answer. If the call is not answered then Total duration shows full call duration from the first ring.
      Returns:
        total duration of the call in seconds.

    - #### getCallLogSource

          CallLogSourceType getCallLogSource()

      Returns:
        the media source type for this call log item (ie. Video, Voice or IM etc).

    - #### getCallLogAction

          CallLogActionType getCallLogAction()

      Returns:
        action type that generated this call log item (ie. Answered or Outgoing etc).

    - #### getCallLogReadStatus

          CallLogReadStatus getCallLogReadStatus()

      This property indicates whether call log item is READ or UNREAD If server doesn't provide the read staus, value is UNDEFINED Call logs can be marked as read by invoking `CallLogService.markAllCallLogsAsRead(CallLogCompletionHandler)`
      Returns:
        read status of the call log item (ie. Read or Unread etc).

    - #### isConference

          boolean isConference()

      Returns:
        Indicates if the first leg of the call was a conference type.

    - #### wasCallAConference

          boolean wasCallAConference()

      Returns:
        Indicates if the call was ever a conference in its life cycle.

    - #### isIgnored

          boolean isIgnored()

      Returns:
        Indicates if the call was ignored by the local user.

    - #### getRemoteNumber

          java.lang.String getRemoteNumber()

      Returns:
        remote number to be used to redial this call, and it represents the address (phone number) to the far end in the call. This value does not imply the call will be completed in all cases.

    - #### isCallerIdPrivate

          boolean isCallerIdPrivate()

      This property does not provide a mechanism to enforce redial disablement. The property value only provides a guideline for the client behavior.
      Returns:
        Indicates if a remote party requested the call id to be private.

    - #### isRemote

          boolean isRemote()

      Returns:
        Indicates if the call record is created for the remote call.

    - #### getRedialCapability

          Capability getRedialCapability()

      Currently, this capability has a 1:1 mapping to `isCallerIdPrivate()`. The capability value of Allowed == true does not imply that the remote number reported in this CallLogItem will always result in the call being completed.

      The return value for this method only indicates whether or not an attempt can be made to redial this log entry. Ultimately, whether or not redial attempts will be successful depends on the ability for the voice network to route the call successfully. This can only by determined by an actual attempt to place the call.

      Returns:
        indicates if this call log item can be used to redial the remote number.

    - #### getProperties

          java.util.Map<java.lang.String,​java.lang.String> getProperties()

      NOTE: This is a place holder for future generic name/value pair properties.
      Returns:
        map of key/value pair for any additional generic properties for this call log item.

    - #### getCallEvents

          java.util.List<CallLogItem> getCallEvents()

      A CallLogItem (i.e. instance of this class) provides a wholistic view of individual transactions that took place during the lifecycle of a call.

      After answering an incoming call or a dial out to a remote user, the call can get transferred (i.e. remote address is changed in the same call dialog) or redirected/forwarded to a different number/user. These transactions will be captured in the CallEvents list. Each event in CallEvents list contains the full detail of a CallLogItem.

      Note that the CallLogItem represents the details of the first leg of the call and entries in CallEvents list represent subsequent call transactions. For example, if a call was made from user A to B, and then user B transferred user A to user C, then CallLogItem will represent the initial call leg between A and B, and the 1 CallEvents item will represent the transferred call leg between A and C. These 2 call legs make up the one call experienced by user A.

      Returns:
        collection of call events recorded for this call log.

    - #### getCallType

          CallType getCallType()

      Returns:
        the call type of this call log item.

    - #### getPortalURL

          java.lang.String getPortalURL()

      Returns:
        the URL of the Unified Portal Server (MeetMe call type only).

    - #### getConferenceId

          java.lang.String getConferenceId()

      Returns:
        the Virtual Room id of the conference call.

    - #### getConferencePasscode

          java.lang.String getConferencePasscode()

      Returns:
        the conference passcode used to join the conference call.

    - #### getVirtualRoomName

          java.lang.String getVirtualRoomName()

      Returns:
        the name of the Virtual Room.

    - #### getIsPresentationOnlyMode

          boolean getIsPresentationOnlyMode()

      Returns:
        true if the call was created in presentation only mode.

    - #### getPrecedenceLevel

          CallPrecedenceLevel getPrecedenceLevel()

      Returns:
        the precedence level of call.
      See Also:
        `CallPrecedenceLevel`

    - #### getPreemptionReason

          CallPreemptionReason getPreemptionReason()

      Returns:
        the reason why this call was preempted.
      See Also:
        `CallPreemptionReason`

    - #### getCallCount

          int getCallCount()

      Returns:
        count indicating the total number of calls of a particular ActionType(i.e Missed/Outgoing/Incoming)

    - #### getHuntGroupName

          java.lang.String getHuntGroupName()

      Returns:
        the hunt group name

    - #### getHuntGroupNumber

          java.lang.String getHuntGroupNumber()

      Returns:
        the hunt group number

    - #### getTag

          java.lang.String getTag()

      Returns:
        the tag of the call log item

    - #### getInstanceId

          int getInstanceId()

      Returns:
        the unique number associated with each call record item assigned by server. For the local call logs, default value will be 0

    - #### getVectorDirectoryNumberName

          java.lang.String getVectorDirectoryNumberName()

      Returns:
        VDN name for the call. Empty string if value not provided.

    - #### isAutomaticCallDistributionCall

          boolean isAutomaticCallDistributionCall()

      Returns:
        true if the call sent from from Vector (Automatic Call Distribution).

    - #### getSupervisorCallType

          SupervisorCallType getSupervisorCallType()

      Returns:
        enum indicating supervisor call type.

    - #### getForwardingInformation

          CallForwardingInformation getForwardingInformation()

      Returns:
        call forwarding information.

    - #### getMissedCallReason

          MissedCallReason getMissedCallReason()

      Returns:
        the missed call reason.

    - #### getSendNNExtension

          java.lang.String getSendNNExtension()

      Returns:
        SendNN extension for the call. Empty if call is not connected or if there is no Send NN extension for the call.
      See Also:
        `CallFeatureService.getSendNNCapability()`, `CallFeatureService.setSendNNEnabled(boolean, String, FeatureCompletionHandler)`, `CallFeatureService.invokeSendNNCallWithExtension(String, String, FeatureCompletionHandler)`, `CallFeatureServiceListener.onSimRingCallbackStatusChanged(CallFeatureService, boolean, SimRingCallbackStatusParameters)`