@signalwire/js 3.28.0 → 3.28.1

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.
Files changed (104) hide show
  1. package/dist/core/src/BaseSession.d.ts +1 -1
  2. package/dist/core/src/RPCMessages/VertoMessages.d.ts +7 -0
  3. package/dist/core/src/RPCMessages/VertoMessages.d.ts.map +1 -1
  4. package/dist/core/src/index.d.ts +2 -2
  5. package/dist/core/src/index.d.ts.map +1 -1
  6. package/dist/core/src/redux/features/component/componentSlice.d.ts +96 -0
  7. package/dist/core/src/redux/features/component/componentSlice.d.ts.map +1 -1
  8. package/dist/core/src/redux/rootReducer.d.ts +16 -0
  9. package/dist/core/src/redux/rootReducer.d.ts.map +1 -1
  10. package/dist/core/src/types/common.d.ts +16 -10
  11. package/dist/core/src/types/common.d.ts.map +1 -1
  12. package/dist/core/src/types/fabric.d.ts +0 -27
  13. package/dist/core/src/types/fabric.d.ts.map +1 -1
  14. package/dist/core/src/types/index.d.ts +67 -1
  15. package/dist/core/src/types/index.d.ts.map +1 -1
  16. package/dist/core/src/types/videoPlayback.d.ts +1 -7
  17. package/dist/core/src/types/videoPlayback.d.ts.map +1 -1
  18. package/dist/core/src/types/videoRecording.d.ts +1 -7
  19. package/dist/core/src/types/videoRecording.d.ts.map +1 -1
  20. package/dist/core/src/types/voice.d.ts +13 -2
  21. package/dist/core/src/types/voice.d.ts.map +1 -1
  22. package/dist/core/src/types/voiceCall.d.ts +96 -964
  23. package/dist/core/src/types/voiceCall.d.ts.map +1 -1
  24. package/dist/core/src/types/voiceCollect.d.ts +166 -0
  25. package/dist/core/src/types/voiceCollect.d.ts.map +1 -0
  26. package/dist/core/src/types/voiceConnect.d.ts +77 -0
  27. package/dist/core/src/types/voiceConnect.d.ts.map +1 -0
  28. package/dist/core/src/types/voiceDetect.d.ts +127 -0
  29. package/dist/core/src/types/voiceDetect.d.ts.map +1 -0
  30. package/dist/core/src/types/voicePlayback.d.ts +141 -0
  31. package/dist/core/src/types/voicePlayback.d.ts.map +1 -0
  32. package/dist/core/src/types/voicePrompt.d.ts +105 -0
  33. package/dist/core/src/types/voicePrompt.d.ts.map +1 -0
  34. package/dist/core/src/types/voiceRecording.d.ts +107 -0
  35. package/dist/core/src/types/voiceRecording.d.ts.map +1 -0
  36. package/dist/core/src/types/voiceSendDigits.d.ts +21 -0
  37. package/dist/core/src/types/voiceSendDigits.d.ts.map +1 -0
  38. package/dist/core/src/types/voiceTap.d.ts +116 -0
  39. package/dist/core/src/types/voiceTap.d.ts.map +1 -0
  40. package/dist/core/src/utils/constants.d.ts.map +1 -1
  41. package/dist/core/src/utils/eventUtils.d.ts +0 -2
  42. package/dist/core/src/utils/eventUtils.d.ts.map +1 -1
  43. package/dist/core/src/utils/interfaces.d.ts +19 -2
  44. package/dist/core/src/utils/interfaces.d.ts.map +1 -1
  45. package/dist/index.esm.js +636 -223
  46. package/dist/index.esm.js.map +4 -4
  47. package/dist/index.js +655 -233
  48. package/dist/index.js.map +4 -4
  49. package/dist/index.umd.js +26 -2
  50. package/dist/index.umd.js.map +1 -1
  51. package/dist/js/src/fabric/Conversation.d.ts +2 -2
  52. package/dist/js/src/fabric/Conversation.d.ts.map +1 -1
  53. package/dist/js/src/fabric/FabricRoomSession.d.ts +5 -4
  54. package/dist/js/src/fabric/FabricRoomSession.d.ts.map +1 -1
  55. package/dist/js/src/fabric/SignalWire.d.ts.map +1 -1
  56. package/dist/js/src/fabric/WSClient.d.ts +2 -2
  57. package/dist/js/src/fabric/WSClient.d.ts.map +1 -1
  58. package/dist/js/src/fabric/createWSClient.d.ts +1 -1
  59. package/dist/js/src/fabric/createWSClient.d.ts.map +1 -1
  60. package/dist/js/src/fabric/interfaces/capabilities.d.ts +28 -0
  61. package/dist/js/src/fabric/interfaces/capabilities.d.ts.map +1 -0
  62. package/dist/js/src/fabric/interfaces/conversation.d.ts +4 -4
  63. package/dist/js/src/fabric/interfaces/conversation.d.ts.map +1 -1
  64. package/dist/js/src/fabric/interfaces/index.d.ts +1 -0
  65. package/dist/js/src/fabric/interfaces/index.d.ts.map +1 -1
  66. package/dist/js/src/fabric/interfaces/wsClient.d.ts +2 -2
  67. package/dist/js/src/fabric/interfaces/wsClient.d.ts.map +1 -1
  68. package/dist/js/src/fabric/utils/capabilitiesHelpers.d.ts +28 -0
  69. package/dist/js/src/fabric/utils/capabilitiesHelpers.d.ts.map +1 -0
  70. package/dist/js/src/fabric/workers/callJoinWorker.d.ts.map +1 -1
  71. package/dist/js/src/fabric/workers/wsClientWorker.d.ts.map +1 -1
  72. package/dist/js/src/index.d.ts +2 -2
  73. package/dist/js/src/index.d.ts.map +1 -1
  74. package/dist/js/src/utils/interfaces/fabric.d.ts +6 -3
  75. package/dist/js/src/utils/interfaces/fabric.d.ts.map +1 -1
  76. package/dist/js/src/utils/paginatedResult.d.ts +4 -4
  77. package/dist/js/tsconfig.build.tsbuildinfo +1 -1
  78. package/dist/webrtc/src/BaseConnection.d.ts +78 -19
  79. package/dist/webrtc/src/BaseConnection.d.ts.map +1 -1
  80. package/dist/webrtc/src/RTCPeer.d.ts +11 -0
  81. package/dist/webrtc/src/RTCPeer.d.ts.map +1 -1
  82. package/dist/webrtc/src/utils/helpers.d.ts.map +1 -1
  83. package/dist/webrtc/src/utils/interfaces.d.ts +6 -0
  84. package/dist/webrtc/src/utils/interfaces.d.ts.map +1 -1
  85. package/dist/webrtc/src/utils/sdpHelpers.d.ts +27 -2
  86. package/dist/webrtc/src/utils/sdpHelpers.d.ts.map +1 -1
  87. package/package.json +3 -3
  88. package/src/fabric/Conversation.ts +9 -7
  89. package/src/fabric/FabricRoomSession.ts +32 -32
  90. package/src/fabric/SignalWire.test.ts +2 -0
  91. package/src/fabric/SignalWire.ts +2 -0
  92. package/src/fabric/WSClient.ts +6 -10
  93. package/src/fabric/interfaces/capabilities.ts +30 -0
  94. package/src/fabric/interfaces/conversation.ts +5 -4
  95. package/src/fabric/interfaces/index.ts +2 -1
  96. package/src/fabric/interfaces/wsClient.ts +2 -2
  97. package/src/fabric/utils/capabilitiesHelpers.test.ts +201 -0
  98. package/src/fabric/utils/capabilitiesHelpers.ts +190 -0
  99. package/src/fabric/workers/callJoinWorker.ts +7 -6
  100. package/src/fabric/workers/wsClientWorker.ts +35 -12
  101. package/src/index.ts +1 -1
  102. package/src/utils/interfaces/fabric.ts +10 -3
  103. package/dist/core/src/utils/eventUtils.test.d.ts +0 -2
  104. package/dist/core/src/utils/eventUtils.test.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
