# Class: Presence

## Constructor

#### new Presence(presentity)

  Presence information for the user.

  This class is used to get presence states for users other than the local one (incoming presence).
  Presence information is divided into 2 parts: automatic and application.

  The automatic part consists of so-called presence channels and their availability.
  A channel is a way of communication with a user including communication address and availability of the channel.
  Channels include the phone channel, the video channel, the IM channel and the calendar channel.
  For instance, the phone channel represents a phone number of the user and current PresenceState of the channel.
  If the state of the phone channel is available, the user is able to receive calls. If the state is "on a call", the user is unlikely to accept a new call.

  The application part of presence information consists of manually published PresenceState, PresenceLocationMode and a note.
  Application PresenceState is a presence state that the user wants to set their client to.
  Application PresenceLocationMode is also controlled by the user specifying their current location.
  Application note is merely a short string representing some user comment regarding their current status.

  Although there are many aspects of presence information, there is also an overall presence state populated automatically.
  The overall state should be used to represent the state of the user.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `presentity` | string |

## Methods

#### getCalendarEndTime() → {date}

  Returns the user's appointment or meeting end date associated with the calendar state, if any.

  ##### Returns:

  { date }

  User's appointment or meeting end date, if any, or undefined otherwise.

#### getCalendarStartTime() → {date}

  Returns the user's appointment or meeting start date associated with the calendar state, if any.

  ##### Returns:

  { date }

  User's appointment or meeting start date, if any, or undefined otherwise.

#### getCalendarState() → {AvayaClientServices.Services.Presence.CalendarPresenceState}

  Returns the presence state of the calendar channel, if any.

  ##### Returns:

  { AvayaClientServices.Services.Presence.CalendarPresenceState }

  Calendar channel state of this presence information object.

#### getEnterpriseIMContact() → {string}

  Returns the contact address associated with the enterprise instant messaging channel, if any.

  ##### Returns:

  { string }

  Enterprise IM contact address of this presence information object.

#### getEnterpriseIMState() → {AvayaClientServices.Services.Presence.IMPresenceState}

  Returns the presence state of the enterprise instant messaging channel, if any.

  ##### Returns:

  { AvayaClientServices.Services.Presence.IMPresenceState }

  Enterprise IM channel state of this presence information object.

#### getLocationMode() → {AvayaClientServices.Services.Presence.PresenceLocationMode}

  Returns the location-based "mode" of the user, if any.

  ##### Returns:

  { AvayaClientServices.Services.Presence.PresenceLocationMode }

  Location mode of this presence information object.

#### getManualState() → {AvayaClientServices.Services.Presence.ManualPresenceState}

  Returns the manual presence state set by the user, if any.

  If the value of the manual state is PresenceState.PRESENCE_STATE_UNSPECIFIED, no manual state is set and the overall presence state is determined automatically.

  ##### Returns:

  { AvayaClientServices.Services.Presence.ManualPresenceState }

  Manual presence state of this presence information object.

#### getNote() → {string}

  Returns the presence note, if any.

  ##### Returns:

  { string }

  Presence note of this presence information object.

#### getOverallState() → {AvayaClientServices.Services.Presence.PresenceState}

  Returns the overall presence state as determined by availability calculation.

  ##### Returns:

  { AvayaClientServices.Services.Presence.PresenceState }

  Overall presence state of this presence information object.

#### getPhoneContact() → {string}

  Returns the contact address associated with the phone channel, if any.

  ##### Returns:

  { string }

  Phone contact address of this presence information object.

#### getPhoneState() → {AvayaClientServices.Services.Presence.PhonePresenceState}

  Returns the presence state of the phone channel, if any.

  ##### Returns:

  { AvayaClientServices.Services.Presence.PhonePresenceState }

  Phone channel state of this presence information object.

#### getPresentity() → {string}

  Returns the address of the user this presence object is associated with.

  ##### Returns:

  { string }

  The presentity associated with this presence information object.

#### getVideoContact() → {string}

  Returns the contact address associated with the video channel, if any.

  ##### Returns:

  { string }

  Video contact address of this presence information object.

#### getVideoState() → {AvayaClientServices.Services.Presence.VideoPresenceState}

  Returns the presence state of the video channel, if any.

  ##### Returns:

  { AvayaClientServices.Services.Presence.VideoPresenceState }

  Video channel state of this presence information object.