Package com.avaya.clientservices.call.conference

## Interface ConferenceListener

-     public interface ConferenceListener

  ConferenceListener is an interface implemented by the client application wishing to receive conference related change information from the `Conference` object. The client application may register one or more ConferenceListener instances with the `Conference` using `Conference.addListener(ConferenceListener)` method. The ConferenceListener interface may be called as a result of local operations on the `Conference` object as well as remote changes made on the conference call. For example, if the local user is a conference moderator, (s)he may call `Conference.startRecording(com.avaya.clientservices.call.CallCompletionHandler)` to start conference recording. This will result on `onConferenceRecordingStatusChanged(Conference, ConferenceRecordingStatus)` callback. Similarly, a remote conference moderator may start conference recording, which will result in receipt of a network notification that is also mapped to `onConferenceRecordingStatusChanged(Conference, ConferenceRecordingStatus)`. It should be noted that the set of notifications reported through the listener interface depends on the capabilities of the conference server. In some conference server environments, some of the callbacks defined below may never be called because the server does not support the underlying services/features that result in the listener callbacks. Participant related status changes are provided through the `ActiveParticipantListener` interface.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `onConferenceActiveTalkersChanged​(Conference conference, DataCollectionChangeType changeType, java.util.List<ActiveParticipant> participants)` | Called to report a change in conference call's active talker list.
    `void` | `onConferenceAlwaysDisplayActiveSpeakerVideoChanged​(Conference conference, boolean alwaysDisplayActiveSpeakerVideo)` | Reports that the option that controls display of the active speaker's video has changed.
    `void` | `onConferenceAvailableVideoLayoutsChanged​(Conference conference, VideoLayout[] layouts)` | Reports that the list of available video layouts supported by the conference server has changed.
    `void` | `onConferenceBrandNameChanged​(Conference conference, java.lang.String conferenceBrandName)` | Called to report that the conference's brand name has changed.
    `void` | `onConferenceCapabilitiesChanged​(Conference conference)` | Called to report a change in conference call's capabilities.
    `void` | `onConferenceContinuationStatusChanged​(Conference conference, boolean continuationStatus)` | Called to report that the continuation property of the conference has changed as a result of a local or a remote operation.
    `void` | `onConferenceDisplayVideoParticipantNameChanged​(Conference conference, boolean displayVideoParticipantName)` | Reports that the option that controls display of the participant name in video image has changed.
    `void` | `onConferenceDroppedParticipantsChanged​(Conference conference, DataCollectionChangeType changeType, java.util.List<DroppedParticipant> participants)` | Called to report a change in conference call's dropped participant list.
    `void` | `onConferenceEncryptionStatusChanged​(Conference conference, ConferenceEncryptionStatus encryptionStatus)` | Called to report that the conference's encryption status has changed based on the encryption status of current participants on the call.
    `void` | `onConferenceEndTimeChanged​(Conference conference, java.util.Date endTime)` | Called to report that the conference's end time has been specified as a result of a local or a remote operation.
    `void` | `onConferenceEntryExitToneStatusChanged​(Conference conference, boolean toneStatus)` | Called to report that the conference's entry/exit tone enabled status has changed as a result of a local or a remote operation.
    `void` | `onConferenceExternalAdmissionStatusChanged​(Conference conference, boolean bIsRequired)` | Called to report that the external admission status for the current conference call has changed.
    `void` | `onConferenceHandLowered​(Conference conference)` | Notifies the application that the local user's hand has been lowered.
    `void` | `onConferenceHandRaised​(Conference conference)` | Called to report local user's hand has been raised.
    `void` | `onConferenceLectureModeStatusChanged​(Conference conference, boolean lectureModeStatus)` | Called to report that the conference's lecture mode status has changed as a result of a local or a remote operation.
    `void` | `onConferenceLockStatusChanged​(Conference conference, boolean lockStatus)` | Called to report that the conference's lock status has changed as a result of a local or a remote operation.
    `void` | `onConferenceParticipantsChanged​(Conference conference, DataCollectionChangeType changeType, java.util.List<ActiveParticipant> participants)` | Called to report a change in conference call's participant list.
    `void` | `onConferencePasscodeRequired​(Conference conference, boolean permissionToEnterLockedConferenceRequired)` | Called to report that the user needs to provide admission passcode before (s)he can be admitted to the conference call.
    `void` | `onConferencePendingParticipantsChanged​(Conference conference, DataCollectionChangeType changeType, java.util.List<PendingParticipant> participants)` | Called to report a change in conference call's pending participant list.
    `void` | `onConferencePermissionToEnterLockedConferenceRequired​(Conference conference)` | Called to report that the user is trying to join a locked conference call that does not require a passcode for entry.
    `void` | `onConferenceRecentTalkersChanged​(Conference conference, DataCollectionChangeType changeType, java.util.List<ActiveParticipant> participants)` | Called to report a change in conference call's recent talkers list.
    `void` | `onConferenceRecordingStatusChanged​(Conference conference, ConferenceRecordingStatus recordingStatus)` | Called to report that the conference's recording status has changed as a result of a local or a remote operation.
    `void` | `onConferenceServiceAvailable​(Conference conference)` | Called to report that the conference has a healthy signaling path.
    `void` | `onConferenceServiceUnavailable​(Conference conference, ConferenceConnectionError error)` | Called to report that the conference does not have a healthy signaling path.
    `void` | `onConferenceStarted​(Conference conference)` | Called to report that the conference has started.
    `void` | `onConferenceStreamingStatusChanged​(Conference conference, ConferenceStreamingStatus streamingStatus)` | Called to report that the conference's streaming status has changed.
    `void` | `onConferenceSubjectChanged​(Conference conference, java.lang.String conferenceSubject)` | Called to report that the conference's subject/title has changed.
    `void` | `onConferenceVideoLayoutChanged​(Conference conference, VideoLayout layout)` | Reports that the layout of the video image created by the conference server has changed.
    `void` | `onConferenceVideoSelfSeeChanged​(Conference conference, boolean selfSee)` | Reports that the option that controls the self-see video has changed.
    `void` | `onConferenceVideoStatusChanged​(Conference conference, boolean videoStatus)` | Called to report that the conference's video enabled status has changed as a result of a local or a remote operation.
    `void` | `onConferenceWaitingToStart​(Conference conference)` | Called to report that the conference has not started, and the local user is waiting for the conference to start.
    `void` | `onEventConferenceStatusChanged​(Conference conference, boolean eventConference)` | Called to report that the conference's type has been changed.

