sip.js
Version:
A SIP library for JavaScript
29 lines (28 loc) • 1.73 kB
JavaScript
import { defaultMediaStreamFactory } from "./media-stream-factory-default.js";
import { defaultPeerConnectionConfiguration } from "./peer-connection-configuration-default.js";
import { SessionDescriptionHandler } from "./session-description-handler.js";
/**
* Function which returns a SessionDescriptionHandlerFactory.
* @remarks
* See {@link defaultPeerConnectionConfiguration} for the default peer connection configuration.
* The ICE gathering timeout defaults to 5000ms.
* @param mediaStreamFactory - MediaStream factory.
* @public
*/
export function defaultSessionDescriptionHandlerFactory(mediaStreamFactory) {
return (session, options) => {
// provide a default media stream factory if need be
if (mediaStreamFactory === undefined) {
mediaStreamFactory = defaultMediaStreamFactory();
}
// make sure we allow `0` to be passed in so timeout can be disabled
const iceGatheringTimeout = (options === null || options === void 0 ? void 0 : options.iceGatheringTimeout) !== undefined ? options === null || options === void 0 ? void 0 : options.iceGatheringTimeout : 5000;
// merge passed factory options into default session description configuration
const sessionDescriptionHandlerConfiguration = {
iceGatheringTimeout,
peerConnectionConfiguration: Object.assign(Object.assign({}, defaultPeerConnectionConfiguration()), options === null || options === void 0 ? void 0 : options.peerConnectionConfiguration)
};
const logger = session.userAgent.getLogger("sip.SessionDescriptionHandler");
return new SessionDescriptionHandler(logger, mediaStreamFactory, sessionDescriptionHandlerConfiguration);
};
}