- import { BaseComponent, BaseComponentOptions, BaseConnectionState, Rooms, EventEmitter, BaseConnectionContract, WebRTCMethod } from '@signalwire/core';
1
+ import { BaseComponent, BaseComponentOptions, BaseConnectionState, Rooms, EventEmitter, BaseConnectionContract, WebRTCMethod, UpdateMediaParams, UpdateMediaDirection } from '@signalwire/core';
2
2
  import type { ReduxComponent } from '@signalwire/core';
3
3
  import RTCPeer from './RTCPeer';
4
- import { ConnectionOptions, BaseConnectionEvents, OnVertoByeParams } from './utils/interfaces';
4
+ import { ConnectionOptions, UpdateMediaOptionsParams, BaseConnectionEvents, OnVertoByeParams } from './utils/interfaces';
5
5
  export type BaseConnectionOptions = ConnectionOptions & BaseComponentOptions;
6
6
  export declare class BaseConnection<EventTypes extends EventEmitter.ValidEventTypes = BaseConnectionEvents> extends BaseComponent<EventTypes> implements Rooms.BaseRoomInterface<EventTypes>, BaseConnectionContract<EventTypes> {
7
7
  direction: 'inbound' | 'outbound';
@@ -14,8 +14,6 @@ export declare class BaseConnection<EventTypes extends EventEmitter.ValidEventTy
14
14
  causeCode: string;
15
15
  /** @internal */
16
16
  gotEarly: boolean;
17
- /** @internal */
18
- doReinvite: boolean;
19
17
  private state;
20
18
  private prevState;
21
19
  private activeRTCPeerId;
@@ -74,7 +72,6 @@ export declare class BaseConnection<EventTypes extends EventEmitter.ValidEventTy
74
72
  setActiveRTCPeer(rtcPeerId: string): void;
75
73
  setLocalStream(stream: MediaStream): Promise<MediaStream>;
76
74
  /**
77
- * @internal
78
75
  * Verto messages have to be wrapped into an execute
79
76
  * request and sent using the proper RPC WebRTCMethod.
80
77
  */
@@ -85,13 +82,52 @@ export declare class BaseConnection<EventTypes extends EventEmitter.ValidEventTy
85
82
  _triggerNewRTCPeer(): Promise<void>;
86
83
  updateCamera(constraints: MediaTrackConstraints): Promise<void>;
87
84
  updateMicrophone(constraints: MediaTrackConstraints): Promise<void>;
88
- /** @internal */
85
+ /**
86
+ * Determines the appropriate {@link RTCRtpTransceiverDirection} based on current audio/video
87
+ * and negotiation options. The returned direction tells the peer connection
88
+ * whether to send, receive, both, or remain inactive for the given media kind.
89
+ */
90
+ private _getTransceiverDirection;
91
+ /**
92
+ * Adjusts senders based on the given audio/video constraints. If a constraint is set to false,
93
+ * it stops the corresponding outbound track. Returns true if at least one sender is active,
94
+ * otherwise false.
95
+ */
89
96
  private manageSendersWithConstraints;
90
97
  /**
91
- * @internal
98
+ * Attempts to obtain a new media stream that matches the given constraints, using a recursive
99
+ * strategy. If the new constraints fail, it tries to restore the old constraints.
100
+ * Returns a Promise that resolves to the new MediaStream or resolves without a stream if
101
+ * constraints were fully disabled. Rejects on unrecoverable errors.
92
102
  */
93
103
  private updateConstraints;
104
+ /**
105
+ * Updates local tracks and transceivers from the given stream.
106
+ * For each new track, it adds/updates a transceiver and emits updated device events.
107
+ */
94
108
  private updateStream;
109
+ /**
110
+ * Finds or creates a transceiver for the new track. If an existing transceiver is found,
111
+ * replaces its track and updates its direction, if needed. If no transceiver is found,
112
+ * adds a new one. The method can trigger renegotiation.
113
+ */
114
+ private handleTransceiverForTrack;
115
+ /**
116
+ * Replaces old tracks of the same kind in the local stream with the new track.
117
+ * Stops and removes the old track, then adds the new one. Also updates related
118
+ * device options and reattaches track listeners.
119
+ */
120
+ private replaceOldTrack;
121
+ /**
122
+ * Emits device updated events for audio or video. Uses previously stored
123
+ * track references to indicate what changed between old and new devices.
124
+ */
125
+ private emitDeviceUpdatedEvents;
126
+ /**
127
+ * Applies the given constraints by retrieving a new stream and then uses
128
+ * {@link updateStream} to synchronize local tracks with that new stream.
129
+ */
130
+ private applyConstraintsAndRefreshStream;
95
131
  runRTCPeerWorkers(rtcPeerId: string): void;
96
132
  /** @internal */
97
133
  invite<T>(): Promise<T>;
@@ -110,17 +146,18 @@ export declare class BaseConnection<EventTypes extends EventEmitter.ValidEventTy
110
146
  * - requesting: we received a redirectDestination so need to send it again
111
147
  * specifying nodeId.
112
148
  *
113
- * @internal
114
149
  */
115
- executeInvite(sdp: string, rtcPeerId: string, nodeId?: string): Promise<void>;
150
+ private executeInvite;
116
151
  /**
117
152
  * Send the `verto.answer` only if the state is `new`
118
153
  * - new: the first time we send out the answer.
119
- * @internal
120
154
  */
121
- executeAnswer(sdp: string, rtcPeerId: string, nodeId?: string): Promise<void>;
122
- /** @internal */
123
- executeUpdateMedia(sdp: string, rtcPeerId: string): Promise<void>;
155
+ private executeAnswer;
156
+ /**
157
+ * Send the `verto.modify` when it's an offer and remote is already present
158
+ * It helps in renegotiation.
159
+ */
160
+ private executeUpdateMedia;
124
161
  hangup(id?: string): Promise<void>;
125
162
  hangupAll(): Promise<void>;
126
163
  sendDigits(dtmf: string): Promise<void>;
@@ -137,12 +174,7 @@ export declare class BaseConnection<EventTypes extends EventEmitter.ValidEventTy
137
174
  /** @internal */
138
175
  setState(state: BaseConnectionState): void;
139
176
  /** @internal */
140
- updateMediaOptions(options: {
141
- audio?: boolean | MediaTrackConstraints;
142
- video?: boolean | MediaTrackConstraints;
143
- negotiateAudio?: boolean;
144
- negotiateVideo?: boolean;
145
- }): void;
177
+ updateMediaOptions(options: UpdateMediaOptionsParams): void;
146
178
  /** @internal */
147
179
  onVertoBye: (params: OnVertoByeParams) => void;
148
180
  /**
@@ -162,5 +194,32 @@ export declare class BaseConnection<EventTypes extends EventEmitter.ValidEventTy
162
194
  private _buildPeer;
163
195
  /** @internal */
164
196
  protected _finalize(): void;
197
+ /**
198
+ * Add or update the transceiver based on the media type and direction
199
+ */
200
+ private _upsertTransceiverByKind;
201
+ /**
202
+ * Allow user to upgrade/downgrade media in a call.
203
+ * This performs RTC Peer renegotiation.
204
+ *
205
+ * @param params: {@link UpdateMediaParams}
206
+ */
207
+ updateMedia(params: UpdateMediaParams): Promise<void>;
208
+ /**
209
+ * Allow user to set the audio direction on the RTC Peer.
210
+ * This performs RTC Peer renegotiation.
211
+ *
212
+ * @param direction {@link UpdateMediaDirection}
213
+ */
214
+ setAudioDirection(direction: UpdateMediaDirection): Promise<void>;
215
+ /**
216
+ * Allow user to set the video direction on the RTC Peer.
217
+ * This performs RTC Peer renegotiation.
218
+ *
219
+ * @param direction {@link UpdateMediaDirection}
220
+ */
221
+ setVideoDirection(direction: UpdateMediaDirection): Promise<void>;
222
+ hold(): Promise<void>;
223
+ unhold(): Promise<void>;
165
224
  }
