ringcentral-softphone 1.3.4 → 1.3.6
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.cjs +41 -83
- package/dist/call-session/inbound.d.cts +2 -0
- package/dist/call-session/inbound.d.mts +2 -0
- package/dist/call-session/inbound.mjs +51 -0
- package/dist/call-session/index.cjs +212 -273
- package/dist/call-session/index.d.cts +2 -0
- package/dist/call-session/index.d.mts +2 -0
- package/dist/call-session/index.mjs +209 -0
- package/dist/call-session/outbound.cjs +56 -99
- package/dist/call-session/outbound.d.cts +2 -0
- package/dist/call-session/outbound.d.mts +2 -0
- package/dist/call-session/outbound.mjs +57 -0
- package/dist/call-session/streamer.cjs +66 -111
- package/dist/call-session/streamer.d.cts +2 -0
- package/dist/call-session/streamer.d.mts +2 -0
- package/dist/call-session/streamer.mjs +65 -0
- package/dist/chunk-CKQMccvm.cjs +28 -0
- package/dist/codec-Bh7v8J-S.d.mts +18 -0
- package/dist/codec-C-VrtVkq.d.cts +18 -0
- package/dist/codec.cjs +68 -84
- package/dist/codec.d.cts +2 -0
- package/dist/codec.d.mts +2 -0
- package/dist/codec.mjs +68 -0
- package/dist/dtmf-B13Fz2VR.d.mts +10 -0
- package/dist/dtmf-DcQ-5vSG.d.cts +10 -0
- package/dist/dtmf.cjs +37 -60
- package/dist/dtmf.d.cts +2 -0
- package/dist/dtmf.d.mts +2 -0
- package/dist/dtmf.mjs +42 -0
- package/dist/inbound--wGoGqLS.d.mts +103 -0
- package/dist/inbound-DquvTSj1.d.cts +103 -0
- package/dist/index--UjWgLK-.d.mts +8 -0
- package/dist/index-BhN2W8AV.d.mts +8 -0
- package/dist/index-CEgs-Dz2.d.cts +1 -0
- package/dist/index-Cf2Cev52.d.cts +8 -0
- package/dist/index-XMDop59x.d.cts +8 -0
- package/dist/index-q_LXL61M.d.mts +1 -0
- package/dist/index.cjs +166 -250
- package/dist/index.d.cts +2 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.mjs +172 -0
- package/dist/request-B_auLSJn.d.cts +10 -0
- package/dist/request-pBe7_mYv.d.mts +10 -0
- package/dist/response-LRRpY8lX.d.mts +9 -0
- package/dist/response-ReKvb5x9.d.cts +9 -0
- package/dist/sip-message/inbound/index.cjs +16 -50
- package/dist/sip-message/inbound/index.d.cts +2 -0
- package/dist/sip-message/inbound/index.d.mts +2 -0
- package/dist/sip-message/inbound/index.mjs +17 -0
- package/dist/sip-message/index.cjs +11 -49
- package/dist/sip-message/index.d.cts +6 -0
- package/dist/sip-message/index.d.mts +6 -0
- package/dist/sip-message/index.mjs +6 -0
- package/dist/sip-message/outbound/index.cjs +10 -40
- package/dist/sip-message/outbound/index.d.cts +2 -0
- package/dist/sip-message/outbound/index.d.mts +2 -0
- package/dist/sip-message/outbound/index.mjs +11 -0
- package/dist/sip-message/outbound/request.cjs +20 -61
- package/dist/sip-message/outbound/request.d.cts +2 -0
- package/dist/sip-message/outbound/request.d.mts +2 -0
- package/dist/sip-message/outbound/request.mjs +21 -0
- package/dist/sip-message/outbound/response.cjs +25 -54
- package/dist/sip-message/outbound/response.d.cts +2 -0
- package/dist/sip-message/outbound/response.d.mts +2 -0
- package/dist/sip-message/outbound/response.mjs +26 -0
- package/dist/sip-message/response-codes.cjs +80 -100
- package/dist/sip-message/response-codes.d.cts +5 -0
- package/dist/sip-message/response-codes.d.mts +6 -0
- package/dist/sip-message/response-codes.mjs +82 -0
- package/dist/sip-message/sip-message.cjs +25 -52
- package/dist/sip-message/sip-message.d.cts +2 -0
- package/dist/sip-message/sip-message.d.mts +2 -0
- package/dist/sip-message/sip-message.mjs +26 -0
- package/dist/sip-message-B2D5MPBI.d.cts +13 -0
- package/dist/sip-message-PaPho4qU.d.mts +13 -0
- package/dist/types-DOQ9wmX6.d.mts +12 -0
- package/dist/types-DZxCsbZE.d.cts +12 -0
- package/dist/types.cjs +0 -15
- package/dist/types.d.cts +2 -0
- package/dist/types.d.mts +2 -0
- package/dist/types.mjs +1 -0
- package/dist/utils.cjs +27 -73
- package/dist/utils.d.cts +12 -0
- package/dist/utils.d.mts +12 -0
- package/dist/utils.mjs +25 -0
- package/package.json +14 -14
- package/dist/call-session/inbound.d.ts +0 -8
- package/dist/call-session/inbound.js +0 -64
- package/dist/call-session/index.d.ts +0 -46
- package/dist/call-session/index.js +0 -248
- package/dist/call-session/outbound.d.ts +0 -11
- package/dist/call-session/outbound.js +0 -71
- package/dist/call-session/streamer.d.ts +0 -17
- package/dist/call-session/streamer.js +0 -83
- package/dist/codec.d.ts +0 -15
- package/dist/codec.js +0 -66
- package/dist/dtmf.d.ts +0 -7
- package/dist/dtmf.js +0 -47
- package/dist/index.d.ts +0 -28
- package/dist/index.js +0 -242
- package/dist/sip-message/inbound/index.d.ts +0 -5
- package/dist/sip-message/inbound/index.js +0 -22
- package/dist/sip-message/index.d.ts +0 -5
- package/dist/sip-message/index.js +0 -12
- package/dist/sip-message/outbound/index.d.ts +0 -5
- package/dist/sip-message/outbound/index.js +0 -12
- package/dist/sip-message/outbound/request.d.ts +0 -7
- package/dist/sip-message/outbound/request.js +0 -33
- package/dist/sip-message/outbound/response.d.ts +0 -6
- package/dist/sip-message/outbound/response.js +0 -26
- package/dist/sip-message/response-codes.d.ts +0 -4
- package/dist/sip-message/response-codes.js +0 -83
- package/dist/sip-message/sip-message.d.ts +0 -11
- package/dist/sip-message/sip-message.js +0 -34
- package/dist/types.d.ts +0 -9
- package/dist/types.js +0 -0
- package/dist/utils.d.ts +0 -8
- package/dist/utils.js +0 -41
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { branch } from "../../utils.js";
|
|
2
|
-
import OutboundMessage from "./index.js";
|
|
3
|
-
let cseq = Math.floor(Math.random() * 1e4);
|
|
4
|
-
class RequestMessage extends OutboundMessage {
|
|
5
|
-
constructor(subject = "", headers = {}, body = "") {
|
|
6
|
-
super(subject, headers, body);
|
|
7
|
-
if (this.headers.CSeq === void 0) {
|
|
8
|
-
this.newCseq();
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
newCseq() {
|
|
12
|
-
this.headers.CSeq = `${++cseq} ${this.subject.split(" ")[0]}`;
|
|
13
|
-
}
|
|
14
|
-
fork() {
|
|
15
|
-
const newMessage = new RequestMessage(
|
|
16
|
-
this.subject,
|
|
17
|
-
{ ...this.headers },
|
|
18
|
-
this.body
|
|
19
|
-
);
|
|
20
|
-
newMessage.newCseq();
|
|
21
|
-
if (newMessage.headers.Via) {
|
|
22
|
-
newMessage.headers.Via = newMessage.headers.Via.replace(
|
|
23
|
-
/;branch=.+?$/,
|
|
24
|
-
`;branch=${branch()}`
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
return newMessage;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
var request_default = RequestMessage;
|
|
31
|
-
export {
|
|
32
|
-
request_default as default
|
|
33
|
-
};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type InboundMessage from "../inbound/index.js";
|
|
2
|
-
import OutboundMessage from "./index.js";
|
|
3
|
-
declare class ResponseMessage extends OutboundMessage {
|
|
4
|
-
constructor(inboundMessage: InboundMessage, responseCode: number, headers?: {}, body?: string);
|
|
5
|
-
}
|
|
6
|
-
export default ResponseMessage;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import responseCodes from "../response-codes.js";
|
|
2
|
-
import OutboundMessage from "./index.js";
|
|
3
|
-
class ResponseMessage extends OutboundMessage {
|
|
4
|
-
constructor(inboundMessage, responseCode, headers = {}, body = "") {
|
|
5
|
-
super(void 0, { ...headers }, body);
|
|
6
|
-
this.subject = `SIP/2.0 ${responseCode} ${responseCodes[responseCode]}`;
|
|
7
|
-
const requiredKeys = /* @__PURE__ */ new Set(["via", "from", "to", "call-id", "cseq"]);
|
|
8
|
-
const allKeys = Object.keys(inboundMessage.headers).reduce(
|
|
9
|
-
(acc, key) => {
|
|
10
|
-
acc[key.toLowerCase()] = key;
|
|
11
|
-
return acc;
|
|
12
|
-
},
|
|
13
|
-
{}
|
|
14
|
-
);
|
|
15
|
-
for (const key of requiredKeys) {
|
|
16
|
-
if (allKeys[key]) {
|
|
17
|
-
const originalKey = allKeys[key];
|
|
18
|
-
this.headers[originalKey] = inboundMessage.headers[originalKey];
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
var response_default = ResponseMessage;
|
|
24
|
-
export {
|
|
25
|
-
response_default as default
|
|
26
|
-
};
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
const responseCodes = {
|
|
2
|
-
100: "Trying",
|
|
3
|
-
180: "Ringing",
|
|
4
|
-
181: "Call is Being Forwarded",
|
|
5
|
-
182: "Queued",
|
|
6
|
-
183: "Session Progress",
|
|
7
|
-
199: "Early Dialog Terminated",
|
|
8
|
-
200: "OK",
|
|
9
|
-
202: "Accepted",
|
|
10
|
-
204: "No Notification",
|
|
11
|
-
300: "Multiple Choices",
|
|
12
|
-
301: "Moved Permanently",
|
|
13
|
-
302: "Moved Temporarily",
|
|
14
|
-
305: "Use Proxy",
|
|
15
|
-
380: "Alternative Service",
|
|
16
|
-
400: "Bad Request",
|
|
17
|
-
401: "Unauthorized",
|
|
18
|
-
402: "Payment Required",
|
|
19
|
-
403: "Forbidden",
|
|
20
|
-
404: "Not Found",
|
|
21
|
-
405: "Method Not Allowed",
|
|
22
|
-
406: "Not Acceptable",
|
|
23
|
-
407: "Proxy Authentication Required",
|
|
24
|
-
408: "Request Timeout",
|
|
25
|
-
409: "Conflict",
|
|
26
|
-
410: "Gone",
|
|
27
|
-
411: "Length Required",
|
|
28
|
-
412: "Conditional Request Failed",
|
|
29
|
-
413: "Request Entity Too Large",
|
|
30
|
-
414: "Request-URI Too Long",
|
|
31
|
-
415: "Unsupported Media Type",
|
|
32
|
-
416: "Unsupported URI Scheme",
|
|
33
|
-
417: "Unknown Resource-Priority",
|
|
34
|
-
420: "Bad Extension",
|
|
35
|
-
421: "Extension Required",
|
|
36
|
-
422: "Session Interval Too Small",
|
|
37
|
-
423: "Interval Too Brief",
|
|
38
|
-
424: "Bad Location Information",
|
|
39
|
-
425: "Bad Alert Message",
|
|
40
|
-
428: "Use Identity Header",
|
|
41
|
-
429: "Provide Referrer Identity",
|
|
42
|
-
430: "Flow Failed",
|
|
43
|
-
433: "Anonymity Disallowed",
|
|
44
|
-
436: "Bad Identity-Info",
|
|
45
|
-
437: "Unsupported Certificate",
|
|
46
|
-
438: "Invalid Identity Header",
|
|
47
|
-
439: "First Hop Lacks Outbound Support",
|
|
48
|
-
440: "Max-Breadth Exceeded",
|
|
49
|
-
469: "Bad Info Package",
|
|
50
|
-
470: "Consent Needed",
|
|
51
|
-
480: "Temporarily Unavailable",
|
|
52
|
-
481: "Call/Transaction Does Not Exist",
|
|
53
|
-
482: "Loop Detected",
|
|
54
|
-
483: "Too Many Hops",
|
|
55
|
-
484: "Address Incomplete",
|
|
56
|
-
485: "Ambiguous",
|
|
57
|
-
486: "Busy Here",
|
|
58
|
-
487: "Request Terminated",
|
|
59
|
-
488: "Not Acceptable Here",
|
|
60
|
-
489: "Bad Event",
|
|
61
|
-
491: "Request Pending",
|
|
62
|
-
493: "Undecipherable",
|
|
63
|
-
494: "Security Agreement Required",
|
|
64
|
-
500: "Server Internal Error",
|
|
65
|
-
501: "Not Implemented",
|
|
66
|
-
502: "Bad Gateway",
|
|
67
|
-
503: "Service Unavailable",
|
|
68
|
-
504: "Server Time-out",
|
|
69
|
-
505: "Version Not Supported",
|
|
70
|
-
513: "Message Too Large",
|
|
71
|
-
555: "Push Notification Service Not Supported",
|
|
72
|
-
580: "Precondition Failure",
|
|
73
|
-
600: "Busy Everywhere",
|
|
74
|
-
603: "Decline",
|
|
75
|
-
604: "Does Not Exist Anywhere",
|
|
76
|
-
606: "Not Acceptable",
|
|
77
|
-
607: "Unwanted",
|
|
78
|
-
608: "Rejected"
|
|
79
|
-
};
|
|
80
|
-
var response_codes_default = responseCodes;
|
|
81
|
-
export {
|
|
82
|
-
response_codes_default as default
|
|
83
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
declare class SipMessage {
|
|
2
|
-
subject: string;
|
|
3
|
-
headers: {
|
|
4
|
-
[key: string]: string;
|
|
5
|
-
};
|
|
6
|
-
body: string;
|
|
7
|
-
constructor(subject?: string, headers?: {}, body?: string);
|
|
8
|
-
toString(): string;
|
|
9
|
-
getHeader(key: string): string | undefined;
|
|
10
|
-
}
|
|
11
|
-
export default SipMessage;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
class SipMessage {
|
|
2
|
-
subject;
|
|
3
|
-
headers;
|
|
4
|
-
body;
|
|
5
|
-
constructor(subject = "", headers = {}, body = "") {
|
|
6
|
-
this.subject = subject;
|
|
7
|
-
this.headers = headers;
|
|
8
|
-
this.body = body.trim().split(/[\r\n]+/).join("\r\n");
|
|
9
|
-
if (this.body.length > 0) {
|
|
10
|
-
this.body += "\r\n";
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
toString() {
|
|
14
|
-
const r = [
|
|
15
|
-
this.subject,
|
|
16
|
-
...Object.keys(this.headers).map((key) => `${key}: ${this.headers[key]}`),
|
|
17
|
-
"",
|
|
18
|
-
this.body
|
|
19
|
-
].join("\r\n");
|
|
20
|
-
return r;
|
|
21
|
-
}
|
|
22
|
-
getHeader(key) {
|
|
23
|
-
const foundKey = Object.keys(this.headers).find(
|
|
24
|
-
(k) => k.toLowerCase() === key.toLowerCase()
|
|
25
|
-
);
|
|
26
|
-
if (foundKey) {
|
|
27
|
-
return this.headers[foundKey];
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
var sip_message_default = SipMessage;
|
|
32
|
-
export {
|
|
33
|
-
sip_message_default as default
|
|
34
|
-
};
|
package/dist/types.d.ts
DELETED
package/dist/types.js
DELETED
|
File without changes
|
package/dist/utils.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { SoftPhoneOptions } from "./types.js";
|
|
2
|
-
export declare const generateAuthorization: (sipInfo: SoftPhoneOptions, nonce: string, method: "REGISTER" | "INVITE") => string;
|
|
3
|
-
export declare const uuid: () => `${string}-${string}-${string}-${string}-${string}`;
|
|
4
|
-
export declare const branch: () => string;
|
|
5
|
-
export declare const randomInt: () => number;
|
|
6
|
-
export declare const withoutTag: (s: string) => string;
|
|
7
|
-
export declare const extractAddress: (s: string) => string | undefined;
|
|
8
|
-
export declare const localKey: string;
|
package/dist/utils.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import crypto from "node:crypto";
|
|
2
|
-
const md5 = (s) => crypto.createHash("md5").update(s).digest("hex");
|
|
3
|
-
const generateResponse = (sipInfo, endpoint, nonce) => {
|
|
4
|
-
const ha1 = md5(
|
|
5
|
-
`${sipInfo.authorizationId}:${sipInfo.domain}:${sipInfo.password}`
|
|
6
|
-
);
|
|
7
|
-
const ha2 = md5(endpoint);
|
|
8
|
-
const response = md5(`${ha1}:${nonce}:${ha2}`);
|
|
9
|
-
return response;
|
|
10
|
-
};
|
|
11
|
-
const generateAuthorization = (sipInfo, nonce, method) => {
|
|
12
|
-
const authObj = {
|
|
13
|
-
"Digest algorithm": "MD5",
|
|
14
|
-
username: sipInfo.authorizationId,
|
|
15
|
-
realm: sipInfo.domain,
|
|
16
|
-
nonce,
|
|
17
|
-
uri: `sip:${sipInfo.domain}`,
|
|
18
|
-
response: generateResponse(
|
|
19
|
-
sipInfo,
|
|
20
|
-
`${method}:sip:${sipInfo.domain}`,
|
|
21
|
-
nonce
|
|
22
|
-
)
|
|
23
|
-
};
|
|
24
|
-
return Object.entries(authObj).map(([key, value]) => `${key}="${value}"`).join(", ");
|
|
25
|
-
};
|
|
26
|
-
const uuid = () => crypto.randomUUID();
|
|
27
|
-
const branch = () => `z9hG4bK-${uuid()}`;
|
|
28
|
-
const randomInt = () => Math.floor(Math.random() * (65535 - 1024 + 1)) + 1024;
|
|
29
|
-
const withoutTag = (s) => s.replace(/;tag=.*$/, "");
|
|
30
|
-
const extractAddress = (s) => s.match(/<(sip:.+?)>/)?.[1];
|
|
31
|
-
const keyAndSalt = crypto.randomBytes(30);
|
|
32
|
-
const localKey = keyAndSalt.toString("base64").replace(/=+$/, "");
|
|
33
|
-
export {
|
|
34
|
-
branch,
|
|
35
|
-
extractAddress,
|
|
36
|
-
generateAuthorization,
|
|
37
|
-
localKey,
|
|
38
|
-
randomInt,
|
|
39
|
-
uuid,
|
|
40
|
-
withoutTag
|
|
41
|
-
};
|