opensips-js 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +317 -0
- package/dist/index.d.ts +1044 -0
- package/dist/opensips-js.cjs.js +159 -0
- package/dist/opensips-js.es.js +25890 -0
- package/dist/opensips-js.iife.js +159 -0
- package/dist/opensips-js.umd.js +159 -0
- package/package.json +77 -0
- package/src/types/Dialog.d.ts +7 -0
- package/src/types/Socket.d.ts +8 -0
- package/src/types/Transactions.d.ts +9 -0
- package/src/types/UAExtended.d.ts +82 -0
- package/src/types/declarations.d.ts +6 -0
- package/src/types/generic.d.ts +1 -0
- package/src/types/listeners.d.ts +104 -0
- package/src/types/msrp.d.ts +55 -0
- package/src/types/rtc.d.ts +179 -0
- package/src/types/timer.d.ts +13 -0
- package/src/types/webrtcmetrics.d.ts +64 -0
package/package.json
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "opensips-js",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "The JS package for opensips",
|
|
5
|
+
"default": "src/index.ts",
|
|
6
|
+
"jsdelivr": "dist/opensips-js.iife.js",
|
|
7
|
+
"main": "dist/opensips-js.cjs.js",
|
|
8
|
+
"module": "dist/opensips-js.es.js",
|
|
9
|
+
"unpkg": "dist/opensips-js.iife.js",
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"scripts": {
|
|
12
|
+
"dev": "vite",
|
|
13
|
+
"postpublish": "yarn upload-cdn",
|
|
14
|
+
"upload-cdn": "yarn build && node scripts/upload-cdn.js",
|
|
15
|
+
"build": "cross-env TARGET=lib vite build",
|
|
16
|
+
"demo-build": "cross-env TARGET=demo vite build",
|
|
17
|
+
"docs-dev": "cd docs && yarn && yarn run dev",
|
|
18
|
+
"docs-build": "cd docs && yarn && yarn run build",
|
|
19
|
+
"docs-publish": "yarn docs-genereate && node scripts/upload-doc.js",
|
|
20
|
+
"docs-genereate": "yarn build && yarn demo-build && cd docs && yarn && yarn run generate && cd ..",
|
|
21
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
22
|
+
"ts-check": "tsc --noEmit",
|
|
23
|
+
"lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts --fix --ignore-path .gitignore"
|
|
24
|
+
},
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": ">= 16",
|
|
27
|
+
"npm": "please-use-yarn",
|
|
28
|
+
"yarn": ">= 1.22.4"
|
|
29
|
+
},
|
|
30
|
+
"precommit": "ts-check, lint",
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "git+ssh://git@github.com/VoicenterTeam/opensips-js.git"
|
|
34
|
+
},
|
|
35
|
+
"author": "Bohdan Konechnyi",
|
|
36
|
+
"license": "ISC",
|
|
37
|
+
"bugs": {
|
|
38
|
+
"url": "https://github.com/VoicenterTeam/opensips-js/issues"
|
|
39
|
+
},
|
|
40
|
+
"homepage": "https://github.com/VoicenterTeam/opensips-js#readme",
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/node": "^18.14.2",
|
|
43
|
+
"@typescript-eslint/eslint-plugin": "^5.53.0",
|
|
44
|
+
"@typescript-eslint/parser": "^5.53.0",
|
|
45
|
+
"@vitejs/plugin-vue": "^4.2.3",
|
|
46
|
+
"@voicenter-team/aws-uploader": "^1.0.10",
|
|
47
|
+
"@voicenter-team/eslint-config-ts": "^1.0.21",
|
|
48
|
+
"cross-env": "^7.0.3",
|
|
49
|
+
"dotenv": "^16.0.3",
|
|
50
|
+
"eslint": "^8.35.0",
|
|
51
|
+
"pre-commit": "^1.2.2",
|
|
52
|
+
"process": "^0.11.10",
|
|
53
|
+
"regenerator-runtime": "^0.13.11",
|
|
54
|
+
"tsc-alias": "^1.8.6",
|
|
55
|
+
"typescript": "^4.9.5",
|
|
56
|
+
"vite": "4.4.11",
|
|
57
|
+
"vite-plugin-dts": "3.5.3",
|
|
58
|
+
"vite-plugin-singlefile": "^0.13.5",
|
|
59
|
+
"vue": "3.2.25"
|
|
60
|
+
},
|
|
61
|
+
"dependencies": {
|
|
62
|
+
"@types/mime": "^3.0.1",
|
|
63
|
+
"generate-unique-id": "^2.0.1",
|
|
64
|
+
"jssip": "3.10.0",
|
|
65
|
+
"konva": "^9.3.16",
|
|
66
|
+
"loglevel": "^1.8.1",
|
|
67
|
+
"mime": "^3.0.0",
|
|
68
|
+
"p-iteration": "^1.1.8",
|
|
69
|
+
"sdp-transform": "2.14.1",
|
|
70
|
+
"uuid": "^10.0.0"
|
|
71
|
+
},
|
|
72
|
+
"files": [
|
|
73
|
+
"dist",
|
|
74
|
+
"src/types"
|
|
75
|
+
],
|
|
76
|
+
"packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610"
|
|
77
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Transport } from 'jssip/lib/Transport'
|
|
2
|
+
import { MSRPSession, MSRPSessionEventMap, DialogType } from '@/lib/msrp/session'
|
|
3
|
+
import { Socket, WeightedSocket } from 'jssip/lib/Socket'
|
|
4
|
+
import { IncomingRequest } from 'jssip/lib/SIPMessage'
|
|
5
|
+
import { AnswerOptions, RTCSession } from 'jssip/lib/RTCSession'
|
|
6
|
+
import { CallOptionsExtended } from '@/types/rtc'
|
|
7
|
+
|
|
8
|
+
declare module 'jssip' {
|
|
9
|
+
export class UA {
|
|
10
|
+
protected _transport: Transport
|
|
11
|
+
protected _sessions: any[]
|
|
12
|
+
protected _msrp_sessions: any[]
|
|
13
|
+
protected _registrator: any
|
|
14
|
+
protected _applicants: any[]
|
|
15
|
+
protected _dynConfiguration: object
|
|
16
|
+
protected _status: number
|
|
17
|
+
protected _closeTimer: any
|
|
18
|
+
protected _configuration: any
|
|
19
|
+
protected _contact: any
|
|
20
|
+
|
|
21
|
+
_findDialog(call_id: string, from: string, to: string): DialogType
|
|
22
|
+
receiveRequest(request): void
|
|
23
|
+
_findSession(request): MSRPSession
|
|
24
|
+
call(target: string, options: CallOptionsExtended): RTCSession
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export class Message {
|
|
28
|
+
constructor(ua: UA)
|
|
29
|
+
init_incoming(request: IncomingRequest): void
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export class Options {
|
|
33
|
+
constructor(ua: UA)
|
|
34
|
+
init_incoming(request: IncomingRequest): void
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface MSRPOptions extends AnswerOptions {
|
|
38
|
+
eventHandlers?: Partial<MSRPSessionEventMap>;
|
|
39
|
+
anonymous?: boolean;
|
|
40
|
+
fromUserName?: string;
|
|
41
|
+
fromDisplayName?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface UAConfiguration {
|
|
44
|
+
// mandatory parameters
|
|
45
|
+
sockets: Socket | Socket[] | WeightedSocket[] ;
|
|
46
|
+
uri: string;
|
|
47
|
+
// optional parameters
|
|
48
|
+
authorization_jwt?: string;
|
|
49
|
+
authorization_user?: string;
|
|
50
|
+
connection_recovery_max_interval?: number;
|
|
51
|
+
connection_recovery_min_interval?: number;
|
|
52
|
+
contact_uri?: string;
|
|
53
|
+
display_name?: string;
|
|
54
|
+
instance_id?: string;
|
|
55
|
+
no_answer_timeout?: number;
|
|
56
|
+
session_timers?: boolean;
|
|
57
|
+
session_timers_refresh_method?: string;
|
|
58
|
+
session_timers_force_refresher?: boolean;
|
|
59
|
+
password?: string;
|
|
60
|
+
realm?: string;
|
|
61
|
+
ha1?: string;
|
|
62
|
+
register?: boolean;
|
|
63
|
+
register_expires?: number;
|
|
64
|
+
registrar_server?: string;
|
|
65
|
+
use_preloaded_route?: boolean;
|
|
66
|
+
user_agent?: string;
|
|
67
|
+
extra_headers?: string[];
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/*export class Dialog {
|
|
71
|
+
|
|
72
|
+
}*/
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
declare module 'jssip/lib/URI' {
|
|
76
|
+
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/*declare module 'jssip/lib/Dialog' {
|
|
80
|
+
export class owner: object
|
|
81
|
+
receiveRequest (request: any): void
|
|
82
|
+
}*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Writeable<T> = { -readonly [P in keyof T]: T[P] }
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { UAEventMap } from 'jssip/lib/UA'
|
|
2
|
+
|
|
3
|
+
import { IMessage, MSRPSessionExtended } from '@/types/msrp'
|
|
4
|
+
import { ICall, RoomChangeEmitType, ICallStatus } from '@/types/rtc'
|
|
5
|
+
import MSRPMessage from '@/lib/msrp/message'
|
|
6
|
+
import { ITimeData } from '@/types/timer'
|
|
7
|
+
import { IncomingMSRPSessionEvent, OutgoingMSRPSessionEvent } from '@/helpers/UA'
|
|
8
|
+
|
|
9
|
+
export type MSRPMessageEventType = {
|
|
10
|
+
message: MSRPMessage,
|
|
11
|
+
session: MSRPSessionExtended
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type ChangeVolumeEventType = {
|
|
15
|
+
callId: string
|
|
16
|
+
volume: number
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export type readyListener = (value: boolean) => void
|
|
20
|
+
export type connectionListener = (value: boolean) => void
|
|
21
|
+
export type reconnectionListener = (value: boolean) => void
|
|
22
|
+
export type changeActiveCallsListener = (event: { [key: string]: ICall }) => void
|
|
23
|
+
export type changeActiveMessagesListener = (event: { [key: string]: IMessage }) => void
|
|
24
|
+
export type TestEventListener = (event: { test: string }) => void
|
|
25
|
+
export type ActiveRoomListener = (event: number | undefined) => void
|
|
26
|
+
export type CallAddingProgressListener = (callId: string | undefined) => void
|
|
27
|
+
export type MSRPInitializingListener = (sessionId: string | undefined) => void
|
|
28
|
+
export type RoomDeletedListener = (roomId: number) => void
|
|
29
|
+
export type changeActiveInputMediaDeviceListener = (event: string) => void
|
|
30
|
+
export type changeActiveOutputMediaDeviceListener = (event: string) => void
|
|
31
|
+
export type changeAvailableDeviceListListener = (event: Array<MediaDeviceInfo>) => void
|
|
32
|
+
export type changeMuteWhenJoinListener = (value: boolean) => void
|
|
33
|
+
export type changeIsDNDListener = (value: boolean) => void
|
|
34
|
+
export type changeIsCallWaitingListener = (value: boolean) => void
|
|
35
|
+
export type changeIsMutedListener = (value: boolean) => void
|
|
36
|
+
export type changeActiveStreamListener = (value: MediaStream) => void
|
|
37
|
+
export type addRoomListener = (value: RoomChangeEmitType) => void
|
|
38
|
+
export type updateRoomListener = (value: RoomChangeEmitType) => void
|
|
39
|
+
export type removeRoomListener = (value: RoomChangeEmitType) => void
|
|
40
|
+
export type IncomingMSRPSessionListener = (event: IncomingMSRPSessionEvent) => void;
|
|
41
|
+
export type OutgoingMSRPSessionListener = (event: OutgoingMSRPSessionEvent) => void;
|
|
42
|
+
export type MSRPSessionListener = IncomingMSRPSessionListener | OutgoingMSRPSessionListener;
|
|
43
|
+
export type MSRPMessageListener = (event: MSRPMessageEventType) => void;
|
|
44
|
+
export type changeCallStatusListener = (event: { [key: string]: ICallStatus }) => void
|
|
45
|
+
export type changeCallTimeListener = (event: { [key: string]: ITimeData }) => void
|
|
46
|
+
export type changeCallMetricsListener = (event: { [key: string]: any }) => void
|
|
47
|
+
export type changeCallVolumeListener = (event: ChangeVolumeEventType) => void
|
|
48
|
+
export type conferenceStartListener = () => void
|
|
49
|
+
export type conferenceEndListener = (sessionId) => void
|
|
50
|
+
export type changeMainVideoStreamListener = (event: { name: string, event: MediaStream }) => void
|
|
51
|
+
export type startScreenShareListener = (event: MediaStream) => void
|
|
52
|
+
export type stopScreenShareListener = () => void
|
|
53
|
+
export type startBlurListener = () => void
|
|
54
|
+
export type stopBlurListener = () => void
|
|
55
|
+
export type memberJoinListener = (event: object) => void
|
|
56
|
+
export type memberHangupListener = (event: object) => void
|
|
57
|
+
export type changeAudioStateListener = (state: boolean) => void
|
|
58
|
+
export type changeVideoStateListener = (state: boolean) => void
|
|
59
|
+
|
|
60
|
+
export interface OpenSIPSEventMap extends UAEventMap {
|
|
61
|
+
ready: readyListener
|
|
62
|
+
connection: connectionListener
|
|
63
|
+
reconnecting: reconnectionListener
|
|
64
|
+
// JSSIP
|
|
65
|
+
changeActiveCalls: changeActiveCallsListener
|
|
66
|
+
changeActiveMessages: changeActiveMessagesListener
|
|
67
|
+
callConfirmed: TestEventListener
|
|
68
|
+
currentActiveRoomChanged: ActiveRoomListener
|
|
69
|
+
callAddingInProgressChanged: CallAddingProgressListener
|
|
70
|
+
isMSRPInitializingChanged: MSRPInitializingListener
|
|
71
|
+
roomDeleted: RoomDeletedListener
|
|
72
|
+
changeActiveInputMediaDevice: changeActiveInputMediaDeviceListener
|
|
73
|
+
changeActiveOutputMediaDevice: changeActiveOutputMediaDeviceListener
|
|
74
|
+
changeAvailableDeviceList: changeAvailableDeviceListListener
|
|
75
|
+
changeMuteWhenJoin: changeMuteWhenJoinListener
|
|
76
|
+
changeIsDND: changeIsDNDListener
|
|
77
|
+
changeIsCallWaiting: changeIsCallWaitingListener
|
|
78
|
+
changeIsMuted: changeIsMutedListener
|
|
79
|
+
changeActiveStream: changeActiveStreamListener
|
|
80
|
+
addRoom: addRoomListener
|
|
81
|
+
updateRoom: updateRoomListener
|
|
82
|
+
removeRoom: removeRoomListener
|
|
83
|
+
changeCallStatus: changeCallStatusListener
|
|
84
|
+
changeCallTime: changeCallTimeListener
|
|
85
|
+
changeCallMetrics: changeCallMetricsListener
|
|
86
|
+
changeCallVolume: changeCallVolumeListener
|
|
87
|
+
newMSRPMessage: MSRPMessageListener
|
|
88
|
+
newMSRPSession: MSRPSessionListener
|
|
89
|
+
// JANUS
|
|
90
|
+
conferenceStart: conferenceStartListener
|
|
91
|
+
conferenceEnd: conferenceEndListener
|
|
92
|
+
startScreenShare: startScreenShareListener
|
|
93
|
+
stopScreenShare: stopScreenShareListener
|
|
94
|
+
startBlur: startBlurListener
|
|
95
|
+
stopBlur: stopBlurListener
|
|
96
|
+
memberJoin: memberJoinListener
|
|
97
|
+
memberHangup: memberHangupListener
|
|
98
|
+
changeAudioState: changeAudioStateListener
|
|
99
|
+
changeVideoState: changeVideoStateListener
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export type ListenersKeyType = keyof OpenSIPSEventMap
|
|
103
|
+
export type ListenersCallbackFnType = OpenSIPSEventMap[ListenersKeyType]
|
|
104
|
+
export type ListenerCallbackFnType<T extends ListenersKeyType> = OpenSIPSEventMap[T]
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MSRPSession,
|
|
3
|
+
MSRPSessionEventMap
|
|
4
|
+
} from '@/lib/msrp/session'
|
|
5
|
+
import { EndEvent,
|
|
6
|
+
IncomingAckEvent,
|
|
7
|
+
IncomingEvent,
|
|
8
|
+
OutgoingAckEvent,
|
|
9
|
+
OutgoingEvent,
|
|
10
|
+
SessionDirection } from 'jssip/lib/RTCSession'
|
|
11
|
+
|
|
12
|
+
import { StreamMediaType } from '@/types/rtc'
|
|
13
|
+
import MSRPMessage from '@/lib/msrp/message'
|
|
14
|
+
|
|
15
|
+
export { MSRPMessage }
|
|
16
|
+
|
|
17
|
+
export type ListenerEventType = EndEvent | IncomingEvent | OutgoingEvent | IncomingAckEvent | OutgoingAckEvent
|
|
18
|
+
|
|
19
|
+
export interface IMessage extends MSRPSessionExtended {
|
|
20
|
+
roomId?: number
|
|
21
|
+
localMuted?: boolean
|
|
22
|
+
localHold?: boolean
|
|
23
|
+
audioTag?: StreamMediaType
|
|
24
|
+
terminate(): void
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
export interface MSRPSessionExtended extends MSRPSession {
|
|
29
|
+
id: string
|
|
30
|
+
status: string
|
|
31
|
+
start_time: Date
|
|
32
|
+
direction: SessionDirection
|
|
33
|
+
_id: string
|
|
34
|
+
_cancel_reason: string
|
|
35
|
+
_contact: string
|
|
36
|
+
_end_time: Date
|
|
37
|
+
_eventsCount: number
|
|
38
|
+
_from_tag: string
|
|
39
|
+
_is_canceled: boolean
|
|
40
|
+
_is_confirmed: boolean
|
|
41
|
+
_late_sdp: string
|
|
42
|
+
_status: number
|
|
43
|
+
_remote_identity: string
|
|
44
|
+
target_addr: Array<string>
|
|
45
|
+
answer(options?: any): void
|
|
46
|
+
_init_incomeing(): void
|
|
47
|
+
sendMSRP(body: string): void
|
|
48
|
+
on<T extends keyof MSRPSessionEventMap>(type: T, listener: MSRPSessionEventMap[T]): this;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface TriggerMSRPListenerOptions {
|
|
52
|
+
listenerType: string
|
|
53
|
+
session: MSRPSessionExtended
|
|
54
|
+
event?: ListenerEventType
|
|
55
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AnswerOptions,
|
|
3
|
+
EndEvent,
|
|
4
|
+
IncomingAckEvent,
|
|
5
|
+
IncomingEvent,
|
|
6
|
+
OutgoingAckEvent,
|
|
7
|
+
OutgoingEvent,
|
|
8
|
+
RTCSession,
|
|
9
|
+
RTCSessionEventMap,
|
|
10
|
+
MediaConstraints
|
|
11
|
+
} from 'jssip/lib/RTCSession'
|
|
12
|
+
import {
|
|
13
|
+
IncomingRequest
|
|
14
|
+
} from 'jssip/lib/SIPMessage'
|
|
15
|
+
import { UAConfiguration } from 'jssip/lib/UA'
|
|
16
|
+
|
|
17
|
+
import { MODULES } from '@/enum/modules'
|
|
18
|
+
|
|
19
|
+
import { ExtraContactParams } from 'jssip/lib/Registrator'
|
|
20
|
+
|
|
21
|
+
export type IntervalType = ReturnType<typeof setInterval>
|
|
22
|
+
|
|
23
|
+
export type ListenerEventType = EndEvent | IncomingEvent | OutgoingEvent | IncomingAckEvent | OutgoingAckEvent
|
|
24
|
+
|
|
25
|
+
export type RTCBundlePolicy = 'balanced' | 'max-bundle' | 'max-compat'
|
|
26
|
+
export type RTCIceTransportPolicy = 'all' | 'relay'
|
|
27
|
+
export type RTCRtcpMuxPolicy = 'require'
|
|
28
|
+
|
|
29
|
+
export interface RTCIceServer {
|
|
30
|
+
credential?: string;
|
|
31
|
+
urls: string | string[];
|
|
32
|
+
username?: string;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface RTCConfiguration {
|
|
36
|
+
bundlePolicy?: RTCBundlePolicy;
|
|
37
|
+
certificates?: RTCCertificate[];
|
|
38
|
+
iceCandidatePoolSize?: number;
|
|
39
|
+
iceServers?: RTCIceServer[];
|
|
40
|
+
iceTransportPolicy?: RTCIceTransportPolicy;
|
|
41
|
+
rtcpMuxPolicy?: RTCRtcpMuxPolicy;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface StreamMediaType extends HTMLAudioElement {
|
|
45
|
+
className: string
|
|
46
|
+
setSinkId (id: string): Promise<void>
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
type ExactConstraints = {
|
|
50
|
+
audio?: {
|
|
51
|
+
deviceId: {exact: string}
|
|
52
|
+
}
|
|
53
|
+
video?: boolean;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface AnswerOptionsExtended extends AnswerOptions {
|
|
57
|
+
mediaConstraints?: MediaConstraints | ExactConstraints
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface RemoteIdentityCallType {
|
|
61
|
+
_display_name: string
|
|
62
|
+
_uri: {
|
|
63
|
+
_user: string
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface RTCSessionExtended extends RTCSession {
|
|
68
|
+
id: string
|
|
69
|
+
_automaticHold: boolean
|
|
70
|
+
_id: string
|
|
71
|
+
_localHold: boolean
|
|
72
|
+
_audioMuted: boolean
|
|
73
|
+
_cancel_reason: string
|
|
74
|
+
_contact: string
|
|
75
|
+
_end_time: Date
|
|
76
|
+
_eventsCount: number
|
|
77
|
+
_from_tag: string
|
|
78
|
+
_is_canceled: boolean
|
|
79
|
+
_is_confirmed: boolean
|
|
80
|
+
_late_sdp: string
|
|
81
|
+
_videoMuted: boolean
|
|
82
|
+
_status: number
|
|
83
|
+
_remote_identity: RemoteIdentityCallType
|
|
84
|
+
answer(options?: AnswerOptionsExtended): void
|
|
85
|
+
init_icncoming(request: IncomingRequest): void
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export interface ICall extends RTCSessionExtended {
|
|
89
|
+
roomId?: number
|
|
90
|
+
localMuted?: boolean
|
|
91
|
+
localHold?: boolean
|
|
92
|
+
audioTag?: StreamMediaType
|
|
93
|
+
autoAnswer?: boolean
|
|
94
|
+
putOnHoldTimestamp?: number
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export type RoomChangeEmitType = {
|
|
98
|
+
room: IRoom
|
|
99
|
+
roomList: { [key: number]: IRoom }
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export interface MediaEvent extends Event {
|
|
103
|
+
stream: MediaStream
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export interface IRoom {
|
|
107
|
+
started: Date
|
|
108
|
+
incomingInProgress: boolean
|
|
109
|
+
roomId: number
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export interface ICallStatus {
|
|
113
|
+
isMoving: boolean
|
|
114
|
+
isTransferring: boolean
|
|
115
|
+
isMerging: boolean
|
|
116
|
+
isTransferred: boolean
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export interface ICallStatusUpdate {
|
|
120
|
+
callId: string
|
|
121
|
+
isMoving?: boolean
|
|
122
|
+
isTransferring?: boolean
|
|
123
|
+
isMerging?: boolean
|
|
124
|
+
isTransferred?: boolean
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export type IRoomUpdate = Omit<IRoom, 'started'> & {
|
|
128
|
+
started?: Date
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export type AudioModuleName = typeof MODULES.AUDIO
|
|
132
|
+
export type VideoModuleName = typeof MODULES.VIDEO
|
|
133
|
+
export type MSRPModuleName = typeof MODULES.MSRP
|
|
134
|
+
|
|
135
|
+
export type Modules = AudioModuleName | VideoModuleName | MSRPModuleName
|
|
136
|
+
|
|
137
|
+
export type OnTransportCallback = (parsed: object, message: string) => void
|
|
138
|
+
|
|
139
|
+
type UAConfigurationExtended = UAConfiguration & {
|
|
140
|
+
overrideUserAgent?: (userAgent: string) => string
|
|
141
|
+
onTransportCallback?: OnTransportCallback
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export type IOpenSIPSConfiguration = Omit<UAConfigurationExtended, 'sockets'>
|
|
145
|
+
|
|
146
|
+
export interface IOpenSIPSJSOptions {
|
|
147
|
+
configuration: IOpenSIPSConfiguration
|
|
148
|
+
socketInterfaces: [ string ]
|
|
149
|
+
sipDomain: string
|
|
150
|
+
sipOptions: {
|
|
151
|
+
session_timers: boolean
|
|
152
|
+
extraHeaders: [ string ]
|
|
153
|
+
pcConfig: RTCConfiguration
|
|
154
|
+
},
|
|
155
|
+
modules: Array<Modules>
|
|
156
|
+
pnExtraHeaders?: ExtraContactParams
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export interface TriggerListenerOptions {
|
|
160
|
+
listenerType: string
|
|
161
|
+
session: RTCSessionExtended
|
|
162
|
+
event?: ListenerEventType
|
|
163
|
+
}
|
|
164
|
+
type CommonLogMethodType = (...args: unknown[]) => void
|
|
165
|
+
|
|
166
|
+
export interface CustomLoggerType {
|
|
167
|
+
log: CommonLogMethodType
|
|
168
|
+
warn: CommonLogMethodType
|
|
169
|
+
error: CommonLogMethodType
|
|
170
|
+
debug: CommonLogMethodType
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/* UA */
|
|
174
|
+
export interface CallOptionsExtended extends AnswerOptionsExtended {
|
|
175
|
+
eventHandlers?: Partial<RTCSessionEventMap>;
|
|
176
|
+
anonymous?: boolean;
|
|
177
|
+
fromUserName?: string;
|
|
178
|
+
fromDisplayName?: string;
|
|
179
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ITimeData {
|
|
2
|
+
callId: string
|
|
3
|
+
hours: number
|
|
4
|
+
minutes: number
|
|
5
|
+
seconds: number
|
|
6
|
+
formatted: string
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export type TempTimeData = Omit<ITimeData, 'callId'> & {
|
|
10
|
+
callId: string | undefined
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type CallTime = Record<string, TempTimeData>
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export interface WebrtcMetricsConfigType {
|
|
2
|
+
refreshEvery?: number
|
|
3
|
+
startAfter?: number
|
|
4
|
+
stopAfter?: number
|
|
5
|
+
verbose?: boolean
|
|
6
|
+
pname?: string
|
|
7
|
+
cid?: string
|
|
8
|
+
uid?: string
|
|
9
|
+
record?: boolean
|
|
10
|
+
ticket?: boolean
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type ProbeDirectionType = 'inbound' | 'outbound'
|
|
14
|
+
|
|
15
|
+
export interface ProbeMetricInType {
|
|
16
|
+
level_in: number
|
|
17
|
+
codec_id_in: string
|
|
18
|
+
codec_in: { mime_type: null | number, clock_rate: null | number, sdp_fmtp_line: null | number }
|
|
19
|
+
delta_jitter_ms_in: number
|
|
20
|
+
percent_packets_lost_in: number
|
|
21
|
+
delta_packets_in: number
|
|
22
|
+
delta_packets_lost_in: number
|
|
23
|
+
total_packets_in: number
|
|
24
|
+
total_packets_lost_in: number
|
|
25
|
+
total_KBytes_in: number
|
|
26
|
+
delta_KBytes_in: number
|
|
27
|
+
delta_kbs_in: number,
|
|
28
|
+
mos_in: number
|
|
29
|
+
mos_emodel_in: number
|
|
30
|
+
ssrc: string
|
|
31
|
+
direction: ProbeDirectionType
|
|
32
|
+
}
|
|
33
|
+
export interface ProbeMetricOutType {
|
|
34
|
+
level_out: number
|
|
35
|
+
codec_id_out: string
|
|
36
|
+
codec_out: { mime_type: null | number, clock_rate: null | number, sdp_fmtp_line: null | number }
|
|
37
|
+
delta_jitter_ms_out: number
|
|
38
|
+
delta_rtt_ms_out: null | number
|
|
39
|
+
total_rtt_ms_out: number
|
|
40
|
+
total_rtt_measure_out: number
|
|
41
|
+
percent_packets_lost_out: number
|
|
42
|
+
delta_packets_out: number
|
|
43
|
+
delta_packets_lost_out: number
|
|
44
|
+
total_packets_out: number
|
|
45
|
+
total_packets_lost_out: number
|
|
46
|
+
total_KBytes_out: number
|
|
47
|
+
delta_KBytes_out: number
|
|
48
|
+
delta_kbs_out: number
|
|
49
|
+
timestamp_out: null | number
|
|
50
|
+
mos_out: number
|
|
51
|
+
mos_emodel_out: number
|
|
52
|
+
ssrc: string
|
|
53
|
+
direction: ProbeDirectionType
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface Probe {
|
|
57
|
+
audio: { [key: string]: ProbeMetricInType | ProbeMetricOutType }
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
interface MetricAudioData extends ProbeMetricInType {
|
|
61
|
+
callId?: string
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export type MediaDeviceType = 'input' | 'output'
|