import { StatelessWebexPlugin } from '@webex/webex-core'; import TurnDiscovery from './turnDiscovery'; import { TurnDiscoveryResult } from './types'; import Meeting from '../meeting'; export { type TurnDiscoveryResult, type TurnServerInfo, type TurnDiscoverySkipReason } from './types'; /** * Roap options * @typedef {Object} RoapOptions * @property {String} sdp * @property {Meeting} meeting * @property {Number} seq * @property {Number} tieBreaker * @property {Boolean} reconnect */ /** * @typedef {Object} SeqOptions * @property {String} correlationId * @property {String} mediaId * @property {Number} seq */ /** * @class Roap * @export * @private */ export default class Roap extends StatelessWebexPlugin { attrs: any; lastRoapOffer: any; options: any; roapHandler: any; roapRequest: any; turnDiscovery: TurnDiscovery; /** * * @param {Object} attrs * @param {Object} options */ constructor(attrs: any, options: any); /** * * @param {SeqOptions} options * @returns {null} * @memberof Roap */ sendRoapOK(options: any): Promise; /** * Sends a ROAP answer... * @param {SeqOptions} options * @param {Boolean} options.audioMuted * @param {Boolean} options.videoMuted * @returns {Promise} * @memberof Roap */ sendRoapAnswer(options: any): any; /** * Sends a ROAP error... * @param {Object} options * @returns {Promise} * @memberof Roap */ sendRoapError(options: any): any; /** * sends a roap media request * @param {RoapOptions} options * @returns {Promise} * @memberof Roap */ sendRoapMediaRequest(options: any): any; /** * Performs a TURN server discovery procedure, which involves exchanging * some roap messages with the server. This exchange has to be done before * any other roap messages are sent * * @param {Meeting} meeting * @param {Boolean} isReconnecting should be set to true if this is a new * media connection just after a reconnection * @param {Boolean} [isForced] * @returns {Promise} */ doTurnDiscovery(meeting: Meeting, isReconnecting: boolean, isForced?: boolean): Promise; generateTurnDiscoveryRequestMessage(meeting: Meeting, isForced: boolean): Promise<{ roapMessage?: object; turnDiscoverySkippedReason: string; }>; handleTurnDiscoveryHttpResponse(meeting: Meeting, httpResponse: object): Promise; abortTurnDiscovery(): void; }