# Class: ContentSharing

## Constructor

#### new ContentSharing(contentSharingService, collaborations)

  Content sharing defines the set of interactions a client application can have with
  a content share session. Content share can be configured to send (share with the network)
  or receive (render received content from the network).

  Remote control of a screen sharing session requires additional software to translate incoming
  keyboard and mouse events to the OS. This functionality is not provided by the SDK and
  will not work using browser APIs only.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharingService` | AvayaClientServices.Services.Collaboration.ContentSharingService |
  `collaborations` | AvayaClientServices.Services.Collaboration.Collaborations |

## Methods

#### copyPasteRemoteControl(clipboardText) → {AvayaClientServices.Base.Promise.<(Object|undefined)>}

  Copy/paste clipboard text from/to remote clipboard depending on controllee/controller role.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `clipboardText` | String | <optional> | if undefined then try reading text from clipboard if supported by browser

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(Object|undefined)> }

#### declineRemoteControl(controlleeId) → {AvayaClientServices.Base.Promise.<(Object|undefined)>}

  Declines remote control.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `controlleeId` | String |

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(Object|undefined)> }

#### denyRemoteControl(controllerId) → {AvayaClientServices.Base.Promise.<(Object|undefined)>}

  Denies remote control request.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `controllerId` | String |

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(Object|undefined)> }

#### end() → {AvayaClientServices.Base.Promise.<(undefined|undefined)>}

  Ends content sharing session of the local user or content sharing of another collaboration participant.

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(undefined|undefined)> }

#### endRemoteControl(controlleeId) → {AvayaClientServices.Base.Promise.<(Object|undefined)>}

  Ends remote control.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `controlleeId` | String | <optional> | use the current participant id if undefined

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(Object|undefined)> }

#### getCapturedScreenSharingHeight() → {Number|undefined}

  Returns the captured content sharing height

  ##### Returns:

  { Number | undefined }

#### getCapturedScreenSharingWidth() → {Number|undefined}

  Returns the captured content sharing width

  ##### Returns:

  { Number | undefined }

#### getOutgoingCapturedStream() → {MediaStream|undefined}

  Returns captured stream or undefined (if user didnt capture the content).
  This optional API will not get the screen sharing stream sent to the network.
  It is intended to get the screen captured stream. getOutgoingScreenSharingStream can be used to get outgoing screen sharing stream sent to the network.

  ##### Returns:

  { MediaStream | undefined }

#### getOutgoingScreenSharingStream() → {MediaStream|undefined}

  Returns outgoing screen sharing stream or undefined (if user is not sharing the content).

  ##### Returns:

  { MediaStream | undefined }

#### getReceivingBitrate() → {number}

  Returns receiving bitrate (bits/second).

  ##### Returns:

  { number }

#### getRemoteControlRole() → {AvayaClientServices.Services.Collaboration.RemoteControlRole}

  Returns the collaboration participant remote control role.

  ##### Returns:

  { AvayaClientServices.Services.Collaboration.RemoteControlRole }

#### getScreenSharingMasks() → {Array.<AvayaClientServices.Base.Mask>}

  Gets the masked regions currently set.

  ##### Returns:

  { Array.<AvayaClientServices.Base.Mask> }

#### getScreenSharingVisibleRect() → {AvayaClientServices.Base.Rect}

  Gets the visible screen sharing rectangle currently set.

  ##### Returns:

  { AvayaClientServices.Base.Rect }

#### grantRemoteControl(controllerId, osType) → {AvayaClientServices.Base.Promise.<(Object|undefined)>}

  Grants remote control request.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `controllerId` | String |  |
  `osType` | String | <optional> | extract from browser user agent if undefined

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(Object|undefined)> }

#### isContentSharingActive() → {boolean}

  Determines whether the screen sharing/presenting content is currently active. Returns true if the sharing is active. Otherwise returns false.

  ##### Returns:

  { boolean }

#### isContentSharingPaused() → {boolean}

  Determines whether the screen sharing/presenting content is currently paused. Returns true if the sharing is paused. Otherwise returns false.

  ##### Returns:

  { boolean }

#### isPresenting() → {boolean}

  Determines whether the local user has an active content sharing session. Returns true if the local user is currently sharing. Otherwise returns false.

  ##### Returns:

  { boolean }

#### isScreenSharingUsingVideo() → {Boolean}

  Determines whether the local user is sharing content video.

  ##### Returns:

  { Boolean }

#### isScreenSharingUsingVideo() → {Boolean}

  Determines whether the local user is sharing content video with audio

  ##### Returns:

  { Boolean }

#### isSharingApplicationWindow() → {Boolean}

  Determines whether the local user is sharing the application window.

  ##### Returns:

  { Boolean }

#### isSharingFullScreen() → {Boolean}

  Determines whether the local user is sharing a full screen.

  ##### Returns:

  { Boolean }

#### onScreenSharingQueryCursorPosition() → {AvayaClientServices.Services.Collaboration.Point}

  Interface for query function to be invoked to retrieve the current cursor position from content screen sharing client.

  ##### Returns:

  { AvayaClientServices.Services.Collaboration.Point }

#### pause() → {AvayaClientServices.Base.Promise.<(boolean|undefined)>}

  Pauses content sharing session of the local user.

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(boolean|undefined)> }

#### requestRemoteControl() → {AvayaClientServices.Base.Promise.<(AvayaClientServices.Base.ErrorReasons|undefined)>}

  Requests remote control.

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(AvayaClientServices.Base.ErrorReasons|undefined)> }

#### resume() → {AvayaClientServices.Base.Promise.<(boolean|undefined)>}

  Resumes content sharing session of the local user.

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(boolean|undefined)> }

#### sendRemoteControlKeyboardTag(altKey, ctrlKey, shiftKey, metaKey, keyCode, eventType)

  Sends remote control keyboard tag to controllee

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `altKey` | Number |
  `ctrlKey` | Number |
  `shiftKey` | Number |
  `metaKey` | Number |
  `keyCode` | Number |
  `eventType` | AvayaClientServices.Services.Collaboration.ContentSharingKeyboardEventType |

#### sendRemoteControlMouseTag(scaledX, scaledY, button, eventType, wheelAmount) → {AvayaClientServices.Base.Promise}

  Sends remote control mouse tag to controllee

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `scaledX` | Number |  |
  `scaledY` | Number |  |
  `button` | Number |  | native mouse button (0-left, 1-middle, 2-right)
  `eventType` | AvayaClientServices.Services.Collaboration.ContentSharingButtonEventType |  |
  `wheelAmount` | Number | <optional> |

  ##### Returns:

  { AvayaClientServices.Base.Promise }

#### setExtensionAvailable(isAvailable) → {void}

  Sets whether another extension is available to obtain permission
  to capture the user's screen. By default, the Avaya Screen Sharing
  extension will be used for obtaining permissions to capture the
  user's screen.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `isAvailable` | boolean | "true" if another extension is available, "false" if the Avaya Screen Sharing extension should be used

  ##### Returns:

  { void }

#### setScreenSharingMasks(masks)

  Sets the rectangular areas which will be masked out during the full screen presentation with the mask color or background image.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `masks` | Array.<AvayaClientServices.Base.Mask> |

#### setScreenSharingVisibleRect(rect)

  Sets the visible screen sharing rectangle with the intent of cropping when presenting full screen.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `rect` | AvayaClientServices.Base.Rect | undefined | undefined signifies that no cropping can be performed

#### startRemoteControl(controlleeId) → {AvayaClientServices.Base.Promise.<(Object|undefined)>}

  Starts remote control.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `controlleeId` | String |

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(Object|undefined)> }

#### startScreenCapture() → {AvayaClientServices.Base.Promise.<(undefined|Object)>}

  Start screen capture any type of content. The browser will prompt the user to select which type of screen sharing (application, full screen, etc.) they desire.
  This optional API will not start sending screen sharing data to the network. It is intended to start the screen capture so that the client can specify the location of any masking or cropping prior to starting the screen sharing session.
  startScreenSharing() can then be used to complete the process of starting a screen sharing session.

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(undefined|Object)> }

#### startScreenSharing(enableRemoteControl) → {AvayaClientServices.Base.Promise.<(undefined|Object)>}

  Start sharing any type of content.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `enableRemoteControl` | Boolean | <optional> | default false. If true it allows this screen sharing session to potentially be controlled by a remote client.

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(undefined|Object)> }

#### startScreenSharingFullScreen(enableRemoteControl) → {AvayaClientServices.Base.Promise.<(undefined|Object)>}

  Starts sharing of full screen content.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `` | undefined | string |  | Optional streamId provided by a third-party Chrome extension. This ID is returned by chrome.desktopCapture.chooseDesktopMedia. This is not necessary for Firefox, or if using the Avaya Screen Sharing extension.
  `enableRemoteControl` | Boolean | <optional> | default false. If true it allows this screen sharing session to potentially be controlled by a remote client.

  Deprecated:
    - Yes

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(undefined|Object)> }

#### startScreenSharingUsingVideo() → {AvayaClientServices.Base.Promise.<(undefined|Object)>}

  Start sharing any type of content using video. The browser will prompt the user to select which type of screen sharing (application, full screen, etc.) they desire.

  ##### Parameters:

  Type | Description
  --- | ---
  undefined | string | Optional streamId provided by a third-party Chrome extension. This ID is returned by chrome.desktopCapture.chooseDesktopMedia. This is not necessary for Firefox, or if using the Avaya Screen Sharing extension.
  undefined | bool | Optional. True if audio is to be shared. Used only when streamId is provided.

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(undefined|Object)> }

#### startSharingApplicationWindow(mediaSourceId, enableRemoteControl) → {AvayaClientServices.Base.Promise.<(undefined|Object)>}

  Starts sharing of the application window content.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `mediaSourceId` | undefined | string |  | Optional streamId provided by a third-party Chrome extension. This ID is returned by chrome.desktopCapture.chooseDesktopMedia. This is not necessary for Firefox, or if using the Avaya Screen Sharing extension.
  `enableRemoteControl` | Boolean | <optional> | default false. If true it allows this screen sharing session to potentially be controlled by a remote client.

  Deprecated:
    - Yes

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(undefined|Object)> }

#### stopScreenCapture()

  Ends screen capture of the local user .
  This optional API will not stop screen sharing data to the network. It is intended to stop the local capture started by using the startScreenCapture API.
  end API can be used to complete the process of ending a screen sharing session.

### Managing callbacks

#### addOnAudioAddedToScreenSharingUsingVideoCallback(callback) → {void}

  Adds new onAudioAddedToScreenSharingUsingVideoCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onAudioAddedToScreenSharingUsingVideoCallback |

  ##### Returns:

  { void }

#### addOnCapturedScreenSharingChangedCallbacks(callback) → {void}

  Adds new onCapturedScreenSharingChangedCallbacks.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onCapturedScreenSharingChangedCallbacks |

  ##### Returns:

  { void }

#### addOnCaptureEndedCallback(callback) → {void}

  Adds new onCaptureEndedCallback to listen to onended event on the captured stream

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onCaptureEndedCallback |

  ##### Returns:

  { void }

#### addOnContentSharingEndedCallback(callback) → {void}

  Adds new onContentSharingEndedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onContentSharingEndedCallback |

  ##### Returns:

  { void }

#### addOnContentSharingPausedCallback(callback) → {void}

  Adds new onContentSharingPausedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onContentSharingPausedCallback |

  ##### Returns:

  { void }

#### addOnContentSharingResumedCallback(callback) → {void}

  Adds new onContentSharingResumedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onContentSharingResumedCallback |

  ##### Returns:

  { void }

#### addOnContentSharingStartedCallback(callback) → {void}

  Adds new onContentSharingStartedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onContentSharingStartedCallback |

  ##### Returns:

  { void }

#### addOnCursorReceivedCallback(callback) → {void}

  Adds new onCursorReceivedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onCursorReceivedCallback |

  ##### Returns:

  { void }

#### addOnFrameChangedCallback(callback) → {void}

  Adds new onSharingFrameChangedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onFrameChangedCallback |

  ##### Returns:

  { void }

#### addOnFrameReceivedCallback(callback) → {void}

  Adds new onSharingFrameChangedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onFrameReceivedCallback |

  ##### Returns:

  { void }

#### addOnFrameReportReceivedCallbacks(callback) → {void}

  Adds new onFrameReportReceivedCallbacks.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onFrameReportReceivedCallbacks |

  ##### Returns:

  { void }

#### addOnRemoteControlCopyPasteTagCallback(callback) → {void}

  Adds new onRemoteControlCopyPasteTagCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlCopyPasteTagCallback |

  ##### Returns:

  { void }

#### addOnRemoteControlDeclinedCallback(callback) → {void}

  Adds new onRemoteControlDeclinedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlDeclinedCallback |

  ##### Returns:

  { void }

#### addOnRemoteControlDeniedCallback(callback) → {void}

  Adds new onRemoteControlDeniedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlDeniedCallback |

  ##### Returns:

  { void }

#### addOnRemoteControlEndedCallback(callback) → {void}

  Adds new onRemoteControlEndedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlEndedCallback |

  ##### Returns:

  { void }

#### addOnRemoteControlGrantedCallback(callback) → {void}

  Adds new onRemoteControlGrantedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlGrantedCallback |

  ##### Returns:

  { void }

#### addOnRemoteControlKeyboardTagCallback(callback) → {void}

  Adds new onRemoteControlKeyboardTagCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlKeyboardTagCallback |

  ##### Returns:

  { void }

#### addOnRemoteControlMouseTagCallback(callback) → {void}

  Adds new onRemoteControlMouseTagCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlMouseTagCallback |

  ##### Returns:

  { void }

#### addOnRemoteControlRequestedCallback(callback) → {void}

  Adds new onRemoteControlRequestedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlRequestedCallback |

  ##### Returns:

  { void }

#### addOnRemoteControlStartedCallback(callback) → {void}

  Adds new onRemoteControlStartedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlStartedCallback |

  ##### Returns:

  { void }

#### addOnScreenSharingUsingVideoEndedCallback(callback) → {void}

  Adds new onScreenSharingUsingVideoEndedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onScreenSharingUsingVideoEndedCallback |

  ##### Returns:

  { void }

#### addOnScreenSharingUsingVideoStartedCallback(callback) → {void}

  Adds new onScreenSharingUsingVideoStartedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onScreenSharingUsingVideoStartedCallback |

  ##### Returns:

  { void }

#### removeOnAudioAddedToScreenSharingUsingVideoCallback(callback) → {void}

  Removes existing onAudioAddedToScreenSharingUsingVideoCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onAudioAddedToScreenSharingUsingVideoCallback |

  ##### Returns:

  { void }

#### removeOnCapturedScreenSharingChangedCallbacks(callback) → {void}

  Removes existing onCapturedScreenSharingChangedCallbacks.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onCapturedScreenSharingChangedCallbacks |

  ##### Returns:

  { void }

#### removeOnCaptureEndedCallback(callback) → {void}

  Removes existing onCaptureEndedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onCaptureEndedCallback |

  ##### Returns:

  { void }

#### removeOnContentSharingEndedCallback(callback) → {void}

  Removes existing onContentSharingEndedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onContentSharingEndedCallback |

  ##### Returns:

  { void }

#### removeOnContentSharingPausedCallback(callback) → {void}

  Removes existing onContentSharingPausedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onContentSharingPausedCallback |

  ##### Returns:

  { void }

#### removeOnContentSharingResumedCallback(callback) → {void}

  Removes existing onContentSharingResumedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onContentSharingResumedCallback |

  ##### Returns:

  { void }

#### removeOnContentSharingStartedCallback(callback) → {void}

  Removes existing onContentSharingStartedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onContentSharingStartedCallback |

  ##### Returns:

  { void }

#### removeOnCursorReceivedCallback(callback) → {void}

  Removes existing onCursorReceivedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onCursorReceivedCallback |

  ##### Returns:

  { void }

#### removeOnFrameChangedCallback(callback) → {void}

  Removes existing onSharingFrameChangedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onFrameChangedCallback |

  ##### Returns:

  { void }

#### removeOnFrameReceivedCallback(callback) → {void}

  Removes existing onSharingFrameChangedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onFrameReceivedCallback |

  ##### Returns:

  { void }

#### removeOnFrameReportReceivedCallbacks(callback) → {void}

  Removes existing onFrameReportReceivedCallbacks.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onFrameReportReceivedCallbacks |

  ##### Returns:

  { void }

#### removeOnRemoteControlCopyPasteTagCallback(callback) → {void}

  Removes existing onRemoteControlCopyPasteTagCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlCopyPasteTagCallback |

  ##### Returns:

  { void }

#### removeOnRemoteControlDeclinedCallback(callback) → {void}

  Removes existing onRemoteControlDeclinedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlDeclinedCallback |

  ##### Returns:

  { void }

#### removeOnRemoteControlDeniedCallback(callback) → {void}

  Removes existing onRemoteControlDeniedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlDeniedCallback |

  ##### Returns:

  { void }

#### removeOnRemoteControlEndedCallback(callback) → {void}

  Removes existing onRemoteControlEndedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlEndedCallback |

  ##### Returns:

  { void }

#### removeOnRemoteControlGrantedCallback(callback) → {void}

  Removes existing onRemoteControlGrantedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlGrantedCallback |

  ##### Returns:

  { void }

#### removeOnRemoteControlKeyboardTagCallback(callback) → {void}

  Removes existing onRemoteControlKeyboardTagCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlKeyboardTagCallback |

  ##### Returns:

  { void }

#### removeOnRemoteControlMouseTagCallback(callback) → {void}

  Removes existing onRemoteControlMouseTagCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlMouseTagCallback |

  ##### Returns:

  { void }

#### removeOnRemoteControlRequestedCallback(callback) → {void}

  Removes existing onRemoteControlRequestedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlRequestedCallback |

  ##### Returns:

  { void }

#### removeOnRemoteControlStartedCallback(callback) → {void}

  Removes existing onRemoteControlStartedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onRemoteControlStartedCallback |

  ##### Returns:

  { void }

#### removeOnScreenSharingUsingVideoEndedCallback(callback) → {void}

  Removes existing onContentSharingEndedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onScreenSharingUsingVideoEndedCallback |

  ##### Returns:

  { void }

#### removeOnScreenSharingUsingVideoStartedCallback(callback) → {void}

  Removes existing onScreenSharingUsingVideoStartedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.ContentSharing#onScreenSharingUsingVideoStartedCallback |

  ##### Returns:

  { void }

### Capabilities

#### getEndRemoteControlCapability() → {AvayaClientServices.Base.Capability}

  Determines whether the Content Sharing can terminate a remote control.

  ##### Returns:

  { AvayaClientServices.Base.Capability }

#### getEndRemoteControlCapability() → {AvayaClientServices.Base.Capability}

  Determines whether the Content Sharing can grant a remote control.

  ##### Returns:

  { AvayaClientServices.Base.Capability }

#### getPasteRemoteControlCapability() → {AvayaClientServices.Base.Capability}

  Determines whether the Content Sharing can paste clipboard text to remote control.

  ##### Returns:

  { AvayaClientServices.Base.Capability }

#### getRequestRemoteControlCapability() → {AvayaClientServices.Base.Capability}

  Determines whether the Content Sharing can request a remote control.

  ##### Returns:

  { AvayaClientServices.Base.Capability }

#### getShareApplicationWindowCapability() → {AvayaClientServices.Base.Capability}

  Determines whether Content Sharing can share the application window.
  This function is deprecated, use contentSharing.getStartScreenSharingCapability() instead.

  Deprecated:
    - Yes

  ##### Returns:

  { AvayaClientServices.Base.Capability }

#### getShareFullScreenCapability() → {AvayaClientServices.Base.Capability}

  Determines whether the Content Sharing can share a full screen.
  This function is deprecated, use contentSharing.getStartScreenSharingCapability() instead.

  Deprecated:
    - Yes

  ##### Returns:

  { AvayaClientServices.Base.Capability }

#### getStartRemoteControlCapability() → {AvayaClientServices.Base.Capability}

  Determines whether the Content Sharing can start a remote control.

  ##### Returns:

  { AvayaClientServices.Base.Capability }

#### getStartScreenSharingCapability() → {AvayaClientServices.Base.Capability}

  Determines whether the Content Sharing can share any type content.

  ##### Returns:

  { AvayaClientServices.Base.Capability }

#### getStartSharingUsingVideoCapability() → {AvayaClientServices.Base.Capability}

  Determines whether the Content Sharing can share video content.

  ##### Returns:

  { AvayaClientServices.Base.Capability }

#### getSupportRemoteControlCapability() → {AvayaClientServices.Base.Capability}

  Determines whether the Content Sharing can support a remote control.

  ##### Returns:

  { AvayaClientServices.Base.Capability }

### Managing query function

#### registerOnScreenSharingQueryCursorPosition(queryFunction) → {void}

  Registers new onScreenSharingQueryCursorPosition.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `queryFunction` | AvayaClientServices.Services.Collaboration.ContentSharing#onScreenSharingQueryCursorPosition |

  ##### Returns:

  { void }

#### unregisterOnScreenSharingQueryCursorPosition() → {void}

  Unregisters existing onScreenSharingQueryCursorPosition.

  ##### Returns:

  { void }

## Type Definitions

#### onAudioAddedToScreenSharingUsingVideoCallback(contentSharing, audioTrack) → {void}

  Interface for callback function to be invoked when audio is added to Content Sharing Using Video.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `audioTrack` | MediaStreamTrack | Content sharing audio track

  ##### Returns:

  { void }

#### onCapturedScreenSharingChangedCallbacks(contentSharing) → {void}

  Interface for callback function to be invoked when the captured content sharing resolution changes

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.

  ##### Returns:

  { void }

#### onContentSharingEndedCallback(contentSharing) → {void}

  Interface for callback function to be invoked when Content Sharing ends.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.

  ##### Returns:

  { void }

#### onContentSharingPausedCallback(contentSharing) → {void}

  Interface for callback function to be invoked when screen capture ends manually

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.

  ##### Returns:

  { void }

#### onContentSharingPausedCallback(contentSharing) → {void}

  Interface for callback function to be invoked when Content Sharing pauses.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.

  ##### Returns:

  { void }

#### onContentSharingResumedCallback(contentSharing) → {void}

  Interface for callback function to be invoked when Content Sharing resumes.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.

  ##### Returns:

  { void }

#### onContentSharingStartedCallback(contentSharing, participant) → {void}

  Interface for callback function to be invoked when Content Sharing starts.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `participant` | AvayaClientServices.Services.Participant | Participant that has started the content sharing.

  ##### Returns:

  { void }

#### onCursorReceivedCallback(contentSharing, position) → {void}

  Interface for callback function to be invoked when information about cursor position is received.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `position` | AvayaClientServices.Services.Collaboration.Point | Position of cursor.

  ##### Returns:

  { void }

#### onFrameChangedCallback(contentSharing, frame) → {void}

  Interface for callback function to be invoked when frame size or position has changed.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `frame` | AvayaClientServices.Services.Collaboration.Frame | Current sharing frame size and position.

  ##### Returns:

  { void }

#### onFrameReceivedCallback(contentSharing, frame) → {void}

  Interface for callback function to be invoked when frame was received.
  This one is fired after whole frame was received and contains all the data that was changed.
  Frame contains isKeyFrame indicator to show if whole frame has changed.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `frame` | AvayaClientServices.Services.Collaboration.Frame | Received sharing frame

  ##### Returns:

  { void }

#### onFrameReportReceivedCallbacks(contentSharing, reportEvent) → {void}

  Interface for callback function to be invoked when a frame report has been received

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `reportEvent` | AvayaClientServices.Providers.WCS.FrameReportEventData | Frame Report data object.

  ##### Returns:

  { void }

#### onRemoteControlCopyPasteTagCallback(contentSharing, clipboardText) → {void}

  Interface for callback function to be invoked when Remote Control copy or paste event updates.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `clipboardText` | String |

  ##### Returns:

  { void }

#### onRemoteControlDeclinedCallback(contentSharing, controllerId, controllerName) → {void}

  Interface for callback function to be invoked when Remote Control declines.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `controllerId` | String |
  `controllerName` | String |

  ##### Returns:

  { void }

#### onRemoteControlDeniedCallback(contentSharing, controlleeId, controlleeName) → {void}

  Interface for callback function to be invoked when Remote Control denies.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `controlleeId` | String |
  `controlleeName` | String |

  ##### Returns:

  { void }

#### onRemoteControlEndedCallback(contentSharing, controllerId, controllerName) → {void}

  Interface for callback function to be invoked when Remote Control ends.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `controllerId` | String |
  `controllerName` | String |

  ##### Returns:

  { void }

#### onRemoteControlGrantedCallback(contentSharing, controlleeId, controlleeName, osType) → {void}

  Interface for callback function to be invoked when Remote Control grants.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `controlleeId` | String |
  `controlleeName` | String |
  `osType` | String |

  ##### Returns:

  { void }

#### onRemoteControlKeyboardTagCallback(contentSharing, keyboardTag) → {void}

  Interface for callback function to be invoked when Remote Control keyboard event updates.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `keyboardTag` | AvayaClientServices.Providers.WCS.ScreenSharingKeyboardTag |

  ##### Returns:

  { void }

#### onRemoteControlMouseTagCallback(contentSharing, mouseTag) → {void}

  Interface for callback function to be invoked when Remote Control mouse event updates.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `mouseTag` | AvayaClientServices.Providers.WCS.ScreenSharingMouseTag |

  ##### Returns:

  { void }

#### onRemoteControlRequestedCallback(contentSharing, controllerId, controllerName) → {void}

  Interface for callback function to be invoked when Remote Control requests.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `controllerId` | String |
  `controllerName` | String |

  ##### Returns:

  { void }

#### onRemoteControlStartedCallback(contentSharing, controllerId, controllerName) → {void}

  Interface for callback function to be invoked when Remote Control starts.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `controllerId` | String |
  `controllerName` | String |

  ##### Returns:

  { void }

#### onScreenSharingUsingVideoEndedCallback(contentSharing) → {void}

  Interface for callback function to be invoked when Content Video Sharing ends.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.

  ##### Returns:

  { void }

#### onScreenSharingUsingVideoStartedCallback(contentSharing, participant) → {void}

  Interface for callback function to be invoked when Content Video Sharing starts.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | ContentSharing the callback is associated with.
  `participant` | AvayaClientServices.Services.Participant | Participant that has started the content sharing.

  ##### Returns:

  { void }