webitel-sdk 26.4.23 → 26.4.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.mjs CHANGED
@@ -66158,6 +66158,11 @@ var Session$2 = class {
66158
66158
  //#endregion
66159
66159
  //#region src/sip/webrtc/index.ts
66160
66160
  const { debug, version: version$2, UA, WebSocketInterface } = JsSIP;
66161
+ function patchRemoteSdp(sdp) {
66162
+ sdp = sdp.replace(/a=rtpmap:(\d+) H264\/90000\r\n(?!a=fmtp:\1)/g, "a=rtpmap:$1 H264/90000\r\na=fmtp:$1 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\n");
66163
+ sdp = sdp.replace(/(a=fmtp:\d+ [^\r\n]*packetization-mode[^\r\n]*)/g, "$1;x-google-start-bitrate=1500;x-google-min-bitrate=800;x-google-max-bitrate=3000");
66164
+ return sdp;
66165
+ }
66161
66166
  var SipPhone = class SipPhone extends EventEmitter {
66162
66167
  constructor(_instanceId, d, audioProcessing = {}) {
66163
66168
  super();
@@ -66212,8 +66217,8 @@ var SipPhone = class SipPhone extends EventEmitter {
66212
66217
  if (!parameters.encodings || parameters.encodings.length === 0) parameters.encodings = [{}];
66213
66218
  parameters.encodings[0].priority = "high";
66214
66219
  parameters.encodings[0].networkPriority = "high";
66215
- parameters.encodings[0].maxBitrate = 4e3 * 100 * 1e3;
66216
- parameters.degradationPreference = "maintain-resolution";
66220
+ parameters.encodings[0].maxBitrate = 4e3 * 1e3;
66221
+ parameters.degradationPreference = "balanced";
66217
66222
  await sender.setParameters(parameters);
66218
66223
  } catch (e) {
66219
66224
  this.log.error(`SipPhone Error: ${e}`);
@@ -66222,15 +66227,20 @@ var SipPhone = class SipPhone extends EventEmitter {
66222
66227
  await this.ua.call(req.destination, {
66223
66228
  ...invite,
66224
66229
  ...display,
66225
- eventHandlers: { peerconnection: async (data) => {
66226
- const pc = data.peerconnection;
66227
- pc.addEventListener("track", async (event) => {
66228
- if (event.track.kind === "video") {
66229
- const sender = pc.getSenders().find((s) => s.track && s.track.kind === "video");
66230
- if (sender) await forceHighQuality(sender);
66231
- }
66232
- });
66233
- } }
66230
+ eventHandlers: {
66231
+ sdp: (e) => {
66232
+ if (e.originator === "remote") e.sdp = patchRemoteSdp(e.sdp);
66233
+ },
66234
+ peerconnection: async (data) => {
66235
+ const pc = data.peerconnection;
66236
+ pc.addEventListener("track", async (event) => {
66237
+ if (event.track.kind === "video") {
66238
+ const sender = pc.getSenders().find((s) => s.track && s.track.kind === "video");
66239
+ if (sender) await forceHighQuality(sender);
66240
+ }
66241
+ });
66242
+ }
66243
+ }
66234
66244
  });
66235
66245
  }
66236
66246
  setAudioProcessing(processing) {
@@ -66257,6 +66267,9 @@ var SipPhone = class SipPhone extends EventEmitter {
66257
66267
  const id = session.id;
66258
66268
  const callSession = new Session$2(session, e.request);
66259
66269
  this.storeSession(id, callSession);
66270
+ session.on("sdp", (e) => {
66271
+ if (e.originator === "remote") e.sdp = patchRemoteSdp(e.sdp);
66272
+ });
66260
66273
  session.on("ended", () => {
66261
66274
  this.removeSession(callSession);
66262
66275
  });
@@ -66685,7 +66698,7 @@ _defineProperty(SipPhone$1, "userAgent", `Webitel-Phone/${version$1}`);
66685
66698
  _defineProperty(SipPhone$1, "sipVersion", version$1);
66686
66699
  //#endregion
66687
66700
  //#region src/version.ts
66688
- const version = "26.4.23";
66701
+ const version = "26.4.25";
66689
66702
  //#endregion
66690
66703
  //#region src/socket/errors.ts
66691
66704
  /**
@@ -70353,7 +70366,8 @@ var Client = class extends EventEmitter {
70353
70366
  task.setProcessing(c.leaving_at, {
70354
70367
  sec: c.task.processing_sec || 0,
70355
70368
  timeout: c.task.processing_timeout_at || null,
70356
- renewal_sec: c.task.processing_renewal_sec || 0
70369
+ renewal_sec: c.task.processing_renewal_sec || 0,
70370
+ autosave: c.task.processing_autosave || false
70357
70371
  });
70358
70372
  }
70359
70373
  }
@@ -70393,7 +70407,8 @@ var Client = class extends EventEmitter {
70393
70407
  task.setProcessing(conv.leaving_at, {
70394
70408
  sec: conv.task.processing_sec || 0,
70395
70409
  timeout: conv.task.processing_timeout_at || null,
70396
- renewal_sec: conv.task.processing_renewal_sec || 0
70410
+ renewal_sec: conv.task.processing_renewal_sec || 0,
70411
+ autosave: conv.task.processing_autosave || false
70397
70412
  });
70398
70413
  }
70399
70414
  task.form = conv.task.form || null;
@@ -70547,7 +70562,8 @@ var Client = class extends EventEmitter {
70547
70562
  task.setProcessing(t.leaving_at, {
70548
70563
  sec: t.processing_sec || 0,
70549
70564
  timeout: t.processing_timeout_at || null,
70550
- renewal_sec: t.processing_renewal_sec || 0
70565
+ renewal_sec: t.processing_renewal_sec || 0,
70566
+ autosave: t.processing_autosave || false
70551
70567
  });
70552
70568
  }
70553
70569
  task.form = t.form || null;