diff --git a/notNeededPackages.json b/notNeededPackages.json index 251442309d..625baba356 100644 --- a/notNeededPackages.json +++ b/notNeededPackages.json @@ -1482,6 +1482,12 @@ "sourceRepoURL": "https://github.com/zeh/simplesignal", "asOfVersion": "1.0.0" }, + { + "libraryName": "sip.js", + "typingsPackageName": "sip.js", + "sourceRepoURL": "https://github.com/onsip/SIP.js", + "asOfVersion": "0.12.0" + }, { "libraryName": "smooth-scrollbar", "typingsPackageName": "smooth-scrollbar", diff --git a/types/sip.js/index.d.ts b/types/sip.js/index.d.ts deleted file mode 100644 index 7ca7c2eb98..0000000000 --- a/types/sip.js/index.d.ts +++ /dev/null @@ -1,442 +0,0 @@ -// Type definitions for sip.js 0.9 -// Project: http://sipjs.com -// Definitions by: Kir Dergachev -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.2 - -export as namespace sipjs; - -export class URI { - scheme?: string; - user?: string; - host?: string; - port?: number; - - constructor(scheme?: string, user?: string, host?: string, port?: number, parameters?: string[], headers?: string[]); - static parse(uri: string): sipjs.URI; - - setParam(key: string, value?: string): void; - getParam(key: string): string; - hasParam(key: string): string; - deleteParam(key: string): string; - clearParams(): void; - setHeader(name: string, value: string): void; - getHeader(name: string): string[]; - hasHeader(name: string): boolean; - deleteHeader(name: string): string[]; - clearHeaders(): void; - clone(): URI; - toString(): string; -} - -export namespace UA.EventArgs { - interface ConnectedArgs { attempts: number; } - interface UnregisteredArgs { response: string; cause: string; } - interface RegistrationFailedArgs extends UnregisteredArgs { } -} - -export class UA { - constructor(configuration?: sipjs.ConfigurationParameters); - - start(): UA; - stop(): UA; - register(options?: ExtraHeadersOptions): UA; - unregister(options?: UnregisterOptions): UA; - isRegistered(): boolean; - isConnected(): boolean; - message(target: string | URI, body: string, options?: MessageOptions): Message; - subscribe(target: string | URI, event: string, options?: SubscribeOptions): Subscription; - invite(target: string | URI, element?: InviteOptions | HTMLAudioElement | HTMLVideoElement): Session; - request(method: string, target: string | URI, options?: RequestOptions): ClientContext; - - on(name: 'connected', callback: (args: UA.EventArgs.ConnectedArgs) => void): void; - on(name: 'disconnected' | 'registered' | string, callback: () => void): void; - on(name: 'unregistered', callback: (args: UA.EventArgs.UnregisteredArgs) => void): void; - on(name: 'registrationFailed', callback: (args: UA.EventArgs.RegistrationFailedArgs) => void): void; - on(name: 'invite', callback: (session: Session) => void): void; - on(name: 'message', callback: (message: Message) => void): void; -} - -export namespace C { - namespace supported { - const REQUIRED: string; - const SUPPORTED: string; - const UNSUPPORTED: string; - } - - namespace causes { - const INVALID_TARGET: string; - const CONNECTION_ERROR: string; - const REQUEST_TIMEOUT: string; - const SIP_FAILURE_CODE: string; - } -} - -export type DescriptionModifier = (description: RTCSessionDescription) => Promise; - -export interface SessionDescriptionHandler { - peerConnection: any; - - getDescription(options: SessionDescriptionHandlerParameters, modifiers: DescriptionModifier[]): Promise; - setDescription(sessionDescription: string, options: SessionDescriptionHandlerParameters, modifiers: DescriptionModifier[]): Promise; - hasDescription: (contentType: string) => boolean; - close: () => void; - holdModifier: (description: RTCSessionDescription) => Promise; - - on(name: 'userMediaRequest', callback: (constraints: MediaConstraints) => void): void; - on(name: 'userMedia', callback: (stream: MediaStream) => void): void; - on(name: 'userMediaFailed', callback: (error: string) => void): void; - on(name: 'iceCandidate', callback: (candidate: any) => void): void; - on( - name: 'iceGathering' | 'iceGatheringComplete' | 'iceConnection' | 'iceConnectionChecking' | 'iceConnectionConnected' | 'iceConnectionCompleted' | 'iceConnectionFailed' | - 'iceConnectionDisconnected' | 'iceConnectionClosed' | string, - callback: () => void): void; - on(name: 'dataChannel' | 'getDescription' | 'setDescription', callback: (sdpWrapper: { type: string, sdp: string }) => void): void; - on(name: 'addTrack', callback: (track: any) => void): void; -} - -export interface Session { - startTime?: Date; - endTime?: Date; - ua?: UA; - method?: string; - mediaHandler?: WebRTC.MediaHandler; - request?: IncomingRequest | OutgoingRequest; - localIdentity?: NameAddrHeader; - remoteIdentity?: NameAddrHeader; - assertedIdentity?: NameAddrHeader; - data: ClientContext | ServerContext; - sessionDescriptionHandler: SessionDescriptionHandler; - - dtmf(tone: string | number, options?: Session.DtmfOptions): Session; - terminate(options?: Session.CommonOptions): Session; - bye(options?: Session.CommonOptions): Session; - getLocalStreams(): any[]; - getRemoteStreams(): any[]; - refer(target: string | Session, options?: ExtraHeadersOptions): Session; - mute(options?: ExtraHeadersOptions): void; - unmute(options?: ExtraHeadersOptions): void; - cancel(options?: Session.CommonOptions): void; - progress(options?: Session.ProgressOptions): void; - accept(options?: Session.AcceptOptions): void; - reject(options?: Session.CommonOptions): void; - reply(options?: Session.CommonOptions): void; - hold(options?: Session.HoldOptions): void; - unhold(options?: Session.HoldOptions): void; - isOnHold(): Session.Held; - followRefer(callback: () => void): void; - - on(name: 'progress', callback: (response: IncomingResponse) => void): void; - on(name: 'accepted', callback: (data: { code: number, response: IncomingResponse }) => void): void; - on(name: 'failed' | 'rejected', callback: (response: IncomingResponse, cause: string) => void): void; - on(name: 'terminated', callback: (message: IncomingResponse, cause: string) => void): void; - on(name: 'cancel' | 'directionChanged' | 'trackAdded' | 'SessionDescriptionHandler-created' | string, callback: () => void): void; - on(name: 'replaced' | 'reinvite', callback: (newSession: Session) => void): void; - on(name: 'dtmf', callback: (request: IncomingRequest, dtmf: Session.DTMF) => void): void; - on(name: 'muted' | 'unmuted', callback: (data: Session.Muted) => void): void; - on(name: 'refer' | 'bye' | 'notify', callback: (request: IncomingRequest) => void): void; - on(name: 'referRequested', callback: (request: ClientContext | ServerContext) => void): void; - - /* these come from the ClientContext that is on the session somehow */ - on(name: 'referAccepted' | 'referRejected' | 'referRequestAccepted' | 'referRequestRejected' | 'referProgress', - callback: (ClientContext: ClientContext) => void): void; -} - -export namespace Session { - interface DtmfOptions extends ExtraHeadersOptions { - duration?: number; - interToneGap?: number; - } - - interface CommonOptions extends ExtraHeadersOptions { - status_code?: number; - reason_phrase?: string; - body?: string; - } - - interface ProgressOptions extends ExtraHeadersOptions { - rel100?: boolean; - media?: MediaConstraints; - } - - interface AcceptOptions { - RTCConstraints?: any; - media?: MediaOptions; - } - - interface HoldOptions extends ExtraHeadersOptions { - eventHandlers?: { - succeeded?(): void; - failed?(): void; - }; - } - - interface DTMF extends Object { - direction: string | 'incoming'; - tone: any; - } - - interface Muted { - audio?: boolean; - video?: boolean; - } - - interface Held { - local: boolean; - remote: boolean; - } -} - -export interface RenderHint { - remote?: Element; - local?: Element; -} - -export interface MediaConstraints { - audio: boolean; - video: boolean; -} - -export interface TurnServer { - urls?: string | string[]; - username?: string; - password?: string; -} - -export namespace WebRTC { - interface Options { - stunServers?: string | string[]; - turnServers?: TurnServer | TurnServer[]; - RTCConstraints?: any; - } - - type MediaHandlerFactory = (session: Session, options: Options) => MediaHandler; - - class MediaHandler { - getLocalStreams(): any[]; - getRemoteStreams(): any[]; - render(renderHint: RenderHint): void; - - on(name: 'userMediaRequest', callback: (constraints: MediaConstraints) => void): void; - on(name: 'addStream' | 'userMedia', callback: (stream: any) => void): void; - on(name: 'userMediaFailed', callback: (error: string) => void): void; - on(name: 'iceCandidate', callback: (candidate: any) => void): void; - on( - name: 'iceGathering' | 'iceGatheringComplete' | 'iceConnection' | 'iceConnectionChecking' | 'iceConnectionConnected' | 'iceConnectionCompleted' | 'iceConnectionFailed' | - 'iceConnectionDisconnected' | 'iceConnectionClosed' | string, - callback: () => void): void; - on(name: 'dataChannel' | 'getDescription' | 'setDescription', callback: (sdpWrapper: { type: string, sdp: string }) => void): void; - } - - class Simple { - constructor(options: SimpleConfigurationParameters); - - on(name: 'registered' | 'unregistered', callback: (ua: UA) => void): void; - on(name: 'ringing' | 'connecting' | 'connected' | 'ended', callback: (session: Session) => void): void; - on(name: 'message', callback: (message: Message) => void): void; - - call(target: string | URI): Session; - toggleMute(mute: boolean): void; - hangup: () => Session | void; - } -} - -/* Parameters */ -export interface ConfigurationParameters { - uri?: string; - wsServers?: string | Array; - allowLegacyNotifications?: boolean; - authenticationFactory?: WebRTC.MediaHandlerFactory; - authorizationUser?: string; - autostart?: boolean; - autostop?: boolean; - connectionRecoveryMaxInterval?: number; - connectionRecoveryMinInterval?: number; - contactTransport?: string; - displayName?: string; - extraSupported?: string[]; - forceRport?: boolean; - hackAllowUnregisteredOptionTags?: boolean; - hackCleanJitsiSdpImageattr?: boolean; - hackStripTcp?: boolean; - hackIpInContact?: boolean; - hackViaTcp?: boolean; - hackWssInTransport?: boolean; - iceCheckingTimeout?: number; - instanceId?: string; - keepAliveInterval?: number; - log?: { - builtinEnabled?: boolean; - level?: number | string; - connector?(level: string, category: string, label: string, content: string): void; - }; - mediaHandlerFactory?: WebRTC.MediaHandlerFactory; - noAnswerTimeout?: number; - password?: string; - register?: boolean; - registerExpires?: number; - registrarServer?: string; - rel100?: string; - replaces?: string; - rtcpMuxPolicy?: string; - stunServers?: string | string[]; - traceSip?: boolean; - turnServers?: TurnServer | TurnServer[]; - usePreloadedRoute?: boolean; - userAgentString?: string; - wsServerMaxReconnection?: number; - wsServerReconnectionTimeout?: number; -} - -export interface SimpleConfigurationParameters { - ua: { - wsServers?: string | Array; - uri?: string; - authorizationUser?: string; - password?: string; - displayName?: string; - traceSip?: boolean; - userAgentString?: string; - }; - media?: { - remote?: { - audio?: Element; - video?: Element; - }; - local?: { - audio?: Element; - video?: Element; - }; - }; -} - -export interface SessionDescriptionHandlerParameters { - constraints?: any; - peerConnectionOptions?: { - rtcConfiguration: { - iceServers: TurnServer[]; - iceCheckingTimeout: number; - }; - RTCOfferOptions: {}; - }; -} - -/* Options */ -export interface ExtraHeadersOptions { - extraHeaders?: string[]; -} - -export interface UnregisterOptions extends ExtraHeadersOptions { - all?: boolean; -} - -export interface MessageOptions extends ExtraHeadersOptions { - contentType?: string; -} - -export interface SubscribeOptions extends ExtraHeadersOptions { - expires?: number; -} - -export interface MediaOptions { - constraints?: MediaConstraints; - stream?: any; - render?: RenderHint; -} - -export interface InviteOptions extends ExtraHeadersOptions { - media?: MediaOptions; - anonymous?: boolean; - rel100?: string; - inviteWithoutSdp?: boolean; - RTCConstraints?: any; -} - -export interface RequestOptions extends ExtraHeadersOptions { - body?: string; -} - -/* Contexts */ -export interface Message extends ClientContext { - body: string; -} - -export interface Subscription extends ClientContext { - id: string; - state: string; - event: string; - dialog: string; - timers: {}; - errorCodes: number[]; - subscribe(): Subscription; - unsubscribe(): void; - close(): void; -} - -/* Context */ -export class Context { - ua: UA; - method: string; - request: OutgoingRequest; - localIdentity: NameAddrHeader; - remoteIdentity: NameAddrHeader; - data: {}; -} - -export class ClientContext extends Context { - cancel(options?: { status_code?: number, reason_phrase?: string }): ClientContext; - - // This exists on all Context, but I cant make it work right - on(name: 'progress' | 'accepted' | 'rejected' | 'failed', callback: (response: IncomingMessage, cause: string) => void): void; - on(name: 'notify', callback: (request: IncomingRequest) => void): void; - on(name: string, callback: () => void): void; - - on(name: 'referAccepted' | 'referRejected' | 'referRequestAccepted' | 'referRequestRejected' | 'referProgress', - callback: (ClientContext: ClientContext) => void): void; -} - -export class ServerContext extends Context { - progress(options?: Session.ProgressOptions): void; - accept(options?: Session.AcceptOptions): void; - reject(options?: Session.CommonOptions): void; - reply(options?: Session.CommonOptions): void; - - // This exists on all Context, but I cant make it work right - on(name: 'progress' | 'accepted' | 'rejected' | 'failed', callback: (response: IncomingMessage, cause: string) => void): void; - on(name: 'notify', callback: (request: IncomingRequest) => void): void; - on(name: string, callback: () => void): void; - - on(name: 'referRequestAccepted' | 'referRequestRejected' | 'referInviteSent' | 'referProgress' | 'referAccepted' | 'referRejected', - callback: (ServerContext: ServerContext) => void): void; -} - -/* Request */ -export interface Request extends Context { -} - -export interface IncomingRequest extends Request { -} - -export interface OutgoingRequest extends Request { -} - -export interface IncomingResponse extends Request { - reason_phrase: string | 'Ringing'; -} - -export interface IncomingMessage extends Request { -} - -/* Header */ -export class NameAddrHeader { - uri: URI; - displayName: string; - - constructor(uri: sipjs.URI, displayName: string, parameters: Array<{ key: string, value: string }>); - static parse(name_addr_header: string): sipjs.NameAddrHeader; - - setParam(key: string, value?: string): void; - getParam(key: string): string; - deleteParam(key: string): string; - clearParams(): void; -} diff --git a/types/sip.js/sip.js-tests.ts b/types/sip.js/sip.js-tests.ts deleted file mode 100644 index df6d47c7bc..0000000000 --- a/types/sip.js/sip.js-tests.ts +++ /dev/null @@ -1,105 +0,0 @@ -import * as SIP from 'sip.js'; - -let ua: SIP.UA = new SIP.UA(); - -const mediaHandler = (session: SIP.Session, options: SIP.WebRTC.Options) => new SIP.WebRTC.MediaHandler(); -const logConnector = (level: string, category: string, label: string, content: string) => null; - -const uaWithConfig: SIP.UA = new SIP.UA({ - uri: "wss://uri", - wsServers: ["s1", "s2", { ws_uri: "s3", weight: 1 }], - allowLegacyNotifications: true, - authenticationFactory: mediaHandler, - authorizationUser: "user", - autostart: true, - autostop: false, - connectionRecoveryMaxInterval: 1, - connectionRecoveryMinInterval: 1, - displayName: "name", - hackCleanJitsiSdpImageattr: true, - hackStripTcp: true, - hackIpInContact: true, - hackViaTcp: true, - hackWssInTransport: true, - iceCheckingTimeout: 1, - instanceId: "id", - log: { - builtinEnabled: true, - level: 1, - connector: logConnector - }, - mediaHandlerFactory: mediaHandler, - noAnswerTimeout: 1, - password: "", - register: true, - registerExpires: 1, - registrarServer: "sip:registrar.mydomain.com", - rel100: "", - replaces: "", - stunServers: ["", ""], - turnServers: [ - { - password: "", - username: "", - urls: ["", ""] - } - ], - usePreloadedRoute: true, - userAgentString: "", - wsServerMaxReconnection: 1, - wsServerReconnectionTimeout: 1 -}); - -ua.start(); -ua.stop(); - -ua.register(); -ua = ua.register({ extraHeaders: [""] }); - -ua.unregister(); -ua.unregister({ extraHeaders: [""], all: true }); - -const isConnected: boolean = ua.isConnected(); -const isRegistered: boolean = ua.isRegistered(); - -const message: SIP.Message = ua.message("", "", { contentType: "" }); - -ua.subscribe("", "", { expires: 1, extraHeaders: [""] }); -const subscription: SIP.Subscription = ua.subscribe(new SIP.URI(), "", { expires: 1, extraHeaders: [""] }); - -let session = ua.invite("", new HTMLVideoElement()); - -const inviteOptions: SIP.InviteOptions = { - media: { - constraints: { audio: true, video: false }, - stream: new MediaStream(), - render: { remote: new Element(), local: new Element() }, - }, - anonymous: true, - rel100: "", - inviteWithoutSdp: true, - RTCConstraints: {} -}; - -session = ua.invite("", inviteOptions); - -ua.on('connected', (args: SIP.UA.EventArgs.ConnectedArgs) => { }); -ua.on('disconnected', () => { }); -ua.on('registered', () => { }); -ua.on('unregistered', (args: SIP.UA.EventArgs.UnregisteredArgs) => { }); -ua.on('registrationFailed', (args: SIP.UA.EventArgs.RegistrationFailedArgs) => { }); -ua.on('invite', (session: SIP.Session) => { - session.on('progress', (response) => {}); - session.on('accepted', (response) => {}); - session.on('rejected', (response) => {}); -}); -ua.on('message', (message: SIP.Message) => { }); - -session.hold({ - extraHeaders: [""], - eventHandlers: { - succeeded: () => {} - } -}); - -ua.start().stop(); diff --git a/types/sip.js/tsconfig.json b/types/sip.js/tsconfig.json deleted file mode 100644 index ea3b5a009c..0000000000 --- a/types/sip.js/tsconfig.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "lib": [ - "es6", - "dom" - ], - "noImplicitAny": true, - "noImplicitThis": true, - "strictNullChecks": true, - "strictFunctionTypes": true, - "baseUrl": "../", - "typeRoots": [ - "../" - ], - "types": [], - "noEmit": true, - "forceConsistentCasingInFileNames": true - }, - "files": [ - "index.d.ts", - "sip.js-tests.ts" - ] -} \ No newline at end of file diff --git a/types/sip.js/tslint.json b/types/sip.js/tslint.json deleted file mode 100644 index 4f44991c3c..0000000000 --- a/types/sip.js/tslint.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "dtslint/dt.json", - "rules": { - "no-empty-interface": false - } -}