@shenyin/embedded-call-widget 2.6.10 → 2.6.11

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.
@@ -1,36 +1,36 @@
1
- const Et = "0.21.1";
2
- class he extends Error {
1
+ const $t = "0.21.1";
2
+ class ge extends Error {
3
3
  constructor(e) {
4
4
  super(e), Object.setPrototypeOf(this, new.target.prototype);
5
5
  }
6
6
  }
7
- class je extends he {
7
+ class Ke extends ge {
8
8
  constructor(e) {
9
9
  super(e || "Unsupported content type.");
10
10
  }
11
11
  }
12
- class be extends he {
12
+ class Te extends ge {
13
13
  /** @internal */
14
14
  constructor(e) {
15
15
  super(e || "Request pending.");
16
16
  }
17
17
  }
18
- class Rt extends he {
18
+ class Dt extends ge {
19
19
  constructor(e) {
20
20
  super(e || "Unspecified session description handler error.");
21
21
  }
22
22
  }
23
- class Me extends he {
23
+ class Ne extends ge {
24
24
  constructor() {
25
25
  super("The session has terminated.");
26
26
  }
27
27
  }
28
- class me extends he {
28
+ class ye extends ge {
29
29
  constructor(e) {
30
30
  super(e || "An error occurred during state transition.");
31
31
  }
32
32
  }
33
- class xt {
33
+ class kt {
34
34
  /** @internal */
35
35
  constructor(e) {
36
36
  this.incomingAckRequest = e;
@@ -40,7 +40,7 @@ class xt {
40
40
  return this.incomingAckRequest.message;
41
41
  }
42
42
  }
43
- class _t {
43
+ class Pt {
44
44
  /** @internal */
45
45
  constructor(e) {
46
46
  this.incomingByeRequest = e;
@@ -58,7 +58,7 @@ class _t {
58
58
  return this.incomingByeRequest.reject(e), Promise.resolve();
59
59
  }
60
60
  }
61
- class It {
61
+ class Ht {
62
62
  /** @internal */
63
63
  constructor(e) {
64
64
  this.incomingCancelRequest = e;
@@ -68,7 +68,7 @@ class It {
68
68
  return this.incomingCancelRequest;
69
69
  }
70
70
  }
71
- class ve {
71
+ class Ce {
72
72
  constructor() {
73
73
  this.listeners = new Array();
74
74
  }
@@ -130,7 +130,7 @@ class ve {
130
130
  return this.addListener(e, { once: !0 });
131
131
  }
132
132
  }
133
- class At {
133
+ class Mt {
134
134
  /** @internal */
135
135
  constructor(e) {
136
136
  this.incomingInfoRequest = e;
@@ -148,7 +148,7 @@ class At {
148
148
  return this.incomingInfoRequest.reject(e), Promise.resolve();
149
149
  }
150
150
  }
151
- class at {
151
+ class gt {
152
152
  constructor(e) {
153
153
  this.parameters = {};
154
154
  for (const t in e)
@@ -174,7 +174,7 @@ class at {
174
174
  this.parameters = {};
175
175
  }
176
176
  }
177
- class N extends at {
177
+ class U extends gt {
178
178
  /**
179
179
  * Constructor
180
180
  * @param uri -
@@ -194,7 +194,7 @@ class N extends at {
194
194
  this._displayName = e;
195
195
  }
196
196
  clone() {
197
- return new N(this.uri.clone(), this._displayName, JSON.parse(JSON.stringify(this.parameters)));
197
+ return new U(this.uri.clone(), this._displayName, JSON.parse(JSON.stringify(this.parameters)));
198
198
  }
199
199
  toString() {
200
200
  let e = this.displayName || this.displayName === "0" ? '"' + this.displayName + '" ' : "";
@@ -204,7 +204,7 @@ class N extends at {
204
204
  return e;
205
205
  }
206
206
  }
207
- class Z extends at {
207
+ class X extends gt {
208
208
  /**
209
209
  * Constructor
210
210
  * @param scheme -
@@ -278,7 +278,7 @@ class Z extends at {
278
278
  this.headers = {};
279
279
  }
280
280
  clone() {
281
- return new Z(this._raw.scheme, this._raw.user || "", this._raw.host, this._raw.port, JSON.parse(JSON.stringify(this.parameters)), JSON.parse(JSON.stringify(this.headers)));
281
+ return new X(this._raw.scheme, this._raw.user || "", this._raw.host, this._raw.port, JSON.parse(JSON.stringify(this.parameters)), JSON.parse(JSON.stringify(this.headers)));
282
282
  }
283
283
  toRaw() {
284
284
  return this._toString(this._raw);
@@ -333,7 +333,7 @@ class Z extends at {
333
333
  return t[r] && (r = t[r]), r;
334
334
  }
335
335
  }
336
- function Ze(o, e) {
336
+ function it(o, e) {
337
337
  if (o.scheme !== e.scheme || o.user !== e.user || o.host !== e.host || o.port !== e.port)
338
338
  return !1;
339
339
  function t(r, n) {
@@ -352,12 +352,12 @@ function Ze(o, e) {
352
352
  }
353
353
  return !0;
354
354
  }
355
- function qe(o, e, t) {
355
+ function Ue(o, e, t) {
356
356
  return t = t || " ", o.length > e ? o : (e -= o.length, t += t.repeat(e), o + t.slice(0, e));
357
357
  }
358
- class ue extends Error {
358
+ class fe extends Error {
359
359
  constructor(e, t, i, s) {
360
- super(), this.message = e, this.expected = t, this.found = i, this.location = s, this.name = "SyntaxError", typeof Object.setPrototypeOf == "function" ? Object.setPrototypeOf(this, ue.prototype) : this.__proto__ = ue.prototype, typeof Error.captureStackTrace == "function" && Error.captureStackTrace(this, ue);
360
+ super(), this.message = e, this.expected = t, this.found = i, this.location = s, this.name = "SyntaxError", typeof Object.setPrototypeOf == "function" ? Object.setPrototypeOf(this, fe.prototype) : this.__proto__ = fe.prototype, typeof Error.captureStackTrace == "function" && Error.captureStackTrace(this, fe);
361
361
  }
362
362
  static buildMessage(e, t) {
363
363
  function i(f) {
@@ -417,12 +417,12 @@ class ue extends Error {
417
417
  }
418
418
  let r = this.location.start, n = this.location.source + ":" + r.line + ":" + r.column;
419
419
  if (i) {
420
- let a = this.location.end, d = qe("", r.line.toString().length, " "), f = i[r.line - 1], h = r.line === a.line ? a.column : f.length + 1;
420
+ let a = this.location.end, d = Ue("", r.line.toString().length, " "), f = i[r.line - 1], h = r.line === a.line ? a.column : f.length + 1;
421
421
  t += `
422
422
  --> ` + n + `
423
423
  ` + d + ` |
424
424
  ` + r.line + " | " + f + `
425
- ` + d + " | " + qe("", r.column - 1, " ") + qe("", h - r.column, "^");
425
+ ` + d + " | " + Ue("", r.column - 1, " ") + Ue("", h - r.column, "^");
426
426
  } else
427
427
  t += `
428
428
  at ` + n;
@@ -430,7 +430,7 @@ class ue extends Error {
430
430
  return t;
431
431
  }
432
432
  }
433
- function $t(o, e) {
433
+ function qt(o, e) {
434
434
  e = e !== void 0 ? e : {};
435
435
  const t = {}, i = e.grammarSource, s = { Contact: 119, Name_Addr_Header: 156, Record_Route: 176, Request_Response: 81, SIP_URI: 45, Subscription_State: 186, Supported: 191, Require: 182, Via: 194, absoluteURI: 84, Call_ID: 118, Content_Disposition: 130, Content_Length: 135, Content_Type: 136, CSeq: 146, displayName: 122, Event: 149, From: 151, host: 52, Max_Forwards: 154, Min_SE: 213, Proxy_Authenticate: 157, quoted_string: 40, Refer_To: 178, Replaces: 179, Session_Expires: 210, stun_URI: 217, To: 192, turn_URI: 223, uuid: 226, WWW_Authenticate: 209, challenge: 158, sipfrag: 230, Referred_By: 231 };
436
436
  let r = 119;
@@ -576,10 +576,10 @@ function $t(o, e) {
576
576
  /^[\x0E-\x7F]/,
577
577
  A([["", ""]], !1, !1),
578
578
  function() {
579
- e = e || { data: {} }, e.data.uri = new Z(e.data.scheme, e.data.user, e.data.host, e.data.port), delete e.data.scheme, delete e.data.user, delete e.data.host, delete e.data.host_type, delete e.data.port;
579
+ e = e || { data: {} }, e.data.uri = new X(e.data.scheme, e.data.user, e.data.host, e.data.port), delete e.data.scheme, delete e.data.user, delete e.data.host, delete e.data.host_type, delete e.data.port;
580
580
  },
581
581
  function() {
582
- e = e || { data: {} }, e.data.uri = new Z(e.data.scheme, e.data.user, e.data.host, e.data.port, e.data.uri_params, e.data.uri_headers), delete e.data.scheme, delete e.data.user, delete e.data.host, delete e.data.host_type, delete e.data.port, delete e.data.uri_params, e.startRule === "SIP_URI" && (e.data = e.data.uri);
582
+ e = e || { data: {} }, e.data.uri = new X(e.data.scheme, e.data.user, e.data.host, e.data.port, e.data.uri_params, e.data.uri_headers), delete e.data.scheme, delete e.data.user, delete e.data.host, delete e.data.host_type, delete e.data.port, delete e.data.uri_params, e.startRule === "SIP_URI" && (e.data = e.data.uri);
583
583
  },
584
584
  "sips",
585
585
  p("sips", !0),
@@ -679,7 +679,7 @@ function $t(o, e) {
679
679
  l = l.join("").toLowerCase(), y = y.join(""), e = e || { data: {} }, e.data.uri_headers || (e.data.uri_headers = {}), e.data.uri_headers[l] ? e.data.uri_headers[l].push(y) : e.data.uri_headers[l] = [y];
680
680
  },
681
681
  function() {
682
- e = e || { data: {} }, e.startRule === "Refer_To" && (e.data.uri = new Z(e.data.scheme, e.data.user, e.data.host, e.data.port, e.data.uri_params, e.data.uri_headers), delete e.data.scheme, delete e.data.user, delete e.data.host, delete e.data.host_type, delete e.data.port, delete e.data.uri_params);
682
+ e = e || { data: {} }, e.startRule === "Refer_To" && (e.data.uri = new X(e.data.scheme, e.data.user, e.data.host, e.data.port, e.data.uri_params, e.data.uri_headers), delete e.data.scheme, delete e.data.user, delete e.data.host, delete e.data.host_type, delete e.data.port, delete e.data.uri_params);
683
683
  },
684
684
  "//",
685
685
  p("//", !1),
@@ -737,13 +737,13 @@ function $t(o, e) {
737
737
  var l;
738
738
  e = e || { data: {} }, e.data.multi_header || (e.data.multi_header = []);
739
739
  try {
740
- l = new N(e.data.uri, e.data.displayName, e.data.params), delete e.data.uri, delete e.data.displayName, delete e.data.params;
740
+ l = new U(e.data.uri, e.data.displayName, e.data.params), delete e.data.uri, delete e.data.displayName, delete e.data.params;
741
741
  } catch {
742
742
  l = null;
743
743
  }
744
744
  e.data.multi_header.push({
745
745
  position: d,
746
- offset: ae().start.offset,
746
+ offset: de().start.offset,
747
747
  parsed: l
748
748
  });
749
749
  },
@@ -822,7 +822,7 @@ function $t(o, e) {
822
822
  function() {
823
823
  e = e || { data: {} };
824
824
  var l = e.data.tag;
825
- e.data = new N(e.data.uri, e.data.displayName, e.data.params), l && e.data.setParam("tag", l);
825
+ e.data = new U(e.data.uri, e.data.displayName, e.data.params), l && e.data.setParam("tag", l);
826
826
  },
827
827
  "tag",
828
828
  p("tag", !0),
@@ -836,7 +836,7 @@ function $t(o, e) {
836
836
  e = e || { data: {} }, e.data = l;
837
837
  },
838
838
  function() {
839
- e = e || { data: {} }, e.data = new N(e.data.uri, e.data.displayName, e.data.params);
839
+ e = e || { data: {} }, e.data = new U(e.data.uri, e.data.displayName, e.data.params);
840
840
  },
841
841
  "digest",
842
842
  p("Digest", !0),
@@ -903,18 +903,18 @@ function $t(o, e) {
903
903
  var l;
904
904
  e = e || { data: {} }, e.data.multi_header || (e.data.multi_header = []);
905
905
  try {
906
- l = new N(e.data.uri, e.data.displayName, e.data.params), delete e.data.uri, delete e.data.displayName, delete e.data.params;
906
+ l = new U(e.data.uri, e.data.displayName, e.data.params), delete e.data.uri, delete e.data.displayName, delete e.data.params;
907
907
  } catch {
908
908
  l = null;
909
909
  }
910
910
  e.data.multi_header.push({
911
911
  position: d,
912
- offset: ae().start.offset,
912
+ offset: de().start.offset,
913
913
  parsed: l
914
914
  });
915
915
  },
916
916
  function() {
917
- e = e || { data: {} }, e.data = new N(e.data.uri, e.data.displayName, e.data.params);
917
+ e = e || { data: {} }, e.data = new U(e.data.uri, e.data.displayName, e.data.params);
918
918
  },
919
919
  function() {
920
920
  e = e || { data: {} }, e.data.replaces_from_tag && e.data.replaces_to_tag || (e.data = -1);
@@ -943,7 +943,7 @@ function $t(o, e) {
943
943
  return y;
944
944
  },
945
945
  function(l, y) {
946
- return Tt(l, y);
946
+ return It(l, y);
947
947
  },
948
948
  function(l) {
949
949
  e = e || { data: {} }, e.startRule === "Require" && (e.data = l || []);
@@ -993,7 +993,7 @@ function $t(o, e) {
993
993
  function() {
994
994
  e = e || { data: {} };
995
995
  var l = e.data.tag;
996
- e.data = new N(e.data.uri, e.data.displayName, e.data.params), l && e.data.setParam("tag", l);
996
+ e.data = new U(e.data.uri, e.data.displayName, e.data.params), l && e.data.setParam("tag", l);
997
997
  },
998
998
  "ttl",
999
999
  p("ttl", !0),
@@ -1321,7 +1321,7 @@ function $t(o, e) {
1321
1321
  ];
1322
1322
  let d = 0, f = 0;
1323
1323
  const h = [{ line: 1, column: 1 }];
1324
- let w = 0, S = [], _ = 0, I;
1324
+ let w = 0, S = [], x = 0, I;
1325
1325
  if (e.startRule !== void 0) {
1326
1326
  if (!(e.startRule in s))
1327
1327
  throw new Error(`Can't start parsing from rule "` + e.startRule + '".');
@@ -1330,8 +1330,8 @@ function $t(o, e) {
1330
1330
  function E() {
1331
1331
  return o.substring(f, d);
1332
1332
  }
1333
- function ae() {
1334
- return He(f, d);
1333
+ function de() {
1334
+ return Fe(f, d);
1335
1335
  }
1336
1336
  function p(l, y) {
1337
1337
  return { type: "literal", text: l, ignoreCase: y };
@@ -1339,10 +1339,10 @@ function $t(o, e) {
1339
1339
  function A(l, y, u) {
1340
1340
  return { type: "class", parts: l, inverted: y, ignoreCase: u };
1341
1341
  }
1342
- function Pe() {
1342
+ function Oe() {
1343
1343
  return { type: "end" };
1344
1344
  }
1345
- function Ke(l) {
1345
+ function Xe(l) {
1346
1346
  let y = h[l], u;
1347
1347
  if (y)
1348
1348
  return y;
@@ -1355,8 +1355,8 @@ function $t(o, e) {
1355
1355
  o.charCodeAt(u) === 10 ? (y.line++, y.column = 1) : y.column++, u++;
1356
1356
  return h[l] = y, y;
1357
1357
  }
1358
- function He(l, y) {
1359
- const u = Ke(l), j = Ke(y);
1358
+ function Fe(l, y) {
1359
+ const u = Xe(l), V = Xe(y);
1360
1360
  return {
1361
1361
  source: i,
1362
1362
  start: {
@@ -1366,27 +1366,27 @@ function $t(o, e) {
1366
1366
  },
1367
1367
  end: {
1368
1368
  offset: y,
1369
- line: j.line,
1370
- column: j.column
1369
+ line: V.line,
1370
+ column: V.column
1371
1371
  }
1372
1372
  };
1373
1373
  }
1374
- function ze(l) {
1374
+ function Qe(l) {
1375
1375
  d < w || (d > w && (w = d, S = []), S.push(l));
1376
1376
  }
1377
- function St(l, y, u) {
1378
- return new ue(ue.buildMessage(l, y), l, y, u);
1377
+ function xt(l, y, u) {
1378
+ return new fe(fe.buildMessage(l, y), l, y, u);
1379
1379
  }
1380
1380
  function c(l) {
1381
1381
  return l.split("").map((y) => y.charCodeAt(0) - 32);
1382
1382
  }
1383
- function Ye(l) {
1383
+ function et(l) {
1384
1384
  const y = a[l];
1385
1385
  let u = 0;
1386
- const j = [];
1386
+ const V = [];
1387
1387
  let D = y.length;
1388
- const K = [], C = [];
1389
- let Je;
1388
+ const z = [], C = [];
1389
+ let tt;
1390
1390
  for (; ; ) {
1391
1391
  for (; u < D; )
1392
1392
  switch (y[u]) {
@@ -1430,28 +1430,28 @@ function $t(o, e) {
1430
1430
  C.push(o.substring(C.pop(), d)), u++;
1431
1431
  break;
1432
1432
  case 13:
1433
- K.push(D), j.push(u + 3 + y[u + 1] + y[u + 2]), C[C.length - 1] ? (D = u + 3 + y[u + 1], u += 3) : (D = u + 3 + y[u + 1] + y[u + 2], u += 3 + y[u + 1]);
1433
+ z.push(D), V.push(u + 3 + y[u + 1] + y[u + 2]), C[C.length - 1] ? (D = u + 3 + y[u + 1], u += 3) : (D = u + 3 + y[u + 1] + y[u + 2], u += 3 + y[u + 1]);
1434
1434
  break;
1435
1435
  case 14:
1436
- K.push(D), j.push(u + 3 + y[u + 1] + y[u + 2]), C[C.length - 1] === t ? (D = u + 3 + y[u + 1], u += 3) : (D = u + 3 + y[u + 1] + y[u + 2], u += 3 + y[u + 1]);
1436
+ z.push(D), V.push(u + 3 + y[u + 1] + y[u + 2]), C[C.length - 1] === t ? (D = u + 3 + y[u + 1], u += 3) : (D = u + 3 + y[u + 1] + y[u + 2], u += 3 + y[u + 1]);
1437
1437
  break;
1438
1438
  case 15:
1439
- K.push(D), j.push(u + 3 + y[u + 1] + y[u + 2]), C[C.length - 1] !== t ? (D = u + 3 + y[u + 1], u += 3) : (D = u + 3 + y[u + 1] + y[u + 2], u += 3 + y[u + 1]);
1439
+ z.push(D), V.push(u + 3 + y[u + 1] + y[u + 2]), C[C.length - 1] !== t ? (D = u + 3 + y[u + 1], u += 3) : (D = u + 3 + y[u + 1] + y[u + 2], u += 3 + y[u + 1]);
1440
1440
  break;
1441
1441
  case 16:
1442
- C[C.length - 1] !== t ? (K.push(D), j.push(u), D = u + 2 + y[u + 1], u += 2) : u += 2 + y[u + 1];
1442
+ C[C.length - 1] !== t ? (z.push(D), V.push(u), D = u + 2 + y[u + 1], u += 2) : u += 2 + y[u + 1];
1443
1443
  break;
1444
1444
  case 17:
1445
- K.push(D), j.push(u + 3 + y[u + 1] + y[u + 2]), o.length > d ? (D = u + 3 + y[u + 1], u += 3) : (D = u + 3 + y[u + 1] + y[u + 2], u += 3 + y[u + 1]);
1445
+ z.push(D), V.push(u + 3 + y[u + 1] + y[u + 2]), o.length > d ? (D = u + 3 + y[u + 1], u += 3) : (D = u + 3 + y[u + 1] + y[u + 2], u += 3 + y[u + 1]);
1446
1446
  break;
1447
1447
  case 18:
1448
- K.push(D), j.push(u + 4 + y[u + 2] + y[u + 3]), o.substr(d, n[y[u + 1]].length) === n[y[u + 1]] ? (D = u + 4 + y[u + 2], u += 4) : (D = u + 4 + y[u + 2] + y[u + 3], u += 4 + y[u + 2]);
1448
+ z.push(D), V.push(u + 4 + y[u + 2] + y[u + 3]), o.substr(d, n[y[u + 1]].length) === n[y[u + 1]] ? (D = u + 4 + y[u + 2], u += 4) : (D = u + 4 + y[u + 2] + y[u + 3], u += 4 + y[u + 2]);
1449
1449
  break;
1450
1450
  case 19:
1451
- K.push(D), j.push(u + 4 + y[u + 2] + y[u + 3]), o.substr(d, n[y[u + 1]].length).toLowerCase() === n[y[u + 1]] ? (D = u + 4 + y[u + 2], u += 4) : (D = u + 4 + y[u + 2] + y[u + 3], u += 4 + y[u + 2]);
1451
+ z.push(D), V.push(u + 4 + y[u + 2] + y[u + 3]), o.substr(d, n[y[u + 1]].length).toLowerCase() === n[y[u + 1]] ? (D = u + 4 + y[u + 2], u += 4) : (D = u + 4 + y[u + 2] + y[u + 3], u += 4 + y[u + 2]);
1452
1452
  break;
1453
1453
  case 20:
1454
- K.push(D), j.push(u + 4 + y[u + 2] + y[u + 3]), n[y[u + 1]].test(o.charAt(d)) ? (D = u + 4 + y[u + 2], u += 4) : (D = u + 4 + y[u + 2] + y[u + 3], u += 4 + y[u + 2]);
1454
+ z.push(D), V.push(u + 4 + y[u + 2] + y[u + 3]), n[y[u + 1]].test(o.charAt(d)) ? (D = u + 4 + y[u + 2], u += 4) : (D = u + 4 + y[u + 2] + y[u + 3], u += 4 + y[u + 2]);
1455
1455
  break;
1456
1456
  case 21:
1457
1457
  C.push(o.substr(d, y[u + 1])), d += y[u + 1], u += 2;
@@ -1460,7 +1460,7 @@ function $t(o, e) {
1460
1460
  C.push(n[y[u + 1]]), d += n[y[u + 1]].length, u += 2;
1461
1461
  break;
1462
1462
  case 23:
1463
- C.push(t), _ === 0 && ze(n[y[u + 1]]), u += 2;
1463
+ C.push(t), x === 0 && Qe(n[y[u + 1]]), u += 2;
1464
1464
  break;
1465
1465
  case 24:
1466
1466
  f = C[C.length - 1 - y[u + 1]], u += 2;
@@ -1469,44 +1469,44 @@ function $t(o, e) {
1469
1469
  f = d, u++;
1470
1470
  break;
1471
1471
  case 26:
1472
- Je = y.slice(u + 4, u + 4 + y[u + 3]).map(function(Ct) {
1473
- return C[C.length - 1 - Ct];
1474
- }), C.splice(C.length - y[u + 2], y[u + 2], n[y[u + 1]].apply(null, Je)), u += 4 + y[u + 3];
1472
+ tt = y.slice(u + 4, u + 4 + y[u + 3]).map(function(At) {
1473
+ return C[C.length - 1 - At];
1474
+ }), C.splice(C.length - y[u + 2], y[u + 2], n[y[u + 1]].apply(null, tt)), u += 4 + y[u + 3];
1475
1475
  break;
1476
1476
  case 27:
1477
- C.push(Ye(y[u + 1])), u += 2;
1477
+ C.push(et(y[u + 1])), u += 2;
1478
1478
  break;
1479
1479
  case 28:
1480
- _++, u++;
1480
+ x++, u++;
1481
1481
  break;
1482
1482
  case 29:
1483
- _--, u++;
1483
+ x--, u++;
1484
1484
  break;
1485
1485
  default:
1486
1486
  throw new Error("Invalid opcode: " + y[u] + ".");
1487
1487
  }
1488
- if (K.length > 0)
1489
- D = K.pop(), u = j.pop();
1488
+ if (z.length > 0)
1489
+ D = z.pop(), u = V.pop();
1490
1490
  else
1491
1491
  break;
1492
1492
  }
1493
1493
  return C[0];
1494
1494
  }
1495
1495
  e.data = {};
1496
- function Tt(l, y) {
1496
+ function It(l, y) {
1497
1497
  return [l].concat(y);
1498
1498
  }
1499
- if (I = Ye(r), I !== t && d === o.length)
1499
+ if (I = et(r), I !== t && d === o.length)
1500
1500
  return I;
1501
- throw I !== t && d < o.length && ze(Pe()), St(S, w < o.length ? o.charAt(w) : null, w < o.length ? He(w, w + 1) : He(w, w));
1501
+ throw I !== t && d < o.length && Qe(Oe()), xt(S, w < o.length ? o.charAt(w) : null, w < o.length ? Fe(w, w + 1) : Fe(w, w));
1502
1502
  }
1503
- const Dt = $t;
1503
+ const Ot = qt;
1504
1504
  var P;
1505
1505
  (function(o) {
1506
1506
  function e(s, r) {
1507
1507
  const n = { startRule: r };
1508
1508
  try {
1509
- Dt(s, n);
1509
+ Ot(s, n);
1510
1510
  } catch {
1511
1511
  n.data = -1;
1512
1512
  }
@@ -1524,7 +1524,7 @@ var P;
1524
1524
  }
1525
1525
  o.URIParse = i;
1526
1526
  })(P = P || (P = {}));
1527
- const kt = {
1527
+ const Ft = {
1528
1528
  100: "Trying",
1529
1529
  180: "Ringing",
1530
1530
  181: "Call Is Being Forwarded",
@@ -1597,7 +1597,7 @@ const kt = {
1597
1597
  604: "Does Not Exist Anywhere",
1598
1598
  606: "Not Acceptable"
1599
1599
  };
1600
- function ce(o, e = 32) {
1600
+ function le(o, e = 32) {
1601
1601
  let t = "";
1602
1602
  for (let i = 0; i < o; i++) {
1603
1603
  const s = Math.floor(Math.random() * e);
@@ -1605,13 +1605,13 @@ function ce(o, e = 32) {
1605
1605
  }
1606
1606
  return t;
1607
1607
  }
1608
- function Ae(o) {
1609
- return kt[o] || "";
1608
+ function Pe(o) {
1609
+ return Ft[o] || "";
1610
1610
  }
1611
- function $e() {
1612
- return ce(10);
1611
+ function He() {
1612
+ return le(10);
1613
1613
  }
1614
- function Y(o) {
1614
+ function J(o) {
1615
1615
  const e = {
1616
1616
  "Call-Id": "Call-ID",
1617
1617
  Cseq: "CSeq",
@@ -1625,10 +1625,10 @@ function Y(o) {
1625
1625
  r !== 0 && (s += "-"), s += t[r].charAt(0).toUpperCase() + t[r].substring(1);
1626
1626
  return e[s] && (s = e[s]), s;
1627
1627
  }
1628
- function Se(o) {
1628
+ function Ee(o) {
1629
1629
  return encodeURIComponent(o).replace(/%[A-F\d]{2}/g, "U").length;
1630
1630
  }
1631
- class ct {
1631
+ class ft {
1632
1632
  constructor() {
1633
1633
  this.headers = {};
1634
1634
  }
@@ -1640,7 +1640,7 @@ class ct {
1640
1640
  */
1641
1641
  addHeader(e, t) {
1642
1642
  const i = { raw: t };
1643
- e = Y(e), this.headers[e] ? this.headers[e].push(i) : this.headers[e] = [i];
1643
+ e = J(e), this.headers[e] ? this.headers[e].push(i) : this.headers[e] = [i];
1644
1644
  }
1645
1645
  /**
1646
1646
  * Get the value of the given header name at the given position.
@@ -1648,7 +1648,7 @@ class ct {
1648
1648
  * @returns Returns the specified header, undefined if header doesn't exist.
1649
1649
  */
1650
1650
  getHeader(e) {
1651
- const t = this.headers[Y(e)];
1651
+ const t = this.headers[J(e)];
1652
1652
  if (t) {
1653
1653
  if (t[0])
1654
1654
  return t[0].raw;
@@ -1661,7 +1661,7 @@ class ct {
1661
1661
  * @returns Array - with all the headers of the specified name.
1662
1662
  */
1663
1663
  getHeaders(e) {
1664
- const t = this.headers[Y(e)], i = [];
1664
+ const t = this.headers[J(e)], i = [];
1665
1665
  if (!t)
1666
1666
  return [];
1667
1667
  for (const s of t)
@@ -1674,7 +1674,7 @@ class ct {
1674
1674
  * @returns true if header with given name exists, false otherwise
1675
1675
  */
1676
1676
  hasHeader(e) {
1677
- return !!this.headers[Y(e)];
1677
+ return !!this.headers[J(e)];
1678
1678
  }
1679
1679
  /**
1680
1680
  * Parse the given header on the given index.
@@ -1685,7 +1685,7 @@ class ct {
1685
1685
  */
1686
1686
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1687
1687
  parseHeader(e, t = 0) {
1688
- if (e = Y(e), this.headers[e]) {
1688
+ if (e = J(e), this.headers[e]) {
1689
1689
  if (t >= this.headers[e].length)
1690
1690
  return;
1691
1691
  } else return;
@@ -1719,28 +1719,28 @@ class ct {
1719
1719
  * @param value - header value
1720
1720
  */
1721
1721
  setHeader(e, t) {
1722
- this.headers[Y(e)] = [{ raw: t }];
1722
+ this.headers[J(e)] = [{ raw: t }];
1723
1723
  }
1724
1724
  toString() {
1725
1725
  return this.data;
1726
1726
  }
1727
1727
  }
1728
- class ge extends ct {
1728
+ class pe extends ft {
1729
1729
  constructor() {
1730
1730
  super();
1731
1731
  }
1732
1732
  }
1733
- class oe extends ct {
1733
+ class ce extends ft {
1734
1734
  constructor() {
1735
1735
  super();
1736
1736
  }
1737
1737
  }
1738
- class le {
1738
+ class ue {
1739
1739
  constructor(e, t, i, s, r, n, a) {
1740
- this.headers = {}, this.extraHeaders = [], this.options = le.getDefaultOptions(), r && (this.options = Object.assign(Object.assign({}, this.options), r), this.options.optionTags && this.options.optionTags.length && (this.options.optionTags = this.options.optionTags.slice()), this.options.routeSet && this.options.routeSet.length && (this.options.routeSet = this.options.routeSet.slice())), n && n.length && (this.extraHeaders = n.slice()), a && (this.body = {
1740
+ this.headers = {}, this.extraHeaders = [], this.options = ue.getDefaultOptions(), r && (this.options = Object.assign(Object.assign({}, this.options), r), this.options.optionTags && this.options.optionTags.length && (this.options.optionTags = this.options.optionTags.slice()), this.options.routeSet && this.options.routeSet.length && (this.options.routeSet = this.options.routeSet.slice())), n && n.length && (this.extraHeaders = n.slice()), a && (this.body = {
1741
1741
  body: a.content,
1742
1742
  contentType: a.contentType
1743
- }), this.method = e, this.ruri = t.clone(), this.fromURI = i.clone(), this.fromTag = this.options.fromTag ? this.options.fromTag : $e(), this.from = le.makeNameAddrHeader(this.fromURI, this.options.fromDisplayName, this.fromTag), this.toURI = s.clone(), this.toTag = this.options.toTag, this.to = le.makeNameAddrHeader(this.toURI, this.options.toDisplayName, this.toTag), this.callId = this.options.callId ? this.options.callId : this.options.callIdPrefix + ce(15), this.cseq = this.options.cseq, this.setHeader("route", this.options.routeSet), this.setHeader("via", ""), this.setHeader("to", this.to.toString()), this.setHeader("from", this.from.toString()), this.setHeader("cseq", this.cseq + " " + this.method), this.setHeader("call-id", this.callId), this.setHeader("max-forwards", "70");
1743
+ }), this.method = e, this.ruri = t.clone(), this.fromURI = i.clone(), this.fromTag = this.options.fromTag ? this.options.fromTag : He(), this.from = ue.makeNameAddrHeader(this.fromURI, this.options.fromDisplayName, this.fromTag), this.toURI = s.clone(), this.toTag = this.options.toTag, this.to = ue.makeNameAddrHeader(this.toURI, this.options.toDisplayName, this.toTag), this.callId = this.options.callId ? this.options.callId : this.options.callIdPrefix + le(15), this.cseq = this.options.cseq, this.setHeader("route", this.options.routeSet), this.setHeader("via", ""), this.setHeader("to", this.to.toString()), this.setHeader("from", this.from.toString()), this.setHeader("cseq", this.cseq + " " + this.method), this.setHeader("call-id", this.callId), this.setHeader("max-forwards", "70");
1744
1744
  }
1745
1745
  /** Get a copy of the default options. */
1746
1746
  static getDefaultOptions() {
@@ -1762,7 +1762,7 @@ class le {
1762
1762
  }
1763
1763
  static makeNameAddrHeader(e, t, i) {
1764
1764
  const s = {};
1765
- return i && (s.tag = i), new N(e, t, s);
1765
+ return i && (s.tag = i), new U(e, t, s);
1766
1766
  }
1767
1767
  /**
1768
1768
  * Get the value of the given header name at the given position.
@@ -1770,7 +1770,7 @@ class le {
1770
1770
  * @returns Returns the specified header, undefined if header doesn't exist.
1771
1771
  */
1772
1772
  getHeader(e) {
1773
- const t = this.headers[Y(e)];
1773
+ const t = this.headers[J(e)];
1774
1774
  if (t) {
1775
1775
  if (t[0])
1776
1776
  return t[0];
@@ -1787,7 +1787,7 @@ class le {
1787
1787
  * @returns Array with all the headers of the specified name.
1788
1788
  */
1789
1789
  getHeaders(e) {
1790
- const t = [], i = this.headers[Y(e)];
1790
+ const t = [], i = this.headers[J(e)];
1791
1791
  if (i)
1792
1792
  for (const s of i)
1793
1793
  t.push(s);
@@ -1804,7 +1804,7 @@ class le {
1804
1804
  * @returns true if header with given name exists, false otherwise
1805
1805
  */
1806
1806
  hasHeader(e) {
1807
- if (this.headers[Y(e)])
1807
+ if (this.headers[J(e)])
1808
1808
  return !0;
1809
1809
  {
1810
1810
  const t = new RegExp("^\\s*" + e + "\\s*:", "i");
@@ -1820,7 +1820,7 @@ class le {
1820
1820
  * @param value - header value
1821
1821
  */
1822
1822
  setHeader(e, t) {
1823
- this.headers[Y(e)] = t instanceof Array ? t : [t];
1823
+ this.headers[J(e)] = t instanceof Array ? t : [t];
1824
1824
  }
1825
1825
  /**
1826
1826
  * The Via header field indicates the transport used for the transaction
@@ -1858,10 +1858,10 @@ class le {
1858
1858
  `;
1859
1859
  return e += "Supported: " + this.options.optionTags.join(", ") + `\r
1860
1860
  `, e += "User-Agent: " + this.options.userAgentString + `\r
1861
- `, this.body ? typeof this.body == "string" ? (e += "Content-Length: " + Se(this.body) + `\r
1861
+ `, this.body ? typeof this.body == "string" ? (e += "Content-Length: " + Ee(this.body) + `\r
1862
1862
  \r
1863
1863
  `, e += this.body) : this.body.body && this.body.contentType ? (e += "Content-Type: " + this.body.contentType + `\r
1864
- `, e += "Content-Length: " + Se(this.body.body) + `\r
1864
+ `, e += "Content-Length: " + Ee(this.body.body) + `\r
1865
1865
  \r
1866
1866
  `, e += this.body.body) : e += `Content-Length: 0\r
1867
1867
  \r
@@ -1870,27 +1870,27 @@ class le {
1870
1870
  `, e;
1871
1871
  }
1872
1872
  }
1873
- function dt(o) {
1873
+ function pt(o) {
1874
1874
  return o === "application/sdp" ? "session" : "render";
1875
1875
  }
1876
- function xe(o) {
1876
+ function $e(o) {
1877
1877
  const e = typeof o == "string" ? o : o.body, t = typeof o == "string" ? "application/sdp" : o.contentType;
1878
- return { contentDisposition: dt(t), contentType: t, content: e };
1878
+ return { contentDisposition: pt(t), contentType: t, content: e };
1879
1879
  }
1880
- function lt(o) {
1880
+ function mt(o) {
1881
1881
  return o && typeof o.content == "string" && typeof o.contentType == "string" && o.contentDisposition === void 0 ? !0 : typeof o.contentDisposition == "string";
1882
1882
  }
1883
- function ye(o) {
1883
+ function Se(o) {
1884
1884
  let e, t, i;
1885
- if (o instanceof ge && o.body) {
1885
+ if (o instanceof pe && o.body) {
1886
1886
  const s = o.parseHeader("Content-Disposition");
1887
1887
  e = s ? s.type : void 0, t = o.parseHeader("Content-Type"), i = o.body;
1888
1888
  }
1889
- if (o instanceof oe && o.body) {
1889
+ if (o instanceof ce && o.body) {
1890
1890
  const s = o.parseHeader("Content-Disposition");
1891
1891
  e = s ? s.type : void 0, t = o.parseHeader("Content-Type"), i = o.body;
1892
1892
  }
1893
- if (o instanceof le && o.body)
1893
+ if (o instanceof ue && o.body)
1894
1894
  if (e = o.getHeader("Content-Disposition"), t = o.getHeader("Content-Type"), typeof o.body == "string") {
1895
1895
  if (!t)
1896
1896
  throw new Error("Header content type header does not equal body content type.");
@@ -1900,8 +1900,8 @@ function ye(o) {
1900
1900
  throw new Error("Header content type header does not equal body content type.");
1901
1901
  t = o.body.contentType, i = o.body.body;
1902
1902
  }
1903
- if (lt(o) && (e = o.contentDisposition, t = o.contentType, i = o.content), !!i) {
1904
- if (t && !e && (e = dt(t)), !e)
1903
+ if (mt(o) && (e = o.contentDisposition, t = o.contentType, i = o.content), !!i) {
1904
+ if (t && !e && (e = pt(t)), !e)
1905
1905
  throw new Error("Content disposition undefined.");
1906
1906
  if (!t)
1907
1907
  throw new Error("Content type undefined.");
@@ -1912,31 +1912,31 @@ function ye(o) {
1912
1912
  };
1913
1913
  }
1914
1914
  }
1915
- var V;
1915
+ var G;
1916
1916
  (function(o) {
1917
1917
  o.Initial = "Initial", o.Early = "Early", o.AckWait = "AckWait", o.Confirmed = "Confirmed", o.Terminated = "Terminated";
1918
- })(V = V || (V = {}));
1918
+ })(G = G || (G = {}));
1919
1919
  var b;
1920
1920
  (function(o) {
1921
1921
  o.Initial = "Initial", o.HaveLocalOffer = "HaveLocalOffer", o.HaveRemoteOffer = "HaveRemoteOffer", o.Stable = "Stable", o.Closed = "Closed";
1922
1922
  })(b = b || (b = {}));
1923
- const Q = 500, Pt = 4e3, Xe = 5e3, q = {
1924
- T1: Q,
1925
- T2: Pt,
1926
- TIMER_B: 64 * Q,
1927
- TIMER_D: 0 * Q,
1928
- TIMER_F: 64 * Q,
1929
- TIMER_H: 64 * Q,
1930
- TIMER_I: 0 * Xe,
1931
- TIMER_J: 0 * Q,
1932
- TIMER_K: 0 * Xe,
1933
- TIMER_L: 64 * Q,
1934
- TIMER_M: 64 * Q,
1935
- TIMER_N: 64 * Q,
1923
+ const ee = 500, Nt = 4e3, st = 5e3, q = {
1924
+ T1: ee,
1925
+ T2: Nt,
1926
+ TIMER_B: 64 * ee,
1927
+ TIMER_D: 0 * ee,
1928
+ TIMER_F: 64 * ee,
1929
+ TIMER_H: 64 * ee,
1930
+ TIMER_I: 0 * st,
1931
+ TIMER_J: 0 * ee,
1932
+ TIMER_K: 0 * st,
1933
+ TIMER_L: 64 * ee,
1934
+ TIMER_M: 64 * ee,
1935
+ TIMER_N: 64 * ee,
1936
1936
  PROVISIONAL_RESPONSE_INTERVAL: 6e4
1937
1937
  // See RFC 3261 Section 13.3.1.1
1938
1938
  };
1939
- class se extends he {
1939
+ class ne extends ge {
1940
1940
  constructor(e) {
1941
1941
  super(e || "Transaction state error.");
1942
1942
  }
@@ -1945,7 +1945,7 @@ var v;
1945
1945
  (function(o) {
1946
1946
  o.ACK = "ACK", o.BYE = "BYE", o.CANCEL = "CANCEL", o.INFO = "INFO", o.INVITE = "INVITE", o.MESSAGE = "MESSAGE", o.NOTIFY = "NOTIFY", o.OPTIONS = "OPTIONS", o.REGISTER = "REGISTER", o.UPDATE = "UPDATE", o.SUBSCRIBE = "SUBSCRIBE", o.PUBLISH = "PUBLISH", o.REFER = "REFER", o.PRACK = "PRACK";
1947
1947
  })(v = v || (v = {}));
1948
- const re = [
1948
+ const oe = [
1949
1949
  v.ACK,
1950
1950
  v.BYE,
1951
1951
  v.CANCEL,
@@ -1959,7 +1959,7 @@ const re = [
1959
1959
  v.REGISTER,
1960
1960
  v.SUBSCRIBE
1961
1961
  ];
1962
- class ht {
1962
+ class wt {
1963
1963
  /** @internal */
1964
1964
  constructor(e) {
1965
1965
  this.incomingMessageRequest = e;
@@ -1977,7 +1977,7 @@ class ht {
1977
1977
  return this.incomingMessageRequest.reject(e), Promise.resolve();
1978
1978
  }
1979
1979
  }
1980
- class Ve {
1980
+ class ze {
1981
1981
  /** @internal */
1982
1982
  constructor(e) {
1983
1983
  this.incomingNotifyRequest = e;
@@ -1995,14 +1995,14 @@ class Ve {
1995
1995
  return this.incomingNotifyRequest.reject(e), Promise.resolve();
1996
1996
  }
1997
1997
  }
1998
- class Ht {
1998
+ class Ut {
1999
1999
  /** @internal */
2000
2000
  constructor(e, t) {
2001
2001
  this.incomingReferRequest = e, this.session = t;
2002
2002
  }
2003
2003
  get referTo() {
2004
2004
  const e = this.incomingReferRequest.message.parseHeader("refer-to");
2005
- if (!(e instanceof N))
2005
+ if (!(e instanceof U))
2006
2006
  throw new Error("Failed to parse Refer-To header.");
2007
2007
  return e;
2008
2008
  }
@@ -2053,14 +2053,14 @@ var m;
2053
2053
  (function(o) {
2054
2054
  o.Initial = "Initial", o.Establishing = "Establishing", o.Established = "Established", o.Terminating = "Terminating", o.Terminated = "Terminated";
2055
2055
  })(m = m || (m = {}));
2056
- class fe {
2056
+ class me {
2057
2057
  /**
2058
2058
  * Constructor.
2059
2059
  * @param userAgent - User agent. See {@link UserAgent} for details.
2060
2060
  * @internal
2061
2061
  */
2062
2062
  constructor(e, t = {}) {
2063
- this.pendingReinvite = !1, this.pendingReinviteAck = !1, this._state = m.Initial, this.delegate = t.delegate, this._stateEventEmitter = new ve(), this._userAgent = e;
2063
+ this.pendingReinvite = !1, this.pendingReinviteAck = !1, this._state = m.Initial, this.delegate = t.delegate, this._stateEventEmitter = new Ce(), this._userAgent = e;
2064
2064
  }
2065
2065
  /**
2066
2066
  * Destructor.
@@ -2257,11 +2257,11 @@ class fe {
2257
2257
  if (this.logger.log("Session.invite"), this.state !== m.Established)
2258
2258
  return Promise.reject(new Error(`Invalid session state ${this.state}`));
2259
2259
  if (this.pendingReinvite)
2260
- return Promise.reject(new be("Reinvite in progress. Please wait until complete, then try again."));
2260
+ return Promise.reject(new Te("Reinvite in progress. Please wait until complete, then try again."));
2261
2261
  this.pendingReinvite = !0, e.sessionDescriptionHandlerModifiers && (this.sessionDescriptionHandlerModifiersReInvite = e.sessionDescriptionHandlerModifiers), e.sessionDescriptionHandlerOptions && (this.sessionDescriptionHandlerOptionsReInvite = e.sessionDescriptionHandlerOptions);
2262
2262
  const t = {
2263
2263
  onAccept: (r) => {
2264
- const n = ye(r.message);
2264
+ const n = Se(r.message);
2265
2265
  if (!n) {
2266
2266
  this.logger.error("Received 2xx response to re-INVITE without a session description"), this.ackAndBye(r, 400, "Missing session description"), this.stateTransition(m.Terminated), this.pendingReinvite = !1;
2267
2267
  return;
@@ -2314,7 +2314,7 @@ class fe {
2314
2314
  onTrying: (r) => {
2315
2315
  }
2316
2316
  }, i = e.requestOptions || {};
2317
- if (i.extraHeaders = (i.extraHeaders || []).slice(), i.extraHeaders.push("Allow: " + re.toString()), i.extraHeaders.push("Contact: " + this._contact), e.withoutSdp) {
2317
+ if (i.extraHeaders = (i.extraHeaders || []).slice(), i.extraHeaders.push("Allow: " + oe.toString()), i.extraHeaders.push("Contact: " + this._contact), e.withoutSdp) {
2318
2318
  if (!this.dialog)
2319
2319
  throw this.pendingReinvite = !1, new Error("Dialog undefined.");
2320
2320
  return Promise.resolve(this.dialog.invite(t, i));
@@ -2349,7 +2349,7 @@ class fe {
2349
2349
  refer(e, t = {}) {
2350
2350
  if (this.state !== m.Established)
2351
2351
  return this.logger.error("Session.refer() may only be called if established session."), Promise.reject(new Error(`Invalid session state ${this.state}`));
2352
- if (e instanceof fe && !e.dialog)
2352
+ if (e instanceof me && !e.dialog)
2353
2353
  return this.logger.error("Session.refer() may only be called with session which is established. You are perhaps attempting to attended transfer to a target for which there is not dialog yet established. Perhaps you are attempting a 'semi-attended' tansfer? Regardless, this is not supported. The recommended approached is to check to see if the target Session is in the Established state before calling refer(); if the state is not Established you may proceed by falling back using a URI as the target (blind transfer)."), Promise.reject(new Error(`Invalid session state ${this.state}`));
2354
2354
  const i = t.requestDelegate, s = this.copyRequestOptions(t.requestOptions);
2355
2355
  return s.extraHeaders = s.extraHeaders ? s.extraHeaders.concat(this.referExtraHeaders(this.referToString(e))) : this.referExtraHeaders(this.referToString(e)), this._refer(t.onNotify, i, s);
@@ -2365,11 +2365,11 @@ class fe {
2365
2365
  return Promise.reject(new Error("Session dialog undefined."));
2366
2366
  const i = this.dialog;
2367
2367
  switch (i.sessionState) {
2368
- case V.Initial:
2368
+ case G.Initial:
2369
2369
  throw new Error(`Invalid dialog state ${i.sessionState}`);
2370
- case V.Early:
2370
+ case G.Early:
2371
2371
  throw new Error(`Invalid dialog state ${i.sessionState}`);
2372
- case V.AckWait:
2372
+ case G.AckWait:
2373
2373
  return this.stateTransition(m.Terminating), new Promise((s) => {
2374
2374
  i.delegate = {
2375
2375
  // When ACK shows up, say BYE.
@@ -2384,11 +2384,11 @@ class fe {
2384
2384
  }
2385
2385
  };
2386
2386
  });
2387
- case V.Confirmed: {
2387
+ case G.Confirmed: {
2388
2388
  const s = i.bye(e, t);
2389
2389
  return this.stateTransition(m.Terminated), Promise.resolve(s);
2390
2390
  }
2391
- case V.Terminated:
2391
+ case G.Terminated:
2392
2392
  throw new Error(`Invalid dialog state ${i.sessionState}`);
2393
2393
  default:
2394
2394
  throw new Error("Unrecognized state.");
@@ -2454,7 +2454,7 @@ class fe {
2454
2454
  sessionDescriptionHandlerModifiers: this.pendingReinviteAck ? this._sessionDescriptionHandlerModifiersReInvite : this._sessionDescriptionHandlerModifiers
2455
2455
  };
2456
2456
  if (this.delegate && this.delegate.onAck) {
2457
- const s = new xt(e);
2457
+ const s = new kt(e);
2458
2458
  this.delegate.onAck(s);
2459
2459
  }
2460
2460
  switch (this.pendingReinviteAck = !1, t.signalingState) {
@@ -2464,7 +2464,7 @@ class fe {
2464
2464
  return t.bye(void 0, { extraHeaders: s }), this.stateTransition(m.Terminated), Promise.resolve();
2465
2465
  }
2466
2466
  case b.Stable: {
2467
- const s = ye(e.message);
2467
+ const s = Se(e.message);
2468
2468
  return s ? s.contentDisposition === "render" ? (this._renderbody = s.content, this._rendertype = s.contentType, Promise.resolve()) : s.contentDisposition !== "session" ? Promise.resolve() : this.setAnswer(s, i).catch((r) => {
2469
2469
  this.logger.error(r.message);
2470
2470
  const n = ["Reason: " + this.getReasonHeaderValue(488, "Bad Media Description")];
@@ -2497,7 +2497,7 @@ class fe {
2497
2497
  return;
2498
2498
  }
2499
2499
  if (this.delegate && this.delegate.onBye) {
2500
- const t = new _t(e);
2500
+ const t = new Pt(e);
2501
2501
  this.delegate.onBye(t);
2502
2502
  } else
2503
2503
  e.accept();
@@ -2513,7 +2513,7 @@ class fe {
2513
2513
  return;
2514
2514
  }
2515
2515
  if (this.delegate && this.delegate.onInfo) {
2516
- const t = new At(e);
2516
+ const t = new Mt(e);
2517
2517
  this.delegate.onInfo(t);
2518
2518
  } else
2519
2519
  e.accept();
@@ -2576,7 +2576,7 @@ class fe {
2576
2576
  return;
2577
2577
  }
2578
2578
  if (this.delegate && this.delegate.onMessage) {
2579
- const t = new ht(e);
2579
+ const t = new wt(e);
2580
2580
  this.delegate.onMessage(t);
2581
2581
  } else
2582
2582
  e.accept();
@@ -2591,12 +2591,12 @@ class fe {
2591
2591
  return;
2592
2592
  }
2593
2593
  if (this.onNotify) {
2594
- const t = new Ve(e);
2594
+ const t = new ze(e);
2595
2595
  this.onNotify(t);
2596
2596
  return;
2597
2597
  }
2598
2598
  if (this.delegate && this.delegate.onNotify) {
2599
- const t = new Ve(e);
2599
+ const t = new ze(e);
2600
2600
  this.delegate.onNotify(t);
2601
2601
  } else
2602
2602
  e.accept();
@@ -2626,7 +2626,7 @@ class fe {
2626
2626
  this.logger.warn("Invalid REFER packet. A refer-to header is required. Rejecting."), e.reject();
2627
2627
  return;
2628
2628
  }
2629
- const t = new Ht(e, this);
2629
+ const t = new Ut(e, this);
2630
2630
  this.delegate && this.delegate.onRefer ? this.delegate.onRefer(t) : (this.logger.log("No delegate available to handle REFER, automatically accepting and following."), t.accept().then(() => t.makeInviter(this._referralInviterOptions).invite()).catch((i) => {
2631
2631
  this.logger.error(i.message);
2632
2632
  }));
@@ -2641,7 +2641,7 @@ class fe {
2641
2641
  generateResponseOfferAnswer(e, t) {
2642
2642
  if (this.dialog)
2643
2643
  return this.generateResponseOfferAnswerInDialog(t);
2644
- const i = ye(e.message);
2644
+ const i = Se(e.message);
2645
2645
  return !i || i.contentDisposition !== "session" ? this.getOffer(t) : this.setOfferAndGetAnswer(i, t);
2646
2646
  }
2647
2647
  /**
@@ -2677,7 +2677,7 @@ class fe {
2677
2677
  getOffer(e) {
2678
2678
  const t = this.setupSessionDescriptionHandler(), i = e.sessionDescriptionHandlerOptions, s = e.sessionDescriptionHandlerModifiers;
2679
2679
  try {
2680
- return t.getDescription(i, s).then((r) => xe(r)).catch((r) => {
2680
+ return t.getDescription(i, s).then((r) => $e(r)).catch((r) => {
2681
2681
  this.logger.error("Session.getOffer: SDH getDescription rejected...");
2682
2682
  const n = r instanceof Error ? r : new Error("Session.getOffer unknown error.");
2683
2683
  throw this.logger.error(n.message), n;
@@ -2716,7 +2716,7 @@ class fe {
2716
2716
  const i = this.setupSessionDescriptionHandler(), s = t.sessionDescriptionHandlerOptions, r = t.sessionDescriptionHandlerModifiers;
2717
2717
  try {
2718
2718
  if (!i.hasDescription(e.contentType))
2719
- return Promise.reject(new je());
2719
+ return Promise.reject(new Ke());
2720
2720
  } catch (n) {
2721
2721
  this.logger.error("Session.setAnswer: SDH hasDescription threw...");
2722
2722
  const a = n instanceof Error ? n : new Error(n);
@@ -2742,14 +2742,14 @@ class fe {
2742
2742
  const i = this.setupSessionDescriptionHandler(), s = t.sessionDescriptionHandlerOptions, r = t.sessionDescriptionHandlerModifiers;
2743
2743
  try {
2744
2744
  if (!i.hasDescription(e.contentType))
2745
- return Promise.reject(new je());
2745
+ return Promise.reject(new Ke());
2746
2746
  } catch (n) {
2747
2747
  this.logger.error("Session.setOfferAndGetAnswer: SDH hasDescription threw...");
2748
2748
  const a = n instanceof Error ? n : new Error(n);
2749
2749
  return this.logger.error(a.message), Promise.reject(a);
2750
2750
  }
2751
2751
  try {
2752
- return i.setDescription(e.content, s, r).then(() => i.getDescription(s, r)).then((n) => xe(n)).catch((n) => {
2752
+ return i.setDescription(e.content, s, r).then(() => i.getDescription(s, r)).then((n) => $e(n)).catch((n) => {
2753
2753
  this.logger.error("Session.setOfferAndGetAnswer: SDH setDescription or getDescription rejected...");
2754
2754
  const a = n instanceof Error ? n : new Error("Session.setOfferAndGetAnswer unknown error.");
2755
2755
  throw this.logger.error(a.message), a;
@@ -2819,7 +2819,7 @@ class fe {
2819
2819
  }
2820
2820
  getReasonHeaderValue(e, t) {
2821
2821
  const i = e;
2822
- let s = Ae(e);
2822
+ let s = Pe(e);
2823
2823
  return !s && t && (s = t), "SIP;cause=" + i + ';text="' + s + '"';
2824
2824
  }
2825
2825
  referExtraHeaders(e) {
@@ -2828,7 +2828,7 @@ class fe {
2828
2828
  }
2829
2829
  referToString(e) {
2830
2830
  let t;
2831
- if (e instanceof Z)
2831
+ if (e instanceof X)
2832
2832
  t = e.toString();
2833
2833
  else {
2834
2834
  if (!e.dialog)
@@ -2839,11 +2839,11 @@ class fe {
2839
2839
  return t;
2840
2840
  }
2841
2841
  }
2842
- var W;
2842
+ var K;
2843
2843
  (function(o) {
2844
2844
  o.Required = "Required", o.Supported = "Supported", o.Unsupported = "Unsupported";
2845
- })(W = W || (W = {}));
2846
- const Mt = {
2845
+ })(K = K || (K = {}));
2846
+ const Lt = {
2847
2847
  "100rel": !0,
2848
2848
  199: !0,
2849
2849
  answermode: !0,
@@ -2879,7 +2879,7 @@ const Mt = {
2879
2879
  uui: !0
2880
2880
  // RFC 7433
2881
2881
  };
2882
- class de extends fe {
2882
+ class he extends me {
2883
2883
  /** @internal */
2884
2884
  constructor(e, t) {
2885
2885
  super(e), this.incomingInviteRequest = t, this.disposed = !1, this.expiresTimer = void 0, this.isCanceled = !1, this.rel100 = "none", this.rseq = Math.floor(Math.random() * 1e4), this.userNoAnswerTimer = void 0, this.waitingForPrack = !1, this.logger = e.getLogger("sip.Invitation");
@@ -3007,7 +3007,7 @@ class de extends fe {
3007
3007
  if (t < 100 || t > 199)
3008
3008
  throw new TypeError("Invalid statusCode: " + t);
3009
3009
  return e.sessionDescriptionHandlerModifiers && (this.sessionDescriptionHandlerModifiers = e.sessionDescriptionHandlerModifiers), e.sessionDescriptionHandlerOptions && (this.sessionDescriptionHandlerOptions = e.sessionDescriptionHandlerOptions), this.waitingForPrack ? (this.logger.warn("Unexpected call for progress while waiting for prack, ignoring"), Promise.resolve()) : e.statusCode === 100 ? this.sendProgressTrying().then(() => {
3010
- }).catch((i) => this.handleResponseError(i)) : this.rel100 !== "required" && !(this.rel100 === "supported" && e.rel100) && !(this.rel100 === "supported" && this.userAgent.configuration.sipExtension100rel === W.Required) ? this.sendProgress(e).then(() => {
3010
+ }).catch((i) => this.handleResponseError(i)) : this.rel100 !== "required" && !(this.rel100 === "supported" && e.rel100) && !(this.rel100 === "supported" && this.userAgent.configuration.sipExtension100rel === K.Required) ? this.sendProgress(e).then(() => {
3011
3011
  }).catch((i) => this.handleResponseError(i)) : this.sendProgressReliableWaitForPrack(e).then(() => {
3012
3012
  }).catch((i) => this.handleResponseError(i));
3013
3013
  }
@@ -3030,10 +3030,10 @@ class de extends fe {
3030
3030
  const n = new Error(`Invalid session state ${this.state}`);
3031
3031
  return this.logger.error(n.message), Promise.reject(n);
3032
3032
  }
3033
- const t = e.statusCode || 480, i = e.reasonPhrase ? e.reasonPhrase : Ae(t), s = e.extraHeaders || [];
3033
+ const t = e.statusCode || 480, i = e.reasonPhrase ? e.reasonPhrase : Pe(t), s = e.extraHeaders || [];
3034
3034
  if (t < 300 || t > 699)
3035
3035
  throw new TypeError("Invalid statusCode: " + t);
3036
- const r = e.body ? xe(e.body) : void 0;
3036
+ const r = e.body ? $e(e.body) : void 0;
3037
3037
  return t < 400 ? this.incomingInviteRequest.redirect([], { statusCode: t, reasonPhrase: i, extraHeaders: s, body: r }) : this.incomingInviteRequest.reject({ statusCode: t, reasonPhrase: i, extraHeaders: s, body: r }), this.stateTransition(m.Terminated), Promise.resolve();
3038
3038
  }
3039
3039
  /**
@@ -3049,7 +3049,7 @@ class de extends fe {
3049
3049
  return;
3050
3050
  }
3051
3051
  if (this.delegate && this.delegate.onCancel) {
3052
- const t = new It(e);
3052
+ const t = new Ht(e);
3053
3053
  this.delegate.onCancel(t);
3054
3054
  }
3055
3055
  this.isCanceled = !0, this.incomingInviteRequest.reject({ statusCode: 487 }), this.stateTransition(m.Terminated);
@@ -3060,7 +3060,7 @@ class de extends fe {
3060
3060
  handlePrackOfferAnswer(e) {
3061
3061
  if (!this.dialog)
3062
3062
  throw new Error("Dialog undefined.");
3063
- const t = ye(e.message);
3063
+ const t = Se(e.message);
3064
3064
  if (!t || t.contentDisposition !== "session")
3065
3065
  return Promise.resolve(void 0);
3066
3066
  const i = {
@@ -3092,7 +3092,7 @@ class de extends fe {
3092
3092
  */
3093
3093
  handleResponseError(e) {
3094
3094
  let t = 480;
3095
- if (e instanceof Error ? this.logger.error(e.message) : this.logger.error(e), e instanceof je ? (this.logger.error("A session description handler occurred while sending response (content type unsupported"), t = 415) : e instanceof Rt ? this.logger.error("A session description handler occurred while sending response") : e instanceof Me ? this.logger.error("Session ended before response could be formulated and sent (while waiting for PRACK)") : e instanceof se && this.logger.error("Session changed state before response could be formulated and sent"), this.state === m.Initial || this.state === m.Establishing)
3095
+ if (e instanceof Error ? this.logger.error(e.message) : this.logger.error(e), e instanceof Ke ? (this.logger.error("A session description handler occurred while sending response (content type unsupported"), t = 415) : e instanceof Dt ? this.logger.error("A session description handler occurred while sending response") : e instanceof Ne ? this.logger.error("Session ended before response could be formulated and sent (while waiting for PRACK)") : e instanceof ne && this.logger.error("Session changed state before response could be formulated and sent"), this.state === m.Initial || this.state === m.Establishing)
3096
3096
  try {
3097
3097
  this.incomingInviteRequest.reject({ statusCode: t }), this.stateTransition(m.Terminated);
3098
3098
  } catch (i) {
@@ -3129,7 +3129,7 @@ class de extends fe {
3129
3129
  * @param options - Options bucket.
3130
3130
  */
3131
3131
  sendProgress(e = {}) {
3132
- const t = e.statusCode || 180, i = e.reasonPhrase, s = (e.extraHeaders || []).slice(), r = e.body ? xe(e.body) : void 0;
3132
+ const t = e.statusCode || 180, i = e.reasonPhrase, s = (e.extraHeaders || []).slice(), r = e.body ? $e(e.body) : void 0;
3133
3133
  if (t === 183 && !r)
3134
3134
  return this.sendProgressWithSDP(e);
3135
3135
  try {
@@ -3174,17 +3174,17 @@ class de extends fe {
3174
3174
  let h, w;
3175
3175
  f.session.delegate = {
3176
3176
  onPrack: (p) => {
3177
- h = p, clearTimeout(_), clearTimeout(ae), this.waitingForPrack && (this.waitingForPrack = !1, this.handlePrackOfferAnswer(h).then((A) => {
3177
+ h = p, clearTimeout(x), clearTimeout(de), this.waitingForPrack && (this.waitingForPrack = !1, this.handlePrackOfferAnswer(h).then((A) => {
3178
3178
  try {
3179
3179
  w = h.accept({ statusCode: 200, body: A }), this.prackArrived(), a({ prackRequest: h, prackResponse: w, progressResponse: f });
3180
- } catch (Pe) {
3181
- d(Pe);
3180
+ } catch (Oe) {
3181
+ d(Oe);
3182
3182
  }
3183
3183
  }).catch((A) => d(A)));
3184
3184
  }
3185
3185
  };
3186
- const _ = setTimeout(() => {
3187
- this.waitingForPrack && (this.waitingForPrack = !1, this.logger.warn("No PRACK received, rejecting INVITE."), clearTimeout(ae), this.reject({ statusCode: 504 }).then(() => d(new Me())).catch((p) => d(p)));
3186
+ const x = setTimeout(() => {
3187
+ this.waitingForPrack && (this.waitingForPrack = !1, this.logger.warn("No PRACK received, rejecting INVITE."), clearTimeout(de), this.reject({ statusCode: 504 }).then(() => d(new Ne())).catch((p) => d(p)));
3188
3188
  }, q.T1 * 64), I = () => {
3189
3189
  try {
3190
3190
  this.incomingInviteRequest.progress({ statusCode: i, reasonPhrase: s, extraHeaders: r, body: n });
@@ -3192,9 +3192,9 @@ class de extends fe {
3192
3192
  this.waitingForPrack = !1, d(p);
3193
3193
  return;
3194
3194
  }
3195
- ae = setTimeout(I, E *= 2);
3195
+ de = setTimeout(I, E *= 2);
3196
3196
  };
3197
- let E = q.T1, ae = setTimeout(I, E);
3197
+ let E = q.T1, de = setTimeout(I, E);
3198
3198
  }).catch((f) => {
3199
3199
  this.waitingForPrack = !1, d(f);
3200
3200
  });
@@ -3236,10 +3236,10 @@ class de extends fe {
3236
3236
  * the accept to fail and the session to transition to "terminated".
3237
3237
  */
3238
3238
  prackNeverArrived() {
3239
- this.waitingForPrackReject && this.waitingForPrackReject(new Me()), this.waitingForPrackPromise = void 0, this.waitingForPrackResolve = void 0, this.waitingForPrackReject = void 0;
3239
+ this.waitingForPrackReject && this.waitingForPrackReject(new Ne()), this.waitingForPrackPromise = void 0, this.waitingForPrackResolve = void 0, this.waitingForPrackReject = void 0;
3240
3240
  }
3241
3241
  }
3242
- class Ee extends fe {
3242
+ class Ie extends me {
3243
3243
  /**
3244
3244
  * Constructs a new instance of the `Inviter` class.
3245
3245
  * @param userAgent - User agent. See {@link UserAgent} for details.
@@ -3247,7 +3247,7 @@ class Ee extends fe {
3247
3247
  * @param options - Options bucket. See {@link InviterOptions} for details.
3248
3248
  */
3249
3249
  constructor(e, t, i = {}) {
3250
- super(e, i), this.disposed = !1, this.earlyMedia = !1, this.earlyMediaSessionDescriptionHandlers = /* @__PURE__ */ new Map(), this.isCanceled = !1, this.inviteWithoutSdp = !1, this.logger = e.getLogger("sip.Inviter"), this.earlyMedia = i.earlyMedia !== void 0 ? i.earlyMedia : this.earlyMedia, this.fromTag = $e(), this.inviteWithoutSdp = i.inviteWithoutSdp !== void 0 ? i.inviteWithoutSdp : this.inviteWithoutSdp;
3250
+ super(e, i), this.disposed = !1, this.earlyMedia = !1, this.earlyMediaSessionDescriptionHandlers = /* @__PURE__ */ new Map(), this.isCanceled = !1, this.inviteWithoutSdp = !1, this.logger = e.getLogger("sip.Inviter"), this.earlyMedia = i.earlyMedia !== void 0 ? i.earlyMedia : this.earlyMedia, this.fromTag = He(), this.inviteWithoutSdp = i.inviteWithoutSdp !== void 0 ? i.inviteWithoutSdp : this.inviteWithoutSdp;
3251
3251
  const s = Object.assign({}, i);
3252
3252
  s.params = Object.assign({}, i.params);
3253
3253
  const r = i.anonymous || !1, n = e.contact.toString({
@@ -3266,7 +3266,7 @@ class Ee extends fe {
3266
3266
  const f = Object.assign({}, s.params);
3267
3267
  f.fromTag = this.fromTag;
3268
3268
  const h = (s.extraHeaders || []).slice();
3269
- r && e.configuration.uri && (h.push("P-Preferred-Identity: " + e.configuration.uri.toString()), h.push("Privacy: id")), h.push("Contact: " + n), h.push("Allow: " + ["ACK", "CANCEL", "INVITE", "MESSAGE", "BYE", "OPTIONS", "INFO", "NOTIFY", "REFER"].toString()), e.configuration.sipExtension100rel === W.Required && h.push("Require: 100rel"), e.configuration.sipExtensionReplaces === W.Required && h.push("Require: replaces"), s.extraHeaders = h;
3269
+ r && e.configuration.uri && (h.push("P-Preferred-Identity: " + e.configuration.uri.toString()), h.push("Privacy: id")), h.push("Contact: " + n), h.push("Allow: " + ["ACK", "CANCEL", "INVITE", "MESSAGE", "BYE", "OPTIONS", "INFO", "NOTIFY", "REFER"].toString()), e.configuration.sipExtension100rel === K.Required && h.push("Require: 100rel"), e.configuration.sipExtensionReplaces === K.Required && h.push("Require: replaces"), s.extraHeaders = h;
3270
3270
  const w = void 0;
3271
3271
  this.outgoingRequestMessage = e.userAgentCore.makeOutgoingRequestMessage(v.INVITE, t, a, d, f, h, w), this._contact = n, this._referralInviterOptions = s, this._renderbody = i.renderbody, this._rendertype = i.rendertype, i.sessionDescriptionHandlerModifiers && (this.sessionDescriptionHandlerModifiers = i.sessionDescriptionHandlerModifiers), i.sessionDescriptionHandlerOptions && (this.sessionDescriptionHandlerOptions = i.sessionDescriptionHandlerOptions), i.sessionDescriptionHandlerModifiersReInvite && (this.sessionDescriptionHandlerModifiersReInvite = i.sessionDescriptionHandlerModifiersReInvite), i.sessionDescriptionHandlerOptionsReInvite && (this.sessionDescriptionHandlerOptionsReInvite = i.sessionDescriptionHandlerOptionsReInvite), this._id = this.outgoingRequestMessage.callId + this.fromTag, this.userAgent._sessions[this._id] = this;
3272
3272
  }
@@ -3339,7 +3339,7 @@ class Ee extends fe {
3339
3339
  if (i && i < 200 || i > 699)
3340
3340
  throw new TypeError("Invalid statusCode: " + i);
3341
3341
  if (i) {
3342
- const r = i, n = Ae(i) || s;
3342
+ const r = i, n = Pe(i) || s;
3343
3343
  return "SIP;cause=" + r + ';text="' + n + '"';
3344
3344
  }
3345
3345
  }
@@ -3531,7 +3531,7 @@ class Ee extends fe {
3531
3531
  notifyReferer(e) {
3532
3532
  if (!this._referred)
3533
3533
  return;
3534
- if (!(this._referred instanceof fe))
3534
+ if (!(this._referred instanceof me))
3535
3535
  throw new Error("Referred session not instance of session");
3536
3536
  if (!this._referred.dialog)
3537
3537
  return;
@@ -3716,7 +3716,7 @@ class Ee extends fe {
3716
3716
  }
3717
3717
  }
3718
3718
  }
3719
- class qt {
3719
+ class Bt {
3720
3720
  /**
3721
3721
  * Constructs a new instance of the `Messager` class.
3722
3722
  * @param userAgent - User agent. See {@link UserAgent} for details.
@@ -3747,29 +3747,29 @@ class qt {
3747
3747
  return this.userAgent.userAgentCore.request(this.request, e.requestDelegate), Promise.resolve();
3748
3748
  }
3749
3749
  }
3750
- var R;
3750
+ var _;
3751
3751
  (function(o) {
3752
3752
  o.Initial = "Initial", o.Registered = "Registered", o.Unregistered = "Unregistered", o.Terminated = "Terminated";
3753
- })(R = R || (R = {}));
3754
- class J {
3753
+ })(_ = _ || (_ = {}));
3754
+ class Z {
3755
3755
  /**
3756
3756
  * Constructs a new instance of the `Registerer` class.
3757
3757
  * @param userAgent - User agent. See {@link UserAgent} for details.
3758
3758
  * @param options - Options bucket. See {@link RegistererOptions} for details.
3759
3759
  */
3760
3760
  constructor(e, t = {}) {
3761
- this.disposed = !1, this._contacts = [], this._retryAfter = void 0, this._state = R.Initial, this._waiting = !1, this._stateEventEmitter = new ve(), this._waitingEventEmitter = new ve(), this.userAgent = e;
3761
+ this.disposed = !1, this._contacts = [], this._retryAfter = void 0, this._state = _.Initial, this._waiting = !1, this._stateEventEmitter = new Ce(), this._waitingEventEmitter = new Ce(), this.userAgent = e;
3762
3762
  const i = e.configuration.uri.clone();
3763
- if (i.user = void 0, this.options = Object.assign(Object.assign(Object.assign({}, J.defaultOptions()), { registrar: i }), J.stripUndefinedProperties(t)), this.options.extraContactHeaderParams = (this.options.extraContactHeaderParams || []).slice(), this.options.extraHeaders = (this.options.extraHeaders || []).slice(), !this.options.registrar)
3763
+ if (i.user = void 0, this.options = Object.assign(Object.assign(Object.assign({}, Z.defaultOptions()), { registrar: i }), Z.stripUndefinedProperties(t)), this.options.extraContactHeaderParams = (this.options.extraContactHeaderParams || []).slice(), this.options.extraHeaders = (this.options.extraHeaders || []).slice(), !this.options.registrar)
3764
3764
  throw new Error("Registrar undefined.");
3765
3765
  if (this.options.registrar = this.options.registrar.clone(), this.options.regId && !this.options.instanceId ? this.options.instanceId = this.userAgent.instanceId : !this.options.regId && this.options.instanceId && (this.options.regId = 1), this.options.instanceId && P.parse(this.options.instanceId, "uuid") === -1)
3766
3766
  throw new Error("Invalid instanceId.");
3767
3767
  if (this.options.regId && this.options.regId < 0)
3768
3768
  throw new Error("Invalid regId.");
3769
3769
  const s = this.options.registrar, r = this.options.params && this.options.params.fromUri || e.userAgentCore.configuration.aor, n = this.options.params && this.options.params.toUri || e.configuration.uri, a = this.options.params || {}, d = (t.extraHeaders || []).slice();
3770
- if (this.request = e.userAgentCore.makeOutgoingRequestMessage(v.REGISTER, s, r, n, a, d, void 0), this.expires = this.options.expires || J.defaultExpires, this.expires < 0)
3770
+ if (this.request = e.userAgentCore.makeOutgoingRequestMessage(v.REGISTER, s, r, n, a, d, void 0), this.expires = this.options.expires || Z.defaultExpires, this.expires < 0)
3771
3771
  throw new Error("Invalid expires.");
3772
- if (this.refreshFrequency = this.options.refreshFrequency || J.defaultRefreshFrequency, this.refreshFrequency < 50 || this.refreshFrequency > 99)
3772
+ if (this.refreshFrequency = this.options.refreshFrequency || Z.defaultRefreshFrequency, this.refreshFrequency < 50 || this.refreshFrequency > 99)
3773
3773
  throw new Error("Invalid refresh frequency. The value represents a percentage of the expiration time and should be between 50 and 99.");
3774
3774
  this.logger = e.getLogger("sip.Registerer"), this.options.logConfiguration && (this.logger.log("Configuration:"), Object.keys(this.options).forEach((f) => {
3775
3775
  const h = this.options[f];
@@ -3779,15 +3779,15 @@ class J {
3779
3779
  /** Default registerer options. */
3780
3780
  static defaultOptions() {
3781
3781
  return {
3782
- expires: J.defaultExpires,
3782
+ expires: Z.defaultExpires,
3783
3783
  extraContactHeaderParams: [],
3784
3784
  extraHeaders: [],
3785
3785
  logConfiguration: !0,
3786
3786
  instanceId: "",
3787
3787
  params: {},
3788
3788
  regId: 0,
3789
- registrar: new Z("sip", "anonymous", "anonymous.invalid"),
3790
- refreshFrequency: J.defaultRefreshFrequency
3789
+ registrar: new X("sip", "anonymous", "anonymous.invalid"),
3790
+ refreshFrequency: Z.defaultRefreshFrequency
3791
3791
  };
3792
3792
  }
3793
3793
  /**
@@ -3851,7 +3851,7 @@ class J {
3851
3851
  dispose() {
3852
3852
  return this.disposed ? Promise.resolve() : (this.disposed = !0, this.logger.log(`Registerer ${this.id} in state ${this.state} is being disposed`), delete this.userAgent._registerers[this.id], new Promise((e) => {
3853
3853
  const t = () => {
3854
- if (!this.waiting && this._state === R.Registered) {
3854
+ if (!this.waiting && this._state === _.Registered) {
3855
3855
  this.stateChange.addListener(() => {
3856
3856
  this.terminated(), e();
3857
3857
  }, { once: !0 }), this.unregister();
@@ -3871,13 +3871,13 @@ class J {
3871
3871
  * Rejects with `RequestPendingError` if a REGISTER request is already in progress.
3872
3872
  */
3873
3873
  register(e = {}) {
3874
- if (this.state === R.Terminated)
3874
+ if (this.state === _.Terminated)
3875
3875
  throw this.stateError(), new Error("Registerer terminated. Unable to register.");
3876
3876
  if (this.disposed)
3877
3877
  throw this.stateError(), new Error("Registerer disposed. Unable to register.");
3878
3878
  if (this.waiting) {
3879
3879
  this.waitingWarning();
3880
- const s = new be("REGISTER request already in progress, waiting for final response");
3880
+ const s = new Te("REGISTER request already in progress, waiting for final response");
3881
3881
  return Promise.reject(s);
3882
3882
  }
3883
3883
  e.requestOptions && (this.options = Object.assign(Object.assign({}, this.options), e.requestOptions));
@@ -3896,7 +3896,7 @@ class J {
3896
3896
  for (; n--; ) {
3897
3897
  if (a = s.message.parseHeader("contact", n), !a)
3898
3898
  throw new Error("Contact undefined");
3899
- if (this.userAgent.contact.pubGruu && Ze(a.uri, this.userAgent.contact.pubGruu)) {
3899
+ if (this.userAgent.contact.pubGruu && it(a.uri, this.userAgent.contact.pubGruu)) {
3900
3900
  r = Number(a.getParam("expires"));
3901
3901
  break;
3902
3902
  }
@@ -3905,7 +3905,7 @@ class J {
3905
3905
  r = Number(a.getParam("expires"));
3906
3906
  break;
3907
3907
  }
3908
- } else if (Ze(a.uri, this.userAgent.contact.uri)) {
3908
+ } else if (it(a.uri, this.userAgent.contact.uri)) {
3909
3909
  r = Number(a.getParam("expires"));
3910
3910
  break;
3911
3911
  }
@@ -3964,16 +3964,16 @@ class J {
3964
3964
  * Rejects with `RequestPendingError` if a REGISTER request is already in progress.
3965
3965
  */
3966
3966
  unregister(e = {}) {
3967
- if (this.state === R.Terminated)
3967
+ if (this.state === _.Terminated)
3968
3968
  throw this.stateError(), new Error("Registerer terminated. Unable to register.");
3969
- if (this.disposed && this.state !== R.Registered)
3969
+ if (this.disposed && this.state !== _.Registered)
3970
3970
  throw this.stateError(), new Error("Registerer disposed. Unable to register.");
3971
3971
  if (this.waiting) {
3972
3972
  this.waitingWarning();
3973
- const s = new be("REGISTER request already in progress, waiting for final response");
3973
+ const s = new Te("REGISTER request already in progress, waiting for final response");
3974
3974
  return Promise.reject(s);
3975
3975
  }
3976
- this._state !== R.Registered && !e.all && this.logger.warn("Not currently registered, but sending an unregister anyway.");
3976
+ this._state !== _.Registered && !e.all && this.logger.warn("Not currently registered, but sending an unregister anyway.");
3977
3977
  const t = (e.requestOptions && e.requestOptions.extraHeaders || []).slice();
3978
3978
  this.request.extraHeaders = t, e.all ? (t.push("Contact: *"), t.push("Expires: 0")) : t.push("Contact: " + this.generateContactHeader(0)), this.request.cseq++, this.request.setHeader("cseq", this.request.cseq + " REGISTER"), this.registrationTimer !== void 0 && (clearTimeout(this.registrationTimer), this.registrationTimer = void 0), this.waitingToggle(!0);
3979
3979
  const i = this.userAgent.userAgentCore.register(this.request, {
@@ -4018,19 +4018,19 @@ class J {
4018
4018
  this.registrationTimer = void 0, this.register();
4019
4019
  }, this.refreshFrequency / 100 * e * 1e3), this.registrationExpiredTimer = setTimeout(() => {
4020
4020
  this.logger.warn("Registration expired"), this.unregistered();
4021
- }, e * 1e3), this._state !== R.Registered && this.stateTransition(R.Registered);
4021
+ }, e * 1e3), this._state !== _.Registered && this.stateTransition(_.Registered);
4022
4022
  }
4023
4023
  /**
4024
4024
  * Helper function, called when unregistered.
4025
4025
  */
4026
4026
  unregistered() {
4027
- this.clearTimers(), this._state !== R.Unregistered && this.stateTransition(R.Unregistered);
4027
+ this.clearTimers(), this._state !== _.Unregistered && this.stateTransition(_.Unregistered);
4028
4028
  }
4029
4029
  /**
4030
4030
  * Helper function, called when terminated.
4031
4031
  */
4032
4032
  terminated() {
4033
- this.clearTimers(), this._state !== R.Terminated && this.stateTransition(R.Terminated);
4033
+ this.clearTimers(), this._state !== _.Terminated && this.stateTransition(_.Terminated);
4034
4034
  }
4035
4035
  /**
4036
4036
  * Transition registration state.
@@ -4040,22 +4040,22 @@ class J {
4040
4040
  throw new Error(`Invalid state transition from ${this._state} to ${e}`);
4041
4041
  };
4042
4042
  switch (this._state) {
4043
- case R.Initial:
4044
- e !== R.Registered && e !== R.Unregistered && e !== R.Terminated && t();
4043
+ case _.Initial:
4044
+ e !== _.Registered && e !== _.Unregistered && e !== _.Terminated && t();
4045
4045
  break;
4046
- case R.Registered:
4047
- e !== R.Unregistered && e !== R.Terminated && t();
4046
+ case _.Registered:
4047
+ e !== _.Unregistered && e !== _.Terminated && t();
4048
4048
  break;
4049
- case R.Unregistered:
4050
- e !== R.Registered && e !== R.Terminated && t();
4049
+ case _.Unregistered:
4050
+ e !== _.Registered && e !== _.Terminated && t();
4051
4051
  break;
4052
- case R.Terminated:
4052
+ case _.Terminated:
4053
4053
  t();
4054
4054
  break;
4055
4055
  default:
4056
4056
  throw new Error("Unrecognized state.");
4057
4057
  }
4058
- this._state = e, this.logger.log(`Registration transitioned to state ${this._state}`), this._stateEventEmitter.emit(this._state), e === R.Terminated && this.dispose();
4058
+ this._state = e, this.logger.log(`Registration transitioned to state ${this._state}`), this._stateEventEmitter.emit(this._state), e === _.Terminated && this.dispose();
4059
4059
  }
4060
4060
  /** True if the registerer is currently waiting for final response to a REGISTER request. */
4061
4061
  get waiting() {
@@ -4080,16 +4080,16 @@ class J {
4080
4080
  }
4081
4081
  /** Hopefully helpful as the standard behavior has been found to be unexpected. */
4082
4082
  stateError() {
4083
- let t = `An attempt was made to send a REGISTER request when the Registerer ${this.state === R.Terminated ? "is in 'Terminated' state" : "has been disposed"}.`;
4083
+ let t = `An attempt was made to send a REGISTER request when the Registerer ${this.state === _.Terminated ? "is in 'Terminated' state" : "has been disposed"}.`;
4084
4084
  t += " The Registerer transitions to 'Terminated' when Registerer.dispose() is called.", t += " Perhaps you called UserAgent.stop() which dipsoses of all Registerers?", this.logger.error(t);
4085
4085
  }
4086
4086
  }
4087
- J.defaultExpires = 600;
4088
- J.defaultRefreshFrequency = 99;
4089
- var x;
4087
+ Z.defaultExpires = 600;
4088
+ Z.defaultRefreshFrequency = 99;
4089
+ var R;
4090
4090
  (function(o) {
4091
4091
  o.Initial = "Initial", o.NotifyWait = "NotifyWait", o.Pending = "Pending", o.Active = "Active", o.Terminated = "Terminated";
4092
- })(x = x || (x = {}));
4092
+ })(R = R || (R = {}));
4093
4093
  var T;
4094
4094
  (function(o) {
4095
4095
  o.Connecting = "Connecting", o.Connected = "Connected", o.Disconnecting = "Disconnecting", o.Disconnected = "Disconnected";
@@ -4205,10 +4205,10 @@ H.hexChars = "0123456789abcdef";
4205
4205
  H.hexOut = [];
4206
4206
  H.onePassHasher = new H();
4207
4207
  H.hashStr("hello") !== "5d41402abc4b2a76b9719d911017c592" && console.error("Md5 self test failed.");
4208
- function te(o) {
4208
+ function se(o) {
4209
4209
  return H.hashStr(o);
4210
4210
  }
4211
- class Ot {
4211
+ class jt {
4212
4212
  /**
4213
4213
  * Constructor.
4214
4214
  * @param loggerFactory - LoggerFactory.
@@ -4245,7 +4245,7 @@ class Ot {
4245
4245
  return this.logger.warn("challenge without Digest qop different than 'auth' or 'auth-int', authentication aborted"), !1;
4246
4246
  else
4247
4247
  this.qop = void 0;
4248
- return this.method = e.method, this.uri = e.ruri, this.cnonce = ce(12), this.nc += 1, this.updateNcHex(), this.nc === 4294967296 && (this.nc = 1, this.ncHex = "00000001"), this.calculateResponse(i), !0;
4248
+ return this.method = e.method, this.uri = e.ruri, this.cnonce = le(12), this.nc += 1, this.updateNcHex(), this.nc === 4294967296 && (this.nc = 1, this.ncHex = "00000001"), this.calculateResponse(i), !0;
4249
4249
  }
4250
4250
  /**
4251
4251
  * Return the Proxy-Authorization or WWW-Authorization header value.
@@ -4268,14 +4268,14 @@ class Ot {
4268
4268
  */
4269
4269
  calculateResponse(e) {
4270
4270
  let t, i;
4271
- t = this.ha1, (t === "" || t === void 0) && (t = te(this.username + ":" + this.realm + ":" + this.password)), this.qop === "auth" ? (i = te(this.method + ":" + this.uri), this.response = te(t + ":" + this.nonce + ":" + this.ncHex + ":" + this.cnonce + ":auth:" + i)) : this.qop === "auth-int" ? (i = te(this.method + ":" + this.uri + ":" + te(e || "")), this.response = te(t + ":" + this.nonce + ":" + this.ncHex + ":" + this.cnonce + ":auth-int:" + i)) : this.qop === void 0 && (i = te(this.method + ":" + this.uri), this.response = te(t + ":" + this.nonce + ":" + i));
4271
+ t = this.ha1, (t === "" || t === void 0) && (t = se(this.username + ":" + this.realm + ":" + this.password)), this.qop === "auth" ? (i = se(this.method + ":" + this.uri), this.response = se(t + ":" + this.nonce + ":" + this.ncHex + ":" + this.cnonce + ":auth:" + i)) : this.qop === "auth-int" ? (i = se(this.method + ":" + this.uri + ":" + se(e || "")), this.response = se(t + ":" + this.nonce + ":" + this.ncHex + ":" + this.cnonce + ":auth-int:" + i)) : this.qop === void 0 && (i = se(this.method + ":" + this.uri), this.response = se(t + ":" + this.nonce + ":" + i));
4272
4272
  }
4273
4273
  }
4274
4274
  var M;
4275
4275
  (function(o) {
4276
4276
  o[o.error = 0] = "error", o[o.warn = 1] = "warn", o[o.log = 2] = "log", o[o.debug = 3] = "debug";
4277
4277
  })(M = M || (M = {}));
4278
- class Qe {
4278
+ class rt {
4279
4279
  constructor(e, t, i) {
4280
4280
  this.logger = e, this.category = t, this.label = i;
4281
4281
  }
@@ -4301,7 +4301,7 @@ class Qe {
4301
4301
  this.logger.level = e;
4302
4302
  }
4303
4303
  }
4304
- class Ft {
4304
+ class Vt {
4305
4305
  constructor() {
4306
4306
  this.builtinEnabled = !0, this._level = M.log, this.loggers = {}, this.logger = this.getLogger("sip:loggerfactory");
4307
4307
  }
@@ -4320,11 +4320,11 @@ class Ft {
4320
4320
  }
4321
4321
  getLogger(e, t) {
4322
4322
  if (t && this.level === 3)
4323
- return new Qe(this, e, t);
4323
+ return new rt(this, e, t);
4324
4324
  if (this.loggers[e])
4325
4325
  return this.loggers[e];
4326
4326
  {
4327
- const i = new Qe(this, e);
4327
+ const i = new rt(this, e);
4328
4328
  return this.loggers[e] = i, i;
4329
4329
  }
4330
4330
  }
@@ -4354,7 +4354,7 @@ class Ft {
4354
4354
  }
4355
4355
  }
4356
4356
  }
4357
- var Re;
4357
+ var Ae;
4358
4358
  (function(o) {
4359
4359
  function e(s, r) {
4360
4360
  let n = r, a = 0, d = 0;
@@ -4425,7 +4425,7 @@ var Re;
4425
4425
  s.setHeader("content-type", h), w = s.parseHeader("content-type");
4426
4426
  break;
4427
4427
  case "cseq":
4428
- s.setHeader("cseq", h), w = s.parseHeader("cseq"), w && (s.cseq = w.value), s instanceof oe && (s.method = w.method);
4428
+ s.setHeader("cseq", h), w = s.parseHeader("cseq"), w && (s.cseq = w.value), s instanceof ce && (s.method = w.method);
4429
4429
  break;
4430
4430
  case "max-forwards":
4431
4431
  s.setHeader("max-forwards", h), w = s.parseHeader("max-forwards");
@@ -4460,7 +4460,7 @@ var Re;
4460
4460
  if (f === -1) {
4461
4461
  r.warn('error parsing first line of SIP message: "' + d + '"');
4462
4462
  return;
4463
- } else f.status_code ? (h = new oe(), h.statusCode = f.status_code, h.reasonPhrase = f.reason_phrase) : (h = new ge(), h.method = f.method, h.ruri = f.uri);
4463
+ } else f.status_code ? (h = new ce(), h.statusCode = f.status_code, h.reasonPhrase = f.reason_phrase) : (h = new pe(), h.method = f.method, h.ruri = f.uri);
4464
4464
  h.data = s, n = a + 2;
4465
4465
  let w;
4466
4466
  for (; ; ) {
@@ -4481,23 +4481,23 @@ var Re;
4481
4481
  return h.hasHeader("content-length") ? h.body = s.substr(w, Number(h.getHeader("content-length"))) : h.body = s.substring(w), h;
4482
4482
  }
4483
4483
  o.parseMessage = i;
4484
- })(Re = Re || (Re = {}));
4485
- function ut(o, e) {
4484
+ })(Ae = Ae || (Ae = {}));
4485
+ function yt(o, e) {
4486
4486
  if (e.statusCode < 100 || e.statusCode > 699)
4487
4487
  throw new TypeError("Invalid statusCode: " + e.statusCode);
4488
- const i = e.reasonPhrase ? e.reasonPhrase : Ae(e.statusCode);
4488
+ const i = e.reasonPhrase ? e.reasonPhrase : Pe(e.statusCode);
4489
4489
  let s = "SIP/2.0 " + e.statusCode + " " + i + `\r
4490
4490
  `;
4491
4491
  e.statusCode >= 100 && e.statusCode < 200, e.statusCode;
4492
4492
  const r = "From: " + o.getHeader("From") + `\r
4493
4493
  `, n = "Call-ID: " + o.callId + `\r
4494
4494
  `, a = "CSeq: " + o.cseq + " " + o.method + `\r
4495
- `, d = o.getHeaders("via").reduce((_, I) => _ + "Via: " + I + `\r
4495
+ `, d = o.getHeaders("via").reduce((x, I) => x + "Via: " + I + `\r
4496
4496
  `, "");
4497
4497
  let f = "To: " + o.getHeader("to");
4498
4498
  if (e.statusCode > 100 && !o.parseHeader("to").hasParam("tag")) {
4499
- let _ = e.toTag;
4500
- _ || (_ = $e()), f += ";tag=" + _;
4499
+ let x = e.toTag;
4500
+ x || (x = He()), f += ";tag=" + x;
4501
4501
  }
4502
4502
  f += `\r
4503
4503
  `;
@@ -4508,20 +4508,20 @@ function ut(o, e) {
4508
4508
  e.userAgent && (w = "User-Agent: " + e.userAgent + `\r
4509
4509
  `);
4510
4510
  let S = "";
4511
- return e.extraHeaders && (S = e.extraHeaders.reduce((_, I) => _ + I.trim() + `\r
4511
+ return e.extraHeaders && (S = e.extraHeaders.reduce((x, I) => x + I.trim() + `\r
4512
4512
  `, "")), s += d, s += r, s += f, s += a, s += n, s += h, s += w, s += S, e.body ? (s += "Content-Type: " + e.body.contentType + `\r
4513
- `, s += "Content-Length: " + Se(e.body.content) + `\r
4513
+ `, s += "Content-Length: " + Ee(e.body.content) + `\r
4514
4514
  \r
4515
4515
  `, s += e.body.content) : s += `Content-Length: 0\r
4516
4516
  \r
4517
4517
  `, { message: s };
4518
4518
  }
4519
- class Oe extends he {
4519
+ class Le extends ge {
4520
4520
  constructor(e) {
4521
4521
  super(e || "Unspecified transport error.");
4522
4522
  }
4523
4523
  }
4524
- class gt {
4524
+ class bt {
4525
4525
  constructor(e, t, i, s, r) {
4526
4526
  this._transport = e, this._user = t, this._id = i, this._state = s, this.listeners = new Array(), this.logger = t.loggerFactory.getLogger(r, i), this.logger.debug(`Constructing ${this.typeToString()} with id ${this.id}.`);
4527
4527
  }
@@ -4592,10 +4592,10 @@ class gt {
4592
4592
  */
4593
4593
  send(e) {
4594
4594
  return this.transport.send(e).catch((t) => {
4595
- if (t instanceof Oe)
4595
+ if (t instanceof Le)
4596
4596
  throw this.onTransportError(t), t;
4597
4597
  let i;
4598
- throw t && typeof t.message == "string" ? i = new Oe(t.message) : i = new Oe(), this.onTransportError(i), i;
4598
+ throw t && typeof t.message == "string" ? i = new Le(t.message) : i = new Le(), this.onTransportError(i), i;
4599
4599
  });
4600
4600
  }
4601
4601
  setState(e) {
@@ -4605,7 +4605,7 @@ class gt {
4605
4605
  return "UnknownType";
4606
4606
  }
4607
4607
  }
4608
- class ft extends gt {
4608
+ class vt extends bt {
4609
4609
  constructor(e, t, i, s, r) {
4610
4610
  super(t, i, e.viaBranch, s, r), this._request = e, this.user = i;
4611
4611
  }
@@ -4618,7 +4618,7 @@ var g;
4618
4618
  (function(o) {
4619
4619
  o.Accepted = "Accepted", o.Calling = "Calling", o.Completed = "Completed", o.Confirmed = "Confirmed", o.Proceeding = "Proceeding", o.Terminated = "Terminated", o.Trying = "Trying";
4620
4620
  })(g = g || (g = {}));
4621
- class U extends ft {
4621
+ class L extends vt {
4622
4622
  /**
4623
4623
  * Constructor.
4624
4624
  * Upon construction, a "100 Trying" reply will be immediately sent.
@@ -4848,9 +4848,9 @@ class U extends ft {
4848
4848
  this.logger.debug(`Timer L expired for INVITE server transaction ${this.id}.`), this.state === g.Accepted && this.stateTransition(g.Terminated);
4849
4849
  }
4850
4850
  }
4851
- class De extends gt {
4851
+ class Me extends bt {
4852
4852
  constructor(e, t, i, s, r) {
4853
- super(t, i, De.makeId(e), s, r), this._request = e, this.user = i, e.setViaHeader(this.id, t.protocol);
4853
+ super(t, i, Me.makeId(e), s, r), this._request = e, this.user = i, e.setViaHeader(this.id, t.protocol);
4854
4854
  }
4855
4855
  static makeId(e) {
4856
4856
  if (e.method === "CANCEL") {
@@ -4878,7 +4878,7 @@ class De extends gt {
4878
4878
  this.user.onRequestTimeout && this.user.onRequestTimeout();
4879
4879
  }
4880
4880
  }
4881
- class B extends De {
4881
+ class j extends Me {
4882
4882
  /**
4883
4883
  * Constructor
4884
4884
  * Upon construction, the outgoing request's Via header is updated by calling `setViaHeader`.
@@ -5010,7 +5010,7 @@ class B extends De {
5010
5010
  this.state === g.Completed && this.stateTransition(g.Terminated);
5011
5011
  }
5012
5012
  }
5013
- class pe {
5013
+ class we {
5014
5014
  /**
5015
5015
  * Dialog constructor.
5016
5016
  * @param core - User agent core.
@@ -5031,7 +5031,7 @@ class pe {
5031
5031
  const s = t.getHeaders("record-route").reverse(), r = t.parseHeader("contact");
5032
5032
  if (!r)
5033
5033
  throw new Error("Contact undefined.");
5034
- if (!(r instanceof N))
5034
+ if (!(r instanceof U))
5035
5035
  throw new Error("Contact not instance of NameAddrHeader.");
5036
5036
  const n = r.uri, a = e.cseq, d = void 0, f = e.callId, h = e.fromTag, w = t.toTag;
5037
5037
  if (!f)
@@ -5044,7 +5044,7 @@ class pe {
5044
5044
  throw new Error("From undefined.");
5045
5045
  if (!e.to)
5046
5046
  throw new Error("To undefined.");
5047
- const S = e.from.uri, _ = e.to.uri;
5047
+ const S = e.from.uri, x = e.to.uri;
5048
5048
  if (!t.statusCode)
5049
5049
  throw new Error("Incoming response status code undefined.");
5050
5050
  const I = t.statusCode < 200;
@@ -5057,7 +5057,7 @@ class pe {
5057
5057
  localSequenceNumber: a,
5058
5058
  remoteSequenceNumber: d,
5059
5059
  localURI: S,
5060
- remoteURI: _,
5060
+ remoteURI: x,
5061
5061
  remoteTarget: n,
5062
5062
  routeSet: s,
5063
5063
  secure: !1
@@ -5074,9 +5074,9 @@ class pe {
5074
5074
  const r = e.getHeaders("record-route"), n = e.parseHeader("contact");
5075
5075
  if (!n)
5076
5076
  throw new Error("Contact undefined.");
5077
- if (!(n instanceof N))
5077
+ if (!(n instanceof U))
5078
5078
  throw new Error("Contact not instance of NameAddrHeader.");
5079
- const a = n.uri, d = e.cseq, f = void 0, h = e.callId, w = t, S = e.fromTag, _ = e.from.uri, I = e.to.uri;
5079
+ const a = n.uri, d = e.cseq, f = void 0, h = e.callId, w = t, S = e.fromTag, x = e.from.uri, I = e.to.uri;
5080
5080
  return {
5081
5081
  id: h + w + S,
5082
5082
  early: i,
@@ -5086,7 +5086,7 @@ class pe {
5086
5086
  localSequenceNumber: f,
5087
5087
  remoteSequenceNumber: d,
5088
5088
  localURI: I,
5089
- remoteURI: _,
5089
+ remoteURI: x,
5090
5090
  remoteTarget: a,
5091
5091
  routeSet: r,
5092
5092
  secure: !1
@@ -5267,7 +5267,7 @@ class pe {
5267
5267
  return e.method === v.ACK ? !0 : this.remoteSequenceNumber && e.cseq <= this.remoteSequenceNumber ? (this.core.replyStateless(e, { statusCode: 500 }), !1) : !0;
5268
5268
  }
5269
5269
  }
5270
- class ne extends De {
5270
+ class ae extends Me {
5271
5271
  /**
5272
5272
  * Constructor.
5273
5273
  * Upon construction, the outgoing request's Via header is updated by calling `setViaHeader`.
@@ -5528,8 +5528,8 @@ class O {
5528
5528
  callId: this.message.callId,
5529
5529
  cseq: this.message.cseq
5530
5530
  }, t.extraHeaders);
5531
- return i.branch = this.message.branch, this.message.headers.Route && (i.headers.Route = this.message.headers.Route), e && i.setHeader("Reason", e), this.transaction.state === g.Proceeding ? new O(B, this.core, i) : this.transaction.addStateChangeListener(() => {
5532
- this.transaction && this.transaction.state === g.Proceeding && new O(B, this.core, i);
5531
+ return i.branch = this.message.branch, this.message.headers.Route && (i.headers.Route = this.message.headers.Route), e && i.setHeader("Reason", e), this.transaction.state === g.Proceeding ? new O(j, this.core, i) : this.transaction.addStateChangeListener(() => {
5532
+ this.transaction && this.transaction.state === g.Proceeding && new O(j, this.core, i);
5533
5533
  }, { once: !0 }), i;
5534
5534
  }
5535
5535
  /**
@@ -5587,7 +5587,7 @@ class O {
5587
5587
  */
5588
5588
  onRequestTimeout() {
5589
5589
  this.logger.warn("User agent client request timed out. Generating internal 408 Request Timeout.");
5590
- const e = new oe();
5590
+ const e = new ce();
5591
5591
  e.statusCode = 408, e.reasonPhrase = "Request Timeout", this.receiveResponse(e);
5592
5592
  }
5593
5593
  /**
@@ -5605,7 +5605,7 @@ class O {
5605
5605
  */
5606
5606
  onTransportError(e) {
5607
5607
  this.logger.error(e.message), this.logger.error("User agent client request transport error. Generating internal 503 Service Unavailable.");
5608
- const t = new oe();
5608
+ const t = new ce();
5609
5609
  t.statusCode = 503, t.reasonPhrase = "Service Unavailable", this.receiveResponse(t);
5610
5610
  }
5611
5611
  /**
@@ -5653,13 +5653,13 @@ class O {
5653
5653
  this.core.userAgentClients.set(i, this);
5654
5654
  }
5655
5655
  }
5656
- class Nt extends O {
5656
+ class Gt extends O {
5657
5657
  constructor(e, t, i) {
5658
5658
  const s = e.createOutgoingRequestMessage(v.BYE, i);
5659
- super(B, e.userAgentCore, s, t), e.dispose();
5659
+ super(j, e.userAgentCore, s, t), e.dispose();
5660
5660
  }
5661
5661
  }
5662
- class L extends ft {
5662
+ class B extends vt {
5663
5663
  /**
5664
5664
  * Constructor.
5665
5665
  * After construction the transaction will be in the "trying": state and the transaction
@@ -5798,9 +5798,9 @@ class L extends ft {
5798
5798
  this.logger.debug(`Timer J expired for NON-INVITE server transaction ${this.id}.`), this.state === g.Completed && this.stateTransition(g.Terminated);
5799
5799
  }
5800
5800
  }
5801
- class X {
5801
+ class Q {
5802
5802
  constructor(e, t, i, s) {
5803
- this.transactionConstructor = e, this.core = t, this.message = i, this.delegate = s, this.logger = this.loggerFactory.getLogger("sip.user-agent-server"), this.toTag = i.toTag ? i.toTag : $e(), this.init();
5803
+ this.transactionConstructor = e, this.core = t, this.message = i, this.delegate = s, this.logger = this.loggerFactory.getLogger("sip.user-agent-server"), this.toTag = i.toTag ? i.toTag : He(), this.init();
5804
5804
  }
5805
5805
  dispose() {
5806
5806
  this.transaction.dispose();
@@ -5816,7 +5816,7 @@ class X {
5816
5816
  }
5817
5817
  accept(e = { statusCode: 200 }) {
5818
5818
  if (!this.acceptable)
5819
- throw new se(`${this.message.method} not acceptable in state ${this.transaction.state}.`);
5819
+ throw new ne(`${this.message.method} not acceptable in state ${this.transaction.state}.`);
5820
5820
  const t = e.statusCode;
5821
5821
  if (t < 200 || t > 299)
5822
5822
  throw new TypeError(`Invalid statusCode: ${t}`);
@@ -5824,7 +5824,7 @@ class X {
5824
5824
  }
5825
5825
  progress(e = { statusCode: 180 }) {
5826
5826
  if (!this.progressable)
5827
- throw new se(`${this.message.method} not progressable in state ${this.transaction.state}.`);
5827
+ throw new ne(`${this.message.method} not progressable in state ${this.transaction.state}.`);
5828
5828
  const t = e.statusCode;
5829
5829
  if (t < 101 || t > 199)
5830
5830
  throw new TypeError(`Invalid statusCode: ${t}`);
@@ -5832,7 +5832,7 @@ class X {
5832
5832
  }
5833
5833
  redirect(e, t = { statusCode: 302 }) {
5834
5834
  if (!this.redirectable)
5835
- throw new se(`${this.message.method} not redirectable in state ${this.transaction.state}.`);
5835
+ throw new ne(`${this.message.method} not redirectable in state ${this.transaction.state}.`);
5836
5836
  const i = t.statusCode;
5837
5837
  if (i < 300 || i > 399)
5838
5838
  throw new TypeError(`Invalid statusCode: ${i}`);
@@ -5841,7 +5841,7 @@ class X {
5841
5841
  }
5842
5842
  reject(e = { statusCode: 480 }) {
5843
5843
  if (!this.rejectable)
5844
- throw new se(`${this.message.method} not rejectable in state ${this.transaction.state}.`);
5844
+ throw new ne(`${this.message.method} not rejectable in state ${this.transaction.state}.`);
5845
5845
  const t = e.statusCode;
5846
5846
  if (t < 400 || t > 699)
5847
5847
  throw new TypeError(`Invalid statusCode: ${t}`);
@@ -5850,7 +5850,7 @@ class X {
5850
5850
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5851
5851
  trying(e) {
5852
5852
  if (!this.tryingable)
5853
- throw new se(`${this.message.method} not tryingable in state ${this.transaction.state}.`);
5853
+ throw new ne(`${this.message.method} not tryingable in state ${this.transaction.state}.`);
5854
5854
  return this.reply({ statusCode: 100 });
5855
5855
  }
5856
5856
  /**
@@ -5875,37 +5875,37 @@ class X {
5875
5875
  this.delegate && this.delegate.onCancel && this.delegate.onCancel(e);
5876
5876
  }
5877
5877
  get acceptable() {
5878
- if (this.transaction instanceof U)
5879
- return this.transaction.state === g.Proceeding || this.transaction.state === g.Accepted;
5880
5878
  if (this.transaction instanceof L)
5879
+ return this.transaction.state === g.Proceeding || this.transaction.state === g.Accepted;
5880
+ if (this.transaction instanceof B)
5881
5881
  return this.transaction.state === g.Trying || this.transaction.state === g.Proceeding;
5882
5882
  throw new Error("Unknown transaction type.");
5883
5883
  }
5884
5884
  get progressable() {
5885
- if (this.transaction instanceof U)
5886
- return this.transaction.state === g.Proceeding;
5887
5885
  if (this.transaction instanceof L)
5886
+ return this.transaction.state === g.Proceeding;
5887
+ if (this.transaction instanceof B)
5888
5888
  return !1;
5889
5889
  throw new Error("Unknown transaction type.");
5890
5890
  }
5891
5891
  get redirectable() {
5892
- if (this.transaction instanceof U)
5893
- return this.transaction.state === g.Proceeding;
5894
5892
  if (this.transaction instanceof L)
5893
+ return this.transaction.state === g.Proceeding;
5894
+ if (this.transaction instanceof B)
5895
5895
  return this.transaction.state === g.Trying || this.transaction.state === g.Proceeding;
5896
5896
  throw new Error("Unknown transaction type.");
5897
5897
  }
5898
5898
  get rejectable() {
5899
- if (this.transaction instanceof U)
5900
- return this.transaction.state === g.Proceeding;
5901
5899
  if (this.transaction instanceof L)
5900
+ return this.transaction.state === g.Proceeding;
5901
+ if (this.transaction instanceof B)
5902
5902
  return this.transaction.state === g.Trying || this.transaction.state === g.Proceeding;
5903
5903
  throw new Error("Unknown transaction type.");
5904
5904
  }
5905
5905
  get tryingable() {
5906
- if (this.transaction instanceof U)
5907
- return this.transaction.state === g.Proceeding;
5908
5906
  if (this.transaction instanceof L)
5907
+ return this.transaction.state === g.Proceeding;
5908
+ if (this.transaction instanceof B)
5909
5909
  return this.transaction.state === g.Trying;
5910
5910
  throw new Error("Unknown transaction type.");
5911
5911
  }
@@ -5924,7 +5924,7 @@ class X {
5924
5924
  */
5925
5925
  reply(e) {
5926
5926
  !e.toTag && e.statusCode !== 100 && (e.toTag = this.toTag), e.userAgent = e.userAgent || this.core.configuration.userAgentHeaderFieldValue, e.supported = e.supported || this.core.configuration.supportedOptionTagsResponse;
5927
- const t = ut(this.message, e);
5927
+ const t = yt(this.message, e);
5928
5928
  return this.transaction.receiveResponse(e.statusCode, t.message), t;
5929
5929
  }
5930
5930
  init() {
@@ -5942,61 +5942,61 @@ class X {
5942
5942
  this.core.userAgentServers.set(t.id, this);
5943
5943
  }
5944
5944
  }
5945
- class Ut extends X {
5945
+ class Wt extends Q {
5946
5946
  constructor(e, t, i) {
5947
- super(L, e.userAgentCore, t, i);
5947
+ super(B, e.userAgentCore, t, i);
5948
5948
  }
5949
5949
  }
5950
- class Lt extends O {
5950
+ class Kt extends O {
5951
5951
  constructor(e, t, i) {
5952
5952
  const s = e.createOutgoingRequestMessage(v.INFO, i);
5953
- super(B, e.userAgentCore, s, t);
5953
+ super(j, e.userAgentCore, s, t);
5954
5954
  }
5955
5955
  }
5956
- class Bt extends X {
5956
+ class zt extends Q {
5957
5957
  constructor(e, t, i) {
5958
- super(L, e.userAgentCore, t, i);
5958
+ super(B, e.userAgentCore, t, i);
5959
5959
  }
5960
5960
  }
5961
- class pt extends O {
5961
+ class St extends O {
5962
5962
  constructor(e, t, i) {
5963
- super(B, e, t, i);
5963
+ super(j, e, t, i);
5964
5964
  }
5965
5965
  }
5966
- class mt extends X {
5966
+ class Tt extends Q {
5967
5967
  constructor(e, t, i) {
5968
- super(L, e, t, i);
5968
+ super(B, e, t, i);
5969
5969
  }
5970
5970
  }
5971
- class jt extends O {
5971
+ class Yt extends O {
5972
5972
  constructor(e, t, i) {
5973
5973
  const s = e.createOutgoingRequestMessage(v.NOTIFY, i);
5974
- super(B, e.userAgentCore, s, t);
5974
+ super(j, e.userAgentCore, s, t);
5975
5975
  }
5976
5976
  }
5977
- function Vt(o) {
5977
+ function Jt(o) {
5978
5978
  return o.userAgentCore !== void 0;
5979
5979
  }
5980
- class _e extends X {
5980
+ class De extends Q {
5981
5981
  /**
5982
5982
  * NOTIFY UAS constructor.
5983
5983
  * @param dialogOrCore - Dialog for in dialog NOTIFY, UserAgentCore for out of dialog NOTIFY (deprecated).
5984
5984
  * @param message - Incoming NOTIFY request message.
5985
5985
  */
5986
5986
  constructor(e, t, i) {
5987
- const s = Vt(e) ? e.userAgentCore : e;
5988
- super(L, s, t, i);
5987
+ const s = Jt(e) ? e.userAgentCore : e;
5988
+ super(B, s, t, i);
5989
5989
  }
5990
5990
  }
5991
- class Gt extends O {
5991
+ class Zt extends O {
5992
5992
  constructor(e, t, i) {
5993
5993
  const s = e.createOutgoingRequestMessage(v.PRACK, i);
5994
- super(B, e.userAgentCore, s, t), e.signalingStateTransition(s);
5994
+ super(j, e.userAgentCore, s, t), e.signalingStateTransition(s);
5995
5995
  }
5996
5996
  }
5997
- class Wt extends X {
5997
+ class Xt extends Q {
5998
5998
  constructor(e, t, i) {
5999
- super(L, e.userAgentCore, t, i), e.signalingStateTransition(t), this.dialog = e;
5999
+ super(B, e.userAgentCore, t, i), e.signalingStateTransition(t), this.dialog = e;
6000
6000
  }
6001
6001
  /**
6002
6002
  * Update the dialog signaling state on a 2xx response.
@@ -6006,10 +6006,10 @@ class Wt extends X {
6006
6006
  return e.body && this.dialog.signalingStateTransition(e.body), super.accept(e);
6007
6007
  }
6008
6008
  }
6009
- class Kt extends O {
6009
+ class Qt extends O {
6010
6010
  constructor(e, t, i) {
6011
6011
  const s = e.createOutgoingRequestMessage(v.INVITE, i);
6012
- super(ne, e.userAgentCore, s, t), this.delegate = t, e.signalingStateTransition(s), e.reinviteUserAgentClient = this, this.dialog = e;
6012
+ super(ae, e.userAgentCore, s, t), this.delegate = t, e.signalingStateTransition(s), e.reinviteUserAgentClient = this, this.dialog = e;
6013
6013
  }
6014
6014
  receiveResponse(e) {
6015
6015
  if (!this.authenticationGuard(e, this.dialog))
@@ -6049,9 +6049,9 @@ class Kt extends O {
6049
6049
  }
6050
6050
  }
6051
6051
  }
6052
- class zt extends X {
6052
+ class ei extends Q {
6053
6053
  constructor(e, t, i) {
6054
- super(U, e.userAgentCore, t, i), e.reinviteUserAgentServer = this, this.dialog = e;
6054
+ super(L, e.userAgentCore, t, i), e.reinviteUserAgentServer = this, this.dialog = e;
6055
6055
  }
6056
6056
  /**
6057
6057
  * Update the dialog signaling state on a 2xx response.
@@ -6091,36 +6091,36 @@ class zt extends X {
6091
6091
  return this.dialog.signalingStateRollback(), this.dialog.reinviteUserAgentServer = void 0, super.reject(e);
6092
6092
  }
6093
6093
  }
6094
- class Yt extends O {
6094
+ class ti extends O {
6095
6095
  constructor(e, t, i) {
6096
6096
  const s = e.createOutgoingRequestMessage(v.REFER, i);
6097
- super(B, e.userAgentCore, s, t);
6097
+ super(j, e.userAgentCore, s, t);
6098
6098
  }
6099
6099
  }
6100
- function Jt(o) {
6100
+ function ii(o) {
6101
6101
  return o.userAgentCore !== void 0;
6102
6102
  }
6103
- class wt extends X {
6103
+ class Ct extends Q {
6104
6104
  /**
6105
6105
  * REFER UAS constructor.
6106
6106
  * @param dialogOrCore - Dialog for in dialog REFER, UserAgentCore for out of dialog REFER.
6107
6107
  * @param message - Incoming REFER request message.
6108
6108
  */
6109
6109
  constructor(e, t, i) {
6110
- const s = Jt(e) ? e.userAgentCore : e;
6111
- super(L, s, t, i);
6110
+ const s = ii(e) ? e.userAgentCore : e;
6111
+ super(B, s, t, i);
6112
6112
  }
6113
6113
  }
6114
- class Ie extends pe {
6114
+ class ke extends we {
6115
6115
  constructor(e, t, i, s) {
6116
- super(t, i), this.initialTransaction = e, this._signalingState = b.Initial, this.ackWait = !1, this.ackProcessing = !1, this.delegate = s, e instanceof U && (this.ackWait = !0), this.early || this.start2xxRetransmissionTimer(), this.signalingStateTransition(e.request), this.logger = t.loggerFactory.getLogger("sip.invite-dialog"), this.logger.log(`INVITE dialog ${this.id} constructed`);
6116
+ super(t, i), this.initialTransaction = e, this._signalingState = b.Initial, this.ackWait = !1, this.ackProcessing = !1, this.delegate = s, e instanceof L && (this.ackWait = !0), this.early || this.start2xxRetransmissionTimer(), this.signalingStateTransition(e.request), this.logger = t.loggerFactory.getLogger("sip.invite-dialog"), this.logger.log(`INVITE dialog ${this.id} constructed`);
6117
6117
  }
6118
6118
  dispose() {
6119
6119
  super.dispose(), this._signalingState = b.Closed, this._offer = void 0, this._answer = void 0, this.invite2xxTimer && (clearTimeout(this.invite2xxTimer), this.invite2xxTimer = void 0), this.logger.log(`INVITE dialog ${this.id} destroyed`);
6120
6120
  }
6121
6121
  // FIXME: Need real state machine
6122
6122
  get sessionState() {
6123
- return this.early ? V.Early : this.ackWait ? V.AckWait : this._signalingState === b.Closed ? V.Terminated : V.Confirmed;
6123
+ return this.early ? G.Early : this.ackWait ? G.AckWait : this._signalingState === b.Closed ? G.Terminated : G.Confirmed;
6124
6124
  }
6125
6125
  /** The state of the offer/answer exchange. */
6126
6126
  get signalingState() {
@@ -6161,11 +6161,11 @@ class Ie extends pe {
6161
6161
  this.logger.log(`INVITE dialog ${this.id} sending ACK request`);
6162
6162
  let t;
6163
6163
  if (this.reinviteUserAgentClient) {
6164
- if (!(this.reinviteUserAgentClient.transaction instanceof ne))
6164
+ if (!(this.reinviteUserAgentClient.transaction instanceof ae))
6165
6165
  throw new Error("Transaction not instance of InviteClientTransaction.");
6166
6166
  t = this.reinviteUserAgentClient.transaction, this.reinviteUserAgentClient = void 0;
6167
6167
  } else {
6168
- if (!(this.initialTransaction instanceof ne))
6168
+ if (!(this.initialTransaction instanceof ae))
6169
6169
  throw new Error("Initial transaction not instance of InviteClientTransaction.");
6170
6170
  t = this.initialTransaction;
6171
6171
  }
@@ -6214,13 +6214,13 @@ class Ie extends pe {
6214
6214
  * while it's waiting on the ACK for its 2xx response.
6215
6215
  */
6216
6216
  bye(e, t) {
6217
- if (this.logger.log(`INVITE dialog ${this.id} sending BYE request`), this.initialTransaction instanceof U) {
6217
+ if (this.logger.log(`INVITE dialog ${this.id} sending BYE request`), this.initialTransaction instanceof L) {
6218
6218
  if (this.early)
6219
6219
  throw new Error("UAS MUST NOT send a BYE on early dialogs.");
6220
6220
  if (this.ackWait && this.initialTransaction.state !== g.Terminated)
6221
6221
  throw new Error("UAS MUST NOT send a BYE on a confirmed dialog until it has received an ACK for its 2xx response or until the server transaction times out.");
6222
6222
  }
6223
- return new Nt(this, e, t);
6223
+ return new Gt(this, e, t);
6224
6224
  }
6225
6225
  /**
6226
6226
  * An INFO request can be associated with an Info Package (see
@@ -6235,7 +6235,7 @@ class Ie extends pe {
6235
6235
  info(e, t) {
6236
6236
  if (this.logger.log(`INVITE dialog ${this.id} sending INFO request`), this.early)
6237
6237
  throw new Error("Dialog not confirmed.");
6238
- return new Lt(this, e, t);
6238
+ return new Kt(this, e, t);
6239
6239
  }
6240
6240
  /**
6241
6241
  * Modifying an Existing Session
@@ -6265,7 +6265,7 @@ class Ie extends pe {
6265
6265
  throw new Error("There is an ongoing re-INVITE client transaction.");
6266
6266
  if (this.reinviteUserAgentServer)
6267
6267
  throw new Error("There is an ongoing re-INVITE server transaction.");
6268
- return new Kt(this, e, t);
6268
+ return new Qt(this, e, t);
6269
6269
  }
6270
6270
  /**
6271
6271
  * A UAC MAY associate a MESSAGE request with an existing dialog. If a
@@ -6278,7 +6278,7 @@ class Ie extends pe {
6278
6278
  if (this.logger.log(`INVITE dialog ${this.id} sending MESSAGE request`), this.early)
6279
6279
  throw new Error("Dialog not confirmed.");
6280
6280
  const i = this.createOutgoingRequestMessage(v.MESSAGE, t);
6281
- return new pt(this.core, i, e);
6281
+ return new St(this.core, i, e);
6282
6282
  }
6283
6283
  /**
6284
6284
  * The NOTIFY mechanism defined in [2] MUST be used to inform the agent
@@ -6289,7 +6289,7 @@ class Ie extends pe {
6289
6289
  notify(e, t) {
6290
6290
  if (this.logger.log(`INVITE dialog ${this.id} sending NOTIFY request`), this.early)
6291
6291
  throw new Error("Dialog not confirmed.");
6292
- return new jt(this, e, t);
6292
+ return new Yt(this, e, t);
6293
6293
  }
6294
6294
  /**
6295
6295
  * Assuming the response is to be transmitted reliably, the UAC MUST
@@ -6302,7 +6302,7 @@ class Ie extends pe {
6302
6302
  * @param options - Options bucket.
6303
6303
  */
6304
6304
  prack(e, t) {
6305
- return this.logger.log(`INVITE dialog ${this.id} sending PRACK request`), new Gt(this, e, t);
6305
+ return this.logger.log(`INVITE dialog ${this.id} sending PRACK request`), new Zt(this, e, t);
6306
6306
  }
6307
6307
  /**
6308
6308
  * REFER is a SIP request and is constructed as defined in [1]. A REFER
@@ -6313,7 +6313,7 @@ class Ie extends pe {
6313
6313
  refer(e, t) {
6314
6314
  if (this.logger.log(`INVITE dialog ${this.id} sending REFER request`), this.early)
6315
6315
  throw new Error("Dialog not confirmed.");
6316
- return new Yt(this, e, t);
6316
+ return new ti(this, e, t);
6317
6317
  }
6318
6318
  /**
6319
6319
  * Requests sent within a dialog, as any other requests, are atomic. If
@@ -6326,7 +6326,7 @@ class Ie extends pe {
6326
6326
  receiveRequest(e) {
6327
6327
  if (this.logger.log(`INVITE dialog ${this.id} received ${e.method} request`), e.method === v.ACK) {
6328
6328
  if (this.ackWait) {
6329
- if (this.initialTransaction instanceof ne) {
6329
+ if (this.initialTransaction instanceof ae) {
6330
6330
  this.logger.warn(`INVITE dialog ${this.id} received unexpected ${e.method} request, dropping.`);
6331
6331
  return;
6332
6332
  }
@@ -6384,20 +6384,20 @@ class Ie extends pe {
6384
6384
  const t = e.parseHeader("contact");
6385
6385
  if (!t)
6386
6386
  throw new Error("Contact undefined.");
6387
- if (!(t instanceof N))
6387
+ if (!(t instanceof U))
6388
6388
  throw new Error("Contact not instance of NameAddrHeader.");
6389
6389
  this.dialogState.remoteTarget = t.uri;
6390
6390
  }
6391
6391
  switch (e.method) {
6392
6392
  case v.BYE:
6393
6393
  {
6394
- const t = new Ut(this, e);
6394
+ const t = new Wt(this, e);
6395
6395
  this.delegate && this.delegate.onBye ? this.delegate.onBye(t) : t.accept(), this.dispose();
6396
6396
  }
6397
6397
  break;
6398
6398
  case v.INFO:
6399
6399
  {
6400
- const t = new Bt(this, e);
6400
+ const t = new zt(this, e);
6401
6401
  this.delegate && this.delegate.onInfo ? this.delegate.onInfo(t) : t.reject({
6402
6402
  statusCode: 469,
6403
6403
  extraHeaders: ["Recv-Info:"]
@@ -6406,31 +6406,31 @@ class Ie extends pe {
6406
6406
  break;
6407
6407
  case v.INVITE:
6408
6408
  {
6409
- const t = new zt(this, e);
6409
+ const t = new ei(this, e);
6410
6410
  this.signalingStateTransition(e), this.delegate && this.delegate.onInvite ? this.delegate.onInvite(t) : t.reject({ statusCode: 488 });
6411
6411
  }
6412
6412
  break;
6413
6413
  case v.MESSAGE:
6414
6414
  {
6415
- const t = new mt(this.core, e);
6415
+ const t = new Tt(this.core, e);
6416
6416
  this.delegate && this.delegate.onMessage ? this.delegate.onMessage(t) : t.accept();
6417
6417
  }
6418
6418
  break;
6419
6419
  case v.NOTIFY:
6420
6420
  {
6421
- const t = new _e(this, e);
6421
+ const t = new De(this, e);
6422
6422
  this.delegate && this.delegate.onNotify ? this.delegate.onNotify(t) : t.accept();
6423
6423
  }
6424
6424
  break;
6425
6425
  case v.PRACK:
6426
6426
  {
6427
- const t = new Wt(this, e);
6427
+ const t = new Xt(this, e);
6428
6428
  this.delegate && this.delegate.onPrack ? this.delegate.onPrack(t) : t.accept();
6429
6429
  }
6430
6430
  break;
6431
6431
  case v.REFER:
6432
6432
  {
6433
- const t = new wt(this, e);
6433
+ const t = new Ct(this, e);
6434
6434
  this.delegate && this.delegate.onRefer ? this.delegate.onRefer(t) : t.reject();
6435
6435
  }
6436
6436
  break;
@@ -6469,9 +6469,9 @@ class Ie extends pe {
6469
6469
  * @param message - The message to base the update off of.
6470
6470
  */
6471
6471
  signalingStateTransition(e) {
6472
- const t = ye(e);
6472
+ const t = Se(e);
6473
6473
  if (!(!t || t.contentDisposition !== "session")) {
6474
- if (this._signalingState === b.Stable && (this._rollbackOffer = this._offer, this._rollbackAnswer = this._answer), e instanceof ge)
6474
+ if (this._signalingState === b.Stable && (this._rollbackOffer = this._offer, this._rollbackAnswer = this._answer), e instanceof pe)
6475
6475
  switch (this._signalingState) {
6476
6476
  case b.Initial:
6477
6477
  case b.Stable:
@@ -6487,7 +6487,7 @@ class Ie extends pe {
6487
6487
  default:
6488
6488
  throw new Error("Unexpected signaling state.");
6489
6489
  }
6490
- if (e instanceof oe)
6490
+ if (e instanceof ce)
6491
6491
  switch (this._signalingState) {
6492
6492
  case b.Initial:
6493
6493
  case b.Stable:
@@ -6503,7 +6503,7 @@ class Ie extends pe {
6503
6503
  default:
6504
6504
  throw new Error("Unexpected signaling state.");
6505
6505
  }
6506
- if (e instanceof le)
6506
+ if (e instanceof ue)
6507
6507
  switch (this._signalingState) {
6508
6508
  case b.Initial:
6509
6509
  case b.Stable:
@@ -6519,7 +6519,7 @@ class Ie extends pe {
6519
6519
  default:
6520
6520
  throw new Error("Unexpected signaling state.");
6521
6521
  }
6522
- if (lt(e))
6522
+ if (mt(e))
6523
6523
  switch (this._signalingState) {
6524
6524
  case b.Initial:
6525
6525
  case b.Stable:
@@ -6538,7 +6538,7 @@ class Ie extends pe {
6538
6538
  }
6539
6539
  }
6540
6540
  start2xxRetransmissionTimer() {
6541
- if (this.initialTransaction instanceof U) {
6541
+ if (this.initialTransaction instanceof L) {
6542
6542
  const e = this.initialTransaction;
6543
6543
  let t = q.T1;
6544
6544
  const i = () => {
@@ -6557,7 +6557,7 @@ class Ie extends pe {
6557
6557
  }
6558
6558
  // FIXME: Refactor
6559
6559
  startReInvite2xxRetransmissionTimer() {
6560
- if (this.reinviteUserAgentServer && this.reinviteUserAgentServer.transaction instanceof U) {
6560
+ if (this.reinviteUserAgentServer && this.reinviteUserAgentServer.transaction instanceof L) {
6561
6561
  const e = this.reinviteUserAgentServer.transaction;
6562
6562
  let t = q.T1;
6563
6563
  const i = () => {
@@ -6575,9 +6575,9 @@ class Ie extends pe {
6575
6575
  }
6576
6576
  }
6577
6577
  }
6578
- class Zt extends O {
6578
+ class si extends O {
6579
6579
  constructor(e, t, i) {
6580
- super(ne, e, t, i), this.confirmedDialogAcks = /* @__PURE__ */ new Map(), this.confirmedDialogs = /* @__PURE__ */ new Map(), this.earlyDialogs = /* @__PURE__ */ new Map(), this.delegate = i;
6580
+ super(ae, e, t, i), this.confirmedDialogAcks = /* @__PURE__ */ new Map(), this.confirmedDialogs = /* @__PURE__ */ new Map(), this.earlyDialogs = /* @__PURE__ */ new Map(), this.delegate = i;
6581
6581
  }
6582
6582
  dispose() {
6583
6583
  this.earlyDialogs.forEach((e) => e.dispose()), this.earlyDialogs.clear(), super.dispose();
@@ -6617,13 +6617,13 @@ class Zt extends O {
6617
6617
  this.logger.error("Non-100 1xx INVITE response received without a Contact header field, dropping.");
6618
6618
  return;
6619
6619
  }
6620
- const s = pe.initialDialogStateForUserAgentClient(this.message, e);
6620
+ const s = we.initialDialogStateForUserAgentClient(this.message, e);
6621
6621
  let r = this.earlyDialogs.get(s.id);
6622
6622
  if (!r) {
6623
6623
  const a = this.transaction;
6624
- if (!(a instanceof ne))
6624
+ if (!(a instanceof ae))
6625
6625
  throw new Error("Transaction not instance of InviteClientTransaction.");
6626
- r = new Ie(a, this.core, s), this.earlyDialogs.set(r.id, r);
6626
+ r = new ke(a, this.core, s), this.earlyDialogs.set(r.id, r);
6627
6627
  }
6628
6628
  if (!r.reliableSequenceGuard(e)) {
6629
6629
  this.logger.warn("1xx INVITE reliable response received out of order or is a retransmission, dropping.");
@@ -6648,13 +6648,13 @@ class Zt extends O {
6648
6648
  this.logger.error("2xx INVITE response received without a Contact header field, dropping.");
6649
6649
  return;
6650
6650
  }
6651
- const s = pe.initialDialogStateForUserAgentClient(this.message, e);
6651
+ const s = we.initialDialogStateForUserAgentClient(this.message, e);
6652
6652
  let r = this.confirmedDialogs.get(s.id);
6653
6653
  if (r) {
6654
6654
  const a = this.confirmedDialogAcks.get(s.id);
6655
6655
  if (a) {
6656
6656
  const d = this.transaction;
6657
- if (!(d instanceof ne))
6657
+ if (!(d instanceof ae))
6658
6658
  throw new Error("Client transaction not instance of InviteClientTransaction.");
6659
6659
  d.ackResponse(a.message);
6660
6660
  }
@@ -6664,9 +6664,9 @@ class Zt extends O {
6664
6664
  r.confirm(), r.recomputeRouteSet(e), this.earlyDialogs.delete(r.id), this.confirmedDialogs.set(r.id, r);
6665
6665
  else {
6666
6666
  const a = this.transaction;
6667
- if (!(a instanceof ne))
6667
+ if (!(a instanceof ae))
6668
6668
  throw new Error("Transaction not instance of InviteClientTransaction.");
6669
- r = new Ie(a, this.core, s), this.confirmedDialogs.set(r.id, r);
6669
+ r = new ke(a, this.core, s), this.confirmedDialogs.set(r.id, r);
6670
6670
  }
6671
6671
  (r.signalingState === b.Initial || r.signalingState === b.HaveLocalOffer) && r.signalingStateTransition(e);
6672
6672
  const n = r;
@@ -6696,9 +6696,9 @@ class Zt extends O {
6696
6696
  }
6697
6697
  }
6698
6698
  }
6699
- class Fe extends X {
6699
+ class Be extends Q {
6700
6700
  constructor(e, t, i) {
6701
- super(U, e, t, i), this.core = e;
6701
+ super(L, e, t, i), this.core = e;
6702
6702
  }
6703
6703
  dispose() {
6704
6704
  this.earlyDialog && this.earlyDialog.dispose(), super.dispose();
@@ -6713,18 +6713,18 @@ class Fe extends X {
6713
6713
  */
6714
6714
  accept(e = { statusCode: 200 }) {
6715
6715
  if (!this.acceptable)
6716
- throw new se(`${this.message.method} not acceptable in state ${this.transaction.state}.`);
6716
+ throw new ne(`${this.message.method} not acceptable in state ${this.transaction.state}.`);
6717
6717
  if (!this.confirmedDialog)
6718
6718
  if (this.earlyDialog)
6719
6719
  this.earlyDialog.confirm(), this.confirmedDialog = this.earlyDialog, this.earlyDialog = void 0;
6720
6720
  else {
6721
6721
  const d = this.transaction;
6722
- if (!(d instanceof U))
6722
+ if (!(d instanceof L))
6723
6723
  throw new Error("Transaction not instance of InviteClientTransaction.");
6724
- const f = pe.initialDialogStateForUserAgentServer(this.message, this.toTag);
6725
- this.confirmedDialog = new Ie(d, this.core, f);
6724
+ const f = we.initialDialogStateForUserAgentServer(this.message, this.toTag);
6725
+ this.confirmedDialog = new ke(d, this.core, f);
6726
6726
  }
6727
- const t = this.message.getHeaders("record-route").map((d) => `Record-Route: ${d}`), i = `Contact: ${this.core.configuration.contact.toString()}`, s = "Allow: " + re.toString();
6727
+ const t = this.message.getHeaders("record-route").map((d) => `Record-Route: ${d}`), i = `Contact: ${this.core.configuration.contact.toString()}`, s = "Allow: " + oe.toString();
6728
6728
  if (!e.body) {
6729
6729
  if (this.confirmedDialog.signalingState === b.Stable)
6730
6730
  e.body = this.confirmedDialog.answer;
@@ -6759,13 +6759,13 @@ class Fe extends X {
6759
6759
  */
6760
6760
  progress(e = { statusCode: 180 }) {
6761
6761
  if (!this.progressable)
6762
- throw new se(`${this.message.method} not progressable in state ${this.transaction.state}.`);
6762
+ throw new ne(`${this.message.method} not progressable in state ${this.transaction.state}.`);
6763
6763
  if (!this.earlyDialog) {
6764
6764
  const a = this.transaction;
6765
- if (!(a instanceof U))
6765
+ if (!(a instanceof L))
6766
6766
  throw new Error("Transaction not instance of InviteClientTransaction.");
6767
- const d = pe.initialDialogStateForUserAgentServer(this.message, this.toTag, !0);
6768
- this.earlyDialog = new Ie(a, this.core, d);
6767
+ const d = we.initialDialogStateForUserAgentServer(this.message, this.toTag, !0);
6768
+ this.earlyDialog = new ke(a, this.core, d);
6769
6769
  }
6770
6770
  const t = this.message.getHeaders("record-route").map((a) => `Record-Route: ${a}`), i = `Contact: ${this.core.configuration.contact}`;
6771
6771
  e.extraHeaders = e.extraHeaders || [], e.extraHeaders = e.extraHeaders.concat(t), e.extraHeaders.push(i);
@@ -6799,25 +6799,25 @@ class Fe extends X {
6799
6799
  return super.reject(e);
6800
6800
  }
6801
6801
  }
6802
- class Xt extends O {
6802
+ class ri extends O {
6803
6803
  constructor(e, t, i) {
6804
- super(B, e, t, i);
6804
+ super(j, e, t, i);
6805
6805
  }
6806
6806
  }
6807
- class Qt extends O {
6807
+ class ni extends O {
6808
6808
  constructor(e, t, i) {
6809
- super(B, e, t, i);
6809
+ super(j, e, t, i);
6810
6810
  }
6811
6811
  }
6812
- class ei extends X {
6812
+ class oi extends Q {
6813
6813
  constructor(e, t, i) {
6814
- super(L, e, t, i), this.core = e;
6814
+ super(B, e, t, i), this.core = e;
6815
6815
  }
6816
6816
  }
6817
- class ti extends O {
6817
+ class ai extends O {
6818
6818
  constructor(e, t, i) {
6819
6819
  const s = e.createOutgoingRequestMessage(v.SUBSCRIBE, i);
6820
- super(B, e.userAgentCore, s, t), this.dialog = e;
6820
+ super(j, e.userAgentCore, s, t), this.dialog = e;
6821
6821
  }
6822
6822
  waitNotifyStop() {
6823
6823
  }
@@ -6838,7 +6838,7 @@ class ti extends O {
6838
6838
  e.statusCode && e.statusCode >= 400 && e.statusCode < 700 && [404, 405, 410, 416, 480, 481, 482, 483, 484, 485, 489, 501, 604].includes(e.statusCode) && this.dialog.terminate(), super.receiveResponse(e);
6839
6839
  }
6840
6840
  }
6841
- class et extends pe {
6841
+ class nt extends we {
6842
6842
  constructor(e, t, i, s, r, n) {
6843
6843
  super(s, r), this.delegate = n, this._autoRefresh = !1, this._subscriptionEvent = e, this._subscriptionExpires = t, this._subscriptionExpiresInitial = t, this._subscriptionExpiresLastSet = Math.floor(Date.now() / 1e3), this._subscriptionRefresh = void 0, this._subscriptionRefreshLastSet = void 0, this._subscriptionState = i, this.logger = s.loggerFactory.getLogger("sip.subscribe-dialog"), this.logger.log(`SUBSCRIBE dialog ${this.id} constructed`);
6844
6844
  }
@@ -6854,7 +6854,7 @@ class et extends pe {
6854
6854
  const s = t.getHeaders("record-route"), r = t.parseHeader("contact");
6855
6855
  if (!r)
6856
6856
  throw new Error("Contact undefined.");
6857
- if (!(r instanceof N))
6857
+ if (!(r instanceof U))
6858
6858
  throw new Error("Contact not instance of NameAddrHeader.");
6859
6859
  const n = r.uri, a = e.cseq, d = void 0, f = e.callId, h = e.fromTag, w = t.fromTag;
6860
6860
  if (!f)
@@ -6867,7 +6867,7 @@ class et extends pe {
6867
6867
  throw new Error("From undefined.");
6868
6868
  if (!e.to)
6869
6869
  throw new Error("To undefined.");
6870
- const S = e.from.uri, _ = e.to.uri;
6870
+ const S = e.from.uri, x = e.to.uri;
6871
6871
  return {
6872
6872
  id: f + h + w,
6873
6873
  early: !1,
@@ -6877,7 +6877,7 @@ class et extends pe {
6877
6877
  localSequenceNumber: a,
6878
6878
  remoteSequenceNumber: d,
6879
6879
  localURI: S,
6880
- remoteURI: _,
6880
+ remoteURI: x,
6881
6881
  remoteTarget: n,
6882
6882
  routeSet: s,
6883
6883
  secure: !1
@@ -6937,7 +6937,7 @@ class et extends pe {
6937
6937
  * https://tools.ietf.org/html/rfc6665#section-4.1.2.2
6938
6938
  */
6939
6939
  refresh() {
6940
- const e = "Allow: " + re.toString(), t = {};
6940
+ const e = "Allow: " + oe.toString(), t = {};
6941
6941
  return t.extraHeaders = (t.extraHeaders || []).slice(), t.extraHeaders.push(e), t.extraHeaders.push("Event: " + this.subscriptionEvent), t.extraHeaders.push("Expires: " + this.subscriptionExpiresInitial), t.extraHeaders.push("Contact: " + this.core.configuration.contact.toString()), this.subscribe(void 0, t);
6942
6942
  }
6943
6943
  /**
@@ -6948,10 +6948,10 @@ class et extends pe {
6948
6948
  */
6949
6949
  subscribe(e, t = {}) {
6950
6950
  var i;
6951
- if (this.subscriptionState !== x.Pending && this.subscriptionState !== x.Active)
6951
+ if (this.subscriptionState !== R.Pending && this.subscriptionState !== R.Active)
6952
6952
  throw new Error(`Invalid state ${this.subscriptionState}. May only re-subscribe while in state "pending" or "active".`);
6953
6953
  this.logger.log(`SUBSCRIBE dialog ${this.id} sending SUBSCRIBE request`);
6954
- const s = new ti(this, e, t);
6954
+ const s = new ai(this, e, t);
6955
6955
  return this.N && (clearTimeout(this.N), this.N = void 0), !((i = t.extraHeaders) === null || i === void 0) && i.includes("Expires: 0") || (this.N = setTimeout(() => this.timerN(), q.TIMER_N)), s;
6956
6956
  }
6957
6957
  /**
@@ -6962,14 +6962,14 @@ class et extends pe {
6962
6962
  * https://tools.ietf.org/html/rfc6665#section-4.4.1
6963
6963
  */
6964
6964
  terminate() {
6965
- this.stateTransition(x.Terminated), this.onTerminated();
6965
+ this.stateTransition(R.Terminated), this.onTerminated();
6966
6966
  }
6967
6967
  /**
6968
6968
  * 4.1.2.3. Unsubscribing
6969
6969
  * https://tools.ietf.org/html/rfc6665#section-4.1.2.3
6970
6970
  */
6971
6971
  unsubscribe() {
6972
- const e = "Allow: " + re.toString(), t = {};
6972
+ const e = "Allow: " + oe.toString(), t = {};
6973
6973
  return t.extraHeaders = (t.extraHeaders || []).slice(), t.extraHeaders.push(e), t.extraHeaders.push("Event: " + this.subscriptionEvent), t.extraHeaders.push("Expires: 0"), t.extraHeaders.push("Contact: " + this.core.configuration.contact.toString()), this.subscribe(void 0, t);
6974
6974
  }
6975
6975
  /**
@@ -6992,19 +6992,19 @@ class et extends pe {
6992
6992
  const s = i.state, r = i.expires ? Math.max(i.expires, 0) : void 0;
6993
6993
  switch (s) {
6994
6994
  case "pending":
6995
- this.stateTransition(x.Pending, r);
6995
+ this.stateTransition(R.Pending, r);
6996
6996
  break;
6997
6997
  case "active":
6998
- this.stateTransition(x.Active, r);
6998
+ this.stateTransition(R.Active, r);
6999
6999
  break;
7000
7000
  case "terminated":
7001
- this.stateTransition(x.Terminated, r);
7001
+ this.stateTransition(R.Terminated, r);
7002
7002
  break;
7003
7003
  default:
7004
7004
  this.logger.warn("Unrecognized subscription state.");
7005
7005
  break;
7006
7006
  }
7007
- const n = new _e(this, e);
7007
+ const n = new De(this, e);
7008
7008
  this.delegate && this.delegate.onNotify ? this.delegate.onNotify(n) : n.accept();
7009
7009
  }
7010
7010
  onRefresh(e) {
@@ -7029,26 +7029,26 @@ class et extends pe {
7029
7029
  this.logger.warn(`Invalid subscription state transition from ${this.subscriptionState} to ${e}`);
7030
7030
  };
7031
7031
  switch (e) {
7032
- case x.Initial:
7032
+ case R.Initial:
7033
7033
  i();
7034
7034
  return;
7035
- case x.NotifyWait:
7035
+ case R.NotifyWait:
7036
7036
  i();
7037
7037
  return;
7038
- case x.Pending:
7039
- if (this.subscriptionState !== x.NotifyWait && this.subscriptionState !== x.Pending) {
7038
+ case R.Pending:
7039
+ if (this.subscriptionState !== R.NotifyWait && this.subscriptionState !== R.Pending) {
7040
7040
  i();
7041
7041
  return;
7042
7042
  }
7043
7043
  break;
7044
- case x.Active:
7045
- if (this.subscriptionState !== x.NotifyWait && this.subscriptionState !== x.Pending && this.subscriptionState !== x.Active) {
7044
+ case R.Active:
7045
+ if (this.subscriptionState !== R.NotifyWait && this.subscriptionState !== R.Pending && this.subscriptionState !== R.Active) {
7046
7046
  i();
7047
7047
  return;
7048
7048
  }
7049
7049
  break;
7050
- case x.Terminated:
7051
- if (this.subscriptionState !== x.NotifyWait && this.subscriptionState !== x.Pending && this.subscriptionState !== x.Active) {
7050
+ case R.Terminated:
7051
+ if (this.subscriptionState !== R.NotifyWait && this.subscriptionState !== R.Pending && this.subscriptionState !== R.Active) {
7052
7052
  i();
7053
7053
  return;
7054
7054
  }
@@ -7057,7 +7057,7 @@ class et extends pe {
7057
7057
  i();
7058
7058
  return;
7059
7059
  }
7060
- e === x.Pending && t && (this.subscriptionExpires = t), e === x.Active && t && (this.subscriptionExpires = t), e === x.Terminated && this.dispose(), this._subscriptionState = e;
7060
+ e === R.Pending && t && (this.subscriptionExpires = t), e === R.Active && t && (this.subscriptionExpires = t), e === R.Terminated && this.dispose(), this._subscriptionState = e;
7061
7061
  }
7062
7062
  /**
7063
7063
  * When refreshing a subscription, a subscriber starts Timer N, set to
@@ -7071,10 +7071,10 @@ class et extends pe {
7071
7071
  * https://tools.ietf.org/html/rfc6665#section-4.1.2.2
7072
7072
  */
7073
7073
  timerN() {
7074
- this.logger.warn("Timer N expired for SUBSCRIBE dialog. Timed out waiting for NOTIFY."), this.subscriptionState !== x.Terminated && (this.stateTransition(x.Terminated), this.onTerminated());
7074
+ this.logger.warn("Timer N expired for SUBSCRIBE dialog. Timed out waiting for NOTIFY."), this.subscriptionState !== R.Terminated && (this.stateTransition(R.Terminated), this.onTerminated());
7075
7075
  }
7076
7076
  }
7077
- class ii extends O {
7077
+ class ci extends O {
7078
7078
  constructor(e, t, i) {
7079
7079
  const s = t.getHeader("Event");
7080
7080
  if (!s)
@@ -7082,7 +7082,7 @@ class ii extends O {
7082
7082
  const r = t.getHeader("Expires");
7083
7083
  if (!r)
7084
7084
  throw new Error("Expires undefined");
7085
- super(B, e, t, i), this.delegate = i, this.subscriberId = t.callId + t.fromTag + s, this.subscriptionExpiresRequested = this.subscriptionExpires = Number(r), this.subscriptionEvent = s, this.subscriptionState = x.NotifyWait, this.waitNotifyStart();
7085
+ super(j, e, t, i), this.delegate = i, this.subscriberId = t.callId + t.fromTag + s, this.subscriptionExpiresRequested = this.subscriptionExpires = Number(r), this.subscriptionEvent = s, this.subscriptionState = R.NotifyWait, this.waitNotifyStart();
7086
7086
  }
7087
7087
  /**
7088
7088
  * Destructor.
@@ -7132,20 +7132,20 @@ class ii extends O {
7132
7132
  throw new Error("Dialog already created. This implementation only supports install of single subscriptions.");
7133
7133
  switch (this.waitNotifyStop(), this.subscriptionExpires = i.expires ? Math.min(this.subscriptionExpires, Math.max(i.expires, 0)) : this.subscriptionExpires, s) {
7134
7134
  case "pending":
7135
- this.subscriptionState = x.Pending;
7135
+ this.subscriptionState = R.Pending;
7136
7136
  break;
7137
7137
  case "active":
7138
- this.subscriptionState = x.Active;
7138
+ this.subscriptionState = R.Active;
7139
7139
  break;
7140
7140
  case "terminated":
7141
- this.subscriptionState = x.Terminated;
7141
+ this.subscriptionState = R.Terminated;
7142
7142
  break;
7143
7143
  default:
7144
7144
  throw new Error(`Unrecognized state ${s}.`);
7145
7145
  }
7146
- if (this.subscriptionState !== x.Terminated) {
7147
- const r = et.initialDialogStateForSubscription(this.message, e.message);
7148
- this.dialog = new et(this.subscriptionEvent, this.subscriptionExpires, this.subscriptionState, this.core, r);
7146
+ if (this.subscriptionState !== R.Terminated) {
7147
+ const r = nt.initialDialogStateForSubscription(this.message, e.message);
7148
+ this.dialog = new nt(this.subscriptionEvent, this.subscriptionExpires, this.subscriptionState, this.core, r);
7149
7149
  }
7150
7150
  if (this.delegate && this.delegate.onNotify) {
7151
7151
  const r = e, n = this.dialog;
@@ -7191,13 +7191,13 @@ class ii extends O {
7191
7191
  this.logger.warn("Timer N expired for SUBSCRIBE user agent client. Timed out waiting for NOTIFY."), this.waitNotifyStop(), this.delegate && this.delegate.onNotifyTimeout && this.delegate.onNotifyTimeout();
7192
7192
  }
7193
7193
  }
7194
- class si extends X {
7194
+ class di extends Q {
7195
7195
  constructor(e, t, i) {
7196
- super(L, e, t, i), this.core = e;
7196
+ super(B, e, t, i), this.core = e;
7197
7197
  }
7198
7198
  }
7199
- const tt = ["application/sdp", "application/dtmf-relay"];
7200
- class ri {
7199
+ const ot = ["application/sdp", "application/dtmf-relay"];
7200
+ class li {
7201
7201
  /**
7202
7202
  * Constructor.
7203
7203
  * @param configuration - Configuration.
@@ -7231,7 +7231,7 @@ class ri {
7231
7231
  * @param delegate - Request delegate.
7232
7232
  */
7233
7233
  invite(e, t) {
7234
- return new Zt(this, e, t);
7234
+ return new si(this, e, t);
7235
7235
  }
7236
7236
  /**
7237
7237
  * Send MESSAGE.
@@ -7239,7 +7239,7 @@ class ri {
7239
7239
  * @param delegate - Request delegate.
7240
7240
  */
7241
7241
  message(e, t) {
7242
- return new pt(this, e, t);
7242
+ return new St(this, e, t);
7243
7243
  }
7244
7244
  /**
7245
7245
  * Send PUBLISH.
@@ -7247,7 +7247,7 @@ class ri {
7247
7247
  * @param delegate - Request delegate.
7248
7248
  */
7249
7249
  publish(e, t) {
7250
- return new Xt(this, e, t);
7250
+ return new ri(this, e, t);
7251
7251
  }
7252
7252
  /**
7253
7253
  * Send REGISTER.
@@ -7255,7 +7255,7 @@ class ri {
7255
7255
  * @param delegate - Request delegate.
7256
7256
  */
7257
7257
  register(e, t) {
7258
- return new Qt(this, e, t);
7258
+ return new ni(this, e, t);
7259
7259
  }
7260
7260
  /**
7261
7261
  * Send SUBSCRIBE.
@@ -7263,7 +7263,7 @@ class ri {
7263
7263
  * @param delegate - Request delegate.
7264
7264
  */
7265
7265
  subscribe(e, t) {
7266
- return new ii(this, e, t);
7266
+ return new ci(this, e, t);
7267
7267
  }
7268
7268
  /**
7269
7269
  * Send a request.
@@ -7271,7 +7271,7 @@ class ri {
7271
7271
  * @param delegate - Request delegate.
7272
7272
  */
7273
7273
  request(e, t) {
7274
- return new O(B, this, e, t);
7274
+ return new O(j, this, e, t);
7275
7275
  }
7276
7276
  /**
7277
7277
  * Outgoing request message factory function.
@@ -7286,17 +7286,17 @@ class ri {
7286
7286
  makeOutgoingRequestMessage(e, t, i, s, r, n, a) {
7287
7287
  const d = this.configuration.sipjsId, f = this.configuration.displayName, h = this.configuration.viaForceRport, w = this.configuration.hackViaTcp, S = this.configuration.supportedOptionTags.slice();
7288
7288
  e === v.REGISTER && S.push("path", "gruu"), e === v.INVITE && (this.configuration.contact.pubGruu || this.configuration.contact.tempGruu) && S.push("gruu");
7289
- const _ = this.configuration.routeSet, I = this.configuration.userAgentHeaderFieldValue, E = this.configuration.viaHost, p = Object.assign(Object.assign({}, {
7289
+ const x = this.configuration.routeSet, I = this.configuration.userAgentHeaderFieldValue, E = this.configuration.viaHost, p = Object.assign(Object.assign({}, {
7290
7290
  callIdPrefix: d,
7291
7291
  forceRport: h,
7292
7292
  fromDisplayName: f,
7293
7293
  hackViaTcp: w,
7294
7294
  optionTags: S,
7295
- routeSet: _,
7295
+ routeSet: x,
7296
7296
  userAgentString: I,
7297
7297
  viaHost: E
7298
7298
  }), r);
7299
- return new le(e, t, i, s, p, n, a);
7299
+ return new ue(e, t, i, s, p, n, a);
7300
7300
  }
7301
7301
  /**
7302
7302
  * Handle an incoming request message from the transport.
@@ -7331,7 +7331,7 @@ class ri {
7331
7331
  replyStateless(e, t) {
7332
7332
  const i = this.configuration.userAgentHeaderFieldValue, s = this.configuration.supportedOptionTagsResponse;
7333
7333
  t = Object.assign(Object.assign({}, t), { userAgent: i, supported: s });
7334
- const r = ut(e, t);
7334
+ const r = yt(e, t);
7335
7335
  return this.transport.send(r.message).catch((n) => {
7336
7336
  n instanceof Error && this.logger.error(n.message), this.logger.error(`Transport error occurred sending stateless reply to ${e.method} request.`);
7337
7337
  }), r;
@@ -7350,12 +7350,12 @@ class ri {
7350
7350
  */
7351
7351
  receiveRequestFromTransport(e) {
7352
7352
  const t = e.viaBranch, i = this.userAgentServers.get(t);
7353
- if (e.method === v.ACK && i && i.transaction.state === g.Accepted && i instanceof Fe) {
7353
+ if (e.method === v.ACK && i && i.transaction.state === g.Accepted && i instanceof Be) {
7354
7354
  this.logger.warn(`Discarding out of dialog ACK after 2xx response sent on transaction ${t}.`);
7355
7355
  return;
7356
7356
  }
7357
7357
  if (e.method === v.CANCEL) {
7358
- i ? (this.replyStateless(e, { statusCode: 200 }), i.transaction instanceof U && i.transaction.state === g.Proceeding && i instanceof Fe && i.receiveCancel(e)) : this.replyStateless(e, { statusCode: 481 });
7358
+ i ? (this.replyStateless(e, { statusCode: 200 }), i.transaction instanceof L && i.transaction.state === g.Proceeding && i instanceof Be && i.receiveCancel(e)) : this.replyStateless(e, { statusCode: 481 });
7359
7359
  return;
7360
7360
  }
7361
7361
  if (i) {
@@ -7374,8 +7374,8 @@ class ri {
7374
7374
  * @param message - Incoming request message.
7375
7375
  */
7376
7376
  receiveRequest(e) {
7377
- if (!re.includes(e.method)) {
7378
- const s = "Allow: " + re.toString();
7377
+ if (!oe.includes(e.method)) {
7378
+ const s = "Allow: " + oe.toString();
7379
7379
  this.replyStateless(e, {
7380
7380
  statusCode: 405,
7381
7381
  extraHeaders: [s]
@@ -7428,7 +7428,7 @@ class ri {
7428
7428
  }
7429
7429
  const r = e.callId + e.toTag + s.event, n = this.subscribers.get(r);
7430
7430
  if (n) {
7431
- const a = new _e(this, e);
7431
+ const a = new De(this, e);
7432
7432
  n.onNotify(a);
7433
7433
  return;
7434
7434
  }
@@ -7436,7 +7436,7 @@ class ri {
7436
7436
  const t = e.callId + e.toTag + e.fromTag, i = this.dialogs.get(t);
7437
7437
  if (i) {
7438
7438
  if (e.method === v.OPTIONS) {
7439
- const s = "Allow: " + re.toString(), r = "Accept: " + tt.toString();
7439
+ const s = "Allow: " + oe.toString(), r = "Accept: " + ot.toString();
7440
7440
  this.replyStateless(e, {
7441
7441
  statusCode: 200,
7442
7442
  extraHeaders: [s, r]
@@ -7468,25 +7468,25 @@ class ri {
7468
7468
  break;
7469
7469
  case v.INVITE:
7470
7470
  {
7471
- const t = new Fe(this, e);
7471
+ const t = new Be(this, e);
7472
7472
  this.delegate.onInvite ? this.delegate.onInvite(t) : t.reject();
7473
7473
  }
7474
7474
  break;
7475
7475
  case v.MESSAGE:
7476
7476
  {
7477
- const t = new mt(this, e);
7477
+ const t = new Tt(this, e);
7478
7478
  this.delegate.onMessage ? this.delegate.onMessage(t) : t.accept();
7479
7479
  }
7480
7480
  break;
7481
7481
  case v.NOTIFY:
7482
7482
  {
7483
- const t = new _e(this, e);
7483
+ const t = new De(this, e);
7484
7484
  this.delegate.onNotify ? this.delegate.onNotify(t) : t.reject({ statusCode: 405 });
7485
7485
  }
7486
7486
  break;
7487
7487
  case v.OPTIONS:
7488
7488
  {
7489
- const t = "Allow: " + re.toString(), i = "Accept: " + tt.toString();
7489
+ const t = "Allow: " + oe.toString(), i = "Accept: " + ot.toString();
7490
7490
  this.replyStateless(e, {
7491
7491
  statusCode: 200,
7492
7492
  extraHeaders: [t, i]
@@ -7495,19 +7495,19 @@ class ri {
7495
7495
  break;
7496
7496
  case v.REFER:
7497
7497
  {
7498
- const t = new wt(this, e);
7498
+ const t = new Ct(this, e);
7499
7499
  this.delegate.onRefer ? this.delegate.onRefer(t) : t.reject({ statusCode: 405 });
7500
7500
  }
7501
7501
  break;
7502
7502
  case v.REGISTER:
7503
7503
  {
7504
- const t = new ei(this, e);
7504
+ const t = new oi(this, e);
7505
7505
  this.delegate.onRegister ? this.delegate.onRegister(t) : t.reject({ statusCode: 405 });
7506
7506
  }
7507
7507
  break;
7508
7508
  case v.SUBSCRIBE:
7509
7509
  {
7510
- const t = new si(this, e);
7510
+ const t = new di(this, e);
7511
7511
  this.delegate.onSubscribe ? this.delegate.onSubscribe(t) : t.reject({ statusCode: 480 });
7512
7512
  }
7513
7513
  break;
@@ -7533,10 +7533,10 @@ class ri {
7533
7533
  i ? i.transaction.receiveResponse(e) : this.logger.warn(`Discarding unmatched ${e.statusCode} response to ${e.method} ${t}.`);
7534
7534
  }
7535
7535
  }
7536
- function ni() {
7536
+ function hi() {
7537
7537
  return (o) => !o.audio && !o.video ? Promise.resolve(new MediaStream()) : navigator.mediaDevices === void 0 ? Promise.reject(new Error("Media devices not available in insecure contexts.")) : navigator.mediaDevices.getUserMedia.call(navigator.mediaDevices, o);
7538
7538
  }
7539
- function oi() {
7539
+ function ui() {
7540
7540
  return {
7541
7541
  bundlePolicy: "balanced",
7542
7542
  certificates: void 0,
@@ -8078,23 +8078,23 @@ class F {
8078
8078
  };
8079
8079
  }
8080
8080
  }
8081
- function ai(o) {
8081
+ function gi(o) {
8082
8082
  return (e, t) => {
8083
- o === void 0 && (o = ni());
8083
+ o === void 0 && (o = hi());
8084
8084
  const s = {
8085
8085
  iceGatheringTimeout: t?.iceGatheringTimeout !== void 0 ? t?.iceGatheringTimeout : 5e3,
8086
- peerConnectionConfiguration: Object.assign(Object.assign({}, oi()), t?.peerConnectionConfiguration)
8086
+ peerConnectionConfiguration: Object.assign(Object.assign({}, ui()), t?.peerConnectionConfiguration)
8087
8087
  }, r = e.userAgent.getLogger("sip.SessionDescriptionHandler");
8088
8088
  return new F(r, o, s);
8089
8089
  };
8090
8090
  }
8091
- class Te {
8091
+ class _e {
8092
8092
  constructor(e, t) {
8093
- if (this._state = T.Disconnected, this.transitioningState = !1, this._stateEventEmitter = new ve(), this.logger = e, t) {
8093
+ if (this._state = T.Disconnected, this.transitioningState = !1, this._stateEventEmitter = new Ce(), this.logger = e, t) {
8094
8094
  const r = t, n = r?.wsServers, a = r?.maxReconnectionAttempts;
8095
8095
  n !== void 0 && this.logger.warn('The transport option "wsServers" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.'), a !== void 0 && this.logger.warn('The transport option "maxReconnectionAttempts" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.'), n && !t.server && (typeof n == "string" && (t.server = n), n instanceof Array && (t.server = n[0]));
8096
8096
  }
8097
- this.configuration = Object.assign(Object.assign({}, Te.defaultOptions), t);
8097
+ this.configuration = Object.assign(Object.assign({}, _e.defaultOptions), t);
8098
8098
  const i = this.configuration.server, s = P.parse(i, "absoluteURI");
8099
8099
  if (s === -1)
8100
8100
  throw this.logger.error(`Invalid WebSocket Server URL "${i}"`), new Error("Invalid WebSocket Server URL");
@@ -8191,7 +8191,7 @@ class Te {
8191
8191
  try {
8192
8192
  this.transitionState(T.Connecting);
8193
8193
  } catch (t) {
8194
- if (t instanceof me)
8194
+ if (t instanceof ye)
8195
8195
  return Promise.reject(t);
8196
8196
  throw t;
8197
8197
  }
@@ -8202,7 +8202,7 @@ class Te {
8202
8202
  try {
8203
8203
  this.transitionState(T.Connecting);
8204
8204
  } catch (t) {
8205
- if (t instanceof me)
8205
+ if (t instanceof ye)
8206
8206
  return Promise.reject(t);
8207
8207
  throw t;
8208
8208
  }
@@ -8232,7 +8232,7 @@ class Te {
8232
8232
  try {
8233
8233
  this.transitionState(T.Disconnecting);
8234
8234
  } catch (t) {
8235
- if (t instanceof me)
8235
+ if (t instanceof ye)
8236
8236
  return Promise.reject(t);
8237
8237
  throw t;
8238
8238
  }
@@ -8243,7 +8243,7 @@ class Te {
8243
8243
  try {
8244
8244
  this.transitionState(T.Disconnecting);
8245
8245
  } catch (t) {
8246
- if (t instanceof me)
8246
+ if (t instanceof ye)
8247
8247
  return Promise.reject(t);
8248
8248
  throw t;
8249
8249
  }
@@ -8366,7 +8366,7 @@ class Te {
8366
8366
  */
8367
8367
  transitionLoopDetectedError(e) {
8368
8368
  let t = "A state transition loop has been detected.";
8369
- return t += ` An attempt to transition from ${this._state} to ${e} before the prior transition completed.`, t += " Perhaps you are synchronously calling connect() or disconnect() from a callback or state change handler?", this.logger.error(t), new me("Loop detected.");
8369
+ return t += ` An attempt to transition from ${this._state} to ${e} before the prior transition completed.`, t += " Perhaps you are synchronously calling connect() or disconnect() from a callback or state change handler?", this.logger.error(t), new ye("Loop detected.");
8370
8370
  }
8371
8371
  /**
8372
8372
  * Transition transport state.
@@ -8483,25 +8483,25 @@ class Te {
8483
8483
  this.keepAliveInterval && clearInterval(this.keepAliveInterval), this.keepAliveDebounceTimeout && clearTimeout(this.keepAliveDebounceTimeout), this.keepAliveInterval = void 0, this.keepAliveDebounceTimeout = void 0;
8484
8484
  }
8485
8485
  }
8486
- Te.defaultOptions = {
8486
+ _e.defaultOptions = {
8487
8487
  server: "",
8488
8488
  connectionTimeout: 5,
8489
8489
  keepAliveInterval: 0,
8490
8490
  keepAliveDebounce: 10,
8491
8491
  traceSip: !0
8492
8492
  };
8493
- class G {
8493
+ class W {
8494
8494
  /**
8495
8495
  * Constructs a new instance of the `UserAgent` class.
8496
8496
  * @param options - Options bucket. See {@link UserAgentOptions} for details.
8497
8497
  */
8498
8498
  constructor(e = {}) {
8499
- if (this._publishers = {}, this._registerers = {}, this._sessions = {}, this._subscriptions = {}, this._state = k.Stopped, this._stateEventEmitter = new ve(), this.delegate = e.delegate, this.options = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, G.defaultOptions()), { sipjsId: ce(5) }), { uri: new Z("sip", "anonymous." + ce(6), "anonymous.invalid") }), { viaHost: ce(12) + ".invalid" }), G.stripUndefinedProperties(e)), this.options.hackIpInContact)
8499
+ if (this._publishers = {}, this._registerers = {}, this._sessions = {}, this._subscriptions = {}, this._state = k.Stopped, this._stateEventEmitter = new Ce(), this.delegate = e.delegate, this.options = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, W.defaultOptions()), { sipjsId: le(5) }), { uri: new X("sip", "anonymous." + le(6), "anonymous.invalid") }), { viaHost: le(12) + ".invalid" }), W.stripUndefinedProperties(e)), this.options.hackIpInContact)
8500
8500
  if (typeof this.options.hackIpInContact == "boolean" && this.options.hackIpInContact) {
8501
8501
  const s = Math.floor(Math.random() * 254 + 1);
8502
8502
  this.options.viaHost = "192.0.2." + s;
8503
8503
  } else this.options.hackIpInContact && (this.options.viaHost = this.options.hackIpInContact);
8504
- switch (this.loggerFactory = new Ft(), this.logger = this.loggerFactory.getLogger("sip.UserAgent"), this.loggerFactory.builtinEnabled = this.options.logBuiltinEnabled, this.loggerFactory.connector = this.options.logConnector, this.options.logLevel) {
8504
+ switch (this.loggerFactory = new Vt(), this.logger = this.loggerFactory.getLogger("sip.UserAgent"), this.loggerFactory.builtinEnabled = this.options.logBuiltinEnabled, this.loggerFactory.connector = this.options.logConnector, this.options.logLevel) {
8505
8505
  case "error":
8506
8506
  this.loggerFactory.level = M.error;
8507
8507
  break;
@@ -8535,7 +8535,7 @@ class G {
8535
8535
  const t = this.options.transportOptions, i = t.maxReconnectionAttempts, s = t.reconnectionTimeout;
8536
8536
  i !== void 0 && this.logger.warn('The transport option "maxReconnectionAttempts" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.'), s !== void 0 && this.logger.warn('The transport option "reconnectionTimeout" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.'), e.reconnectionDelay === void 0 && s !== void 0 && (this.options.reconnectionDelay = s), e.reconnectionAttempts === void 0 && i !== void 0 && (this.options.reconnectionAttempts = i);
8537
8537
  }
8538
- if (e.reconnectionDelay !== void 0 && this.logger.warn('The user agent option "reconnectionDelay" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.'), e.reconnectionAttempts !== void 0 && this.logger.warn('The user agent option "reconnectionAttempts" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.'), this._transport = new this.options.transportConstructor(this.getLogger("sip.Transport"), this.options.transportOptions), this.initTransportCallbacks(), this._contact = this.initContact(), this._instanceId = this.options.instanceId ? this.options.instanceId : G.newUUID(), P.parse(this._instanceId, "uuid") === -1)
8538
+ if (e.reconnectionDelay !== void 0 && this.logger.warn('The user agent option "reconnectionDelay" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.'), e.reconnectionAttempts !== void 0 && this.logger.warn('The user agent option "reconnectionAttempts" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.'), this._transport = new this.options.transportConstructor(this.getLogger("sip.Transport"), this.options.transportOptions), this.initTransportCallbacks(), this._contact = this.initContact(), this._instanceId = this.options.instanceId ? this.options.instanceId : W.newUUID(), P.parse(this._instanceId, "uuid") === -1)
8539
8539
  throw new Error("Invalid instanceId.");
8540
8540
  this._userAgentCore = this.initCore();
8541
8541
  }
@@ -8585,16 +8585,16 @@ class G {
8585
8585
  reconnectionAttempts: 0,
8586
8586
  reconnectionDelay: 4,
8587
8587
  sendInitialProvisionalResponse: !0,
8588
- sessionDescriptionHandlerFactory: ai(),
8588
+ sessionDescriptionHandlerFactory: gi(),
8589
8589
  sessionDescriptionHandlerFactoryOptions: {},
8590
- sipExtension100rel: W.Unsupported,
8591
- sipExtensionReplaces: W.Unsupported,
8590
+ sipExtension100rel: K.Unsupported,
8591
+ sipExtensionReplaces: K.Unsupported,
8592
8592
  sipExtensionExtraSupported: [],
8593
8593
  sipjsId: "",
8594
- transportConstructor: Te,
8594
+ transportConstructor: _e,
8595
8595
  transportOptions: {},
8596
- uri: new Z("sip", "anonymous", "anonymous.invalid"),
8597
- userAgentString: "SIP.js/" + Et,
8596
+ uri: new X("sip", "anonymous", "anonymous.invalid"),
8597
+ userAgentString: "SIP.js/" + $t,
8598
8598
  viaHost: ""
8599
8599
  };
8600
8600
  }
@@ -8769,7 +8769,7 @@ class G {
8769
8769
  * @internal
8770
8770
  */
8771
8771
  _makeInviter(e, t) {
8772
- return new Ee(this, e, t);
8772
+ return new Ie(this, e, t);
8773
8773
  }
8774
8774
  /**
8775
8775
  * Attempt reconnection up to `maxReconnectionAttempts` times.
@@ -8793,11 +8793,11 @@ class G {
8793
8793
  * Initialize contact.
8794
8794
  */
8795
8795
  initContact() {
8796
- const e = this.options.contactName !== "" ? this.options.contactName : ce(8), t = this.options.contactParams;
8796
+ const e = this.options.contactName !== "" ? this.options.contactName : le(8), t = this.options.contactParams;
8797
8797
  return {
8798
8798
  pubGruu: void 0,
8799
8799
  tempGruu: void 0,
8800
- uri: new Z("sip", e, this.options.viaHost, void 0, t),
8800
+ uri: new X("sip", e, this.options.viaHost, void 0, t),
8801
8801
  toString: (s = {}) => {
8802
8802
  const r = s.anonymous || !1, n = s.outbound || !1, a = s.register || !1;
8803
8803
  let d = "<";
@@ -8810,7 +8810,7 @@ class G {
8810
8810
  */
8811
8811
  initCore() {
8812
8812
  let e = [];
8813
- e.push("outbound"), this.options.sipExtension100rel === W.Supported && e.push("100rel"), this.options.sipExtensionReplaces === W.Supported && e.push("replaces"), this.options.sipExtensionExtraSupported && e.push(...this.options.sipExtensionExtraSupported), this.options.hackAllowUnregisteredOptionTags || (e = e.filter((r) => Mt[r])), e = Array.from(new Set(e));
8813
+ e.push("outbound"), this.options.sipExtension100rel === K.Supported && e.push("100rel"), this.options.sipExtensionReplaces === K.Supported && e.push("replaces"), this.options.sipExtensionExtraSupported && e.push(...this.options.sipExtensionExtraSupported), this.options.hackAllowUnregisteredOptionTags || (e = e.filter((r) => Lt[r])), e = Array.from(new Set(e));
8814
8814
  const t = e.slice();
8815
8815
  (this.contact.pubGruu || this.contact.tempGruu) && t.push("gruu");
8816
8816
  const i = {
@@ -8828,13 +8828,13 @@ class G {
8828
8828
  viaHost: this.options.viaHost,
8829
8829
  authenticationFactory: () => {
8830
8830
  const r = this.options.authorizationUsername ? this.options.authorizationUsername : this.options.uri.user, n = this.options.authorizationPassword ? this.options.authorizationPassword : void 0, a = this.options.authorizationHa1 ? this.options.authorizationHa1 : void 0;
8831
- return new Ot(this.getLoggerFactory(), a, r, n);
8831
+ return new jt(this.getLoggerFactory(), a, r, n);
8832
8832
  },
8833
8833
  transportAccessor: () => this.transport
8834
8834
  }, s = {
8835
8835
  onInvite: (r) => {
8836
8836
  var n;
8837
- const a = new de(this, r);
8837
+ const a = new he(this, r);
8838
8838
  if (r.delegate = {
8839
8839
  onCancel: (d) => {
8840
8840
  a._onCancel(d);
@@ -8843,7 +8843,7 @@ class G {
8843
8843
  onTransportError: (d) => {
8844
8844
  this.logger.error("A transport error has occurred while handling an incoming INVITE request.");
8845
8845
  }
8846
- }, r.trying(), this.options.sipExtensionReplaces !== W.Unsupported) {
8846
+ }, r.trying(), this.options.sipExtensionReplaces !== K.Unsupported) {
8847
8847
  const f = r.message.parseHeader("replaces");
8848
8848
  if (f) {
8849
8849
  const h = f.call_id;
@@ -8855,7 +8855,7 @@ class G {
8855
8855
  const S = f.replaces_from_tag;
8856
8856
  if (typeof S != "string")
8857
8857
  throw new Error("type of from tag is not string");
8858
- const _ = h + w + S, I = this.userAgentCore.dialogs.get(_);
8858
+ const x = h + w + S, I = this.userAgentCore.dialogs.get(x);
8859
8859
  if (!I) {
8860
8860
  a.reject({ statusCode: 481 });
8861
8861
  return;
@@ -8887,14 +8887,14 @@ class G {
8887
8887
  },
8888
8888
  onMessage: (r) => {
8889
8889
  if (this.delegate && this.delegate.onMessage) {
8890
- const n = new ht(r);
8890
+ const n = new wt(r);
8891
8891
  this.delegate.onMessage(n);
8892
8892
  } else
8893
8893
  r.accept();
8894
8894
  },
8895
8895
  onNotify: (r) => {
8896
8896
  if (this.delegate && this.delegate.onNotify) {
8897
- const n = new Ve(r);
8897
+ const n = new ze(r);
8898
8898
  this.delegate.onNotify(n);
8899
8899
  } else
8900
8900
  this.options.allowLegacyNotifications ? r.accept() : r.reject({ statusCode: 481 });
@@ -8909,7 +8909,7 @@ class G {
8909
8909
  this.logger.warn("Received an out of dialog SUBSCRIBE request"), this.delegate && this.delegate.onSubscribeRequest ? this.delegate.onSubscribeRequest(r) : r.reject({ statusCode: 405 });
8910
8910
  }
8911
8911
  };
8912
- return new ri(i, s);
8912
+ return new li(i, s);
8913
8913
  }
8914
8914
  initTransportCallbacks() {
8915
8915
  this.transport.onConnect = () => this.onTransportConnect(), this.transport.onDisconnect = (e) => this.onTransportDisconnect(e), this.transport.onMessage = (e) => this.onTransportMessage(e);
@@ -8921,12 +8921,12 @@ class G {
8921
8921
  this.state !== k.Stopped && (this.delegate && this.delegate.onDisconnect && this.delegate.onDisconnect(e), e && this.options.reconnectionAttempts > 0 && this.attemptReconnection());
8922
8922
  }
8923
8923
  onTransportMessage(e) {
8924
- const t = Re.parseMessage(e, this.getLogger("sip.Parser"));
8924
+ const t = Ae.parseMessage(e, this.getLogger("sip.Parser"));
8925
8925
  if (!t) {
8926
8926
  this.logger.warn("Failed to parse incoming message. Dropping.");
8927
8927
  return;
8928
8928
  }
8929
- if (this.state === k.Stopped && t instanceof ge) {
8929
+ if (this.state === k.Stopped && t instanceof pe) {
8930
8930
  this.logger.warn(`Received ${t.method} request while stopped. Dropping.`);
8931
8931
  return;
8932
8932
  }
@@ -8937,7 +8937,7 @@ class G {
8937
8937
  return this.logger.warn(`Missing mandatory header field : ${r}.`), !1;
8938
8938
  return !0;
8939
8939
  };
8940
- if (t instanceof ge) {
8940
+ if (t instanceof pe) {
8941
8941
  if (!i()) {
8942
8942
  this.logger.warn("Request missing mandatory header field. Dropping.");
8943
8943
  return;
@@ -8946,13 +8946,13 @@ class G {
8946
8946
  this.userAgentCore.replyStateless(t, { statusCode: 482 });
8947
8947
  return;
8948
8948
  }
8949
- const s = Se(t.body), r = t.getHeader("content-length");
8949
+ const s = Ee(t.body), r = t.getHeader("content-length");
8950
8950
  if (r && s < Number(r)) {
8951
8951
  this.userAgentCore.replyStateless(t, { statusCode: 400 });
8952
8952
  return;
8953
8953
  }
8954
8954
  }
8955
- if (t instanceof oe) {
8955
+ if (t instanceof ce) {
8956
8956
  if (!i()) {
8957
8957
  this.logger.warn("Response missing mandatory header field. Dropping.");
8958
8958
  return;
@@ -8965,17 +8965,17 @@ class G {
8965
8965
  this.logger.warn("Via sent-by in the response does not match UA Via host value. Dropping.");
8966
8966
  return;
8967
8967
  }
8968
- const s = Se(t.body), r = t.getHeader("content-length");
8968
+ const s = Ee(t.body), r = t.getHeader("content-length");
8969
8969
  if (r && s < Number(r)) {
8970
8970
  this.logger.warn("Message body length is lower than the value in Content-Length header field. Dropping.");
8971
8971
  return;
8972
8972
  }
8973
8973
  }
8974
- if (t instanceof ge) {
8974
+ if (t instanceof pe) {
8975
8975
  this.userAgentCore.receiveIncomingRequestFromTransport(t);
8976
8976
  return;
8977
8977
  }
8978
- if (t instanceof oe) {
8978
+ if (t instanceof ce) {
8979
8979
  this.userAgentCore.receiveIncomingResponseFromTransport(t);
8980
8980
  return;
8981
8981
  }
@@ -9002,10 +9002,10 @@ class G {
9002
9002
  this.logger.log(`Transitioned from ${this._state} to ${e}`), this._state = e, this._stateEventEmitter.emit(this._state);
9003
9003
  }
9004
9004
  }
9005
- function ci() {
9005
+ function fi() {
9006
9006
  return (o, e) => ({ session: e, held: !1, muted: !1 });
9007
9007
  }
9008
- class We {
9008
+ class Ze {
9009
9009
  /**
9010
9010
  * Constructs a new instance of the `SessionManager` class.
9011
9011
  * @param server - SIP WebSocket Server URL.
@@ -9017,7 +9017,7 @@ class We {
9017
9017
  autoStop: !0,
9018
9018
  delegate: {},
9019
9019
  iceStopWaitingOnServerReflexive: !1,
9020
- managedSessionFactory: ci(),
9020
+ managedSessionFactory: fi(),
9021
9021
  maxSimultaneousSessions: 2,
9022
9022
  media: {},
9023
9023
  optionsPingInterval: -1,
@@ -9031,17 +9031,17 @@ class We {
9031
9031
  registererRegisterOptions: {},
9032
9032
  sendDTMFUsingSessionDescriptionHandler: !1,
9033
9033
  userAgentOptions: {}
9034
- }, We.stripUndefinedProperties(t));
9034
+ }, Ze.stripUndefinedProperties(t));
9035
9035
  const i = Object.assign({}, t.userAgentOptions);
9036
- if (i.transportConstructor || (i.transportConstructor = Te), i.transportOptions || (i.transportOptions = {
9036
+ if (i.transportConstructor || (i.transportConstructor = _e), i.transportOptions || (i.transportOptions = {
9037
9037
  server: e
9038
9038
  }), !i.uri && t.aor) {
9039
- const s = G.makeURI(t.aor);
9039
+ const s = W.makeURI(t.aor);
9040
9040
  if (!s)
9041
9041
  throw new Error(`Failed to create valid URI from ${t.aor}`);
9042
9042
  i.uri = s;
9043
9043
  }
9044
- if (this.userAgent = new G(i), this.userAgent.delegate = {
9044
+ if (this.userAgent = new W(i), this.userAgent.delegate = {
9045
9045
  // Handle connection with server established
9046
9046
  onConnect: () => {
9047
9047
  this.logger.log("Connected"), this.delegate && this.delegate.onServerConnect && this.delegate.onServerConnect(), this.shouldBeRegistered && this.register(), this.options.optionsPingInterval > 0 && this.optionsPingStart();
@@ -9205,17 +9205,17 @@ class We {
9205
9205
  * Attempts will be made to re-register as needed.
9206
9206
  */
9207
9207
  async register(e) {
9208
- return this.logger.log("Registering UserAgent..."), this.shouldBeRegistered = !0, e !== void 0 && (this.registererRegisterOptions = Object.assign({}, e)), this.registerer || (this.registerer = new J(this.userAgent, this.registererOptions), this.registerer.stateChange.addListener((t) => {
9208
+ return this.logger.log("Registering UserAgent..."), this.shouldBeRegistered = !0, e !== void 0 && (this.registererRegisterOptions = Object.assign({}, e)), this.registerer || (this.registerer = new Z(this.userAgent, this.registererOptions), this.registerer.stateChange.addListener((t) => {
9209
9209
  switch (t) {
9210
- case R.Initial:
9210
+ case _.Initial:
9211
9211
  break;
9212
- case R.Registered:
9212
+ case _.Registered:
9213
9213
  this.delegate && this.delegate.onRegistered && this.delegate.onRegistered();
9214
9214
  break;
9215
- case R.Unregistered:
9215
+ case _.Unregistered:
9216
9216
  this.delegate && this.delegate.onUnregistered && this.delegate.onUnregistered(), this.shouldBeRegistered && this.attemptRegistration();
9217
9217
  break;
9218
- case R.Terminated:
9218
+ case _.Terminated:
9219
9219
  break;
9220
9220
  default:
9221
9221
  throw new Error("Unknown registerer state.");
@@ -9247,7 +9247,7 @@ class We {
9247
9247
  const s = this.options.maxSimultaneousSessions;
9248
9248
  if (s !== 0 && this.managedSessions.length > s)
9249
9249
  return Promise.reject(new Error("Maximum number of sessions already exists."));
9250
- const r = G.makeURI(e);
9250
+ const r = W.makeURI(e);
9251
9251
  if (!r)
9252
9252
  return Promise.reject(new Error(`Failed to create a valid URI from "${e}"`));
9253
9253
  if (t || (t = {}), t.sessionDescriptionHandlerOptions || (t.sessionDescriptionHandlerOptions = {}), t.sessionDescriptionHandlerOptions.constraints || (t.sessionDescriptionHandlerOptions.constraints = this.constraints), t.earlyMedia) {
@@ -9267,7 +9267,7 @@ class We {
9267
9267
  }
9268
9268
  };
9269
9269
  });
9270
- const n = new Ee(this.userAgent, r, t);
9270
+ const n = new Ie(this.userAgent, r, t);
9271
9271
  return this.sendInvite(n, t, i).then(() => n);
9272
9272
  }
9273
9273
  /**
@@ -9291,7 +9291,7 @@ class We {
9291
9291
  * @param invitationAcceptOptions - Optional options for Inviter.accept().
9292
9292
  */
9293
9293
  async answer(e, t) {
9294
- return this.logger.log(`[${e.id}] Accepting Invitation...`), this.sessionExists(e) ? e instanceof de ? (t || (t = {}), t.sessionDescriptionHandlerOptions || (t.sessionDescriptionHandlerOptions = {}), t.sessionDescriptionHandlerOptions.constraints || (t.sessionDescriptionHandlerOptions.constraints = this.constraints), e.accept(t)) : Promise.reject(new Error("Session not instance of Invitation.")) : Promise.reject(new Error("Session does not exist."));
9294
+ return this.logger.log(`[${e.id}] Accepting Invitation...`), this.sessionExists(e) ? e instanceof he ? (t || (t = {}), t.sessionDescriptionHandlerOptions || (t.sessionDescriptionHandlerOptions = {}), t.sessionDescriptionHandlerOptions.constraints || (t.sessionDescriptionHandlerOptions.constraints = this.constraints), e.accept(t)) : Promise.reject(new Error("Session not instance of Invitation.")) : Promise.reject(new Error("Session does not exist."));
9295
9295
  }
9296
9296
  /**
9297
9297
  * Decline an incoming call.
@@ -9302,7 +9302,7 @@ class We {
9302
9302
  * Use `onCallHangup` delegate method to determine if and when call is ended.
9303
9303
  */
9304
9304
  async decline(e) {
9305
- return this.logger.log(`[${e.id}] Rejecting Invitation...`), this.sessionExists(e) ? e instanceof de ? e.reject() : Promise.reject(new Error("Session not instance of Invitation.")) : Promise.reject(new Error("Session does not exist."));
9305
+ return this.logger.log(`[${e.id}] Rejecting Invitation...`), this.sessionExists(e) ? e instanceof he ? e.reject() : Promise.reject(new Error("Session not instance of Invitation.")) : Promise.reject(new Error("Session does not exist."));
9306
9306
  }
9307
9307
  /**
9308
9308
  * Hold call
@@ -9403,10 +9403,10 @@ Duration=` + 2e3
9403
9403
  * and execute a blind transfer to the target.
9404
9404
  */
9405
9405
  async transfer(e, t, i) {
9406
- if (this.logger.log(`[${e.id}] Referring session...`), t instanceof fe)
9406
+ if (this.logger.log(`[${e.id}] Referring session...`), t instanceof me)
9407
9407
  return e.refer(t, i).then(() => {
9408
9408
  });
9409
- const s = G.makeURI(t);
9409
+ const s = W.makeURI(t);
9410
9410
  return s ? e.refer(s, i).then(() => {
9411
9411
  }) : Promise.reject(new Error(`Failed to create a valid URI from "${t}"`));
9412
9412
  }
@@ -9418,8 +9418,8 @@ Duration=` + 2e3
9418
9418
  */
9419
9419
  async message(e, t) {
9420
9420
  this.logger.log("Sending message...");
9421
- const i = G.makeURI(e);
9422
- return i ? new qt(this.userAgent, i, t).message() : Promise.reject(new Error(`Failed to create a valid URI from "${e}"`));
9421
+ const i = W.makeURI(e);
9422
+ return i ? new Bt(this.userAgent, i, t).message() : Promise.reject(new Error(`Failed to create a valid URI from "${e}"`));
9423
9423
  }
9424
9424
  /** Media constraints. */
9425
9425
  get constraints() {
@@ -9474,7 +9474,7 @@ Duration=` + 2e3
9474
9474
  t().then(() => {
9475
9475
  this.registrationAttemptTimeout = void 0, s();
9476
9476
  }).catch((n) => {
9477
- this.registrationAttemptTimeout = void 0, n instanceof be ? s() : r(n);
9477
+ this.registrationAttemptTimeout = void 0, n instanceof Te ? s() : r(n);
9478
9478
  });
9479
9479
  }, e ? 0 : i(this.options.registrationRetryInterval));
9480
9480
  });
@@ -9604,11 +9604,11 @@ Duration=` + 2e3
9604
9604
  this.logger.log("OPTIONS pings started");
9605
9605
  let e, t, i;
9606
9606
  if (this.options.optionsPingRequestURI) {
9607
- if (e = G.makeURI(this.options.optionsPingRequestURI), !e)
9607
+ if (e = W.makeURI(this.options.optionsPingRequestURI), !e)
9608
9608
  throw new Error("Failed to create Request URI.");
9609
9609
  t = this.userAgent.contact.uri.clone(), i = this.userAgent.contact.uri.clone();
9610
9610
  } else if (this.options.aor) {
9611
- const s = G.makeURI(this.options.aor);
9611
+ const s = W.makeURI(this.options.aor);
9612
9612
  if (!s)
9613
9613
  throw new Error("Failed to create URI.");
9614
9614
  e = s.clone(), e.user = void 0, t = s.clone(), i = s.clone();
@@ -9680,7 +9680,7 @@ Duration=` + 2e3
9680
9680
  const a = this.sessionManaged(e);
9681
9681
  a !== void 0 && (this.enableReceiverTracks(e, !a.held), this.enableSenderTracks(e, !a.held && !a.muted));
9682
9682
  }).catch((a) => {
9683
- throw n.held = !t, a instanceof be && this.logger.error(`[${e.id}] A hold request is already in progress.`), a;
9683
+ throw n.held = !t, a instanceof Te && this.logger.error(`[${e.id}] A hold request is already in progress.`), a;
9684
9684
  });
9685
9685
  }
9686
9686
  /**
@@ -9749,21 +9749,21 @@ Duration=` + 2e3
9749
9749
  async terminate(e) {
9750
9750
  switch (this.logger.log(`[${e.id}] Terminating...`), e.state) {
9751
9751
  case m.Initial:
9752
- if (e instanceof Ee)
9752
+ if (e instanceof Ie)
9753
9753
  return e.cancel().then(() => {
9754
9754
  this.logger.log(`[${e.id}] Inviter never sent INVITE (canceled)`);
9755
9755
  });
9756
- if (e instanceof de)
9756
+ if (e instanceof he)
9757
9757
  return e.reject().then(() => {
9758
9758
  this.logger.log(`[${e.id}] Invitation rejected (sent 480)`);
9759
9759
  });
9760
9760
  throw new Error("Unknown session type.");
9761
9761
  case m.Establishing:
9762
- if (e instanceof Ee)
9762
+ if (e instanceof Ie)
9763
9763
  return e.cancel().then(() => {
9764
9764
  this.logger.log(`[${e.id}] Inviter canceled (sent CANCEL)`);
9765
9765
  });
9766
- if (e instanceof de)
9766
+ if (e instanceof he)
9767
9767
  return e.reject().then(() => {
9768
9768
  this.logger.log(`[${e.id}] Invitation rejected (sent 480)`);
9769
9769
  });
@@ -9782,7 +9782,7 @@ Duration=` + 2e3
9782
9782
  return this.logger.log(`[${e.id}] Terminating in state ${e.state}, no action taken`), Promise.resolve();
9783
9783
  }
9784
9784
  }
9785
- class di {
9785
+ class pi {
9786
9786
  /**
9787
9787
  * Constructs a new instance of the `SimpleUser` class.
9788
9788
  * @param server - SIP WebSocket Server URL.
@@ -9846,7 +9846,7 @@ class di {
9846
9846
  sendDTMFUsingSessionDescriptionHandler: this.options.sendDTMFUsingSessionDescriptionHandler,
9847
9847
  userAgentOptions: this.options.userAgentOptions
9848
9848
  };
9849
- this.sessionManager = new We(e, i), this.logger = this.sessionManager.userAgent.getLogger("sip.SimpleUser");
9849
+ this.sessionManager = new Ze(e, i), this.logger = this.sessionManager.userAgent.getLogger("sip.SimpleUser");
9850
9850
  }
9851
9851
  /**
9852
9852
  * Instance identifier.
@@ -10051,13 +10051,13 @@ class di {
10051
10051
  return this.logger.log(`[${this.id}] sending message...`), this.sessionManager.message(e, t);
10052
10052
  }
10053
10053
  }
10054
- const li = 15e3, hi = 15e3, Ne = (o, e, t) => {
10054
+ const mi = 15e3, wi = 15e3, je = (o, e, t) => {
10055
10055
  const i = String(o?.name || o?.code || "").trim(), s = new Error(e);
10056
10056
  return s.name = i || "MediaAccessError", s.code = t, s.cause = o, s;
10057
- }, Ue = (o) => {
10057
+ }, Ve = (o) => {
10058
10058
  const e = new Error(o);
10059
10059
  return e.name = "SipClientLifecycleCancelledError", e.code = "sip_client_replaced", e;
10060
- }, Ge = async (o, e = "call") => {
10060
+ }, Ye = async (o, e = "call") => {
10061
10061
  const t = String(o?.name || o?.code || "").trim(), i = String(o?.message || "").trim(), s = `${t} ${i}`.toLowerCase();
10062
10062
  let r = "";
10063
10063
  try {
@@ -10068,30 +10068,30 @@ const li = 15e3, hi = 15e3, Ne = (o, e, t) => {
10068
10068
  } catch {
10069
10069
  r = "";
10070
10070
  }
10071
- return r === "denied" || t === "NotAllowedError" || t === "SecurityError" || s.includes("notallowederror") || s.includes("permission denied") || s.includes("permission dismissed") || s.includes("microphone permission") || s.includes("getusermedia() no permission") ? Ne(
10071
+ return r === "denied" || t === "NotAllowedError" || t === "SecurityError" || s.includes("notallowederror") || s.includes("permission denied") || s.includes("permission dismissed") || s.includes("microphone permission") || s.includes("getusermedia() no permission") ? je(
10072
10072
  o,
10073
10073
  `浏览器未授予麦克风权限,无法${e === "answer" ? "接听来电" : "发起通话"}。请点击地址栏的麦克风权限并选择“允许”,然后刷新页面重试。`,
10074
10074
  "media_permission_denied"
10075
- ) : t === "NotFoundError" || t === "DevicesNotFoundError" || s.includes("notfounderror") || s.includes("requested device not found") || s.includes("no audio input device") ? Ne(
10075
+ ) : t === "NotFoundError" || t === "DevicesNotFoundError" || s.includes("notfounderror") || s.includes("requested device not found") || s.includes("no audio input device") ? je(
10076
10076
  o,
10077
10077
  "未检测到可用的麦克风设备,无法建立语音通话。请连接耳麦或启用系统麦克风后重试。",
10078
10078
  "media_device_not_found"
10079
- ) : t === "NotReadableError" || t === "TrackStartError" || s.includes("notreadableerror") || s.includes("could not start audio source") ? Ne(
10079
+ ) : t === "NotReadableError" || t === "TrackStartError" || s.includes("notreadableerror") || s.includes("could not start audio source") ? je(
10080
10080
  o,
10081
10081
  "麦克风当前被系统或其他应用占用,无法建立语音通话。请关闭占用麦克风的程序后重试。",
10082
10082
  "media_device_unavailable"
10083
10083
  ) : o;
10084
- }, ui = async (o = "call") => {
10084
+ }, yi = async (o = "call") => {
10085
10085
  if (typeof navigator > "u" || !navigator.mediaDevices?.getUserMedia)
10086
10086
  return null;
10087
10087
  let e = null;
10088
10088
  try {
10089
10089
  return e = await navigator.mediaDevices.getUserMedia({ audio: !0, video: !1 }), e;
10090
10090
  } catch (t) {
10091
- throw await Ge(t, o);
10091
+ throw await Ye(t, o);
10092
10092
  }
10093
10093
  };
10094
- class gi {
10094
+ class bi {
10095
10095
  constructor(e, t = {}) {
10096
10096
  this.account = { ...e }, this.remoteAudioElementId = t.remoteAudioElementId || "sipRemoteAudio", this.remoteAudioElement = t.remoteAudioElement || null, this.onStateChange = t.onStateChange, this.onError = t.onError, this.onAudioLevel = t.onAudioLevel, this.onAudioFrame = t.onAudioFrame, this.simpleUser = null, this.connected = !1, this.registered = !1, this.active = !1, this.lastFailureMeta = null, this.audioContext = null, this.audioMonitors = {
10097
10097
  local: null,
@@ -10099,7 +10099,7 @@ class gi {
10099
10099
  }, this.audioTrackMeta = {
10100
10100
  local: null,
10101
10101
  remote: null
10102
- }, this.ringbackAudio = null, this.ringbackPlaying = !1, this.incomingAudio = null, this.incomingPlaying = !1, this.hangupInitiatedByLocal = !1, this.ringbackToneUrl = this._resolveToneUrl(t.ringbackTone || "ringback1.wav"), this.incomingToneUrl = this._resolveToneUrl(t.incomingTone || "ring1.wav"), this.pendingPlaybackTasks = /* @__PURE__ */ new Map(), this.audioUnlockHandler = null, this.lastSessionMeta = null, this.ensureReadyPromise = null, this.connectionWaiters = /* @__PURE__ */ new Set(), this.registrationWaiters = /* @__PURE__ */ new Set(), this.connectionConfirmTimeoutMs = Number.isFinite(Number(t.connectionConfirmTimeoutMs)) ? Number(t.connectionConfirmTimeoutMs) : li, this.registrationConfirmTimeoutMs = Number.isFinite(Number(t.registrationConfirmTimeoutMs)) ? Number(t.registrationConfirmTimeoutMs) : hi, this.peerConnectionDebug = {
10102
+ }, this.ringbackAudio = null, this.ringbackPlaying = !1, this.incomingAudio = null, this.incomingPlaying = !1, this.hangupInitiatedByLocal = !1, this.ringbackToneUrl = this._resolveToneUrl(t.ringbackTone || "ringback1.wav"), this.incomingToneUrl = this._resolveToneUrl(t.incomingTone || "ring1.wav"), this.pendingPlaybackTasks = /* @__PURE__ */ new Map(), this.audioUnlockHandler = null, this.lastSessionMeta = null, this.ensureReadyPromise = null, this.connectionWaiters = /* @__PURE__ */ new Set(), this.registrationWaiters = /* @__PURE__ */ new Set(), this.connectionConfirmTimeoutMs = Number.isFinite(Number(t.connectionConfirmTimeoutMs)) ? Number(t.connectionConfirmTimeoutMs) : mi, this.registrationConfirmTimeoutMs = Number.isFinite(Number(t.registrationConfirmTimeoutMs)) ? Number(t.registrationConfirmTimeoutMs) : wi, this.peerConnectionDebug = {
10103
10103
  attached: !1,
10104
10104
  events: [],
10105
10105
  iceCandidates: [],
@@ -10323,7 +10323,7 @@ class gi {
10323
10323
  registererOptions: {
10324
10324
  expires: 1800
10325
10325
  }
10326
- }, w = new di(d, h);
10326
+ }, w = new pi(d, h);
10327
10327
  return w.delegate = {
10328
10328
  onServerConnect: () => {
10329
10329
  this.connected = !0, this._resolveConnectionWaiters(), this.onStateChange && this.onStateChange("connected", this.getConnectionSnapshot());
@@ -10350,10 +10350,10 @@ class gi {
10350
10350
  onCallHangup: () => {
10351
10351
  const S = this.active;
10352
10352
  if (this.active = !1, this.onStateChange) {
10353
- const _ = this.lastFailureMeta ? { ...this.lastFailureMeta } : {};
10354
- _.hangupSource = this.hangupInitiatedByLocal ? "local" : S ? "remote" : "unknown";
10353
+ const x = this.lastFailureMeta ? { ...this.lastFailureMeta } : {};
10354
+ x.hangupSource = this.hangupInitiatedByLocal ? "local" : S ? "remote" : "unknown";
10355
10355
  const I = this.lastSessionMeta || this._buildIncomingCallMeta();
10356
- I && Object.keys(I).length > 0 && (_.callMeta = I), this.onStateChange("terminated", _);
10356
+ I && Object.keys(I).length > 0 && (x.callMeta = I), this.onStateChange("terminated", x);
10357
10357
  }
10358
10358
  this.hangupInitiatedByLocal = !1, this._stopAllAudioMonitors(), this._reportAudioSilence(), this._stopRingback(), this._stopIncomingTone(), this.lastFailureMeta = null, this.lastSessionMeta = null;
10359
10359
  }
@@ -10382,7 +10382,7 @@ class gi {
10382
10382
  }
10383
10383
  _isIncomingSession() {
10384
10384
  if (!this.simpleUser || !this.simpleUser.session) return !1;
10385
- if (typeof de < "u" && this.simpleUser.session instanceof de)
10385
+ if (typeof he < "u" && this.simpleUser.session instanceof he)
10386
10386
  return !0;
10387
10387
  const e = this.simpleUser.session;
10388
10388
  return !!(e && e.incomingInviteRequest);
@@ -10402,7 +10402,7 @@ class gi {
10402
10402
  }
10403
10403
  _assertSimpleUserIsCurrent(e, t = "当前操作") {
10404
10404
  if (!(e && this.simpleUser === e && this.account))
10405
- throw Ue(`SIP 客户端已重置,已取消${t}。`);
10405
+ throw Ve(`SIP 客户端已重置,已取消${t}。`);
10406
10406
  }
10407
10407
  _resolveRegistrationWaiters() {
10408
10408
  if (!this.registrationWaiters.size)
@@ -10599,9 +10599,9 @@ class gi {
10599
10599
  async _preflightAudioAccess(e = "call") {
10600
10600
  let t = null;
10601
10601
  try {
10602
- t = await ui(e);
10602
+ t = await yi(e);
10603
10603
  } catch (i) {
10604
- const s = await Ge(i, e);
10604
+ const s = await Ye(i, e);
10605
10605
  throw this.onError && this.onError(s), this.lastFailureMeta = {
10606
10606
  source: "media-preflight",
10607
10607
  code: s?.code || null,
@@ -10660,7 +10660,7 @@ class gi {
10660
10660
  }
10661
10661
  }
10662
10662
  async _normalizeMediaAccessError(e, t = "call") {
10663
- return Ge(e, t);
10663
+ return Ye(e, t);
10664
10664
  }
10665
10665
  _createInviteRequestDelegate(e) {
10666
10666
  const t = (s, ...r) => {
@@ -10766,7 +10766,7 @@ class gi {
10766
10766
  }
10767
10767
  }
10768
10768
  async destroy() {
10769
- this._rejectConnectionWaiters(Ue("SIP 客户端已销毁,已取消连接等待。")), this._rejectRegistrationWaiters(Ue("SIP 客户端已销毁,已取消注册等待。")), this.ensureReadyPromise = null;
10769
+ this._rejectConnectionWaiters(Ve("SIP 客户端已销毁,已取消连接等待。")), this._rejectRegistrationWaiters(Ve("SIP 客户端已销毁,已取消注册等待。")), this.ensureReadyPromise = null;
10770
10770
  const e = this.simpleUser;
10771
10771
  if (e)
10772
10772
  try {
@@ -10851,8 +10851,8 @@ class gi {
10851
10851
  });
10852
10852
  } catch {
10853
10853
  }
10854
- const _ = this.audioMonitors[e];
10855
- _ && (_.rafId = window.requestAnimationFrame(a));
10854
+ const x = this.audioMonitors[e];
10855
+ x && (x.rafId = window.requestAnimationFrame(a));
10856
10856
  }, d = {
10857
10857
  source: i,
10858
10858
  analyser: s,
@@ -11052,54 +11052,54 @@ class gi {
11052
11052
  this.audioContext = null;
11053
11053
  }
11054
11054
  }
11055
- const fi = /^[a-z][a-z0-9+.-]*:\/\//i;
11056
- function pi(o, e = "") {
11055
+ const vi = /^[a-z][a-z0-9+.-]*:\/\//i;
11056
+ function Si(o, e = "") {
11057
11057
  const t = String(o || e || "").trim();
11058
11058
  if (!t)
11059
11059
  throw new Error("缺少统一服务基址");
11060
11060
  return t;
11061
11061
  }
11062
- function yt(o, e = "https://") {
11063
- return fi.test(o) ? o : `${e}${o.replace(/^\/+/, "")}`;
11062
+ function Et(o, e = "https://") {
11063
+ return vi.test(o) ? o : `${e}${o.replace(/^\/+/, "")}`;
11064
11064
  }
11065
- function bt(o = "/") {
11065
+ function _t(o = "/") {
11066
11066
  return o.endsWith("/") ? o : `${o}/`;
11067
11067
  }
11068
- function vt(o = "/", e = "") {
11069
- const t = bt(o || "/"), i = String(e || "").replace(/^\/+/, "");
11068
+ function Rt(o = "/", e = "") {
11069
+ const t = _t(o || "/"), i = String(e || "").replace(/^\/+/, "");
11070
11070
  return i ? `${t}${i}` : t;
11071
11071
  }
11072
- function ke(o, e = "") {
11073
- const t = yt(pi(o, e)), i = new URL(t);
11074
- return i.search = "", i.hash = "", i.pathname = bt(i.pathname || "/"), i;
11072
+ function qe(o, e = "") {
11073
+ const t = Et(Si(o, e)), i = new URL(t);
11074
+ return i.search = "", i.hash = "", i.pathname = _t(i.pathname || "/"), i;
11075
11075
  }
11076
- function mi(o, e = "") {
11077
- return ke(o, e).pathname !== "/";
11076
+ function Ti(o, e = "") {
11077
+ return qe(o, e).pathname !== "/";
11078
11078
  }
11079
- function z(o, e, t = "") {
11080
- const i = ke(o, t);
11081
- return i.pathname = vt(i.pathname, e), i.href;
11079
+ function Y(o, e, t = "") {
11080
+ const i = qe(o, t);
11081
+ return i.pathname = Rt(i.pathname, e), i.href;
11082
11082
  }
11083
- function Le(o, e = "ws", t = "") {
11084
- const i = ke(o, t);
11085
- return i.protocol === "https:" ? i.protocol = "wss:" : i.protocol === "http:" ? i.protocol = "ws:" : i.protocol !== "ws:" && i.protocol !== "wss:" && (i.protocol = "wss:"), i.pathname = vt(i.pathname, e), i.href;
11083
+ function Ge(o, e = "ws", t = "") {
11084
+ const i = qe(o, t);
11085
+ return i.protocol === "https:" ? i.protocol = "wss:" : i.protocol === "http:" ? i.protocol = "ws:" : i.protocol !== "ws:" && i.protocol !== "wss:" && (i.protocol = "wss:"), i.pathname = Rt(i.pathname, e), i.href;
11086
11086
  }
11087
- function it(o, e = "") {
11087
+ function at(o, e = "") {
11088
11088
  if (!String(o || "").trim())
11089
11089
  return String(e || "").replace(/^\/+/, "");
11090
- const t = new URL(yt(String(o).trim())), i = String(t.pathname || "/").replace(/^\/+/, ""), s = String(t.search || "");
11090
+ const t = new URL(Et(String(o).trim())), i = String(t.pathname || "/").replace(/^\/+/, ""), s = String(t.search || "");
11091
11091
  return `${i}${s}` || String(e || "").replace(/^\/+/, "");
11092
11092
  }
11093
- function st({
11093
+ function ct({
11094
11094
  apiBaseUrl: o,
11095
11095
  transportBaseUrl: e = "",
11096
11096
  transportUrl: t = "",
11097
11097
  fallbackPath: i = "ws"
11098
11098
  }) {
11099
11099
  const s = String(e || "").trim();
11100
- return s ? Le(s, it(t, i)) : mi(o) ? Le(o, it(t, i)) : String(t || "").trim() ? String(t).trim() : Le(o, i);
11100
+ return s ? Ge(s, at(t, i)) : Ti(o) ? Ge(o, at(t, i)) : String(t || "").trim() ? String(t).trim() : Ge(o, i);
11101
11101
  }
11102
- const wi = `
11102
+ const Ci = `
11103
11103
  :host { all: initial; }
11104
11104
  .widget { font-family: "Noto Sans SC", "PingFang SC", sans-serif; color: #16302b; }
11105
11105
  .panel { width: min(360px, 92vw); border-radius: 24px; overflow: hidden; background: linear-gradient(180deg, #fffdf6, #f4efe4); box-shadow: 0 22px 54px rgba(17, 30, 28, 0.22); border: 1px solid rgba(28, 78, 67, 0.12); }
@@ -11112,9 +11112,11 @@ const wi = `
11112
11112
  .availability--working { color: #0b4f71; background: rgba(220, 240, 255, 0.96); }
11113
11113
  .availability--recovering { color: #8a5a00; background: rgba(255, 244, 200, 0.96); }
11114
11114
  .availability--offline { color: #8b1e3f; background: rgba(255, 226, 231, 0.96); }
11115
+ .availability--conflicted { color: #6f1d1b; background: rgba(255, 233, 228, 0.96); }
11115
11116
  .status { margin-top: 10px; padding: 10px 12px; border-radius: 16px; background: rgba(255,255,255,0.78); font-size: 13px; }
11116
11117
  .status--offline { border: 1px solid rgba(203, 36, 78, 0.26); background: rgba(255, 243, 245, 0.96); color: #7a1633; }
11117
11118
  .status--recovering { border: 1px solid rgba(196, 122, 0, 0.22); background: rgba(255, 249, 232, 0.96); color: #744600; }
11119
+ .status--conflicted { border: 1px solid rgba(180, 55, 41, 0.24); background: rgba(255, 241, 238, 0.97); color: #7f231e; }
11118
11120
  .hint { margin-top: 10px; font-size: 12px; line-height: 1.5; color: #355b54; }
11119
11121
  .meta { padding: 14px 18px; font-size: 13px; line-height: 1.6; border-top: 1px solid rgba(28, 78, 67, 0.08); }
11120
11122
  .actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 0 18px 18px; }
@@ -11134,7 +11136,7 @@ const wi = `
11134
11136
  .btn { min-height: 44px; font-size: 15px; }
11135
11137
  .logs { max-height: 140px; padding: 0 16px 16px; }
11136
11138
  }
11137
- `, ee = {
11139
+ `, te = {
11138
11140
  idle: "网页电话已加载,正在准备待机能力。",
11139
11141
  requesting: "正在向服务端申请网页通话会话。",
11140
11142
  standbyRequesting: "正在向服务端申请 widget 待机会话。",
@@ -11147,74 +11149,170 @@ const wi = `
11147
11149
  rejected: "本次来电已拒接,widget 仍保持待机。",
11148
11150
  missed: "本次来电未接听,widget 仍保持待机。",
11149
11151
  failed: "本次呼叫失败,请先看下方日志。"
11150
- }, yi = "手机网页首次接入时,请允许麦克风权限;若切到后台后再回来,先确认页面仍保持前台活跃。", bi = 5e3, vi = 15e3, rt = 2, we = 3e4, Si = 1200, Ti = 3e4, Ci = 4e3, Ce = {
11152
+ }, Ei = "手机网页首次接入时,请允许麦克风权限;若切到后台后再回来,先确认页面仍保持前台活跃。", _i = 5e3, Ri = 15e3, dt = 2, be = 3e4, xi = 1200, Ii = 3e4, Ai = 4e3, Re = {
11151
11153
  ready: "线路可用",
11152
11154
  preparing: "正在准备",
11153
11155
  working: "通话处理中",
11154
11156
  recovering: "正在恢复",
11155
- offline: "当前离线"
11156
- };
11157
- function Ei(o, e) {
11157
+ offline: "当前离线",
11158
+ conflicted: "协议冲突"
11159
+ }, ve = Object.freeze({
11160
+ standby: "widget_standby",
11161
+ outbound: "outbound"
11162
+ }), lt = Object.freeze({
11163
+ standby: "standby",
11164
+ outbound: "outbound"
11165
+ }), Je = Object.freeze({
11166
+ keep: "keep",
11167
+ restartStandby: "restart_standby"
11168
+ }), $i = /* @__PURE__ */ new Set([
11169
+ "session_missing_or_terminal",
11170
+ "session_binding_changed",
11171
+ "session_anchor_changed",
11172
+ "browser_lease_lost",
11173
+ "anchor_or_browser_conflict"
11174
+ ]);
11175
+ function Di(o, e) {
11158
11176
  return e ? `${o}
11159
11177
  ${JSON.stringify(e, null, 2)}` : o;
11160
11178
  }
11161
11179
  function $(o, e, t) {
11162
11180
  t != null && (typeof t == "string" && t.trim() === "" || (o[e] = t));
11163
11181
  }
11164
- function Ri(o) {
11182
+ function ie(o) {
11183
+ return typeof o == "string" ? o.trim() : "";
11184
+ }
11185
+ function ht(o, e, t) {
11186
+ const i = ie(o?.session_mode);
11187
+ if (!i)
11188
+ throw N(`${t} 缺少必填字段 session_mode。`, {
11189
+ source: t,
11190
+ session_id: o?.session_id || null,
11191
+ expected_session_mode: e,
11192
+ received_session_mode: null
11193
+ });
11194
+ if (!Object.values(ve).includes(i))
11195
+ throw N(`${t} 返回了未登记的 session_mode。`, {
11196
+ source: t,
11197
+ session_id: o?.session_id || null,
11198
+ expected_session_mode: e,
11199
+ received_session_mode: i
11200
+ });
11201
+ if (i !== e)
11202
+ throw N(`${t} 返回的 session_mode 与当前流程不匹配。`, {
11203
+ source: t,
11204
+ session_id: o?.session_id || null,
11205
+ expected_session_mode: e,
11206
+ received_session_mode: i
11207
+ });
11208
+ return i;
11209
+ }
11210
+ function ki(o, e = {}) {
11211
+ const t = ie(e?.session_action).toLowerCase(), i = ie(e?.session_action_reason) || null, s = ie(e?.session_action_detail) || null, r = ie(e?.resolved_session_id) || null, n = ie(e?.resolved_widget_anchor_number) || null, a = ie(e?.resolved_browser_sip_username) || null, d = {
11212
+ source: o,
11213
+ session_action: t || null,
11214
+ session_action_reason: i,
11215
+ session_action_detail: s,
11216
+ resolved_session_id: r,
11217
+ resolved_widget_anchor_number: n,
11218
+ resolved_browser_sip_username: a
11219
+ };
11220
+ if (!t)
11221
+ throw N("服务端缺少必填字段 session_action。", d);
11222
+ if (!Object.values(Je).includes(t))
11223
+ throw N("服务端返回了未登记的 session_action。", d);
11224
+ if (t === Je.keep) {
11225
+ if (i || s)
11226
+ throw N("session_action=keep 时不得携带 session_action_reason 或 session_action_detail。", d);
11227
+ return {
11228
+ action: t,
11229
+ reason: null,
11230
+ detail: null,
11231
+ resolvedSessionId: r,
11232
+ resolvedWidgetAnchorNumber: n,
11233
+ resolvedBrowserSipUsername: a
11234
+ };
11235
+ }
11236
+ if (!i)
11237
+ throw N("session_action=restart_standby 时必须携带 session_action_reason。", d);
11238
+ if (!$i.has(i))
11239
+ throw N("服务端返回了未登记的 session_action_reason。", d);
11240
+ if (!s)
11241
+ throw N("session_action=restart_standby 时必须携带非空的 session_action_detail。", d);
11242
+ if (i === "session_missing_or_terminal") {
11243
+ if (r || n || a)
11244
+ throw N("session_missing_or_terminal 不得返回非空 resolved_* 字段。", d);
11245
+ } else if (i === "session_binding_changed" || i === "browser_lease_lost") {
11246
+ if (!r || !a)
11247
+ throw N(`${i} 必须返回 resolved_session_id 和 resolved_browser_sip_username。`, d);
11248
+ } else if (i === "session_anchor_changed") {
11249
+ if (!r || !n)
11250
+ throw N("session_anchor_changed 必须返回 resolved_session_id 和 resolved_widget_anchor_number。", d);
11251
+ } else if (i === "anchor_or_browser_conflict" && (!r || !n && !a))
11252
+ throw N("anchor_or_browser_conflict 必须返回 resolved_session_id 及至少一个冲突定位字段。", d);
11253
+ return {
11254
+ action: t,
11255
+ reason: i,
11256
+ detail: s,
11257
+ resolvedSessionId: r,
11258
+ resolvedWidgetAnchorNumber: n,
11259
+ resolvedBrowserSipUsername: a
11260
+ };
11261
+ }
11262
+ function Pi(o) {
11165
11263
  return o === "outbound" ? "outbound" : "terminal";
11166
11264
  }
11167
- function xi(o) {
11265
+ function Hi(o) {
11168
11266
  return typeof o == "function";
11169
11267
  }
11170
- function _i() {
11268
+ function Mi() {
11171
11269
  return typeof window > "u" ? !1 : new URLSearchParams(window.location.search).get("embeddedCallWidgetE2E") === "1";
11172
11270
  }
11173
- function Ii() {
11271
+ function qi() {
11174
11272
  return typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `widget-${Date.now()}-${Math.random().toString(16).slice(2, 10)}`;
11175
11273
  }
11176
- function Be(o) {
11274
+ function We(o) {
11177
11275
  const e = String(o?.message || o || "");
11178
11276
  return /Failed to fetch|NetworkError|Load failed|network/i.test(e);
11179
11277
  }
11180
- function ie(o = {}, e = null) {
11278
+ function re(o = {}, e = null) {
11181
11279
  const t = o?.advanced && typeof o.advanced == "object" ? o.advanced : {}, i = String(t.visitorBusinessKey ?? "").trim();
11182
11280
  if (i)
11183
11281
  return i;
11184
11282
  const s = String(o?.businessKey ?? "").trim();
11185
11283
  return s || "";
11186
11284
  }
11187
- function Ai(o) {
11285
+ function Oi(o) {
11188
11286
  const e = new Error(o);
11189
11287
  return e.name = "EmbeddedCallWidgetLifecycleCancelledError", e.code = "widget_runtime_run_stale", e;
11190
11288
  }
11191
- function nt(o) {
11289
+ function ut(o) {
11192
11290
  return o?.code === "sip_client_replaced" || o?.code === "widget_runtime_run_stale";
11193
11291
  }
11194
- function $i(o, e = {}) {
11292
+ function N(o, e = {}) {
11195
11293
  const t = new Error(o);
11196
11294
  return t.name = "EmbeddedCallWidgetProtocolViolationError", t.code = "widget_protocol_violation", t.detail = e, t;
11197
11295
  }
11198
- function ot(o) {
11296
+ function xe(o) {
11199
11297
  return o?.code === "widget_protocol_violation";
11200
11298
  }
11201
- class Di {
11299
+ class Fi {
11202
11300
  constructor({ mount: e, shadowRoot: t, options: i }) {
11203
- this.mountNode = e, this.shadowRoot = t, this.options = i, this.mode = Ri(i.mode), this.legacyOutboundOnly = this.mode === "outbound", this.apiBaseUrl = ke(i.apiBaseUrl || window.location.origin).href, this.client = null, this.issuedSession = null, this.bootstrap = null, this.turnIceServers = [], this.state = "idle", this.finalizing = !1, this.isMobileViewport = !1, this.pendingIncomingCall = null, this.visibilityHandler = null, this.sessionTouchTimer = null, this.sessionRecoveryInFlight = null, this.transportDisconnectTimer = null, this.transportDisconnectContext = null, this.e2eBridgeEnabled = _i(), this.terminalFailureOverride = "", this.presenceId = Ii(), this.presenceTouchTimer = null, this.presenceFailureCount = 0, this.availabilityState = "preparing", this.availabilityDetail = "正在连接后台并准备网页电话待机。", this.connectivityRecoveryInFlight = null, this.lifecycleRunId = 0, this.pendingLifecycleMode = null, this.expectedClientTeardown = null, this.expectedTermination = null, this.autoStandbyRecoveryTimer = null, this.recentlyReleasedSessions = /* @__PURE__ */ new Map(), this.networkOnline = typeof navigator > "u" ? !0 : navigator.onLine !== !1, this.pageVisible = typeof document > "u" ? !0 : document.visibilityState === "visible", this.onlineHandler = null, this.offlineHandler = null, this.beforeUnloadHandler = null, this.pageHideHandler = null, this.unloadCleanupStarted = !1, this.refs = {};
11301
+ this.mountNode = e, this.shadowRoot = t, this.options = i, this.mode = Pi(i.mode), this.legacyOutboundOnly = this.mode === "outbound", this.apiBaseUrl = qe(i.apiBaseUrl || window.location.origin).href, this.client = null, this.issuedSession = null, this.bootstrap = null, this.turnIceServers = [], this.state = "idle", this.finalizing = !1, this.isMobileViewport = !1, this.pendingIncomingCall = null, this.visibilityHandler = null, this.sessionTouchTimer = null, this.sessionRecoveryInFlight = null, this.transportDisconnectTimer = null, this.transportDisconnectContext = null, this.e2eBridgeEnabled = Mi(), this.terminalFailureOverride = "", this.presenceId = qi(), this.presenceTouchTimer = null, this.presenceFailureCount = 0, this.availabilityState = "preparing", this.availabilityDetail = "正在连接后台并准备网页电话待机。", this.connectivityRecoveryInFlight = null, this.lifecycleRunId = 0, this.pendingLifecycleMode = null, this.expectedClientTeardown = null, this.expectedTermination = null, this.autoStandbyRecoveryTimer = null, this.recentlyReleasedSessions = /* @__PURE__ */ new Map(), this.networkOnline = typeof navigator > "u" ? !0 : navigator.onLine !== !1, this.pageVisible = typeof document > "u" ? !0 : document.visibilityState === "visible", this.onlineHandler = null, this.offlineHandler = null, this.beforeUnloadHandler = null, this.pageHideHandler = null, this.unloadCleanupStarted = !1, this.refs = {};
11204
11302
  }
11205
11303
  async mount() {
11206
11304
  this.isMobileViewport = typeof window < "u" && window.matchMedia("(max-width: 480px)").matches, this.shadowRoot.innerHTML = `
11207
- <style>${wi}</style>
11305
+ <style>${Ci}</style>
11208
11306
  <section class="widget">
11209
11307
  <div class="panel">
11210
11308
  <div class="hero">
11211
11309
  <p class="eyebrow">Embedded Call Button</p>
11212
11310
  <h2 class="title">${this.options.text || "联系管理员"}</h2>
11213
11311
  <div class="availability availability--preparing" data-role="availability">正在准备</div>
11214
- <div class="status" data-role="status">${ee.idle}</div>
11312
+ <div class="status" data-role="status">${te.idle}</div>
11215
11313
  <div class="hint" data-role="hint"></div>
11216
11314
  </div>
11217
- <div class="meta" data-role="meta">站点键:${this.options.siteKey || "等待服务端解析"};访客主动呼叫默认规则:${ie(this.options) || "等待服务端解析"}</div>
11315
+ <div class="meta" data-role="meta">站点键:${this.options.siteKey || "等待服务端解析"};访客主动呼叫默认规则:${re(this.options) || "等待服务端解析"}</div>
11218
11316
  <div class="actions">
11219
11317
  <button class="btn btn-primary" data-role="primary" type="button">恢复网页电话待机</button>
11220
11318
  <button class="btn btn-secondary" data-role="secondary" type="button" disabled>断开并清理</button>
@@ -11240,7 +11338,7 @@ class Di {
11240
11338
  }), this.isMobileViewport && ["requesting", "registering", "calling", "connected"].includes(this.state) && (this.refs.status.textContent = "页面已切到后台;手机网页回到前台后请确认通话仍在继续。");
11241
11339
  return;
11242
11340
  }
11243
- if (this.isMobileViewport && (this.appendLog("页面已回到前台", { state: this.state }), ["requesting", "registering", "calling", "connected"].includes(this.state) && (this.refs.status.textContent = ee[this.state] || ee.idle)), this.touchWidgetPresence("visibility-visible"), !this.legacyOutboundOnly && ["standby", "registering", "standbyRequesting", "failed", "idle", "missed", "rejected", "ended"].includes(this.state)) {
11341
+ if (this.isMobileViewport && (this.appendLog("页面已回到前台", { state: this.state }), ["requesting", "registering", "calling", "connected"].includes(this.state) && (this.refs.status.textContent = te[this.state] || te.idle)), this.touchWidgetPresence("visibility-visible"), !this.legacyOutboundOnly && ["standby", "registering", "standbyRequesting", "failed", "idle", "missed", "rejected", "ended"].includes(this.state)) {
11244
11342
  const e = this.client?.getConnectionSnapshot?.() || null, t = !!(e?.connected && (this.state !== "standby" || e?.registered));
11245
11343
  this.issuedSession?.session_id && t ? this.touchIssuedSession(this.state, { trigger: "visibility-visible" }) : (this.appendLog("页面回到前台后检测到待机链路未处于健康状态,准备自动重建。", {
11246
11344
  state: this.state,
@@ -11269,11 +11367,11 @@ class Di {
11269
11367
  }
11270
11368
  assertLifecycleRunCurrent(e) {
11271
11369
  if (e !== this.lifecycleRunId)
11272
- throw Ai("网页电话已切换到新的连接流程,旧流程不再继续。");
11370
+ throw Oi("网页电话已切换到新的连接流程,旧流程不再继续。");
11273
11371
  }
11274
11372
  emitHostCallback(e, t) {
11275
11373
  const i = this.options?.[e];
11276
- if (xi(i))
11374
+ if (Hi(i))
11277
11375
  try {
11278
11376
  i(t);
11279
11377
  } catch (s) {
@@ -11290,7 +11388,7 @@ class Di {
11290
11388
  sessionMode: this.issuedSession?.session_mode || null,
11291
11389
  sessionId: this.issuedSession?.session_id || null,
11292
11390
  siteKey: this.options.siteKey || this.bootstrap?.default_site_key || null,
11293
- businessKey: this.issuedSession?.resolved_business_key || ie(this.options, this.bootstrap) || null,
11391
+ businessKey: this.issuedSession?.resolved_business_key || re(this.options, this.bootstrap) || null,
11294
11392
  standbyMode: this.issuedSession?.standby_mode || null,
11295
11393
  standbyState: this.issuedSession?.standby_state || this.options.standbyState || null,
11296
11394
  widgetSipNumber: this.issuedSession?.widget_anchor_number || null,
@@ -11376,7 +11474,7 @@ class Di {
11376
11474
  const t = this.issuedSession?.session_mode === "widget_standby" && (this.issuedSession?.browser_sip_username || this.issuedSession?.sip_username) || null;
11377
11475
  !this.legacyOutboundOnly && this.issuedSession?.session_mode === "widget_standby" && (this.appendLog("访客主动呼叫前,先释放当前待机会话并切换到呼叫链路。", {
11378
11476
  widget_anchor_number: this.issuedSession?.widget_anchor_number || null,
11379
- resolved_business_key: this.issuedSession?.resolved_business_key || ie(this.options) || null
11477
+ resolved_business_key: this.issuedSession?.resolved_business_key || re(this.options) || null
11380
11478
  }), await this.disconnectAndCleanup("switch-to-outbound-call", {
11381
11479
  preserveLifecycleRun: !0,
11382
11480
  suppressStateReset: !0,
@@ -11390,14 +11488,18 @@ class Di {
11390
11488
  route_note: i.routeNote || null
11391
11489
  });
11392
11490
  } catch (t) {
11393
- if (this.pendingLifecycleMode = null, nt(t)) {
11491
+ if (this.pendingLifecycleMode = null, ut(t)) {
11394
11492
  this.appendLog("已忽略过期的网页电话呼叫流程", {
11395
11493
  message: t?.message || String(t)
11396
11494
  });
11397
11495
  return;
11398
11496
  }
11497
+ if (xe(t)) {
11498
+ await this.handleProtocolViolation(t);
11499
+ return;
11500
+ }
11399
11501
  const i = t?.message || String(t);
11400
- if (this.terminalFailureOverride = i, this.setState("failed", i), Be(t) || this.networkOnline === !1 ? this.setAvailabilityState("offline", this.networkOnline === !1 ? "当前网络连接已断开,正在等待恢复。" : "当前无法连接通话服务,正在自动尝试恢复。") : this.setAvailabilityState("recovering", "呼叫失败,正在准备恢复网页电话待机。"), this.appendLog("连接并呼叫失败", { message: i }), await this.releaseIssuedSession("failed", "connect-and-call-failed"), !this.legacyOutboundOnly) {
11502
+ if (this.terminalFailureOverride = i, this.setState("failed", i), We(t) || this.networkOnline === !1 ? this.setAvailabilityState("offline", this.networkOnline === !1 ? "当前网络连接已断开,正在等待恢复。" : "当前无法连接通话服务,正在自动尝试恢复。") : this.setAvailabilityState("recovering", "呼叫失败,正在准备恢复网页电话待机。"), this.appendLog("连接并呼叫失败", { message: i }), await this.releaseIssuedSession("failed", "connect-and-call-failed"), !this.legacyOutboundOnly) {
11401
11503
  this.appendLog("呼叫失败后,网页电话将恢复待机。", { message: i }), await this.startStandby({ force: !0 });
11402
11504
  return;
11403
11505
  }
@@ -11416,21 +11518,24 @@ class Di {
11416
11518
  const s = await this.fetchStandbySession();
11417
11519
  this.assertLifecycleRunCurrent(i), await this.ensureClient(s), this.assertLifecycleRunCurrent(i), this.setState("registering", "待机会话已拿到,正在连接并执行 REGISTER。"), await this.client.ensureReady(), this.assertLifecycleRunCurrent(i), this.pendingLifecycleMode = null, this.setState("standby"), this.setAvailabilityState("ready", "当前可被呼叫,也可由访客主动发起呼叫。"), this.appendLog("widget 已进入待机", {
11418
11520
  session_id: this.issuedSession?.session_id || null,
11419
- route_business_key: this.issuedSession?.resolved_business_key || ie(this.options) || null,
11521
+ route_business_key: this.issuedSession?.resolved_business_key || re(this.options) || null,
11420
11522
  standby_mode: this.issuedSession?.standby_mode || null,
11421
11523
  widget_anchor_number: this.issuedSession?.widget_anchor_number || null,
11422
11524
  browser_sip_username: this.issuedSession?.browser_sip_username || this.issuedSession?.sip_username || null
11423
11525
  }), this.emitHostCallback("onStandbyReady", this.getSnapshot());
11424
11526
  } catch (s) {
11425
- if (nt(s)) {
11527
+ if (ut(s)) {
11426
11528
  this.appendLog("已忽略过期的网页电话待机流程", {
11427
11529
  message: s?.message || String(s)
11428
11530
  });
11429
11531
  return;
11430
11532
  }
11431
- this.pendingLifecycleMode = null;
11533
+ if (this.pendingLifecycleMode = null, xe(s)) {
11534
+ await this.handleProtocolViolation(s);
11535
+ return;
11536
+ }
11432
11537
  const r = s?.message || String(s);
11433
- this.terminalFailureOverride = r, this.setState("failed", r), Be(s) || this.networkOnline === !1 ? this.setAvailabilityState("offline", this.networkOnline === !1 ? "当前网络连接已断开,正在等待恢复。" : "当前无法连接通话服务,正在自动尝试恢复。") : this.setAvailabilityState("recovering", "当前未能完成待机注册,系统会继续自动恢复。"), this.appendLog("进入待机失败", { message: r }), await this.releaseIssuedSession("failed", "standby-start-failed"), this.setState("failed", r), !this.legacyOutboundOnly && this.networkOnline !== !1 && this.scheduleAutoStandbyRecovery("standby-start-failed");
11538
+ this.terminalFailureOverride = r, this.setState("failed", r), We(s) || this.networkOnline === !1 ? this.setAvailabilityState("offline", this.networkOnline === !1 ? "当前网络连接已断开,正在等待恢复。" : "当前无法连接通话服务,正在自动尝试恢复。") : this.setAvailabilityState("recovering", "当前未能完成待机注册,系统会继续自动恢复。"), this.appendLog("进入待机失败", { message: r }), await this.releaseIssuedSession("failed", "standby-start-failed"), this.setState("failed", r), !this.legacyOutboundOnly && this.networkOnline !== !1 && this.scheduleAutoStandbyRecovery("standby-start-failed");
11434
11539
  }
11435
11540
  }
11436
11541
  async ensureClient(e) {
@@ -11441,7 +11546,7 @@ class Di {
11441
11546
  webrtc_url: e.transport,
11442
11547
  ice_servers: this.turnIceServers
11443
11548
  };
11444
- this.client?.matchesAccount(t) || (this.client && await this.client.destroy(), this.client = new gi(t, {
11549
+ this.client?.matchesAccount(t) || (this.client && await this.client.destroy(), this.client = new bi(t, {
11445
11550
  remoteAudioElement: this.refs.audio,
11446
11551
  onStateChange: (i, s) => {
11447
11552
  this.handleClientState(i, s);
@@ -11459,7 +11564,7 @@ class Di {
11459
11564
  return;
11460
11565
  }
11461
11566
  if (e === "ringing" || e === "dialing") {
11462
- this.setState("calling", t?.message || ee.calling);
11567
+ this.setState("calling", t?.message || te.calling);
11463
11568
  return;
11464
11569
  }
11465
11570
  if (e === "answered") {
@@ -11473,13 +11578,13 @@ class Di {
11473
11578
  await this.handleStandbyTermination(t);
11474
11579
  return;
11475
11580
  }
11476
- t && typeof t == "object" && (t.source === "invite-response" || t.source === "invite-exception" || t.code || t.status || t.stage) && (this.terminalFailureOverride = t?.message || ee.failed, this.setState("failed", this.terminalFailureOverride)), await this.finalizeAfterTermination(t?.hangupSource || "terminated");
11581
+ t && typeof t == "object" && (t.source === "invite-response" || t.source === "invite-exception" || t.code || t.status || t.stage) && (this.terminalFailureOverride = t?.message || te.failed, this.setState("failed", this.terminalFailureOverride)), await this.finalizeAfterTermination(t?.hangupSource || "terminated");
11477
11582
  return;
11478
11583
  }
11479
11584
  if (e === "failed") {
11480
11585
  if (this.isExpectedClientTeardown())
11481
11586
  return;
11482
- this.pendingLifecycleMode = null, await this.clearTransportDisconnectGrace(!1), this.stopSessionTouch(), this.terminalFailureOverride = t?.message || ee.failed, this.setState("failed", this.terminalFailureOverride), this.setAvailabilityState("recovering", "通话链路异常断开,系统会继续自动恢复。"), await this.releaseIssuedSession("failed", "sip-client-failed");
11587
+ this.pendingLifecycleMode = null, await this.clearTransportDisconnectGrace(!1), this.stopSessionTouch(), this.terminalFailureOverride = t?.message || te.failed, this.setState("failed", this.terminalFailureOverride), this.setAvailabilityState("recovering", "通话链路异常断开,系统会继续自动恢复。"), await this.releaseIssuedSession("failed", "sip-client-failed");
11483
11588
  return;
11484
11589
  }
11485
11590
  if (e === "disconnected" || e === "unregistered") {
@@ -11509,10 +11614,10 @@ class Di {
11509
11614
  const t = this.transportDisconnectContext, i = !!(e && t?.reported && this.sameTransportDisconnectContext(t));
11510
11615
  this.stopTransportDisconnectGrace(), i && (await this.reportIssuedSessionEvent("transport-restored", {
11511
11616
  disconnectDurationMs: Date.now() - (t.startedAt || Date.now()),
11512
- graceMs: we
11617
+ graceMs: be
11513
11618
  }, this.state), this.appendLog("网页通话信令已恢复", {
11514
11619
  disconnectDurationMs: Date.now() - (t.startedAt || Date.now()),
11515
- graceMs: we
11620
+ graceMs: be
11516
11621
  }));
11517
11622
  }
11518
11623
  scheduleTransportDisconnectGrace(e) {
@@ -11528,12 +11633,12 @@ class Di {
11528
11633
  this.transportDisconnectContext = t, this.transportDisconnectTimer = window.setTimeout(() => {
11529
11634
  this.transportDisconnectTimer = null, this.sameTransportDisconnectContext(t) && (t.reported = !0, this.reportIssuedSessionEvent("transport-disconnected", {
11530
11635
  state: e,
11531
- graceMs: we
11636
+ graceMs: be
11532
11637
  }, this.state), this.appendLog("网页通话信令断开超过宽限窗口", {
11533
- graceMs: we,
11638
+ graceMs: be,
11534
11639
  state: e
11535
11640
  }));
11536
- }, we);
11641
+ }, be);
11537
11642
  }
11538
11643
  async finalizeAfterTermination(e) {
11539
11644
  if (!this.finalizing) {
@@ -11543,7 +11648,7 @@ class Di {
11543
11648
  this.pendingLifecycleMode = "standby", this.setState("standbyRequesting", "上一通通话已结束,正在自动回到待机。"), this.setAvailabilityState("preparing", "页面仍在线,正在自动回到待机。"), this.appendLog("通话已结束,网页电话正在自动回到待机。", { reason: e }), await this.startStandby({ force: !0 });
11544
11649
  return;
11545
11650
  }
11546
- const t = this.terminalFailureOverride || (this.state === "failed" ? this.refs.status?.textContent?.trim() || ee.failed : "");
11651
+ const t = this.terminalFailureOverride || (this.state === "failed" ? this.refs.status?.textContent?.trim() || te.failed : "");
11547
11652
  t ? this.setState("failed", t) : this.setState("ended"), this.appendLog("通话已结束并完成清理", { reason: e });
11548
11653
  } finally {
11549
11654
  this.finalizing = !1;
@@ -11612,7 +11717,7 @@ class Di {
11612
11717
  async loadBootstrap() {
11613
11718
  if (this.bootstrap)
11614
11719
  return this.bootstrap;
11615
- const e = await fetch(z(this.apiBaseUrl, "api/sip/embedded-call-demo-bootstrap"), {
11720
+ const e = await fetch(Y(this.apiBaseUrl, "api/sip/embedded-call-demo-bootstrap"), {
11616
11721
  credentials: "include",
11617
11722
  cache: "no-store"
11618
11723
  });
@@ -11621,7 +11726,7 @@ class Di {
11621
11726
  return this.bootstrap = await e.json(), this.bootstrap;
11622
11727
  }
11623
11728
  async fetchTurnIceServers() {
11624
- const e = await fetch(z(this.apiBaseUrl, "api/sip/webrtc-turn-credentials"), {
11729
+ const e = await fetch(Y(this.apiBaseUrl, "api/sip/webrtc-turn-credentials"), {
11625
11730
  credentials: "include",
11626
11731
  cache: "no-store"
11627
11732
  });
@@ -11633,11 +11738,11 @@ class Di {
11633
11738
  async fetchIssuedSession(e = {}) {
11634
11739
  const {
11635
11740
  preferredBrowserSipUsername: t = null
11636
- } = e, i = ie(this.options), s = {
11741
+ } = e, i = re(this.options), s = {
11637
11742
  page_url: window.location.href
11638
11743
  };
11639
11744
  $(s, "site_key", this.options.siteKey), $(s, "standby_state", this.options.standbyState), $(s, "selected_primary_account", this.options.selectedPrimaryAccount), $(s, "selected_middle_layer_account", this.options.selectedMiddleLayerAccount), $(s, "preferred_browser_sip_username", t), $(s, "display_name", this.options.displayName), $(s, "access_token", this.options.accessToken), i && (s.business_key = i);
11640
- const r = await fetch(z(this.apiBaseUrl, "api/sip/issue-call-session"), {
11745
+ const r = await fetch(Y(this.apiBaseUrl, "api/sip/issue-call-session"), {
11641
11746
  method: "POST",
11642
11747
  credentials: "include",
11643
11748
  cache: "no-store",
@@ -11645,10 +11750,10 @@ class Di {
11645
11750
  body: JSON.stringify(s)
11646
11751
  });
11647
11752
  if (!r.ok) {
11648
- const a = await r.json().catch(() => ({}));
11649
- throw new Error(a?.detail || `会话签发失败:${r.status}`);
11753
+ const d = await r.json().catch(() => ({}));
11754
+ throw new Error(d?.detail || `会话签发失败:${r.status}`);
11650
11755
  }
11651
- const n = await r.json();
11756
+ const n = await r.json(), a = ht(n, ve.outbound, "issue-call-session");
11652
11757
  return this.issuedSession = n, this.reportIssuedSessionEvent("issued-session-fetched", {
11653
11758
  sessionId: n.session_id,
11654
11759
  targetExtension: n.target_extension,
@@ -11664,11 +11769,11 @@ class Di {
11664
11769
  resolved_route_mode: n.resolved_route_mode || null,
11665
11770
  route_note: n.route_note || null
11666
11771
  }), {
11667
- sessionMode: n.session_mode || "outbound",
11772
+ sessionMode: a,
11668
11773
  sipUsername: n.sip_username,
11669
11774
  sipDomain: n.sip_domain,
11670
11775
  password: n.sip_password,
11671
- transport: st({
11776
+ transport: ct({
11672
11777
  apiBaseUrl: this.apiBaseUrl,
11673
11778
  transportBaseUrl: this.options.transportBaseUrl || "",
11674
11779
  transportUrl: n.ws_server
@@ -11678,11 +11783,11 @@ class Di {
11678
11783
  };
11679
11784
  }
11680
11785
  async fetchStandbySession() {
11681
- const e = ie(this.options) || null, t = {
11786
+ const e = re(this.options) || null, t = {
11682
11787
  page_url: window.location.href
11683
11788
  };
11684
11789
  $(t, "site_key", this.options.siteKey), $(t, "standby_state", this.options.standbyState), $(t, "selected_primary_account", this.options.selectedPrimaryAccount), $(t, "selected_middle_layer_account", this.options.selectedMiddleLayerAccount), $(t, "display_name", this.options.displayName), $(t, "access_token", this.options.accessToken), e && (t.business_key = e);
11685
- const i = await fetch(z(this.apiBaseUrl, "api/sip/issue-widget-standby-session"), {
11790
+ const i = await fetch(Y(this.apiBaseUrl, "api/sip/issue-widget-standby-session"), {
11686
11791
  method: "POST",
11687
11792
  credentials: "include",
11688
11793
  cache: "no-store",
@@ -11690,10 +11795,10 @@ class Di {
11690
11795
  body: JSON.stringify(t)
11691
11796
  });
11692
11797
  if (!i.ok) {
11693
- const r = await i.json().catch(() => ({}));
11694
- throw new Error(r?.detail || `待机会话签发失败:${i.status}`);
11798
+ const n = await i.json().catch(() => ({}));
11799
+ throw new Error(n?.detail || `待机会话签发失败:${i.status}`);
11695
11800
  }
11696
- const s = await i.json();
11801
+ const s = await i.json(), r = ht(s, ve.standby, "issue-widget-standby-session");
11697
11802
  return this.issuedSession = s, this.reportIssuedSessionEvent("standby-session-fetched", {
11698
11803
  sessionId: s.session_id,
11699
11804
  resolvedBusinessKey: s.resolved_business_key || null,
@@ -11707,11 +11812,11 @@ class Di {
11707
11812
  browser_sip_username: s.browser_sip_username || s.sip_username || null,
11708
11813
  route_note: s.route_note || null
11709
11814
  }), {
11710
- sessionMode: s.session_mode || "widget_standby",
11815
+ sessionMode: r,
11711
11816
  sipUsername: s.sip_username,
11712
11817
  sipDomain: s.sip_domain,
11713
11818
  password: s.sip_password,
11714
- transport: st({
11819
+ transport: ct({
11715
11820
  apiBaseUrl: this.apiBaseUrl,
11716
11821
  transportBaseUrl: this.options.transportBaseUrl || "",
11717
11822
  transportUrl: s.ws_server
@@ -11724,7 +11829,7 @@ class Di {
11724
11829
  if (!this.issuedSession?.session_id)
11725
11830
  return;
11726
11831
  const i = this.issuedSession.session_id;
11727
- this.markRecentlyReleasedSession(i, t), this.issuedSession = null, await fetch(z(this.apiBaseUrl, "api/sip/release-call-session"), {
11832
+ this.markRecentlyReleasedSession(i, t), this.issuedSession = null, await fetch(Y(this.apiBaseUrl, "api/sip/release-call-session"), {
11728
11833
  method: "POST",
11729
11834
  credentials: "include",
11730
11835
  cache: "no-store",
@@ -11739,7 +11844,7 @@ class Di {
11739
11844
  });
11740
11845
  }
11741
11846
  postLifecycleBeacon(e, t) {
11742
- const i = JSON.stringify(t), s = z(this.apiBaseUrl, e);
11847
+ const i = JSON.stringify(t), s = Y(this.apiBaseUrl, e);
11743
11848
  if (typeof navigator < "u" && typeof navigator.sendBeacon == "function")
11744
11849
  try {
11745
11850
  const r = new Blob([i], { type: "application/json" });
@@ -11792,9 +11897,9 @@ class Di {
11792
11897
  };
11793
11898
  }
11794
11899
  setAvailabilityState(e, t = "") {
11795
- this.availabilityState = e, this.availabilityDetail = t || this.availabilityDetail, this.refs.availability && (this.refs.availability.textContent = t ? `${Ce[e] || Ce.recovering} · ${t}` : Ce[e] || Ce.recovering, this.refs.availability.className = `availability availability--${e}`), this.render();
11900
+ this.availabilityState = e, this.availabilityDetail = t || this.availabilityDetail, this.refs.availability && (this.refs.availability.textContent = t ? `${Re[e] || Re.recovering} · ${t}` : Re[e] || Re.recovering, this.refs.availability.className = `availability availability--${e}`), this.render();
11796
11901
  }
11797
- suppressExpectedClientTeardown(e, t = Ci) {
11902
+ suppressExpectedClientTeardown(e, t = Ai) {
11798
11903
  this.expectedClientTeardown = {
11799
11904
  reason: e,
11800
11905
  expiresAt: Date.now() + t
@@ -11820,7 +11925,7 @@ class Di {
11820
11925
  clearAutoStandbyRecovery() {
11821
11926
  this.autoStandbyRecoveryTimer && (window.clearTimeout(this.autoStandbyRecoveryTimer), this.autoStandbyRecoveryTimer = null);
11822
11927
  }
11823
- scheduleAutoStandbyRecovery(e, t = Si) {
11928
+ scheduleAutoStandbyRecovery(e, t = xi) {
11824
11929
  this.legacyOutboundOnly || this.networkOnline === !1 || this.autoStandbyRecoveryTimer || this.client || this.issuedSession?.session_id || this.finalizing || this.pendingLifecycleMode === "outbound" || this.sessionRecoveryInFlight || this.connectivityRecoveryInFlight || ["requesting", "standbyRequesting", "registering", "calling", "incoming", "connected"].includes(this.state) || (this.autoStandbyRecoveryTimer = window.setTimeout(() => {
11825
11930
  this.autoStandbyRecoveryTimer = null, !(this.legacyOutboundOnly || this.networkOnline === !1) && (this.client || this.issuedSession?.session_id || this.finalizing || this.pendingLifecycleMode === "outbound" || (this.appendLog("检测到页面当前不在通话中,开始自动进入待机。", { reason: e }), this.startStandby({ force: !0 })));
11826
11931
  }, t));
@@ -11833,7 +11938,7 @@ class Di {
11833
11938
  markRecentlyReleasedSession(e, t) {
11834
11939
  e && (this.pruneRecentlyReleasedSessions(), this.recentlyReleasedSessions.set(e, {
11835
11940
  reason: t,
11836
- expiresAt: Date.now() + Ti
11941
+ expiresAt: Date.now() + Ii
11837
11942
  }));
11838
11943
  }
11839
11944
  wasSessionRecentlyReleased(e) {
@@ -11896,35 +12001,37 @@ class Di {
11896
12001
  async handleServerSessionAction(e, t = {}) {
11897
12002
  if (this.legacyOutboundOnly)
11898
12003
  return !1;
11899
- const i = String(t?.session_action || "").trim().toLowerCase();
11900
- if (i !== "restart_standby" || this.sessionRecoveryInFlight || this.connectivityRecoveryInFlight)
12004
+ const i = ki(e, t);
12005
+ if (i.action !== Je.restartStandby)
11901
12006
  return !1;
11902
- const s = String(this.issuedSession?.session_mode || "").trim(), r = String(this.pendingLifecycleMode || "").trim();
11903
- if (s === "outbound" || r === "outbound")
11904
- throw $i("非待机会话收到了非法的 restart_standby 指令。", {
12007
+ const s = ie(this.issuedSession?.session_mode), r = ie(this.pendingLifecycleMode), n = s === ve.outbound || r === lt.outbound, a = s === ve.standby || r === lt.standby;
12008
+ if (n || !a)
12009
+ throw N("非待机协议上下文收到了非法的 restart_standby 指令。", {
11905
12010
  source: e,
11906
12011
  state: this.state,
11907
12012
  local_session_mode: s || null,
11908
12013
  local_lifecycle_mode: r || null,
11909
- session_action: i,
11910
- session_action_reason: t?.session_action_reason || null,
11911
- session_action_detail: t?.session_action_detail || null,
11912
- resolved_session_id: t?.resolved_session_id || null,
11913
- resolved_widget_anchor_number: t?.resolved_widget_anchor_number || null,
11914
- resolved_browser_sip_username: t?.resolved_browser_sip_username || null
12014
+ session_action: i.action,
12015
+ session_action_reason: i.reason,
12016
+ session_action_detail: i.detail,
12017
+ resolved_session_id: i.resolvedSessionId,
12018
+ resolved_widget_anchor_number: i.resolvedWidgetAnchorNumber,
12019
+ resolved_browser_sip_username: i.resolvedBrowserSipUsername
11915
12020
  });
12021
+ if (this.sessionRecoveryInFlight || this.connectivityRecoveryInFlight)
12022
+ return !1;
11916
12023
  this.sessionRecoveryInFlight = (async () => {
11917
12024
  this.appendLog("服务端要求当前页面立即放弃旧锚点并重建待机。", {
11918
12025
  source: e,
11919
12026
  state: this.state,
11920
12027
  local_session_mode: s || null,
11921
12028
  local_lifecycle_mode: r || null,
11922
- session_action_reason: t?.session_action_reason || null,
11923
- session_action_detail: t?.session_action_detail || null,
11924
- resolved_session_id: t?.resolved_session_id || null,
11925
- resolved_widget_anchor_number: t?.resolved_widget_anchor_number || null,
11926
- resolved_browser_sip_username: t?.resolved_browser_sip_username || null
11927
- }), this.setAvailabilityState("recovering", t?.session_action_detail || "当前锚点已失效,正在自动切换到新的待机线路。"), (this.client || this.issuedSession?.session_id) && await this.disconnectAndCleanup(`server-session-action-${t?.session_action_reason || e}`, {
12029
+ session_action_reason: i.reason,
12030
+ session_action_detail: i.detail,
12031
+ resolved_session_id: i.resolvedSessionId,
12032
+ resolved_widget_anchor_number: i.resolvedWidgetAnchorNumber,
12033
+ resolved_browser_sip_username: i.resolvedBrowserSipUsername
12034
+ }), this.setAvailabilityState("recovering", i.detail || "当前锚点已失效,正在自动切换到新的待机线路。"), (this.client || this.issuedSession?.session_id) && await this.disconnectAndCleanup(`server-session-action-${i.reason || e}`, {
11928
12035
  preserveLifecycleRun: !0,
11929
12036
  suppressStateReset: !0
11930
12037
  }), await this.startStandby({ force: !0 });
@@ -11943,7 +12050,7 @@ class Di {
11943
12050
  violation_message: e?.message || String(e),
11944
12051
  ...t
11945
12052
  };
11946
- this.appendLog("协议错误:当前页面收到了非法的运行态指令,已拒绝执行并保留现有通话状态。", i), typeof console < "u" && typeof console.error == "function" && console.error("[embedded-call-widget] protocol violation", i), await this.reportIssuedSessionEvent("protocol-violation", i);
12053
+ this.appendLog("协议错误:当前页面收到了非法的运行态指令,已拒绝执行并保留现有通话状态。", i), typeof console < "u" && typeof console.error == "function" && console.error("[embedded-call-widget] protocol violation", i), await this.reportIssuedSessionEvent("protocol-violation", i), !["calling", "connected", "incoming"].includes(this.state) && (this.pendingLifecycleMode = null, this.clearAutoStandbyRecovery(), this.stopSessionTouch(), this.stopPresenceTouch(), this.terminalFailureOverride = i.violation_message, this.setState("failed", i.violation_message), this.setAvailabilityState("conflicted", "检测到前后端协议不一致,已停止自动恢复,请尽快排查。"));
11947
12054
  }
11948
12055
  async touchWidgetPresence(e = "interval") {
11949
12056
  if (this.legacyOutboundOnly)
@@ -11951,7 +12058,7 @@ class Di {
11951
12058
  this.networkOnline = typeof navigator > "u" ? !0 : navigator.onLine !== !1, this.pageVisible = typeof document > "u" ? !0 : document.visibilityState === "visible";
11952
12059
  const t = this.availabilityState === "offline";
11953
12060
  try {
11954
- const i = await fetch(z(this.apiBaseUrl, "api/sip/touch-widget-presence"), {
12061
+ const i = await fetch(Y(this.apiBaseUrl, "api/sip/touch-widget-presence"), {
11955
12062
  method: "POST",
11956
12063
  credentials: "include",
11957
12064
  cache: "no-store",
@@ -11966,7 +12073,7 @@ class Di {
11966
12073
  network_online: this.networkOnline,
11967
12074
  client_summary: this.buildPresenceEvidenceSummary(this.state, { trigger: e })
11968
12075
  };
11969
- return $(n, "site_key", this.options.siteKey), $(n, "requested_business_key", ie(this.options)), $(n, "resolved_business_key", this.issuedSession?.resolved_business_key), $(n, "display_name", this.options.displayName), $(n, "session_id", this.issuedSession?.session_id), $(n, "session_mode", this.issuedSession?.session_mode), $(n, "widget_anchor_number", this.issuedSession?.widget_anchor_number), $(
12076
+ return $(n, "site_key", this.options.siteKey), $(n, "requested_business_key", re(this.options)), $(n, "resolved_business_key", this.issuedSession?.resolved_business_key), $(n, "display_name", this.options.displayName), $(n, "session_id", this.issuedSession?.session_id), $(n, "session_mode", this.issuedSession?.session_mode), $(n, "widget_anchor_number", this.issuedSession?.widget_anchor_number), $(
11970
12077
  n,
11971
12078
  "browser_sip_username",
11972
12079
  this.issuedSession?.browser_sip_username || this.issuedSession?.sip_username
@@ -11982,16 +12089,16 @@ class Di {
11982
12089
  const s = await i.json().catch(() => ({}));
11983
12090
  this.presenceFailureCount = 0, await this.handleServerSessionAction("touch-widget-presence", s) || this.syncAvailabilityState(), t && await this.restartStandbyAfterConnectivity(`presence-${e}`);
11984
12091
  } catch (i) {
11985
- if (ot(i)) {
12092
+ if (xe(i)) {
11986
12093
  await this.handleProtocolViolation(i), this.syncAvailabilityState();
11987
12094
  return;
11988
12095
  }
11989
- if (this.presenceFailureCount += 1, this.networkOnline === !1 || Be(i) || this.presenceFailureCount >= rt) {
12096
+ if (this.presenceFailureCount += 1, this.networkOnline === !1 || We(i) || this.presenceFailureCount >= dt) {
11990
12097
  const r = this.networkOnline === !1 ? "当前网络连接已断开,正在等待恢复。" : "当前无法连接通话服务,正在自动尝试恢复。";
11991
12098
  this.setAvailabilityState("offline", r);
11992
12099
  } else
11993
12100
  this.setAvailabilityState("recovering", "正在确认后台连接状态。");
11994
- this.presenceFailureCount <= rt && this.appendLog("widget 运行态心跳失败", {
12101
+ this.presenceFailureCount <= dt && this.appendLog("widget 运行态心跳失败", {
11995
12102
  trigger: e,
11996
12103
  failure_count: this.presenceFailureCount,
11997
12104
  message: i?.message || String(i)
@@ -12001,14 +12108,14 @@ class Di {
12001
12108
  startPresenceTouch() {
12002
12109
  this.legacyOutboundOnly || (this.touchWidgetPresence("mount"), this.presenceTouchTimer || (this.presenceTouchTimer = window.setInterval(() => {
12003
12110
  this.touchWidgetPresence("interval");
12004
- }, vi)));
12111
+ }, Ri)));
12005
12112
  }
12006
12113
  async touchIssuedSession(e, t = null) {
12007
12114
  if (!this.issuedSession?.session_id)
12008
12115
  return;
12009
12116
  const i = this.issuedSession.session_id;
12010
12117
  try {
12011
- const s = await fetch(z(this.apiBaseUrl, "api/sip/touch-call-session"), {
12118
+ const s = await fetch(Y(this.apiBaseUrl, "api/sip/touch-call-session"), {
12012
12119
  method: "POST",
12013
12120
  credentials: "include",
12014
12121
  cache: "no-store",
@@ -12027,7 +12134,7 @@ class Di {
12027
12134
  const r = await s.json().catch(() => ({}));
12028
12135
  await this.handleServerSessionAction("touch-call-session", r);
12029
12136
  } catch (s) {
12030
- if (ot(s)) {
12137
+ if (xe(s)) {
12031
12138
  await this.handleProtocolViolation(s);
12032
12139
  return;
12033
12140
  }
@@ -12061,7 +12168,7 @@ class Di {
12061
12168
  const s = this.issuedSession.session_id, r = i || this.state;
12062
12169
  let n = null, a = "";
12063
12170
  try {
12064
- const d = await fetch(z(this.apiBaseUrl, "api/sip/report-call-session-event"), {
12171
+ const d = await fetch(Y(this.apiBaseUrl, "api/sip/report-call-session-event"), {
12065
12172
  method: "POST",
12066
12173
  credentials: "include",
12067
12174
  cache: "no-store",
@@ -12081,7 +12188,7 @@ class Di {
12081
12188
  throw a = f?.detail ? String(f.detail) : "", new Error(a || `事件留证失败:${d.status}`);
12082
12189
  }
12083
12190
  } catch (d) {
12084
- await fetch(z(this.apiBaseUrl, "api/sip/report-call-session-event-delivery-failure"), {
12191
+ await fetch(Y(this.apiBaseUrl, "api/sip/report-call-session-event-delivery-failure"), {
12085
12192
  method: "POST",
12086
12193
  credentials: "include",
12087
12194
  cache: "no-store",
@@ -12118,35 +12225,35 @@ class Di {
12118
12225
  }
12119
12226
  this.touchIssuedSession(e), this.sessionTouchTimer || (this.sessionTouchTimer = window.setInterval(() => {
12120
12227
  this.touchIssuedSession(this.state);
12121
- }, bi));
12228
+ }, _i));
12122
12229
  }
12123
12230
  setState(e, t = "") {
12124
- this.state = e, this.refs.status.textContent = t || ee[e] || ee.idle, this.syncAvailabilityState(), this.render(), this.emitHostCallback("onStateChange", this.getSnapshot());
12231
+ this.state = e, this.refs.status.textContent = t || te[e] || te.idle, this.syncAvailabilityState(), this.render(), this.emitHostCallback("onStateChange", this.getSnapshot());
12125
12232
  }
12126
12233
  appendLog(e, t) {
12127
12234
  const i = document.createElement("div");
12128
- for (i.className = "log", i.textContent = Ei(e, t), this.refs.logs.prepend(i); this.refs.logs.children.length > 8; )
12235
+ for (i.className = "log", i.textContent = Di(e, t), this.refs.logs.prepend(i); this.refs.logs.children.length > 8; )
12129
12236
  this.refs.logs.lastElementChild?.remove();
12130
12237
  }
12131
12238
  render() {
12132
- const e = ["requesting", "standbyRequesting", "registering", "calling"].includes(this.state), t = ["calling", "connected"].includes(this.state), i = !!(this.client || this.issuedSession), s = !this.legacyOutboundOnly && !i && this.availabilityState !== "offline" && ["idle", "failed", "ended"].includes(this.state);
12239
+ const e = ["requesting", "standbyRequesting", "registering", "calling"].includes(this.state), t = ["calling", "connected"].includes(this.state), i = !!(this.client || this.issuedSession), s = !this.legacyOutboundOnly && !i && !["offline", "conflicted"].includes(this.availabilityState) && ["idle", "failed", "ended"].includes(this.state);
12133
12240
  this.refs.status && (this.refs.status.className = [
12134
12241
  "status",
12135
- this.availabilityState === "offline" ? "status--offline" : this.availabilityState === "recovering" ? "status--recovering" : ""
12136
- ].filter(Boolean).join(" ")), this.legacyOutboundOnly ? (this.refs.primary.disabled = e, this.refs.primary.textContent = t ? "通话进行中" : "连接并呼叫", this.refs.secondary.disabled = !t && !i, this.refs.secondary.textContent = t ? "挂断并清理" : "断开并清理") : (this.refs.primary.disabled = e || s || this.state === "connected", this.state === "incoming" ? this.refs.primary.textContent = "接听来电" : this.state === "connected" ? this.refs.primary.textContent = "通话进行中" : e || s ? this.availabilityState === "working" ? this.refs.primary.textContent = "正在建立呼叫" : this.availabilityState === "preparing" ? this.refs.primary.textContent = "正在准备网页电话" : this.refs.primary.textContent = this.state === "calling" ? "通话进行中" : "正在恢复网页电话" : this.availabilityState === "offline" ? this.refs.primary.textContent = "网络恢复后再试" : !i || ["idle", "failed", "ended"].includes(this.state) ? this.refs.primary.textContent = "恢复网页电话待机" : this.refs.primary.textContent = "呼叫管理员", this.refs.secondary.disabled = !i, this.refs.secondary.textContent = this.state === "incoming" ? "拒接来电" : this.state === "connected" ? "挂断通话" : "断开电话");
12137
- const r = String(this.options.siteKey || "").trim(), n = String(this.bootstrap?.default_site_key || "").trim(), a = String(ie(this.options) || "").trim(), d = String(this.bootstrap?.default_business_key || "").trim(), f = r || (n ? `${n}(服务端默认站点)` : "等待服务端解析"), h = this.issuedSession?.resolved_business_key || a || (d ? `${d}(服务端默认规则)` : "等待服务端解析");
12138
- this.legacyOutboundOnly ? this.refs.meta.textContent = `入站规则:${h};站点键:${f}` : this.refs.meta.textContent = `站点键:${f};网页电话会先进入可被叫待机;访客主动呼叫默认规则:${h}`, this.availabilityState === "offline" ? this.refs.hint.textContent = this.networkOnline === !1 ? "当前浏览器网络已断开。系统会在网络恢复后自动尝试重连网页电话。" : "当前无法连接通话服务。系统会继续自动恢复,暂时不要重复点击。" : this.availabilityState === "preparing" ? this.refs.hint.textContent = "当前正在准备待机能力。只要页面在线,系统会自动进入可呼入、可呼出的网页电话状态。" : this.availabilityState === "working" ? this.state === "incoming" ? this.refs.hint.textContent = "当前已有来电,直接接听或拒接即可;处理完成后会自动回到待机。" : this.state === "connected" ? this.refs.hint.textContent = "当前通话已接通,挂断后会自动回到待机,不需要额外刷新页面。" : this.refs.hint.textContent = "当前正在切换到外呼链路,请等待振铃、接通或自动回到待机。" : this.availabilityState === "recovering" ? this.refs.hint.textContent = "当前页面仍在线,系统正在自动恢复可被叫待机,不需要刷新页面或手动切换模式。" : this.refs.hint.textContent = this.isMobileViewport ? yi : "桌面网页可直接使用;若宿主站点启用了来源白名单或接入令牌,请按站点配置提供对应参数。";
12242
+ this.availabilityState === "offline" ? "status--offline" : this.availabilityState === "recovering" ? "status--recovering" : this.availabilityState === "conflicted" ? "status--conflicted" : ""
12243
+ ].filter(Boolean).join(" ")), this.legacyOutboundOnly ? (this.refs.primary.disabled = e, this.refs.primary.textContent = t ? "通话进行中" : "连接并呼叫", this.refs.secondary.disabled = !t && !i, this.refs.secondary.textContent = t ? "挂断并清理" : "断开并清理") : (this.refs.primary.disabled = e || s || this.state === "connected", this.state === "incoming" ? this.refs.primary.textContent = "接听来电" : this.state === "connected" ? this.refs.primary.textContent = "通话进行中" : e || s ? this.availabilityState === "working" ? this.refs.primary.textContent = "正在建立呼叫" : this.availabilityState === "preparing" ? this.refs.primary.textContent = "正在准备网页电话" : this.refs.primary.textContent = this.state === "calling" ? "通话进行中" : "正在恢复网页电话" : this.availabilityState === "offline" ? this.refs.primary.textContent = "网络恢复后再试" : this.availabilityState === "conflicted" ? this.refs.primary.textContent = "协议冲突待排查" : !i || ["idle", "failed", "ended"].includes(this.state) ? this.refs.primary.textContent = "恢复网页电话待机" : this.refs.primary.textContent = "呼叫管理员", this.refs.secondary.disabled = !i, this.refs.secondary.textContent = this.state === "incoming" ? "拒接来电" : this.state === "connected" ? "挂断通话" : "断开电话");
12244
+ const r = String(this.options.siteKey || "").trim(), n = String(this.bootstrap?.default_site_key || "").trim(), a = String(re(this.options) || "").trim(), d = String(this.bootstrap?.default_business_key || "").trim(), f = r || (n ? `${n}(服务端默认站点)` : "等待服务端解析"), h = this.issuedSession?.resolved_business_key || a || (d ? `${d}(服务端默认规则)` : "等待服务端解析");
12245
+ this.legacyOutboundOnly ? this.refs.meta.textContent = `入站规则:${h};站点键:${f}` : this.refs.meta.textContent = `站点键:${f};网页电话会先进入可被叫待机;访客主动呼叫默认规则:${h}`, this.availabilityState === "offline" ? this.refs.hint.textContent = this.networkOnline === !1 ? "当前浏览器网络已断开。系统会在网络恢复后自动尝试重连网页电话。" : "当前无法连接通话服务。系统会继续自动恢复,暂时不要重复点击。" : this.availabilityState === "preparing" ? this.refs.hint.textContent = "当前正在准备待机能力。只要页面在线,系统会自动进入可呼入、可呼出的网页电话状态。" : this.availabilityState === "working" ? this.state === "incoming" ? this.refs.hint.textContent = "当前已有来电,直接接听或拒接即可;处理完成后会自动回到待机。" : this.state === "connected" ? this.refs.hint.textContent = "当前通话已接通,挂断后会自动回到待机,不需要额外刷新页面。" : this.refs.hint.textContent = "当前正在切换到外呼链路,请等待振铃、接通或自动回到待机。" : this.availabilityState === "recovering" ? this.refs.hint.textContent = "当前页面仍在线,系统正在自动恢复可被叫待机,不需要刷新页面或手动切换模式。" : this.availabilityState === "conflicted" ? this.refs.hint.textContent = "检测到前后端协议不一致,当前已停止自动恢复。请先排查版本和协议口径,再继续使用。" : this.refs.hint.textContent = this.isMobileViewport ? Ei : "桌面网页可直接使用;若宿主站点启用了来源白名单或接入令牌,请按站点配置提供对应参数。";
12139
12246
  }
12140
12247
  async destroy() {
12141
12248
  this.clearAutoStandbyRecovery(), await this.disconnectAndCleanup("destroy-widget", { suppressStateReset: !0 }), typeof document < "u" && this.visibilityHandler && (document.removeEventListener("visibilitychange", this.visibilityHandler), this.visibilityHandler = null), this.stopSessionTouch(), this.stopPresenceTouch(), this.stopTransportDisconnectGrace(), this.pendingLifecycleMode = null, this.pendingIncomingCall = null, typeof window < "u" && (this.onlineHandler && (window.removeEventListener("online", this.onlineHandler), this.onlineHandler = null), this.offlineHandler && (window.removeEventListener("offline", this.offlineHandler), this.offlineHandler = null), this.beforeUnloadHandler && (window.removeEventListener("beforeunload", this.beforeUnloadHandler), this.beforeUnloadHandler = null), this.pageHideHandler && (window.removeEventListener("pagehide", this.pageHideHandler), this.pageHideHandler = null)), this.e2eBridgeEnabled && typeof window < "u" && window.__embeddedCallWidgetE2E__ && delete window.__embeddedCallWidgetE2E__, this.shadowRoot.innerHTML = "";
12142
12249
  }
12143
12250
  }
12144
- function ki(o) {
12145
- return new Di(o);
12251
+ function Ni(o) {
12252
+ return new Fi(o);
12146
12253
  }
12147
12254
  typeof window < "u" && (window.__EmbeddedCallWidgetRuntime__ = {
12148
- createEmbeddedCallWidgetRuntime: ki
12255
+ createEmbeddedCallWidgetRuntime: Ni
12149
12256
  });
12150
12257
  export {
12151
- ki as createEmbeddedCallWidgetRuntime
12258
+ Ni as createEmbeddedCallWidgetRuntime
12152
12259
  };