166
225
  //# sourceMappingURL=BaseConnection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseConnection.d.ts","sourceRoot":"","sources":["../../../../webrtc/src/BaseConnection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseConnection.d.ts","sourceRoot":"","sources":["../../../../webrtc/src/BaseConnection.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,15 @@ export default class RTCPeer<EventTypes extends EventEmitter.ValidEventTypes> {
20
20
  */
21
21
  private _resolveStartMethod;
22
22
  private _rejectStartMethod;
23
+ /**
24
+ * The promise that resolves or rejects when the negotiation succeed or fail.
25
+ * The consumer needs to declare the promise and assign it to this in order to
26
+ * wait for the negotiation to complete.
27
+ */
28
+ _pendingNegotiationPromise?: {
29
+ resolve: (value?: unknown) => void;
30
+ reject: (error: unknown) => void;
31
+ };
23
32
  private _localStream?;
24
33
  private _remoteStream?;
25
34
  private rtcConfigPolyfill;
@@ -27,6 +36,7 @@ export default class RTCPeer<EventTypes extends EventEmitter.ValidEventTypes> {
27
36
  constructor(call: BaseConnection<EventTypes>, type: RTCSdpType);
28
37
  get options(): import("./BaseConnection").BaseConnectionOptions;
29
38
  get watchMediaPacketsTimeout(): number;
39
+ get isNegotiating(): boolean;
30
40
  get localStream(): MediaStream | undefined;
31
41
  set localStream(stream: MediaStream | undefined);
32
42
  get remoteStream(): MediaStream | undefined;
@@ -47,6 +57,7 @@ export default class RTCPeer<EventTypes extends EventEmitter.ValidEventTypes> {
47
57
  get remoteSdp(): string | undefined;
48
58
  get hasIceServers(): boolean;
49
59
  stopTrackSender(kind: string): void;
60
+ stopTrackReceiver(kind: string): void;
50
61
  restoreTrackSender(kind: string): Promise<void>;
51
62
  getDeviceId(kind: string): string | null;
52
63
  getTrackSettings(kind: string): MediaTrackSettings | null;
@@ -1 +1 @@
1
- {"version":3,"file":"RTCPeer.d.ts","sourceRoot":"","sources":["../../../../webrtc/src/RTCPeer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RTCPeer.d.ts","sourceRoot":"","sources":["../../../../webrtc/src/RTCPeer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAmB,MAAM,kBAAkB,CAAA;AAYhE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAWjD,MAAM,CAAC,OAAO,OAAO,OAAO,CAAC,UAAU,SAAS,YAAY,CAAC,eAAe;IAwCjE,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC;IAChC,IAAI,EAAE,UAAU;IAxClB,IAAI,SAAS;IAEb,QAAQ,EAAE,iBAAiB,CAAA;IAElC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,oBAAoB,CAAQ;IACpC,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,uBAAuB,CAA+B;IAC9D,OAAO,CAAC,qBAAqB,CAA+B;IAC5D,OAAO,CAAC,YAAY,CAAC,CAA+B;IACpD,OAAO,CAAC,aAAa,CAA6C;IAClE;;;;OAIG;IACH,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,kBAAkB,CAA0B;IAEpD;;;;OAIG;IACI,0BAA0B,CAAC,EAAE;QAClC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;QAClC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;KACjC,CAAA;IAED,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,aAAa,CAAC,CAAa;IACnC,OAAO,CAAC,iBAAiB,CAAkB;IAE3C,OAAO,KAAK,MAAM,GAEjB;gBAGQ,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,IAAI,EAAE,UAAU;IAwBzB,IAAI,OAAO,qDAEV;IAED,IAAI,wBAAwB,WAE3B;IAED,IAAI,aAAa,YAEhB;IAED,IAAI,WAAW,4BAEd;IAED,IAAI,WAAW,CAAC,MAAM,yBAAA,EAErB;IAED,IAAI,YAAY,4BAEf;IAED,IAAI,OAAO,YAEV;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,WAAW,YAEd;IAED,IAAI,KAAK,YAER;IAED,IAAI,eAAe,4BAGlB;IAED,IAAI,eAAe,4BAGlB;IAED,IAAI,gBAAgB,4BAGnB;IAED,IAAI,gBAAgB,4BAGnB;IAED,IAAI,cAAc,YAEjB;IAED,IAAI,cAAc,YAEjB;IAED,IAAI,gBAAgB,YAEnB;IAED,IAAI,gBAAgB,YAEnB;IAED,IAAI,MAAM,IAAI,gBAAgB,CAa7B;IAED,IAAI,QAAQ,uBAEX;IAED,IAAI,SAAS,uBAEZ;IAED,IAAI,aAAa,YAMhB;IAED,eAAe,CAAC,IAAI,EAAE,MAAM;IAe5B,iBAAiB,CAAC,IAAI,EAAE,MAAM;IAexB,kBAAkB,CAAC,IAAI,EAAE,MAAM;IAwBrC,WAAW,CAAC,IAAI,EAAE,MAAM;IAcxB,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAa7B,cAAc,CAAC,IAAI,EAAE,MAAM;IAa3B,uBAAuB;IAwBvB,UAAU;IAYV,aAAa;IAmBb,OAAO,CAAC,eAAe;IAOvB,qBAAqB;IAMrB,sBAAsB;IAMhB,qBAAqB,CACzB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,qBAAqB;IAgCpC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,kBAAkB;IAUpB,gBAAgB,CAAC,KAAK,UAAQ;IAoEpC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAQ1D,WAAW,CAAC,GAAG,EAAE,MAAM;IAoC7B,OAAO,CAAC,uBAAuB;IAOzB,KAAK;IA4GX,aAAa;IAgBb,IAAI;IAUJ,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,sBAAsB;YAWhB,SAAS;IAmCvB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,MAAM;IAyCd,OAAO,CAAC,oBAAoB;IAgC5B,OAAO,CAAC,qBAAqB;YAqBf,oBAAoB;IAQlC,OAAO,CAAC,gBAAgB;IAoGxB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IASrB,yBAAyB;IAMzB,yBAAyB;IAMzB,yBAAyB;IAMzB,yBAAyB;IAMhC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CASzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../webrtc/src/utils/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAIhD,eAAO,MAAM,YAAY,gBAAiB,sBAAsB,qCAQ/D,CAAA;AA4BD,eAAO,MAAM,mBAAmB,YACrB,iBAAiB,KACzB,OAAO,CAAC,sBAAsB,CAgChC,CAAA;AAED,UAAU,uBAAuB;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,eAAO,MAAM,gBAAgB,YAClB,YAAY,EAAE,WACd,uBAAuB;;;;GAkBjC,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../webrtc/src/utils/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAIhD,eAAO,MAAM,YAAY,gBAAiB,sBAAsB,qCAQ/D,CAAA;AA0BD,eAAO,MAAM,mBAAmB,YACrB,iBAAiB,KACzB,OAAO,CAAC,sBAAsB,CAgChC,CAAA;AAED,UAAU,uBAAuB;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,eAAO,MAAM,gBAAgB,YAClB,YAAY,EAAE,WACd,uBAAuB;;;;GAkBjC,CAAA"}
@@ -96,6 +96,12 @@ export interface ConnectionOptions {
96
96
  layout?: string;
97
97
  positions?: VideoPositions;
98
98
  }
99
+ export interface EmitDeviceUpdatedEventsParams {
100
+ newTrack: MediaStreamTrack;
101
+ prevAudioTrack?: MediaStreamTrack | null;
102
+ prevVideoTrack?: MediaStreamTrack | null;
103
+ }
104
+ export type UpdateMediaOptionsParams = Pick<ConnectionOptions, 'video' | 'audio' | 'negotiateVideo' | 'negotiateAudio'>;
99
105
  export interface OnVertoByeParams {
100
106
  byeCause: string;
101
107
  byeCauseCode: string;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../webrtc/src/utils/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../webrtc/src/utils/interfaces.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,15 @@
1
1
  /**
2
- * test if sdp has a video section
2
+ * Check if SDP has a media section (audio or video)
3
3
  */
4
- export declare const hasMediaSection: (sdp: string, media: "audio" | "video") => boolean;
4
+ export declare const sdpHasMediaSection: (sdp: string, media: "audio" | "video") => boolean;
5
+ /**
6
+ * Check if SDP includes video
7
+ */
8
+ export declare const sdpHasVideo: (sdp: string) => boolean;
9
+ /**
10
+ * Check if SDP includes audio
11
+ */
12
+ export declare const sdpHasAudio: (sdp: string) => boolean;
5
13
  /**
6
14
  * Add stereo support hacking the SDP
7
15
  * @return the SDP modified
@@ -26,4 +34,21 @@ export declare const sdpHasValidCandidates: (sdp: string) => boolean;
26
34
  * https://bloggeek.me/psa-mdns-and-local-ice-candidates-are-coming/
27
35
  */
28
36
  export declare const sdpRemoveLocalCandidates: (sdp: string) => string;
37
+ /**
38
+ * Get the SDP direction for the specified media type.
39
+ * Returns 'sendrecv' if no direction attribute is found, as per SDP standards.
40
+ */
41
+ export declare const getSdpDirection: (sdp: string, media: "audio" | "video") => RTCRtpTransceiverDirection;
42
+ /**
43
+ * Returns the opposite SDP direction based on the provided direction.
44
+ */
45
+ export declare const getOppositeSdpDirection: (direction: RTCRtpTransceiverDirection) => RTCRtpTransceiverDirection;
46
+ /**
47
+ * Returns boolean indicating remote and local SDPs has the expected opposite direction
48
+ */
49
+ export declare const hasMatchingSdpDirection: ({ localSdp, remoteSdp, media, }: {
50
+ localSdp: string;
51
+ remoteSdp: string;
52
+ media: "audio" | "video";
53
+ }) => boolean;
29
54
  //# sourceMappingURL=sdpHelpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdpHelpers.d.ts","sourceRoot":"","sources":["../../../../../webrtc/src/utils/sdpHelpers.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,eAAO,MAAM,eAAe,QAAS,MAAM,SAAS,OAAO,GAAG,OAAO,YAEpE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAS,MAAM,WA6BxC,CAAA;AAED,eAAO,MAAM,iBAAiB,WACpB,MAAM,cACF,MAAM,KACjB,MAoBF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,QACpB,MAAM,OACN,MAAM,OACN,MAAM,SACJ,MAAM,WAcd,CAAA;AAuCD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,QAAS,MAAM,YAmBhD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAS,MAAM,WAOnD,CAAA"}
1
+ {"version":3,"file":"sdpHelpers.d.ts","sourceRoot":"","sources":["../../../../../webrtc/src/utils/sdpHelpers.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,eAAO,MAAM,kBAAkB,QAAS,MAAM,SAAS,OAAO,GAAG,OAAO,YAQvE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,QAAS,MAAM,YAEtC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,QAAS,MAAM,YAEtC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAS,MAAM,WA6BxC,CAAA;AAED,eAAO,MAAM,iBAAiB,WACpB,MAAM,cACF,MAAM,KACjB,MAoBF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,QACpB,MAAM,OACN,MAAM,OACN,MAAM,SACJ,MAAM,WAcd,CAAA;AAuCD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,QAAS,MAAM,YAmBhD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAS,MAAM,WAOnD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,QACrB,MAAM,SACJ,OAAO,GAAG,OAAO,KACvB,0BA2BF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,cACvB,0BAA0B,KACpC,0BAaF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,oCAIjC;IACD,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,OAAO,GAAG,OAAO,CAAA;CACzB,YAKA,CAAA"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "SignalWire JS SDK",
4
4
  "author": "SignalWire Team <open.source@signalwire.com>",
5
5
  "license": "MIT",
6
- "version": "3.28.0",
6
+ "version": "3.28.1",
7
7
  "main": "dist/index.js",
8
8
  "module": "dist/index.esm.js",
9
9
  "unpkg": "dist/index.umd.js",
@@ -39,8 +39,8 @@
39
39
  "prepublishOnly": "npm run build"
40
40
  },
41
41
  "dependencies": {
42
- "@signalwire/core": "4.2.0",
43
- "@signalwire/webrtc": "3.13.0",
42
+ "@signalwire/core": "4.2.1",
43
+ "@signalwire/webrtc": "3.13.1",
44
44
  "jwt-decode": "^3.1.2"
45
45
  },
46
46
  "devDependencies": {
@@ -16,14 +16,14 @@ import type {
16
16
  SendConversationMessageResult,
17
17
  GetConversationChatMessageParams,
18
18
  GetConversationsResult,
19
- CoversationSubscribeCallback,
19
+ ConversationSubscribeCallback,
20
20
  ConversationChatMessagesSubscribeParams,
21
21
  ConversationChatMessagesSubscribeResult,
22
22
  GetConversationChatMessageResult,
23
23
  JoinConversationParams,
24
24
  JoinConversationResponse,
25
25
  JoinConversationResult,
26
- CoversationSubscribeResult,
26
+ ConversationSubscribeResult,
27
27
  } from './interfaces'
28
28
  import { conversationWorker } from './workers'
29
29
  import { buildPaginatedResult } from '../utils/paginatedResult'
@@ -40,9 +40,11 @@ interface ConversationOptions {
40
40
  export class Conversation {
41
41
  private httpClient: HTTPClient
42
42
  private wsClient: WSClient
43
- private callbacks = new Set<CoversationSubscribeCallback>()
44
- private chatSubscriptions: Record<string, Set<CoversationSubscribeCallback>> =
45
- {}
43
+ private callbacks = new Set<ConversationSubscribeCallback>()
44
+ private chatSubscriptions: Record<
45
+ string,
46
+ Set<ConversationSubscribeCallback>
47
+ > = {}
46
48
 
47
49
  constructor(options: ConversationOptions) {
48
50
  this.httpClient = options.httpClient
@@ -253,8 +255,8 @@ export class Conversation {
253
255
  }
254
256
 
255
257
  public async subscribe(
256
- callback: CoversationSubscribeCallback
257
- ): Promise<CoversationSubscribeResult> {
258
+ callback: ConversationSubscribeCallback
259
+ ): Promise<ConversationSubscribeResult> {
258
260
  this.callbacks.add(callback)
259
261
 
260
262
  return {
@@ -2,7 +2,6 @@ import {
2
2
  connect,
3
3
  BaseComponentContract,
4
4
  BaseRPCResult,
5
- CallCapabilities,
6
5
  FabricLayoutChangedEventParams,
7
6
  ExecuteExtendedOptions,
8
7
  Rooms,
@@ -30,6 +29,7 @@ import { PREVIOUS_CALLID_STORAGE_KEY } from './utils/constants'
30
29
  import { fabricWorker } from './workers'
31
30
  import { FabricRoomSessionMember } from './FabricRoomSessionMember'
32
31
  import { makeAudioElementSaga } from '../features/mediaElements/mediaElementsSagas'
32
+ import { CallCapabilitiesContract } from './interfaces/capabilities'
33
33
 
34
34
  export interface FabricRoomSession
35
35
  extends FabricRoomSessionContract,
@@ -51,7 +51,7 @@ export class FabricRoomSessionConnection
51
51
  private _member?: FabricRoomSessionMember
52
52
  private _currentLayoutEvent: FabricLayoutChangedEventParams
53
53
  //describes what are methods are allow for the user in a call segment
54
- private _capabilities: CallCapabilities = {}
54
+ private _capabilities?: CallCapabilitiesContract
55
55
 
56
56
  constructor(options: FabricRoomSessionOptions) {
57
57
  super(options)
@@ -81,11 +81,11 @@ export class FabricRoomSessionConnection
81
81
  )?.position
82
82
  }
83
83
 
84
- get capabilities(): CallCapabilities {
84
+ get capabilities(): CallCapabilitiesContract | undefined {
85
85
  return this._capabilities
86
86
  }
87
87
 
88
- set capabilities(capabilities: CallCapabilities) {
88
+ set capabilities(capabilities: CallCapabilitiesContract | undefined) {
89
89
  this._capabilities = capabilities
90
90
  }
91
91
 
@@ -209,8 +209,8 @@ export class FabricRoomSessionConnection
209
209
  public async audioMute(params: MemberCommandParams) {
210
210
  if (
211
211
  !params || params.memberId === this.member.id
212
- ? !this.capabilities.self?.muteAudio?.off
213
- : !this.capabilities.member?.muteAudio?.off
212
+ ? !this.capabilities?.self.muteAudio.off
213
+ : !this.capabilities?.member.muteAudio.off
214
214
  ) {
215
215
  throw Error('Missing audio mute capability')
216
216
  }
@@ -224,8 +224,8 @@ export class FabricRoomSessionConnection
224
224
  public async audioUnmute(params: MemberCommandParams) {
225
225
  if (
226
226
  !params || params.memberId === this.member.id
227
- ? !this.capabilities.self?.muteAudio?.on
228
- : !this.capabilities.member?.muteAudio?.on
227
+ ? !this.capabilities?.self.muteAudio.on
228
+ : !this.capabilities?.member.muteAudio.on
229
229
  ) {
230
230
  throw Error('Missing audio unmute capability')
231
231
  }
@@ -239,8 +239,8 @@ export class FabricRoomSessionConnection
239
239
  public async videoMute(params: MemberCommandParams) {
240
240
  if (
241
241
  !params || params.memberId === this.member.id
242
- ? !this.capabilities.self?.muteVideo?.off
243
- : !this.capabilities.member?.muteVideo?.on
242
+ ? !this.capabilities?.self.muteVideo.off
243
+ : !this.capabilities?.member.muteVideo.on
244
244
  ) {
245
245
  throw Error('Missing video mute capability')
246
246
  }
@@ -254,8 +254,8 @@ export class FabricRoomSessionConnection
254
254
  public async videoUnmute(params: MemberCommandParams) {
255
255
  if (
256
256
  !params || params.memberId === this.member.id
257
- ? !this.capabilities.self?.muteVideo?.on
258
- : !this.capabilities.member?.muteVideo?.on
257
+ ? !this.capabilities?.self.muteVideo.on
258
+ : !this.capabilities?.member.muteVideo.on
259
259
  ) {
260
260
  throw Error('Missing video unmute capability')
261
261
  }
@@ -269,8 +269,8 @@ export class FabricRoomSessionConnection
269
269
  public async deaf(params: MemberCommandParams) {
270
270
  if (
271
271
  !params || params.memberId === this.member.id
272
- ? !this.capabilities.self?.deaf?.on
273
- : !this.capabilities.member?.deaf?.on
272
+ ? !this.capabilities?.self.deaf.on
273
+ : !this.capabilities?.member.deaf.on
274
274
  ) {
275
275
  throw Error('Missing deaf capability')
276
276
  }
@@ -283,8 +283,8 @@ export class FabricRoomSessionConnection
283
283
  public async undeaf(params: MemberCommandParams) {
284
284
  if (
285
285
  !params || params.memberId === this.member.id
286
- ? !this.capabilities.self?.deaf?.off
287
- : !this.capabilities.member?.deaf?.off
286
+ ? !this.capabilities?.self.deaf.off
287
+ : !this.capabilities?.member.deaf.off
288
288
  ) {
289
289
  throw Error('Missing undeaf capability')
290
290
  }
@@ -321,7 +321,7 @@ export class FabricRoomSessionConnection
321
321
  }
322
322
 
323
323
  public async removeMember(params: Required<MemberCommandParams>) {
324
- if (!this.capabilities.member?.remove) {
324
+ if (!this.capabilities?.member.remove) {
325
325
  throw Error('Missing setLayout capability')
326
326
  }
327
327
  if (!params?.memberId) {
@@ -337,15 +337,15 @@ export class FabricRoomSessionConnection
337
337
  const { raised = true, memberId } = params || {}
338
338
  if (
339
339
  memberId == this.member.id && raised
340
- ? !this.capabilities.self?.raisehand?.on
341
- : !this.capabilities.member?.raisehand?.on
340
+ ? !this.capabilities?.self.raisehand.on
341
+ : !this.capabilities?.member.raisehand.on
342
342
  ) {
343
343
  throw Error('Missing raisehand capability')
344
344
  }
345
345
  if (
346
346
  memberId == this.member.id && !raised
347
- ? !this.capabilities.self?.raisehand?.off
348
- : !this.capabilities.member?.raisehand?.off
347
+ ? !this.capabilities?.self.raisehand.off
348
+ : !this.capabilities?.member.raisehand.off
349
349
  ) {
350
350
  throw Error('Missing lowerhand capability')
351
351
  }
@@ -356,7 +356,7 @@ export class FabricRoomSessionConnection
356
356
  }
357
357
 
358
358
  public async setLayout(params: Rooms.SetLayoutParams) {
359
- if (!this.capabilities.setLayout) {
359
+ if (!this.capabilities?.setLayout) {
360
360
  throw Error('Missing setLayout capability')
361
361
  }
362
362
  const extraParams = {
@@ -372,8 +372,8 @@ export class FabricRoomSessionConnection
372
372
  public async setInputVolume(params: MemberCommandWithVolumeParams) {
373
373
  if (
374
374
  !params || params.memberId === this.member.id
375
- ? !this.capabilities.self?.microphoneVolume
376
- : !this.capabilities.member?.microphoneVolume
375
+ ? !this.capabilities?.self.microphoneVolume
376
+ : !this.capabilities?.member.microphoneVolume
377
377
  ) {
378
378
  throw Error('Missing setInputVolume capability')
379
379
  }
@@ -389,8 +389,8 @@ export class FabricRoomSessionConnection
389
389
  public async setOutputVolume(params: MemberCommandWithVolumeParams) {
390
390
  if (
391
391
  !params || params.memberId === this.member.id
392
- ? !this.capabilities.self?.speakerVolume
393
- : !this.capabilities.member?.speakerVolume
392
+ ? !this.capabilities?.self.speakerVolume
393
+ : !this.capabilities?.member.speakerVolume
394
394
  ) {
395
395
  throw Error('Missing setOutputVolume capability')
396
396
  }
@@ -406,8 +406,8 @@ export class FabricRoomSessionConnection
406
406
  public async setInputSensitivity(params: MemberCommandWithValueParams) {
407
407
  if (
408
408
  !params || params.memberId === this.member.id
409
- ? !this.capabilities.self?.microphoneSensitivity
410
- : !this.capabilities.member?.microphoneSensitivity
409
+ ? !this.capabilities?.self.microphoneSensitivity
410
+ : !this.capabilities?.member.microphoneSensitivity
411
411
  ) {
412
412
  throw Error('Missing setOutputVolume capability')
413
413
  }
@@ -431,8 +431,8 @@ export class FabricRoomSessionConnection
431
431
  Object.keys(positions).some((p) =>
432
432
  ['self', `${this.memberId}`].includes(p)
433
433
  )
434
- ? !this.capabilities.self?.position
435
- : !this.capabilities.member?.position
434
+ ? !this.capabilities?.self.position
435
+ : !this.capabilities?.member.position
436
436
  ) {
437
437
  throw Error('Missing setPositions capability')
438
438
  }
@@ -478,7 +478,7 @@ export class FabricRoomSessionConnection
478
478
  }
479
479
 
480
480
  public async lock() {
481
- if (!this.capabilities.lock?.on) {
481
+ if (!this.capabilities?.lock.on) {
482
482
  throw Error('Missing lock capability')
483
483
  }
484
484
  return this.executeAction<BaseRPCResult>({
@@ -487,7 +487,7 @@ export class FabricRoomSessionConnection
487
487
  }
488
488
 
489
489
  public async unlock() {
490
- if (!this.capabilities.lock?.off) {
490
+ if (!this.capabilities?.lock.off) {
491
491
  throw Error('Missing unlock capability')
492
492
  }
493
493
  return this.executeAction<BaseRPCResult>({
@@ -33,6 +33,8 @@ describe('SignalWire', () => {
33
33
  reattach: jest.fn(),
34
34
  handlePushNotification: jest.fn(),
35
35
  updateToken: jest.fn(),
36
+ on: jest.fn(),
37
+ off: jest.fn(),
36
38
  }))
37
39
 
38
40
  // Mock HTTPClient behavior
@@ -53,6 +53,8 @@ export const SignalWire = (() => {
53
53
  join: conversation.joinConversation.bind(conversation),
54
54
  },
55
55
  // @ts-expect-error For debugging purposes
56
+ on: wsClient.on.bind(wsClient),
57
+ off: wsClient.off.bind(wsClient),
56
58
  __httpClient: httpClient,
57
59
  __wsClient: wsClient,
58
60
  })
@@ -1,8 +1,7 @@
1
1
  import {
2
2
  actions,
3
3
  BaseClient,
4
- CallJoinedEventParams,
5
- ClientEvents,
4
+ CallJoinedEventParams as InternalCallJoinedEventParams,
6
5
  VertoBye,
7
6
  VertoSubscribe,
8
7
  VideoRoomSubscribedEventParams,
@@ -25,10 +24,7 @@ import { wsClientWorker } from './workers'
25
24
  import { createWSClient } from './createWSClient'
26
25
  import { WSClientContract } from './interfaces/wsClient'
27
26
 
28
- export class WSClient
29
- extends BaseClient<ClientEvents>
30
- implements WSClientContract
31
- {
27
+ export class WSClient extends BaseClient<{}> implements WSClientContract {
32
28
  private _incomingCallManager: IncomingCallManager
33
29
  private _disconnected: boolean = false
34
30
 
@@ -95,7 +91,7 @@ export class WSClient
95
91
  * right away.
96
92
  */
97
93
  const joinMutedHandler = (
98
- params: CallJoinedEventParams | VideoRoomSubscribedEventParams
94
+ params: InternalCallJoinedEventParams | VideoRoomSubscribedEventParams
99
95
  ) => {
100
96
  const member = params.room_session.members?.find(
101
97
  // @ts-expect-error FIXME:
@@ -185,7 +181,7 @@ export class WSClient
185
181
  stopCameraWhileMuted: true,
186
182
  stopMicrophoneWhileMuted: true,
187
183
  watchMediaPackets: false,
188
- destinationNumber: pathname,
184
+ destinationNumber: params.to,
189
185
  nodeId: params.nodeId,
190
186
  attach: params.attach ?? false,
191
187
  disableUdpIceServers: params.disableUdpIceServers || false,
@@ -365,10 +361,10 @@ export class WSClient
365
361
 
366
362
  public updateToken(token: string) {
367
363
  return new Promise<void>((resolve, reject) => {
368
- this.once('session.auth_error', (error) => {
364
+ this.session.once('session.auth_error', (error) => {
369
365
  reject(error)
370
366
  })
371
- this.once('session.connected', () => {
367
+ this.session.once('session.connected', () => {
372
368
  resolve()
373
369
  })
374
370
  this.store.dispatch(actions.reauthAction({ token }))