@voicenter-team/opensips-js 1.0.17 → 1.0.19

Sign up to get free protection for your applications and to get access to all the features.
package/build/index.d.ts CHANGED
@@ -89,6 +89,7 @@ declare class OpenSIPSJS extends UA {
89
89
  get getActiveCalls(): {
90
90
  [key: string]: ICall;
91
91
  };
92
+ get hasActiveCalls(): boolean;
92
93
  get getActiveRooms(): {
93
94
  [key: number]: IRoom;
94
95
  };
@@ -133,6 +134,7 @@ declare class OpenSIPSJS extends UA {
133
134
  callMove(callId: string, roomId: number): Promise<void>;
134
135
  updateCall(value: ICall): void;
135
136
  updateRoom(value: IRoomUpdate): void;
137
+ private hasAutoAnswerHeaders;
136
138
  private _addCall;
137
139
  private _addCallStatus;
138
140
  private _updateCallStatus;
package/build/index.js CHANGED
@@ -134,6 +134,9 @@ class OpenSIPSJS extends UA_1.default {
134
134
  get getActiveCalls() {
135
135
  return this.state.activeCalls;
136
136
  }
137
+ get hasActiveCalls() {
138
+ return Object.values(this.state.extendedCalls).length > 0;
139
+ }
137
140
  get getActiveRooms() {
138
141
  return this.state.activeRooms;
139
142
  }
@@ -306,6 +309,12 @@ class OpenSIPSJS extends UA_1.default {
306
309
  this.state.activeRooms = Object.assign(Object.assign({}, this.state.activeRooms), { [value.roomId]: Object.assign({}, newRoomData) });
307
310
  this.emit('updateRoom', { room: newRoomData, roomList: this.state.activeRooms });
308
311
  }
312
+ hasAutoAnswerHeaders(event) {
313
+ const regex = /answer-after=0/;
314
+ const request = event.request;
315
+ const callInfoHeader = request.getHeader('Call-Info');
316
+ return callInfoHeader && regex.test(callInfoHeader);
317
+ }
309
318
  _addCall(value, emitEvent = true) {
310
319
  this.state.activeCalls = Object.assign(Object.assign({}, this.state.activeCalls), { [value._id]: (0, audio_helper_1.simplifyCallObject)(value) });
311
320
  /*this.state.extendedCalls = {
@@ -654,8 +663,9 @@ class OpenSIPSJS extends UA_1.default {
654
663
  delete listenersCopy[value];
655
664
  this.state.listeners = Object.assign({}, listenersCopy);
656
665
  }
657
- addCall(session) {
666
+ addCall(event) {
658
667
  return __awaiter(this, void 0, void 0, function* () {
668
+ const session = event.session;
659
669
  const sessionAlreadyInActiveCalls = this.getActiveCalls[session.id];
660
670
  if (sessionAlreadyInActiveCalls !== undefined) {
661
671
  return;
@@ -693,7 +703,8 @@ class OpenSIPSJS extends UA_1.default {
693
703
  const call = session;
694
704
  call.roomId = roomId;
695
705
  call.localMuted = false;
696
- const doAutoAnswer = call.direction === 'incoming' && this.autoAnswer;
706
+ const autoAnswerByHeaders = this.hasAutoAnswerHeaders(event);
707
+ const doAutoAnswer = call.direction === 'incoming' && !this.hasActiveCalls && (autoAnswerByHeaders || this.autoAnswer);
697
708
  if (doAutoAnswer) {
698
709
  this._addCall(call, false);
699
710
  }
@@ -778,7 +789,7 @@ class OpenSIPSJS extends UA_1.default {
778
789
  this.callAddingInProgress = undefined;
779
790
  }
780
791
  });
781
- this.addCall(session);
792
+ this.addCall(event);
782
793
  if (session.direction === 'outgoing') {
783
794
  const roomId = this.getActiveCalls[session.id].roomId;
784
795
  this.setCurrentActiveRoomId(roomId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voicenter-team/opensips-js",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "description": "The JS package for opensips",
5
5
  "default": "src/index.ts",
6
6
  "main": "build/index.js",
@@ -42,7 +42,7 @@
42
42
  "regenerator-runtime": "^0.13.11",
43
43
  "tsc-alias": "^1.8.6",
44
44
  "typescript": "^4.9.5",
45
- "vite": "^4.3.8",
45
+ "vite": "4.3.9",
46
46
  "vite-plugin-singlefile": "^0.13.5",
47
47
  "vue": "3.2.25"
48
48
  },
@@ -1,2 +0,0 @@
1
- import { SessionDirection } from 'jssip/lib/RTCSession';
2
- export { SessionDirection };
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SessionDirection = void 0;
4
- const RTCSession_1 = require("jssip/lib/RTCSession");
5
- Object.defineProperty(exports, "SessionDirection", { enumerable: true, get: function () { return RTCSession_1.SessionDirection; } });
@@ -1,5 +0,0 @@
1
- import JsSIP, { UA } from 'jssip';
2
- import { IncomingAckEvent, IncomingEvent, OutgoingAckEvent, OutgoingEvent } from 'jssip/lib/RTCSession';
3
- import { RTCSessionEvent, UAConfiguration, UAEventMap } from 'jssip/lib/UA';
4
- export default JsSIP;
5
- export { UA, IncomingAckEvent, IncomingEvent, OutgoingAckEvent, OutgoingEvent, RTCSessionEvent, UAConfiguration, UAEventMap };
@@ -1,30 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.UA = void 0;
27
- // @ts-nocheck
28
- const jssip_1 = __importStar(require("jssip"));
29
- Object.defineProperty(exports, "UA", { enumerable: true, get: function () { return jssip_1.UA; } });
30
- exports.default = jssip_1.default;