- - ### Method Detail

    - #### onConferenceWaitingToStart

          void onConferenceWaitingToStart​(Conference conference)

      Called to report that the conference has not started, and the local user is waiting for the conference to start. At this point, the conference server may provide wait treatment to the end user, e.g., by playing music and/or displaying a still video image. This information is reported based on an indication received from the conference server and may not be provided depending on the server's capabilities.
      Parameters:
        `conference` - The conference object that the callback is associated with.

    - #### onConferenceStarted

          void onConferenceStarted​(Conference conference)

      Called to report that the conference has started. Called only when onConferenceWaitingToStart() is previously called.
      Parameters:
        `conference` - The conference object that the callback is associated with.

    - #### onConferenceCapabilitiesChanged

          void onConferenceCapabilitiesChanged​(Conference conference)

      Called to report a change in conference call's capabilities. The listener can query the Conference object to find out about the capability that changed. Usually, the capabilities changed notification is tied to the features supported by the conference server as well as the local user's role (e.g., moderator, presenter, lecturer, etc.) for the conference call.
      Parameters:
        `conference` - The conference object that the callback is associated with.

    - #### onConferenceParticipantsChanged

          void onConferenceParticipantsChanged​(Conference conference,
                                               DataCollectionChangeType changeType,
                                               java.util.List<ActiveParticipant> participants)

      Called to report a change in conference call's participant list.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `changeType` - Indicates the type of change that occurred on the participant list.
        `participants` - The participants that have changed. Note that for a change type of COLLECTION_CLEARED this list will be empty.
      See Also:
        `Conference.getParticipants()`

    - #### onConferenceDroppedParticipantsChanged

          void onConferenceDroppedParticipantsChanged​(Conference conference,
                                                      DataCollectionChangeType changeType,
                                                      java.util.List<DroppedParticipant> participants)

      Called to report a change in conference call's dropped participant list.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `changeType` - Indicates the type of change that occurred on the dropped participant list.
        `participants` - The participants that have changed. Note that for a change type of COLLECTION_CLEARED this list will be empty.
      See Also:
        `Conference.getDroppedParticipants()`, `ChangeType`

    - #### onConferencePendingParticipantsChanged

          void onConferencePendingParticipantsChanged​(Conference conference,
                                                      DataCollectionChangeType changeType,
                                                      java.util.List<PendingParticipant> participants)

      Called to report a change in conference call's pending participant list.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `changeType` - Indicates the type of change that occurred on the pending participant list.
        `participants` - The participants that have changed. Note that for a change type of COLLECTION_CLEARED this list will be empty.
      See Also:
        `Conference.getPendingParticipants()`, `ChangeType`

    - #### onConferenceActiveTalkersChanged

          void onConferenceActiveTalkersChanged​(Conference conference,
                                                DataCollectionChangeType changeType,
                                                java.util.List<ActiveParticipant> participants)

      Called to report a change in conference call's active talker list.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `changeType` - Indicates the type of change that occurred on the active talker list.
        `participants` - The participants that have changed. Note that for a change type of COLLECTION_CLEARED this list will be empty.
      See Also:
        `Conference.getActiveTalkers()`, `ChangeType`

    - #### onConferenceRecentTalkersChanged

          void onConferenceRecentTalkersChanged​(Conference conference,
                                                DataCollectionChangeType changeType,
                                                java.util.List<ActiveParticipant> participants)

      Called to report a change in conference call's recent talkers list.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `changeType` - Indicates the type of change that occurred on the recent talkers list.
        `participants` - The participants that have changed. Note that for a change type of COLLECTION_CLEARED this list will be empty.
      See Also:
        `Conference.getRecentTalkers()`, `ChangeType`

    - #### onConferenceLockStatusChanged

          void onConferenceLockStatusChanged​(Conference conference,
                                             boolean lockStatus)

      Called to report that the conference's lock status has changed as a result of a local or a remote operation.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `lockStatus` - New lock status of the call.
      See Also:
        `Conference.setLocked(boolean, com.avaya.clientservices.call.CallCompletionHandler)`, `Conference.isLocked()`

    - #### onConferenceContinuationStatusChanged

          void onConferenceContinuationStatusChanged​(Conference conference,
                                                     boolean continuationStatus)

      Called to report that the continuation property of the conference has changed as a result of a local or a remote operation.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `continuationStatus` - New continuation status of the call.
      See Also:
        `Conference.setContinuation(boolean, com.avaya.clientservices.call.CallCompletionHandler)`, `Conference.isContinuationActive()`

    - #### onConferenceRecordingStatusChanged

          void onConferenceRecordingStatusChanged​(Conference conference,
                                                  ConferenceRecordingStatus recordingStatus)

      Called to report that the conference's recording status has changed as a result of a local or a remote operation.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `recordingStatus` - New recording status of the call.
      See Also:
        `Conference.startRecording(com.avaya.clientservices.call.CallCompletionHandler)`, `Conference.stopRecording(com.avaya.clientservices.call.CallCompletionHandler)`, `Conference.pauseRecording(com.avaya.clientservices.call.CallCompletionHandler)`, `Conference.resumeRecording(com.avaya.clientservices.call.CallCompletionHandler)`, `Conference.isRecordingActive()`, `Conference.isRecordingPaused()`

    - #### onConferenceEncryptionStatusChanged

          void onConferenceEncryptionStatusChanged​(Conference conference,
                                                   ConferenceEncryptionStatus encryptionStatus)

      Called to report that the conference's encryption status has changed based on the encryption status of current participants on the call.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `encryptionStatus` - New encryption status of the call.
      See Also:
        `Conference.getEncryptionStatus()`

    - #### onConferenceStreamingStatusChanged

          void onConferenceStreamingStatusChanged​(Conference conference,
                                                  ConferenceStreamingStatus streamingStatus)

      Called to report that the conference's streaming status has changed.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `streamingStatus` - New streaming status of the call.
      See Also:
        `Conference.getStreamingStatus()`

    - #### onConferenceEndTimeChanged

          void onConferenceEndTimeChanged​(Conference conference,
                                          java.util.Date endTime)

      Called to report that the conference's end time has been specified as a result of a local or a remote operation.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `endTime` - Conference's end time.
      See Also:
        `Conference.extendMeeting(int, com.avaya.clientservices.call.CallCompletionHandler)`

    - #### onConferenceVideoStatusChanged

          void onConferenceVideoStatusChanged​(Conference conference,
                                              boolean videoStatus)

      Called to report that the conference's video enabled status has changed as a result of a local or a remote operation.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `videoStatus` - New video status of the call
      See Also:
        `Conference.setVideoAllowed(boolean, com.avaya.clientservices.call.CallCompletionHandler)`, `Conference.isVideoAllowed()`

    - #### onConferenceLectureModeStatusChanged

          void onConferenceLectureModeStatusChanged​(Conference conference,
                                                    boolean lectureModeStatus)

      Called to report that the conference's lecture mode status has changed as a result of a local or a remote operation.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `lectureModeStatus` - New lecture mode status of the call.
      See Also:
        `Conference.setLectureMode(boolean, com.avaya.clientservices.call.CallCompletionHandler)`, `Conference.isLectureModeActive()`

    - #### onConferenceEntryExitToneStatusChanged

          void onConferenceEntryExitToneStatusChanged​(Conference conference,
                                                      boolean toneStatus)

      Called to report that the conference's entry/exit tone enabled status has changed as a result of a local or a remote operation.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `toneStatus` - New entry/exit tone status of the call.
      See Also:
        `Conference.setEntryExitTone(boolean, com.avaya.clientservices.call.CallCompletionHandler)`, `Conference.isEntryExitToneActive()`

    - #### onConferenceSubjectChanged

          void onConferenceSubjectChanged​(Conference conference,
                                          java.lang.String conferenceSubject)

      Called to report that the conference's subject/title has changed.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `conferenceSubject` - New subject of the conference call.

    - #### onConferenceBrandNameChanged

          void onConferenceBrandNameChanged​(Conference conference,
                                            java.lang.String conferenceBrandName)

      Called to report that the conference's brand name has changed. The brand name is the product family brand name associated with the conference system.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `conferenceBrandName` - New brand name of the conference call.

    - #### onConferenceVideoSelfSeeChanged

          void onConferenceVideoSelfSeeChanged​(Conference conference,
                                               boolean selfSee)

      Reports that the option that controls the self-see video has changed.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `selfSee` - New status of the video self-see setting.
      See Also:
        `Conference.setVideoSelfSee(boolean, com.avaya.clientservices.call.CallCompletionHandler)`

    - #### onConferenceDisplayVideoParticipantNameChanged

          void onConferenceDisplayVideoParticipantNameChanged​(Conference conference,
                                                              boolean displayVideoParticipantName)

      Reports that the option that controls display of the participant name in video image has changed.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `displayVideoParticipantName` - New status of the participant name display setting.
      See Also:
        `Conference.setDisplayVideoParticipantName(boolean, com.avaya.clientservices.call.CallCompletionHandler)`, `Conference.isVideoParticipantNameDisplayActive()`

    - #### onConferenceAlwaysDisplayActiveSpeakerVideoChanged

          void onConferenceAlwaysDisplayActiveSpeakerVideoChanged​(Conference conference,
                                                                  boolean alwaysDisplayActiveSpeakerVideo)

      Reports that the option that controls display of the active speaker's video has changed.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `alwaysDisplayActiveSpeakerVideo` - New status of the active speaker's video display setting.
      See Also:
        `Conference.isActiveSpeakerVideoAlwaysDisplayed()`

    - #### onConferenceVideoLayoutChanged

          void onConferenceVideoLayoutChanged​(Conference conference,
                                              VideoLayout layout)

      Reports that the layout of the video image created by the conference server has changed.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `layout` - New video layout setting.
      See Also:
        `Conference.setVideoLayout(VideoLayout, com.avaya.clientservices.call.CallCompletionHandler)`, `Conference.getCurrentVideoLayout()`

    - #### onConferenceAvailableVideoLayoutsChanged

          void onConferenceAvailableVideoLayoutsChanged​(Conference conference,
                                                        VideoLayout[] layouts)

      Reports that the list of available video layouts supported by the conference server has changed.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `layouts` - New list of available video layouts.
      See Also:
        `Conference.getSupportedVideoLayoutList()`

    - #### onConferenceHandRaised

          void onConferenceHandRaised​(Conference conference)

      Called to report local user's hand has been raised.
      Parameters:
        `conference` - The conference object that the callback is associated with.
      See Also:
        `Conference.raiseHand(com.avaya.clientservices.call.CallCompletionHandler)`, `Conference.lowerHand(com.avaya.clientservices.call.CallCompletionHandler)`, `Conference.isHandRaised()`

    - #### onConferenceHandLowered

          void onConferenceHandLowered​(Conference conference)

      Notifies the application that the local user's hand has been lowered. This can occur when either the conference moderator or the local user lowers the hand.
      Parameters:
        `conference` - The conference object that the callback is associated with.
      See Also:
        `Conference.raiseHand(com.avaya.clientservices.call.CallCompletionHandler)`, `Conference.lowerHand(com.avaya.clientservices.call.CallCompletionHandler)`, `Conference.isHandRaised()`

    - #### onConferencePasscodeRequired

          void onConferencePasscodeRequired​(Conference conference,
                                            boolean permissionToEnterLockedConferenceRequired)

      Called to report that the user needs to provide admission passcode before (s)he can be admitted to the conference call. Upon receiving this event, the client application should prompt user for the conference admission passcode. If user chooses to enter the conference room, the client application needs to call `Conference.sendPasscode(String, com.avaya.clientservices.call.CallCompletionHandler)`, after collecting the passcode from the end user. If user chooses not to enter the conference room, the client application needs to call `Call.end()` to end the connection to the conference call.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `permissionToEnterLockedConferenceRequired` - If set to true, it means that the conference room is locked and passcode is required to get in. If set to false, it means that the conference room is not locked, but passcode is required to get in.

    - #### onConferencePermissionToEnterLockedConferenceRequired

          void onConferencePermissionToEnterLockedConferenceRequired​(Conference conference)

      Called to report that the user is trying to join a locked conference call that does not require a passcode for entry. If the user chooses to request permission from the moderator to enter the call, the application should call `Conference.sendRequestToEnterLockedConference(com.avaya.clientservices.call.CallCompletionHandler)`. If the user chooses not to request permission, the application should `Call.end()` to end the connection to the conference call. It should be noted that a locked conference call may also require admission passcode. In this case, `onConferencePasscodeRequired(Conference, boolean)` is called with permissionToEnterLockedConferenceRequired set to true.
      Parameters:
        `conference` - The conference object that the callback is associated with.

    - #### onConferenceServiceAvailable

          void onConferenceServiceAvailable​(Conference conference)

      Called to report that the conference has a healthy signaling path. Depending on the network topology, the call session and the conference controls may share the same signaling connection (e.g., SIP and tunnel CCMP), or may use different connections. This is why separate service available/unavailable callback is provided for the Conference object.
      Parameters:
        `conference` - The conference that the callback is associated with.

    - #### onConferenceServiceUnavailable

          void onConferenceServiceUnavailable​(Conference conference,
                                              ConferenceConnectionError error)

      Called to report that the conference does not have a healthy signaling path. Depending on the network topology, the call session and the conference controls may share the same signaling connection (e.g., SIP and tunnel CCMP), or may use different connections. This is why separate service available/unavailable callback is provided for the Conference object.
      Parameters:
        `conference` - The conference that the callback is associated with.
        `error` - Current conference connection error.

    - #### onConferenceExternalAdmissionStatusChanged

          void onConferenceExternalAdmissionStatusChanged​(Conference conference,
                                                          boolean bIsRequired)

      Called to report that the external admission status for the current conference call has changed.
      Parameters:
        `conference` - The conference that the callback is associated with.
        `bIsRequired` - Current conference's external admission status.

    - #### onEventConferenceStatusChanged

          void onEventConferenceStatusChanged​(Conference conference,
                                              boolean eventConference)

      Called to report that the conference's type has been changed. Event conference is a large meeting (up to 2000 active participants) which is mainly used for large events and training.
      Parameters:
        `conference` - The conference object that the callback is associated with.
        `eventConference` - True if conference type changed to Event type. False - changed to Regular.
      See Also:
        `Conference.isEventConference()`