ringcentral-softphone 1.3.5 → 1.3.7
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/dist/call-session/inbound.d.cts +1 -9
- package/dist/call-session/inbound.d.mts +2 -0
- package/dist/call-session/{inbound.js → inbound.mjs} +6 -4
- package/dist/call-session/inbound.mjs.map +1 -0
- package/dist/call-session/index.cjs +4 -4
- package/dist/call-session/index.d.cts +1 -47
- package/dist/call-session/index.d.mts +2 -0
- package/dist/call-session/{index.js → index.mjs} +8 -6
- package/dist/call-session/index.mjs.map +1 -0
- package/dist/call-session/outbound.d.cts +1 -12
- package/dist/call-session/outbound.d.mts +2 -0
- package/dist/call-session/{outbound.js → outbound.mjs} +6 -4
- package/dist/call-session/outbound.mjs.map +1 -0
- package/dist/call-session/streamer.cjs +2 -2
- package/dist/call-session/streamer.d.cts +1 -18
- package/dist/call-session/streamer.d.mts +2 -0
- package/dist/call-session/{streamer.js → streamer.mjs} +2 -0
- package/dist/call-session/streamer.mjs.map +1 -0
- package/dist/{_virtual/_rolldown/runtime.cjs → chunk-CKQMccvm.cjs} +6 -1
- package/dist/{codec.d.ts → codec-Bh7v8J-S.d.mts} +2 -1
- package/dist/codec-Bh7v8J-S.d.mts.map +1 -0
- package/dist/codec-C-VrtVkq.d.cts +19 -0
- package/dist/codec-C-VrtVkq.d.cts.map +1 -0
- package/dist/codec.cjs +1 -1
- package/dist/codec.d.cts +1 -16
- package/dist/codec.d.mts +2 -0
- package/dist/{codec.js → codec.mjs} +2 -0
- package/dist/codec.mjs.map +1 -0
- package/dist/{dtmf.d.ts → dtmf-B13Fz2VR.d.mts} +2 -1
- package/dist/dtmf-B13Fz2VR.d.mts.map +1 -0
- package/dist/dtmf-DcQ-5vSG.d.cts +11 -0
- package/dist/dtmf-DcQ-5vSG.d.cts.map +1 -0
- package/dist/dtmf.cjs +1 -1
- package/dist/dtmf.d.cts +1 -8
- package/dist/dtmf.d.mts +2 -0
- package/dist/{dtmf.js → dtmf.mjs} +2 -0
- package/dist/dtmf.mjs.map +1 -0
- package/dist/inbound--wGoGqLS.d.mts +104 -0
- package/dist/inbound--wGoGqLS.d.mts.map +1 -0
- package/dist/inbound-DquvTSj1.d.cts +104 -0
- package/dist/inbound-DquvTSj1.d.cts.map +1 -0
- package/dist/{sip-message/outbound/index.d.ts → index--UjWgLK-.d.mts} +3 -2
- package/dist/index--UjWgLK-.d.mts.map +1 -0
- package/dist/{sip-message/inbound/index.d.ts → index-BhN2W8AV.d.mts} +3 -2
- package/dist/index-BhN2W8AV.d.mts.map +1 -0
- package/dist/index-CEgs-Dz2.d.cts +1 -0
- package/dist/index-Cf2Cev52.d.cts +9 -0
- package/dist/index-Cf2Cev52.d.cts.map +1 -0
- package/dist/index-XMDop59x.d.cts +9 -0
- package/dist/index-XMDop59x.d.cts.map +1 -0
- package/dist/index-q_LXL61M.d.mts +1 -0
- package/dist/index.cjs +4 -4
- package/dist/index.d.cts +1 -30
- package/dist/index.d.mts +2 -0
- package/dist/{index.js → index.mjs} +11 -9
- package/dist/index.mjs.map +1 -0
- package/dist/{sip-message/outbound/request.d.ts → request-B_auLSJn.d.cts} +3 -2
- package/dist/request-B_auLSJn.d.cts.map +1 -0
- package/dist/request-pBe7_mYv.d.mts +11 -0
- package/dist/request-pBe7_mYv.d.mts.map +1 -0
- package/dist/{sip-message/outbound/response.d.ts → response-LRRpY8lX.d.mts} +4 -3
- package/dist/response-LRRpY8lX.d.mts.map +1 -0
- package/dist/response-ReKvb5x9.d.cts +10 -0
- package/dist/response-ReKvb5x9.d.cts.map +1 -0
- package/dist/sip-message/inbound/index.d.cts +1 -6
- package/dist/sip-message/inbound/index.d.mts +2 -0
- package/dist/sip-message/inbound/{index.js → index.mjs} +4 -2
- package/dist/sip-message/inbound/index.mjs.map +1 -0
- package/dist/sip-message/index.d.cts +5 -5
- package/dist/sip-message/index.d.mts +6 -0
- package/dist/sip-message/index.mjs +6 -0
- package/dist/sip-message/outbound/index.d.cts +1 -6
- package/dist/sip-message/outbound/index.d.mts +2 -0
- package/dist/sip-message/outbound/{index.js → index.mjs} +3 -1
- package/dist/sip-message/outbound/index.mjs.map +1 -0
- package/dist/sip-message/outbound/request.d.cts +1 -8
- package/dist/sip-message/outbound/request.d.mts +2 -0
- package/dist/sip-message/outbound/{request.js → request.mjs} +4 -2
- package/dist/sip-message/outbound/request.mjs.map +1 -0
- package/dist/sip-message/outbound/response.d.cts +1 -7
- package/dist/sip-message/outbound/response.d.mts +2 -0
- package/dist/sip-message/outbound/{response.js → response.mjs} +4 -2
- package/dist/sip-message/outbound/response.mjs.map +1 -0
- package/dist/sip-message/response-codes.d.cts +2 -1
- package/dist/sip-message/response-codes.d.cts.map +1 -0
- package/dist/sip-message/{response-codes.d.ts → response-codes.d.mts} +2 -1
- package/dist/sip-message/response-codes.d.mts.map +1 -0
- package/dist/sip-message/{response-codes.js → response-codes.mjs} +2 -0
- package/dist/sip-message/response-codes.mjs.map +1 -0
- package/dist/sip-message/sip-message.d.cts +1 -11
- package/dist/sip-message/sip-message.d.mts +2 -0
- package/dist/sip-message/{sip-message.js → sip-message.mjs} +2 -0
- package/dist/sip-message/sip-message.mjs.map +1 -0
- package/dist/{sip-message/sip-message.d.ts → sip-message-B2D5MPBI.d.cts} +2 -1
- package/dist/sip-message-B2D5MPBI.d.cts.map +1 -0
- package/dist/sip-message-PaPho4qU.d.mts +14 -0
- package/dist/sip-message-PaPho4qU.d.mts.map +1 -0
- package/dist/{types.d.ts → types-DOQ9wmX6.d.mts} +2 -1
- package/dist/types-DOQ9wmX6.d.mts.map +1 -0
- package/dist/types-DZxCsbZE.d.cts +13 -0
- package/dist/types-DZxCsbZE.d.cts.map +1 -0
- package/dist/types.d.cts +1 -11
- package/dist/types.d.mts +2 -0
- package/dist/utils.cjs +2 -2
- package/dist/utils.d.cts +3 -2
- package/dist/utils.d.cts.map +1 -0
- package/dist/{utils.d.ts → utils.d.mts} +3 -2
- package/dist/utils.d.mts.map +1 -0
- package/dist/{utils.js → utils.mjs} +2 -0
- package/dist/utils.mjs.map +1 -0
- package/package.json +10 -10
- package/dist/call-session/inbound.d.ts +0 -11
- package/dist/call-session/index.d.ts +0 -49
- package/dist/call-session/outbound.d.ts +0 -14
- package/dist/call-session/streamer.d.ts +0 -20
- package/dist/index.d.ts +0 -32
- package/dist/sip-message/index.d.ts +0 -6
- package/dist/sip-message/index.js +0 -6
- /package/dist/{types.js → types.mjs} +0 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { t as InboundMessage } from "./index-Cf2Cev52.cjs";
|
|
2
|
+
import { t as OutboundMessage } from "./index-XMDop59x.cjs";
|
|
3
|
+
import { t as DTMF } from "./dtmf-DcQ-5vSG.cjs";
|
|
4
|
+
import { t as Codec } from "./codec-C-VrtVkq.cjs";
|
|
5
|
+
import { t as SoftPhoneOptions } from "./types-DZxCsbZE.cjs";
|
|
6
|
+
import EventEmitter from "node:events";
|
|
7
|
+
import { TLSSocket } from "node:tls";
|
|
8
|
+
import { Buffer } from "node:buffer";
|
|
9
|
+
import dgram from "node:dgram";
|
|
10
|
+
import { RtpPacket, SrtpSession } from "werift-rtp";
|
|
11
|
+
|
|
12
|
+
//#region src/call-session/streamer.d.ts
|
|
13
|
+
declare class Streamer extends EventEmitter {
|
|
14
|
+
paused: boolean;
|
|
15
|
+
private callSession;
|
|
16
|
+
private buffer;
|
|
17
|
+
private originalBuffer;
|
|
18
|
+
constructor(callSession: CallSession, buffer: Buffer);
|
|
19
|
+
start(): void;
|
|
20
|
+
stop(): void;
|
|
21
|
+
pause(): void;
|
|
22
|
+
resume(): void;
|
|
23
|
+
get finished(): boolean;
|
|
24
|
+
private sendPacket;
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/call-session/index.d.ts
|
|
28
|
+
type DtmfChar = (typeof DTMF.phoneChars)[number];
|
|
29
|
+
declare abstract class CallSession extends EventEmitter {
|
|
30
|
+
softphone: Softphone;
|
|
31
|
+
sipMessage: InboundMessage;
|
|
32
|
+
socket: dgram.Socket;
|
|
33
|
+
localPeer: string;
|
|
34
|
+
remotePeer: string;
|
|
35
|
+
remoteIP: string;
|
|
36
|
+
remotePort: number;
|
|
37
|
+
disposed: boolean;
|
|
38
|
+
srtpSession: SrtpSession;
|
|
39
|
+
encoder: {
|
|
40
|
+
encode: (pcm: Buffer) => Buffer;
|
|
41
|
+
};
|
|
42
|
+
decoder: {
|
|
43
|
+
decode: (audio: Buffer) => Buffer;
|
|
44
|
+
};
|
|
45
|
+
sdp: string;
|
|
46
|
+
ssrc: number;
|
|
47
|
+
sequenceNumber: number;
|
|
48
|
+
timestamp: number;
|
|
49
|
+
constructor(softphone: Softphone, sipMessage: InboundMessage);
|
|
50
|
+
set remoteKey(key: string);
|
|
51
|
+
get callId(): string | undefined;
|
|
52
|
+
send(data: string | Buffer): void;
|
|
53
|
+
hangup(): Promise<void>;
|
|
54
|
+
sendDTMF(char: DtmfChar): void;
|
|
55
|
+
sendDTMFs(s: string, delay?: number): Promise<void>;
|
|
56
|
+
streamAudio(input: Buffer): Streamer;
|
|
57
|
+
sendPacket(rtpPacket: RtpPacket): void;
|
|
58
|
+
protected startLocalServices(): void;
|
|
59
|
+
protected dispose(): void;
|
|
60
|
+
transfer(transferTo: string): Promise<void>;
|
|
61
|
+
toggleReceive(toReceive: boolean): Promise<void>;
|
|
62
|
+
hold(): Promise<void>;
|
|
63
|
+
unhold(): Promise<void>;
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
//#region src/call-session/outbound.d.ts
|
|
67
|
+
declare class OutboundCallSession extends CallSession {
|
|
68
|
+
constructor(softphone: Softphone, answerMessage: InboundMessage);
|
|
69
|
+
init(): void;
|
|
70
|
+
cancel(): Promise<void>;
|
|
71
|
+
get sessionId(): string;
|
|
72
|
+
get partyId(): string;
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region src/index.d.ts
|
|
76
|
+
declare class Softphone extends EventEmitter {
|
|
77
|
+
sipInfo: SoftPhoneOptions;
|
|
78
|
+
client: TLSSocket;
|
|
79
|
+
codec: Codec;
|
|
80
|
+
fakeDomain: string;
|
|
81
|
+
fakeEmail: string;
|
|
82
|
+
private intervalHandle?;
|
|
83
|
+
private connected;
|
|
84
|
+
constructor(sipInfo: SoftPhoneOptions);
|
|
85
|
+
private instanceId;
|
|
86
|
+
private registerCallId;
|
|
87
|
+
register(): Promise<void>;
|
|
88
|
+
enableDebugMode(): void;
|
|
89
|
+
revoke(): void;
|
|
90
|
+
send(message: OutboundMessage, waitForReply?: true): Promise<InboundMessage>;
|
|
91
|
+
send(message: OutboundMessage, waitForReply?: false): Promise<undefined>;
|
|
92
|
+
answer(inviteMessage: InboundMessage): Promise<InboundCallSession>;
|
|
93
|
+
decline(inviteMessage: InboundMessage): Promise<void>;
|
|
94
|
+
call(callee: string): Promise<OutboundCallSession>;
|
|
95
|
+
}
|
|
96
|
+
//#endregion
|
|
97
|
+
//#region src/call-session/inbound.d.ts
|
|
98
|
+
declare class InboundCallSession extends CallSession {
|
|
99
|
+
constructor(softphone: Softphone, inviteMessage: InboundMessage);
|
|
100
|
+
answer(): Promise<void>;
|
|
101
|
+
}
|
|
102
|
+
//#endregion
|
|
103
|
+
export { Streamer as a, CallSession as i, Softphone as n, OutboundCallSession as r, InboundCallSession as t };
|
|
104
|
+
//# sourceMappingURL=inbound-DquvTSj1.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbound-DquvTSj1.d.cts","names":[],"sources":["../src/call-session/streamer.ts","../src/call-session/index.ts","../src/call-session/outbound.ts","../src/index.ts","../src/call-session/inbound.ts"],"mappings":";;;;;;;;;;;;cAOM,QAAA,SAAiB,YAAA;EACd,MAAA;EAAA,QACC,WAAA;EAAA,QACA,MAAA;EAAA,QACA,cAAA;cAEW,WAAA,EAAa,WAAA,EAAa,MAAA,EAAQ,MAAA;EAO9C,KAAA,CAAA;EAMA,IAAA,CAAA;EAIA,KAAA,CAAA;EAIA,MAAA,CAAA;EAAA,IAKI,QAAA,CAAA;EAAA,QAOH,UAAA;AAAA;;;KC/BL,QAAA,WAAmB,IAAA,CAAK,UAAA;AAAA,uBAKd,WAAA,SAAoB,YAAA;EAC1B,SAAA,EAAW,SAAA;EACX,UAAA,EAAY,cAAA;EACZ,MAAA,EAAS,KAAA,CAAM,MAAA;EACf,SAAA;EACA,UAAA;EACA,QAAA;EACA,UAAA;EACA,QAAA;EACA,WAAA,EAAc,WAAA;EACd,OAAA;IAAW,MAAA,GAAS,GAAA,EAAK,MAAA,KAAW,MAAA;EAAA;EACpC,OAAA;IAAW,MAAA,GAAS,KAAA,EAAO,MAAA,KAAW,MAAA;EAAA;EACtC,GAAA;EAGA,IAAA;EACA,cAAA;EACA,SAAA;cAEY,SAAA,EAAW,SAAA,EAAW,UAAA,EAAY,cAAA;EAAA,IAgB1C,SAAA,CAAU,GAAA;EAAA,IAcV,MAAA,CAAA;EAIJ,IAAA,CAAK,IAAA,WAAe,MAAA;EAId,MAAA,CAAA,GAAM,OAAA;EAaZ,QAAA,CAAS,IAAA,EAAM,QAAA;EA8BT,SAAA,CAAU,CAAA,UAAW,KAAA,YAAW,OAAA;EAYtC,WAAA,CAAY,KAAA,EAAO,MAAA,GAAM,QAAA;EAOzB,UAAA,CAAW,SAAA,EAAW,SAAA;EAAA,UAOnB,kBAAA,CAAA;EAAA,UAsDA,OAAA,CAAA;EAQG,QAAA,CAAS,UAAA,WAAkB,OAAA;EAqC3B,aAAA,CAAc,SAAA,YAAkB,OAAA;EA+BhC,IAAA,CAAA,GAAI,OAAA;EAIJ,MAAA,CAAA,GAAM,OAAA;AAAA;;;cCnRf,mBAAA,SAA4B,WAAA;cACb,SAAA,EAAW,SAAA,EAAW,aAAA,EAAe,cAAA;EAUjD,IAAA,CAAA;EAiCM,MAAA,CAAA,GAAM,OAAA;EAAA,IAcR,SAAA,CAAA;EAAA,IAKA,OAAA,CAAA;AAAA;;;cC7CP,SAAA,SAAkB,YAAA;EACf,OAAA,EAAS,gBAAA;EACT,MAAA,EAAQ,SAAA;EACR,KAAA,EAAO,KAAA;EAEP,UAAA;EACA,SAAA;EAAA,QAEC,cAAA;EAAA,QACA,SAAA;cAEW,OAAA,EAAS,gBAAA;EAAA,QA+CpB,UAAA;EAAA,QACA,cAAA;EAEK,QAAA,CAAA,GAAQ,OAAA;EAuEd,eAAA,CAAA;EAWA,MAAA,CAAA;EAOA,IAAA,CACL,OAAA,EAAS,eAAA,EACT,YAAA,UACC,OAAA,CAAQ,cAAA;EACJ,IAAA,CACL,OAAA,EAAS,eAAA,EACT,YAAA,WACC,OAAA;EAyBU,MAAA,CAAO,aAAA,EAAe,cAAA,GAAc,OAAA,CAAA,kBAAA;EAOpC,OAAA,CAAQ,aAAA,EAAe,cAAA,GAAc,OAAA;EAKrC,IAAA,CAAK,MAAA,WAAc,OAAA,CAAA,mBAAA;AAAA;;;cCpN5B,kBAAA,SAA2B,WAAA;cACZ,SAAA,EAAW,SAAA,EAAW,aAAA,EAAe,cAAA;EAY3C,MAAA,CAAA,GAAM,OAAA;AAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import SipMessage from "
|
|
1
|
+
import { t as SipMessage } from "./sip-message-PaPho4qU.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/sip-message/outbound/index.d.ts
|
|
4
4
|
declare class OutboundMessage extends SipMessage {
|
|
5
5
|
constructor(subject?: string, headers?: {}, body?: string);
|
|
6
6
|
}
|
|
7
7
|
//#endregion
|
|
8
|
-
export { OutboundMessage as
|
|
8
|
+
export { OutboundMessage as t };
|
|
9
|
+
//# sourceMappingURL=index--UjWgLK-.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index--UjWgLK-.d.mts","names":[],"sources":["../src/sip-message/outbound/index.ts"],"mappings":";;;cAEM,eAAA,SAAwB,UAAA;cACT,OAAA,WAAc,OAAA,OAAc,IAAA;AAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import SipMessage from "
|
|
1
|
+
import { t as SipMessage } from "./sip-message-PaPho4qU.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/sip-message/inbound/index.d.ts
|
|
4
4
|
declare class InboundMessage extends SipMessage {
|
|
5
5
|
static fromString(str: string): SipMessage;
|
|
6
6
|
}
|
|
7
7
|
//#endregion
|
|
8
|
-
export { InboundMessage as
|
|
8
|
+
export { InboundMessage as t };
|
|
9
|
+
//# sourceMappingURL=index-BhN2W8AV.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BhN2W8AV.d.mts","names":[],"sources":["../src/sip-message/inbound/index.ts"],"mappings":";;;cAGM,cAAA,SAAuB,UAAA;EAAA,OACb,UAAA,CAAW,GAAA,WAAW,UAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { t as SipMessage } from "./sip-message-B2D5MPBI.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/sip-message/inbound/index.d.ts
|
|
4
|
+
declare class InboundMessage extends SipMessage {
|
|
5
|
+
static fromString(str: string): SipMessage;
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { InboundMessage as t };
|
|
9
|
+
//# sourceMappingURL=index-Cf2Cev52.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Cf2Cev52.d.cts","names":[],"sources":["../src/sip-message/inbound/index.ts"],"mappings":";;;cAGM,cAAA,SAAuB,UAAA;EAAA,OACb,UAAA,CAAW,GAAA,WAAW,UAAA;AAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { t as SipMessage } from "./sip-message-B2D5MPBI.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/sip-message/outbound/index.d.ts
|
|
4
|
+
declare class OutboundMessage extends SipMessage {
|
|
5
|
+
constructor(subject?: string, headers?: {}, body?: string);
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { OutboundMessage as t };
|
|
9
|
+
//# sourceMappingURL=index-XMDop59x.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-XMDop59x.d.cts","names":[],"sources":["../src/sip-message/outbound/index.ts"],"mappings":";;;cAEM,eAAA,SAAwB,UAAA;cACT,OAAA,WAAc,OAAA,OAAc,IAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_chunk = require("./chunk-CKQMccvm.cjs");
|
|
2
2
|
const require_codec = require("./codec.cjs");
|
|
3
3
|
const require_utils = require("./utils.cjs");
|
|
4
4
|
const require_sip_message_inbound_index = require("./sip-message/inbound/index.cjs");
|
|
@@ -9,11 +9,11 @@ require("./sip-message/index.cjs");
|
|
|
9
9
|
const require_call_session_inbound = require("./call-session/inbound.cjs");
|
|
10
10
|
const require_call_session_outbound = require("./call-session/outbound.cjs");
|
|
11
11
|
let node_events = require("node:events");
|
|
12
|
-
node_events =
|
|
12
|
+
node_events = require_chunk.__toESM(node_events, 1);
|
|
13
13
|
let node_tls = require("node:tls");
|
|
14
|
-
node_tls =
|
|
14
|
+
node_tls = require_chunk.__toESM(node_tls, 1);
|
|
15
15
|
let wait_for_async = require("wait-for-async");
|
|
16
|
-
wait_for_async =
|
|
16
|
+
wait_for_async = require_chunk.__toESM(wait_for_async, 1);
|
|
17
17
|
//#region src/index.ts
|
|
18
18
|
var Softphone = class extends node_events.default {
|
|
19
19
|
sipInfo;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,31 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import OutboundMessage from "./sip-message/outbound/index.cjs";
|
|
3
|
-
import OutboundCallSession from "./call-session/outbound.cjs";
|
|
4
|
-
import Codec from "./codec.cjs";
|
|
5
|
-
import { SoftPhoneOptions } from "./types.cjs";
|
|
6
|
-
import InboundCallSession from "./call-session/inbound.cjs";
|
|
7
|
-
import EventEmitter from "node:events";
|
|
8
|
-
import { TLSSocket } from "node:tls";
|
|
9
|
-
|
|
10
|
-
//#region src/index.d.ts
|
|
11
|
-
declare class Softphone extends EventEmitter {
|
|
12
|
-
sipInfo: SoftPhoneOptions;
|
|
13
|
-
client: TLSSocket;
|
|
14
|
-
codec: Codec;
|
|
15
|
-
fakeDomain: string;
|
|
16
|
-
fakeEmail: string;
|
|
17
|
-
private intervalHandle?;
|
|
18
|
-
private connected;
|
|
19
|
-
constructor(sipInfo: SoftPhoneOptions);
|
|
20
|
-
private instanceId;
|
|
21
|
-
private registerCallId;
|
|
22
|
-
register(): Promise<void>;
|
|
23
|
-
enableDebugMode(): void;
|
|
24
|
-
revoke(): void;
|
|
25
|
-
send(message: OutboundMessage, waitForReply?: true): Promise<InboundMessage>;
|
|
26
|
-
send(message: OutboundMessage, waitForReply?: false): Promise<undefined>;
|
|
27
|
-
answer(inviteMessage: InboundMessage): Promise<InboundCallSession>;
|
|
28
|
-
decline(inviteMessage: InboundMessage): Promise<void>;
|
|
29
|
-
call(callee: string): Promise<OutboundCallSession>;
|
|
30
|
-
}
|
|
1
|
+
import { n as Softphone } from "./inbound-DquvTSj1.cjs";
|
|
31
2
|
export = Softphone;
|
package/dist/index.d.mts
ADDED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import Codec from "./codec.
|
|
2
|
-
import { branch, generateAuthorization, localKey, randomInt, uuid } from "./utils.
|
|
3
|
-
import InboundMessage from "./sip-message/inbound/index.
|
|
4
|
-
import OutboundMessage from "./sip-message/outbound/index.
|
|
5
|
-
import RequestMessage from "./sip-message/outbound/request.
|
|
6
|
-
import ResponseMessage from "./sip-message/outbound/response.
|
|
7
|
-
import "./sip-message/index.
|
|
8
|
-
import InboundCallSession from "./call-session/inbound.
|
|
9
|
-
import OutboundCallSession from "./call-session/outbound.
|
|
1
|
+
import Codec from "./codec.mjs";
|
|
2
|
+
import { branch, generateAuthorization, localKey, randomInt, uuid } from "./utils.mjs";
|
|
3
|
+
import InboundMessage from "./sip-message/inbound/index.mjs";
|
|
4
|
+
import OutboundMessage from "./sip-message/outbound/index.mjs";
|
|
5
|
+
import RequestMessage from "./sip-message/outbound/request.mjs";
|
|
6
|
+
import ResponseMessage from "./sip-message/outbound/response.mjs";
|
|
7
|
+
import "./sip-message/index.mjs";
|
|
8
|
+
import InboundCallSession from "./call-session/inbound.mjs";
|
|
9
|
+
import OutboundCallSession from "./call-session/outbound.mjs";
|
|
10
10
|
import EventEmitter from "node:events";
|
|
11
11
|
import tls from "node:tls";
|
|
12
12
|
import waitFor from "wait-for-async";
|
|
@@ -170,3 +170,5 @@ a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:${localKey}
|
|
|
170
170
|
};
|
|
171
171
|
//#endregion
|
|
172
172
|
export { Softphone as default };
|
|
173
|
+
|
|
174
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import EventEmitter from \"node:events\";\nimport tls, { type TLSSocket } from \"node:tls\";\n\nimport waitFor from \"wait-for-async\";\n\nimport InboundCallSession from \"./call-session/inbound.js\";\nimport OutboundCallSession from \"./call-session/outbound.js\";\nimport Codec from \"./codec.js\";\nimport {\n InboundMessage,\n OutboundMessage,\n RequestMessage,\n ResponseMessage,\n} from \"./sip-message/index.js\";\nimport type { SoftPhoneOptions } from \"./types.js\";\nimport {\n branch,\n generateAuthorization,\n localKey,\n randomInt,\n uuid,\n} from \"./utils.js\";\n\nclass Softphone extends EventEmitter {\n public sipInfo: SoftPhoneOptions;\n public client: TLSSocket;\n public codec: Codec;\n\n public fakeDomain = `${uuid()}.invalid`;\n public fakeEmail = `${uuid()}@${this.fakeDomain}`;\n\n private intervalHandle?: NodeJS.Timeout;\n private connected = false;\n\n public constructor(sipInfo: SoftPhoneOptions) {\n super();\n if (sipInfo.codec === undefined) {\n sipInfo.codec = \"OPUS/16000\";\n }\n this.codec = new Codec(sipInfo.codec);\n this.sipInfo = sipInfo;\n if (this.sipInfo.domain === undefined) {\n this.sipInfo.domain = \"sip.ringcentral.com\";\n }\n if (this.sipInfo.outboundProxy === undefined) {\n this.sipInfo.outboundProxy = \"sip10.ringcentral.com:5096\";\n }\n const tokens = this.sipInfo.outboundProxy!.split(\":\");\n this.client = tls.connect(\n {\n host: tokens[0],\n port: parseInt(tokens[1], 10),\n rejectUnauthorized: !this.sipInfo.ignoreTlsCertErrors,\n },\n () => {\n this.connected = true;\n },\n );\n\n let cache = \"\";\n this.client.on(\"data\", (data) => {\n cache += data.toString(\"utf-8\");\n if (!cache.endsWith(\"\\r\\n\")) {\n return; // haven't received a complete message yet\n }\n // received two empty body messages\n const tempMessages = cache\n .split(\"\\r\\nContent-Length: 0\\r\\n\\r\\n\")\n .filter((message) => message.trim() !== \"\");\n cache = \"\";\n for (let i = 0; i < tempMessages.length; i++) {\n if (!tempMessages[i].includes(\"Content-Length: \")) {\n tempMessages[i] = `${tempMessages[i]}\\r\\nContent-Length: 0`;\n }\n }\n for (const message of tempMessages) {\n this.emit(\"message\", InboundMessage.fromString(message));\n }\n });\n }\n\n private instanceId = uuid();\n private registerCallId = uuid();\n\n public async register() {\n if (!this.connected) {\n await waitFor({\n interval: 100,\n times: 100,\n condition: () => this.connected,\n });\n if (!this.connected) {\n throw new Error(\"Failed to register: connect to TLS timeout\");\n }\n }\n const sipRegister = async () => {\n const fromTag = uuid();\n const requestMessage = new RequestMessage(\n `REGISTER sip:${this.sipInfo.domain} SIP/2.0`,\n {\n Via: `SIP/2.0/TLS ${this.client.localAddress}:${this.client.localPort};rport;branch=${branch()};alias`,\n \"Max-Forwards\": \"70\",\n From: `<sip:${this.sipInfo.username}@${this.sipInfo.domain}>;tag=${fromTag}`,\n To: `<sip:${this.sipInfo.username}@${this.sipInfo.domain}>`,\n \"Call-ID\": this.registerCallId,\n Contact: `<sip:${this.sipInfo.username}@${this.client.localAddress}:${this.client.localPort};transport=TLS;ob>;reg-id=1;+sip.instance=\"<urn:uuid:${this.instanceId}>\"`,\n Expires: 3600,\n Allow:\n \"PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS\",\n },\n );\n const inboundMessage = await this.send(requestMessage, true);\n if (inboundMessage.subject.startsWith(\"SIP/2.0 200 \")) {\n // sometimes the server will return 200 OK directly\n return;\n }\n const wwwAuth = inboundMessage.getHeader(\"Www-Authenticate\")!;\n const nonce = wwwAuth.match(/, nonce=\"(.+?)\"/)![1];\n const newMessage = requestMessage.fork();\n newMessage.headers.Authorization = generateAuthorization(\n this.sipInfo,\n nonce,\n \"REGISTER\",\n );\n const message = await this.send(newMessage, true);\n if (!message.subject.startsWith(\"SIP/2.0 200 \")) {\n throw new Error(`Failed to register: ${message.subject}`);\n }\n };\n await sipRegister();\n this.intervalHandle = setInterval(\n () => {\n sipRegister().catch((error) => {\n this.emit(\"registrationError\", error);\n });\n },\n 30 * 1000, // refresh registration every 30 seconds\n );\n this.on(\"message\", (inboundMessage) => {\n if (!inboundMessage.subject.startsWith(\"INVITE sip:\")) {\n return;\n }\n const outboundMessage = new OutboundMessage(\"SIP/2.0 100 Trying\", {\n Via: inboundMessage.headers.Via,\n \"Call-ID\": inboundMessage.getHeader(\"Call-ID\"),\n From: inboundMessage.headers.From,\n To: inboundMessage.headers.To,\n CSeq: inboundMessage.headers.CSeq,\n \"Content-Length\": \"0\",\n });\n this.send(outboundMessage);\n this.emit(\"invite\", inboundMessage);\n });\n }\n\n public enableDebugMode() {\n this.on(\"message\", (message) =>\n console.log(`Receiving...(${new Date()})\\n${message.toString()}`),\n );\n const tlsWrite = this.client.write.bind(this.client);\n this.client.write = (message) => {\n console.log(`Sending...(${new Date()})\\n${message}`);\n return tlsWrite(message);\n };\n }\n\n public revoke() {\n clearInterval(this.intervalHandle);\n this.removeAllListeners();\n this.client.removeAllListeners();\n this.client.destroy();\n }\n\n public send(\n message: OutboundMessage,\n waitForReply?: true,\n ): Promise<InboundMessage>;\n public send(\n message: OutboundMessage,\n waitForReply?: false,\n ): Promise<undefined>;\n public send(message: OutboundMessage, waitForReply = false) {\n this.client.write(message.toString());\n if (!waitForReply) {\n return Promise.resolve(undefined);\n }\n return new Promise<InboundMessage>((resolve) => {\n const messageListerner = (inboundMessage: InboundMessage) => {\n // \"12563 INVITE\" vs \"12563 ACK\"\n if (\n inboundMessage.headers.CSeq.trim().split(/\\s+/)[0] !==\n message.headers.CSeq.trim().split(/\\s+/)[0]\n ) {\n return;\n }\n if (inboundMessage.subject.startsWith(\"SIP/2.0 100 \")) {\n return; // ignore\n }\n this.off(\"message\", messageListerner);\n resolve(inboundMessage);\n };\n this.on(\"message\", messageListerner);\n });\n }\n\n public async answer(inviteMessage: InboundMessage) {\n const inboundCallSession = new InboundCallSession(this, inviteMessage);\n await inboundCallSession.answer();\n return inboundCallSession;\n }\n\n // decline an inbound call\n public async decline(inviteMessage: InboundMessage) {\n const newMessage = new ResponseMessage(inviteMessage, 603);\n await this.send(newMessage);\n }\n\n public async call(callee: string) {\n const offerSDP = `\nv=0\no=- ${Date.now()} 0 IN IP4 ${this.client.localAddress}\ns=rc-softphone-ts\nc=IN IP4 ${this.client.localAddress}\nt=0 0\nm=audio ${randomInt()} RTP/SAVP ${this.codec.id} 101\na=rtpmap:${this.codec.id} ${this.codec.name}\na=rtpmap:101 telephone-event/8000\na=fmtp:101 0-15\na=sendrecv\na=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:${localKey}\n `.trim();\n const inviteMessage = new RequestMessage(\n `INVITE sip:${callee}@${this.sipInfo.domain} SIP/2.0`,\n {\n Via: `SIP/2.0/TLS ${this.client.localAddress}:${this.client.localPort};rport;branch=${branch()};alias`,\n \"Max-Forwards\": 70,\n From: `<sip:${this.sipInfo.username}@${this.sipInfo.domain}>;tag=${uuid()}`,\n To: `<sip:${callee}@${this.sipInfo.domain}>`,\n Contact: ` <sip:${this.sipInfo.username}@${this.client.localAddress}:${this.client.localPort};transport=TLS;ob>`,\n \"Call-ID\": uuid(),\n Route: `<sip:${this.sipInfo.outboundProxy};transport=tls;lr>`,\n Allow: `PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS`,\n Supported: `replaces, 100rel, timer, norefersub`,\n \"Session-Expires\": 1800,\n \"Min-SE\": 90,\n \"Content-Type\": \"application/sdp\",\n },\n offerSDP,\n );\n const inboundMessage = await this.send(inviteMessage, true);\n const proxyAuthenticate = inboundMessage.getHeader(\"Proxy-Authenticate\")!;\n const nonce = proxyAuthenticate.match(/, nonce=\"(.+?)\"/)![1];\n const newMessage = inviteMessage.fork();\n newMessage.headers[\"Proxy-Authorization\"] = generateAuthorization(\n this.sipInfo,\n nonce,\n \"INVITE\",\n );\n const progressMessage = await this.send(newMessage, true);\n const outboundCallSession = new OutboundCallSession(this, progressMessage);\n outboundCallSession.sdp = offerSDP;\n return outboundCallSession;\n }\n}\n\nexport default Softphone;\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import OutboundMessage from "./index.
|
|
1
|
+
import { t as OutboundMessage } from "./index-XMDop59x.cjs";
|
|
2
2
|
|
|
3
3
|
//#region src/sip-message/outbound/request.d.ts
|
|
4
4
|
declare class RequestMessage extends OutboundMessage {
|
|
@@ -7,4 +7,5 @@ declare class RequestMessage extends OutboundMessage {
|
|
|
7
7
|
fork(): RequestMessage;
|
|
8
8
|
}
|
|
9
9
|
//#endregion
|
|
10
|
-
export { RequestMessage as
|
|
10
|
+
export { RequestMessage as t };
|
|
11
|
+
//# sourceMappingURL=request-B_auLSJn.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-B_auLSJn.d.cts","names":[],"sources":["../src/sip-message/outbound/request.ts"],"mappings":";;;cAKM,cAAA,SAAuB,eAAA;cACR,OAAA,WAAc,OAAA,OAAc,IAAA;EAOxC,OAAA,CAAA;EAIA,IAAA,CAAA,GAAI,cAAA;AAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { t as OutboundMessage } from "./index--UjWgLK-.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/sip-message/outbound/request.d.ts
|
|
4
|
+
declare class RequestMessage extends OutboundMessage {
|
|
5
|
+
constructor(subject?: string, headers?: {}, body?: string);
|
|
6
|
+
newCseq(): void;
|
|
7
|
+
fork(): RequestMessage;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { RequestMessage as t };
|
|
11
|
+
//# sourceMappingURL=request-pBe7_mYv.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-pBe7_mYv.d.mts","names":[],"sources":["../src/sip-message/outbound/request.ts"],"mappings":";;;cAKM,cAAA,SAAuB,eAAA;cACR,OAAA,WAAc,OAAA,OAAc,IAAA;EAOxC,OAAA,CAAA;EAIA,IAAA,CAAA,GAAI,cAAA;AAAA"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import InboundMessage from "
|
|
2
|
-
import OutboundMessage from "./index
|
|
1
|
+
import { t as InboundMessage } from "./index-BhN2W8AV.mjs";
|
|
2
|
+
import { t as OutboundMessage } from "./index--UjWgLK-.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/sip-message/outbound/response.d.ts
|
|
5
5
|
declare class ResponseMessage extends OutboundMessage {
|
|
6
6
|
constructor(inboundMessage: InboundMessage, responseCode: number, headers?: {}, body?: string);
|
|
7
7
|
}
|
|
8
8
|
//#endregion
|
|
9
|
-
export { ResponseMessage as
|
|
9
|
+
export { ResponseMessage as t };
|
|
10
|
+
//# sourceMappingURL=response-LRRpY8lX.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-LRRpY8lX.d.mts","names":[],"sources":["../src/sip-message/outbound/response.ts"],"mappings":";;;;cAIM,eAAA,SAAwB,eAAA;cAE1B,cAAA,EAAgB,cAAA,EAChB,YAAA,UACA,OAAA,OACA,IAAA;AAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { t as InboundMessage } from "./index-Cf2Cev52.cjs";
|
|
2
|
+
import { t as OutboundMessage } from "./index-XMDop59x.cjs";
|
|
3
|
+
|
|
4
|
+
//#region src/sip-message/outbound/response.d.ts
|
|
5
|
+
declare class ResponseMessage extends OutboundMessage {
|
|
6
|
+
constructor(inboundMessage: InboundMessage, responseCode: number, headers?: {}, body?: string);
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { ResponseMessage as t };
|
|
10
|
+
//# sourceMappingURL=response-ReKvb5x9.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-ReKvb5x9.d.cts","names":[],"sources":["../src/sip-message/outbound/response.ts"],"mappings":";;;;cAIM,eAAA,SAAwB,eAAA;cAE1B,cAAA,EAAgB,cAAA,EAChB,YAAA,UACA,OAAA,OACA,IAAA;AAAA"}
|
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
//#region src/sip-message/inbound/index.d.ts
|
|
4
|
-
declare class InboundMessage extends SipMessage {
|
|
5
|
-
static fromString(str: string): SipMessage;
|
|
6
|
-
}
|
|
1
|
+
import { t as InboundMessage } from "../../index-Cf2Cev52.cjs";
|
|
7
2
|
export = InboundMessage;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { uuid } from "../../utils.
|
|
2
|
-
import SipMessage from "../sip-message.
|
|
1
|
+
import { uuid } from "../../utils.mjs";
|
|
2
|
+
import SipMessage from "../sip-message.mjs";
|
|
3
3
|
//#region src/sip-message/inbound/index.ts
|
|
4
4
|
var InboundMessage = class extends SipMessage {
|
|
5
5
|
static fromString(str) {
|
|
@@ -15,3 +15,5 @@ var InboundMessage = class extends SipMessage {
|
|
|
15
15
|
};
|
|
16
16
|
//#endregion
|
|
17
17
|
export { InboundMessage as default };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/sip-message/inbound/index.ts"],"sourcesContent":["import { uuid } from \"../../utils.js\";\nimport SipMessage from \"../sip-message.js\";\n\nclass InboundMessage extends SipMessage {\n public static fromString(str: string) {\n const sipMessage = new SipMessage();\n const [init, ...body] = str.split(\"\\r\\n\\r\\n\");\n sipMessage.body = body.join(\"\\r\\n\\r\\n\");\n const [subject, ...headers] = init.split(\"\\r\\n\");\n sipMessage.subject = subject;\n sipMessage.headers = Object.fromEntries(\n headers.map((line) => line.split(\": \")),\n );\n if (sipMessage.headers.To && !sipMessage.headers.To.includes(\";tag=\")) {\n sipMessage.headers.To += `;tag=${uuid()}`; // generate local tag\n }\n return sipMessage;\n }\n}\n\nexport default InboundMessage;\n"],"mappings":";;;AAGA,IAAM,iBAAN,cAA6B,WAAW;CACtC,OAAc,WAAW,KAAa;EACpC,MAAM,aAAa,IAAI,YAAY;EACnC,MAAM,CAAC,MAAM,GAAG,QAAQ,IAAI,MAAM,WAAW;AAC7C,aAAW,OAAO,KAAK,KAAK,WAAW;EACvC,MAAM,CAAC,SAAS,GAAG,WAAW,KAAK,MAAM,OAAO;AAChD,aAAW,UAAU;AACrB,aAAW,UAAU,OAAO,YAC1B,QAAQ,KAAK,SAAS,KAAK,MAAM,KAAK,CAAC,CACxC;AACD,MAAI,WAAW,QAAQ,MAAM,CAAC,WAAW,QAAQ,GAAG,SAAS,QAAQ,CACnE,YAAW,QAAQ,MAAM,QAAQ,MAAM;AAEzC,SAAO"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import SipMessage from "
|
|
2
|
-
import InboundMessage from "
|
|
3
|
-
import OutboundMessage from "
|
|
4
|
-
import RequestMessage from "
|
|
5
|
-
import ResponseMessage from "
|
|
1
|
+
import { t as SipMessage } from "../sip-message-B2D5MPBI.cjs";
|
|
2
|
+
import { t as InboundMessage } from "../index-Cf2Cev52.cjs";
|
|
3
|
+
import { t as OutboundMessage } from "../index-XMDop59x.cjs";
|
|
4
|
+
import { t as RequestMessage } from "../request-B_auLSJn.cjs";
|
|
5
|
+
import { t as ResponseMessage } from "../response-ReKvb5x9.cjs";
|
|
6
6
|
export { InboundMessage, OutboundMessage, RequestMessage, ResponseMessage, SipMessage };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { t as SipMessage } from "../sip-message-PaPho4qU.mjs";
|
|
2
|
+
import { t as InboundMessage } from "../index-BhN2W8AV.mjs";
|
|
3
|
+
import { t as OutboundMessage } from "../index--UjWgLK-.mjs";
|
|
4
|
+
import { t as RequestMessage } from "../request-pBe7_mYv.mjs";
|
|
5
|
+
import { t as ResponseMessage } from "../response-LRRpY8lX.mjs";
|
|
6
|
+
export { InboundMessage, OutboundMessage, RequestMessage, ResponseMessage, SipMessage };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import SipMessage from "./sip-message.mjs";
|
|
2
|
+
import InboundMessage from "./inbound/index.mjs";
|
|
3
|
+
import OutboundMessage from "./outbound/index.mjs";
|
|
4
|
+
import RequestMessage from "./outbound/request.mjs";
|
|
5
|
+
import ResponseMessage from "./outbound/response.mjs";
|
|
6
|
+
export { InboundMessage, OutboundMessage, RequestMessage, ResponseMessage, SipMessage };
|
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
//#region src/sip-message/outbound/index.d.ts
|
|
4
|
-
declare class OutboundMessage extends SipMessage {
|
|
5
|
-
constructor(subject?: string, headers?: {}, body?: string);
|
|
6
|
-
}
|
|
1
|
+
import { t as OutboundMessage } from "../../index-XMDop59x.cjs";
|
|
7
2
|
export = OutboundMessage;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import SipMessage from "../sip-message.
|
|
1
|
+
import SipMessage from "../sip-message.mjs";
|
|
2
2
|
//#region src/sip-message/outbound/index.ts
|
|
3
3
|
var OutboundMessage = class extends SipMessage {
|
|
4
4
|
constructor(subject = "", headers = {}, body = "") {
|
|
@@ -9,3 +9,5 @@ var OutboundMessage = class extends SipMessage {
|
|
|
9
9
|
};
|
|
10
10
|
//#endregion
|
|
11
11
|
export { OutboundMessage as default };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/sip-message/outbound/index.ts"],"sourcesContent":["import SipMessage from \"../sip-message.js\";\n\nclass OutboundMessage extends SipMessage {\n public constructor(subject = \"\", headers = {}, body = \"\") {\n super(subject, headers, body);\n this.headers[\"Content-Length\"] = this.body.length.toString();\n this.headers[\"User-Agent\"] = \"ringcentral-softphone-ts\";\n }\n}\n\nexport default OutboundMessage;\n"],"mappings":";;AAEA,IAAM,kBAAN,cAA8B,WAAW;CACvC,YAAmB,UAAU,IAAI,UAAU,EAAE,EAAE,OAAO,IAAI;AACxD,QAAM,SAAS,SAAS,KAAK;AAC7B,OAAK,QAAQ,oBAAoB,KAAK,KAAK,OAAO,UAAU;AAC5D,OAAK,QAAQ,gBAAgB"}
|
|
@@ -1,9 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
//#region src/sip-message/outbound/request.d.ts
|
|
4
|
-
declare class RequestMessage extends OutboundMessage {
|
|
5
|
-
constructor(subject?: string, headers?: {}, body?: string);
|
|
6
|
-
newCseq(): void;
|
|
7
|
-
fork(): RequestMessage;
|
|
8
|
-
}
|
|
1
|
+
import { t as RequestMessage } from "../../request-B_auLSJn.cjs";
|
|
9
2
|
export = RequestMessage;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { branch } from "../../utils.
|
|
2
|
-
import OutboundMessage from "./index.
|
|
1
|
+
import { branch } from "../../utils.mjs";
|
|
2
|
+
import OutboundMessage from "./index.mjs";
|
|
3
3
|
//#region src/sip-message/outbound/request.ts
|
|
4
4
|
let cseq = Math.floor(Math.random() * 1e4);
|
|
5
5
|
var RequestMessage = class RequestMessage extends OutboundMessage {
|
|
@@ -19,3 +19,5 @@ var RequestMessage = class RequestMessage extends OutboundMessage {
|
|
|
19
19
|
};
|
|
20
20
|
//#endregion
|
|
21
21
|
export { RequestMessage as default };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=request.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.mjs","names":[],"sources":["../../../src/sip-message/outbound/request.ts"],"sourcesContent":["import { branch } from \"../../utils.js\";\nimport OutboundMessage from \"./index.js\";\n\nlet cseq = Math.floor(Math.random() * 10000);\n\nclass RequestMessage extends OutboundMessage {\n public constructor(subject = \"\", headers = {}, body = \"\") {\n super(subject, headers, body);\n if (this.headers.CSeq === undefined) {\n this.newCseq();\n }\n }\n\n public newCseq() {\n this.headers.CSeq = `${++cseq} ${this.subject.split(\" \")[0]}`;\n }\n\n public fork() {\n const newMessage = new RequestMessage(\n this.subject,\n { ...this.headers },\n this.body,\n );\n newMessage.newCseq();\n if (newMessage.headers.Via) {\n newMessage.headers.Via = newMessage.headers.Via.replace(\n /;branch=.+?$/,\n `;branch=${branch()}`,\n );\n }\n return newMessage;\n }\n}\n\nexport default RequestMessage;\n"],"mappings":";;;AAGA,IAAI,OAAO,KAAK,MAAM,KAAK,QAAQ,GAAG,IAAM;AAE5C,IAAM,iBAAN,MAAM,uBAAuB,gBAAgB;CAC3C,YAAmB,UAAU,IAAI,UAAU,EAAE,EAAE,OAAO,IAAI;AACxD,QAAM,SAAS,SAAS,KAAK;AAC7B,MAAI,KAAK,QAAQ,SAAS,KAAA,EACxB,MAAK,SAAS;;CAIlB,UAAiB;AACf,OAAK,QAAQ,OAAO,GAAG,EAAE,KAAK,GAAG,KAAK,QAAQ,MAAM,IAAI,CAAC;;CAG3D,OAAc;EACZ,MAAM,aAAa,IAAI,eACrB,KAAK,SACL,EAAE,GAAG,KAAK,SAAS,EACnB,KAAK,KACN;AACD,aAAW,SAAS;AACpB,MAAI,WAAW,QAAQ,IACrB,YAAW,QAAQ,MAAM,WAAW,QAAQ,IAAI,QAC9C,gBACA,WAAW,QAAQ,GACpB;AAEH,SAAO"}
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import OutboundMessage from "./index.cjs";
|
|
3
|
-
|
|
4
|
-
//#region src/sip-message/outbound/response.d.ts
|
|
5
|
-
declare class ResponseMessage extends OutboundMessage {
|
|
6
|
-
constructor(inboundMessage: InboundMessage, responseCode: number, headers?: {}, body?: string);
|
|
7
|
-
}
|
|
1
|
+
import { t as ResponseMessage } from "../../response-ReKvb5x9.cjs";
|
|
8
2
|
export = ResponseMessage;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import OutboundMessage from "./index.
|
|
2
|
-
import responseCodes from "../response-codes.
|
|
1
|
+
import OutboundMessage from "./index.mjs";
|
|
2
|
+
import responseCodes from "../response-codes.mjs";
|
|
3
3
|
//#region src/sip-message/outbound/response.ts
|
|
4
4
|
var ResponseMessage = class extends OutboundMessage {
|
|
5
5
|
constructor(inboundMessage, responseCode, headers = {}, body = "") {
|
|
@@ -24,3 +24,5 @@ var ResponseMessage = class extends OutboundMessage {
|
|
|
24
24
|
};
|
|
25
25
|
//#endregion
|
|
26
26
|
export { ResponseMessage as default };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=response.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.mjs","names":[],"sources":["../../../src/sip-message/outbound/response.ts"],"sourcesContent":["import type InboundMessage from \"../inbound/index.js\";\nimport responseCodes from \"../response-codes.js\";\nimport OutboundMessage from \"./index.js\";\n\nclass ResponseMessage extends OutboundMessage {\n public constructor(\n inboundMessage: InboundMessage,\n responseCode: number,\n headers = {},\n body = \"\",\n ) {\n super(undefined, { ...headers }, body);\n this.subject = `SIP/2.0 ${responseCode} ${responseCodes[responseCode]}`;\n const requiredKeys = new Set([\"via\", \"from\", \"to\", \"call-id\", \"cseq\"]);\n const allKeys = Object.keys(inboundMessage.headers).reduce(\n (acc, key) => {\n acc[key.toLowerCase()] = key;\n return acc;\n },\n {} as Record<string, string>,\n );\n for (const key of requiredKeys) {\n if (allKeys[key]) {\n const originalKey = allKeys[key];\n this.headers[originalKey] = inboundMessage.headers[originalKey];\n }\n }\n }\n}\n\nexport default ResponseMessage;\n"],"mappings":";;;AAIA,IAAM,kBAAN,cAA8B,gBAAgB;CAC5C,YACE,gBACA,cACA,UAAU,EAAE,EACZ,OAAO,IACP;AACA,QAAM,KAAA,GAAW,EAAE,GAAG,SAAS,EAAE,KAAK;AACtC,OAAK,UAAU,WAAW,aAAa,GAAG,cAAc;EACxD,MAAM,eAAe,IAAI,IAAI;GAAC;GAAO;GAAQ;GAAM;GAAW;GAAO,CAAC;EACtE,MAAM,UAAU,OAAO,KAAK,eAAe,QAAQ,CAAC,QACjD,KAAK,QAAQ;AACZ,OAAI,IAAI,aAAa,IAAI;AACzB,UAAO;KAET,EAAE,CACH;AACD,OAAK,MAAM,OAAO,aAChB,KAAI,QAAQ,MAAM;GAChB,MAAM,cAAc,QAAQ;AAC5B,QAAK,QAAQ,eAAe,eAAe,QAAQ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-codes.d.cts","names":[],"sources":["../../src/sip-message/response-codes.ts"],"mappings":";cACM,aAAA;EAAA,CACH,GAAA;AAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-codes.d.mts","names":[],"sources":["../../src/sip-message/response-codes.ts"],"mappings":";cACM,aAAA;EAAA,CACH,GAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-codes.mjs","names":[],"sources":["../../src/sip-message/response-codes.ts"],"sourcesContent":["// Ref: https://en.wikipedia.org/wiki/List_of_SIP_response_codes'\nconst responseCodes: {\n [key: number]: string;\n} = {\n 100: \"Trying\",\n 180: \"Ringing\",\n 181: \"Call is Being Forwarded\",\n 182: \"Queued\",\n 183: \"Session Progress\",\n 199: \"Early Dialog Terminated\",\n 200: \"OK\",\n 202: \"Accepted\",\n 204: \"No Notification\",\n 300: \"Multiple Choices\",\n 301: \"Moved Permanently\",\n 302: \"Moved Temporarily\",\n 305: \"Use Proxy\",\n 380: \"Alternative Service\",\n 400: \"Bad Request\",\n 401: \"Unauthorized\",\n 402: \"Payment Required\",\n 403: \"Forbidden\",\n 404: \"Not Found\",\n 405: \"Method Not Allowed\",\n 406: \"Not Acceptable\",\n 407: \"Proxy Authentication Required\",\n 408: \"Request Timeout\",\n 409: \"Conflict\",\n 410: \"Gone\",\n 411: \"Length Required\",\n 412: \"Conditional Request Failed\",\n 413: \"Request Entity Too Large\",\n 414: \"Request-URI Too Long\",\n 415: \"Unsupported Media Type\",\n 416: \"Unsupported URI Scheme\",\n 417: \"Unknown Resource-Priority\",\n 420: \"Bad Extension\",\n 421: \"Extension Required\",\n 422: \"Session Interval Too Small\",\n 423: \"Interval Too Brief\",\n 424: \"Bad Location Information\",\n 425: \"Bad Alert Message\",\n 428: \"Use Identity Header\",\n 429: \"Provide Referrer Identity\",\n 430: \"Flow Failed\",\n 433: \"Anonymity Disallowed\",\n 436: \"Bad Identity-Info\",\n 437: \"Unsupported Certificate\",\n 438: \"Invalid Identity Header\",\n 439: \"First Hop Lacks Outbound Support\",\n 440: \"Max-Breadth Exceeded\",\n 469: \"Bad Info Package\",\n 470: \"Consent Needed\",\n 480: \"Temporarily Unavailable\",\n 481: \"Call/Transaction Does Not Exist\",\n 482: \"Loop Detected\",\n 483: \"Too Many Hops\",\n 484: \"Address Incomplete\",\n 485: \"Ambiguous\",\n 486: \"Busy Here\",\n 487: \"Request Terminated\",\n 488: \"Not Acceptable Here\",\n 489: \"Bad Event\",\n 491: \"Request Pending\",\n 493: \"Undecipherable\",\n 494: \"Security Agreement Required\",\n 500: \"Server Internal Error\",\n 501: \"Not Implemented\",\n 502: \"Bad Gateway\",\n 503: \"Service Unavailable\",\n 504: \"Server Time-out\",\n 505: \"Version Not Supported\",\n 513: \"Message Too Large\",\n 555: \"Push Notification Service Not Supported\",\n 580: \"Precondition Failure\",\n 600: \"Busy Everywhere\",\n 603: \"Decline\",\n 604: \"Does Not Exist Anywhere\",\n 606: \"Not Acceptable\",\n 607: \"Unwanted\",\n 608: \"Rejected\",\n};\n\nexport default responseCodes;\n"],"mappings":";AACA,MAAM,gBAEF;CACF,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACN"}
|
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
declare class SipMessage {
|
|
3
|
-
subject: string;
|
|
4
|
-
headers: {
|
|
5
|
-
[key: string]: string;
|
|
6
|
-
};
|
|
7
|
-
body: string;
|
|
8
|
-
constructor(subject?: string, headers?: {}, body?: string);
|
|
9
|
-
toString(): string;
|
|
10
|
-
getHeader(key: string): string | undefined;
|
|
11
|
-
}
|
|
1
|
+
import { t as SipMessage } from "../sip-message-B2D5MPBI.cjs";
|
|
12
2
|
export = SipMessage;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sip-message.mjs","names":[],"sources":["../../src/sip-message/sip-message.ts"],"sourcesContent":["class SipMessage {\n public subject: string;\n public headers: {\n [key: string]: string;\n };\n public body: string;\n\n public constructor(subject = \"\", headers = {}, body = \"\") {\n this.subject = subject;\n this.headers = headers;\n this.body = body\n .trim()\n .split(/[\\r\\n]+/)\n .join(\"\\r\\n\");\n if (this.body.length > 0) {\n this.body += \"\\r\\n\";\n }\n }\n\n public toString() {\n const r = [\n this.subject,\n ...Object.keys(this.headers).map((key) => `${key}: ${this.headers[key]}`),\n \"\",\n this.body,\n ].join(\"\\r\\n\");\n return r;\n }\n\n public getHeader(key: string): string | undefined {\n const foundKey = Object.keys(this.headers).find(\n (k) => k.toLowerCase() === key.toLowerCase(),\n );\n if (foundKey) {\n return this.headers[foundKey];\n }\n }\n}\n\nexport default SipMessage;\n"],"mappings":";AAAA,IAAM,aAAN,MAAiB;CACf;CACA;CAGA;CAEA,YAAmB,UAAU,IAAI,UAAU,EAAE,EAAE,OAAO,IAAI;AACxD,OAAK,UAAU;AACf,OAAK,UAAU;AACf,OAAK,OAAO,KACT,MAAM,CACN,MAAM,UAAU,CAChB,KAAK,OAAO;AACf,MAAI,KAAK,KAAK,SAAS,EACrB,MAAK,QAAQ;;CAIjB,WAAkB;AAOhB,SANU;GACR,KAAK;GACL,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,KAAK,QAAQ,GAAG,IAAI,IAAI,KAAK,QAAQ,OAAO;GACzE;GACA,KAAK;GACN,CAAC,KAAK,OACC;;CAGV,UAAiB,KAAiC;EAChD,MAAM,WAAW,OAAO,KAAK,KAAK,QAAQ,CAAC,MACxC,MAAM,EAAE,aAAa,KAAK,IAAI,aAAa,CAC7C;AACD,MAAI,SACF,QAAO,KAAK,QAAQ"}
|