@cemscale-voip/voip-sdk 1.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ // ============================================================
2
+ // @cemscale/voip-sdk — Type definitions
3
+ // ============================================================
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wCAAwC;AACxC,+DAA+D"}
@@ -0,0 +1,64 @@
1
+ import type { WebRTCConfig, WebRTCCallInfo, WebRTCEventMap } from './types.js';
2
+ type EventKey = keyof WebRTCEventMap;
3
+ /**
4
+ * WebRTCPhone wraps SIP.js to provide a high-level phone interface.
5
+ *
6
+ * Usage:
7
+ * const phone = new WebRTCPhone({
8
+ * sipDomain: 'sip.cemscale.com',
9
+ * wsUri: 'wss://sip.cemscale.com:5065/ws',
10
+ * extension: '1001',
11
+ * password: 'secret',
12
+ * audioElement: document.getElementById('remoteAudio'),
13
+ * });
14
+ *
15
+ * await phone.start();
16
+ * phone.on('incomingCall', (call) => { ... });
17
+ * phone.call('1002');
18
+ */
19
+ export declare class WebRTCPhone {
20
+ private config;
21
+ private ua;
22
+ private registerer;
23
+ private currentSession;
24
+ private currentCallInfo;
25
+ private listeners;
26
+ private audioElement;
27
+ private registered;
28
+ constructor(config: WebRTCConfig);
29
+ on<K extends EventKey>(event: K, callback: WebRTCEventMap[K]): () => void;
30
+ private emit;
31
+ /** Start the SIP User Agent and register */
32
+ start(): Promise<void>;
33
+ /** Stop the SIP User Agent */
34
+ stop(): Promise<void>;
35
+ /** Check if registered */
36
+ isRegistered(): boolean;
37
+ /** Make an outbound call */
38
+ call(target: string): Promise<WebRTCCallInfo>;
39
+ private handleIncomingCall;
40
+ /** Answer an incoming call */
41
+ answer(): Promise<void>;
42
+ /** Reject an incoming call */
43
+ reject(): Promise<void>;
44
+ /** Hang up the current call */
45
+ hangup(): Promise<void>;
46
+ /** Hold/unhold the current call */
47
+ toggleHold(): Promise<boolean>;
48
+ /** Mute/unmute local audio */
49
+ toggleMute(): boolean;
50
+ /** Send a DTMF tone */
51
+ sendDtmf(tone: string): void;
52
+ /** Blind transfer the current call */
53
+ blindTransfer(target: string): Promise<void>;
54
+ /** Get current call info (snapshot) */
55
+ getCurrentCall(): WebRTCCallInfo | null;
56
+ private setupSessionHandlers;
57
+ private attachRemoteAudio;
58
+ private emitCallState;
59
+ private clearSession;
60
+ /** Cleanup everything */
61
+ destroy(): Promise<void>;
62
+ }
63
+ export {};
64
+ //# sourceMappingURL=webrtc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webrtc.d.ts","sourceRoot":"","sources":["../src/webrtc.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EAEd,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,KAAK,QAAQ,GAAG,MAAM,cAAc,CAAC;AAErC;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,SAAS,CAAoD;IACrE,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,YAAY;IAWhC,EAAE,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAUzE,OAAO,CAAC,IAAI;IAiBZ,4CAA4C;IACtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2D5B,8BAA8B;IACxB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC3B,0BAA0B;IAC1B,YAAY,IAAI,OAAO;IAQvB,4BAA4B;IACtB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAuCnD,OAAO,CAAC,kBAAkB;IAkC1B,8BAA8B;IACxB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAY7B,8BAA8B;IACxB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAa7B,+BAA+B;IACzB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB7B,mCAAmC;IAC7B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IA6BpC,8BAA8B;IAC9B,UAAU,IAAI,OAAO;IA2BrB,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAwC5B,sCAAsC;IAChC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlD,uCAAuC;IACvC,cAAc,IAAI,cAAc,GAAG,IAAI;IAQvC,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,YAAY;IAKpB,yBAAyB;IACnB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI/B"}
package/dist/webrtc.js ADDED
@@ -0,0 +1,427 @@
1
+ // ============================================================
2
+ // @cemscale/voip-sdk — WebRTC SIP Client (SIP.js wrapper)
3
+ // ============================================================
4
+ import { UserAgent, Registerer, RegistererState, Invitation, Inviter, SessionState } from 'sip.js';
5
+ /**
6
+ * WebRTCPhone wraps SIP.js to provide a high-level phone interface.
7
+ *
8
+ * Usage:
9
+ * const phone = new WebRTCPhone({
10
+ * sipDomain: 'sip.cemscale.com',
11
+ * wsUri: 'wss://sip.cemscale.com:5065/ws',
12
+ * extension: '1001',
13
+ * password: 'secret',
14
+ * audioElement: document.getElementById('remoteAudio'),
15
+ * });
16
+ *
17
+ * await phone.start();
18
+ * phone.on('incomingCall', (call) => { ... });
19
+ * phone.call('1002');
20
+ */
21
+ export class WebRTCPhone {
22
+ config;
23
+ ua = null;
24
+ registerer = null;
25
+ currentSession = null;
26
+ currentCallInfo = null;
27
+ listeners = new Map();
28
+ audioElement;
29
+ registered = false;
30
+ constructor(config) {
31
+ this.config = config;
32
+ // Use provided audio element or create one
33
+ this.audioElement = config.audioElement || document.createElement('audio');
34
+ this.audioElement.autoplay = true;
35
+ }
36
+ // -------------------------------------------------------------------
37
+ // Event emitter
38
+ // -------------------------------------------------------------------
39
+ on(event, callback) {
40
+ if (!this.listeners.has(event)) {
41
+ this.listeners.set(event, new Set());
42
+ }
43
+ this.listeners.get(event).add(callback);
44
+ return () => {
45
+ this.listeners.get(event)?.delete(callback);
46
+ };
47
+ }
48
+ emit(event, ...args) {
49
+ const handlers = this.listeners.get(event);
50
+ if (handlers) {
51
+ for (const handler of handlers) {
52
+ try {
53
+ handler(...args);
54
+ }
55
+ catch (err) {
56
+ console.error(`[WebRTCPhone] Event handler error for "${event}":`, err);
57
+ }
58
+ }
59
+ }
60
+ }
61
+ // -------------------------------------------------------------------
62
+ // Lifecycle
63
+ // -------------------------------------------------------------------
64
+ /** Start the SIP User Agent and register */
65
+ async start() {
66
+ const uri = UserAgent.makeURI(`sip:${this.config.extension}@${this.config.sipDomain}`);
67
+ if (!uri) {
68
+ throw new Error(`Invalid SIP URI: sip:${this.config.extension}@${this.config.sipDomain}`);
69
+ }
70
+ const iceServers = this.config.turnServers || [
71
+ { urls: 'stun:stun.l.google.com:19302' },
72
+ ];
73
+ this.ua = new UserAgent({
74
+ uri,
75
+ transportOptions: {
76
+ server: this.config.wsUri,
77
+ },
78
+ authorizationUsername: this.config.extension,
79
+ authorizationPassword: this.config.password,
80
+ displayName: this.config.displayName || this.config.extension,
81
+ sessionDescriptionHandlerFactoryOptions: {
82
+ peerConnectionConfiguration: {
83
+ iceServers,
84
+ },
85
+ },
86
+ delegate: {
87
+ onInvite: (invitation) => {
88
+ this.handleIncomingCall(invitation);
89
+ },
90
+ },
91
+ logLevel: 'warn',
92
+ });
93
+ // Start transport
94
+ await this.ua.start();
95
+ // Register
96
+ this.registerer = new Registerer(this.ua, {
97
+ expires: 300,
98
+ });
99
+ this.registerer.stateChange.addListener((state) => {
100
+ switch (state) {
101
+ case RegistererState.Registered:
102
+ this.registered = true;
103
+ this.emit('registered');
104
+ break;
105
+ case RegistererState.Unregistered:
106
+ this.registered = false;
107
+ this.emit('unregistered');
108
+ break;
109
+ case RegistererState.Terminated:
110
+ this.registered = false;
111
+ this.emit('unregistered');
112
+ break;
113
+ }
114
+ });
115
+ await this.registerer.register();
116
+ }
117
+ /** Stop the SIP User Agent */
118
+ async stop() {
119
+ if (this.currentSession) {
120
+ try {
121
+ await this.hangup();
122
+ }
123
+ catch {
124
+ // Ignore errors during shutdown
125
+ }
126
+ }
127
+ if (this.registerer) {
128
+ try {
129
+ await this.registerer.unregister();
130
+ }
131
+ catch {
132
+ // Ignore
133
+ }
134
+ this.registerer = null;
135
+ }
136
+ if (this.ua) {
137
+ try {
138
+ await this.ua.stop();
139
+ }
140
+ catch {
141
+ // Ignore
142
+ }
143
+ this.ua = null;
144
+ }
145
+ this.registered = false;
146
+ this.currentSession = null;
147
+ this.currentCallInfo = null;
148
+ }
149
+ /** Check if registered */
150
+ isRegistered() {
151
+ return this.registered;
152
+ }
153
+ // -------------------------------------------------------------------
154
+ // Outbound calls
155
+ // -------------------------------------------------------------------
156
+ /** Make an outbound call */
157
+ async call(target) {
158
+ if (!this.ua)
159
+ throw new Error('UserAgent not started. Call start() first.');
160
+ if (this.currentSession)
161
+ throw new Error('A call is already in progress. Hang up first.');
162
+ const targetUri = UserAgent.makeURI(`sip:${target}@${this.config.sipDomain}`);
163
+ if (!targetUri)
164
+ throw new Error(`Invalid target: ${target}`);
165
+ const inviter = new Inviter(this.ua, targetUri, {
166
+ sessionDescriptionHandlerOptions: {
167
+ constraints: { audio: true, video: false },
168
+ },
169
+ });
170
+ this.currentSession = inviter;
171
+ this.currentCallInfo = {
172
+ id: inviter.id,
173
+ direction: 'outbound',
174
+ remoteIdentity: target,
175
+ remoteDisplayName: target,
176
+ state: 'connecting',
177
+ startTime: new Date(),
178
+ answerTime: null,
179
+ held: false,
180
+ muted: false,
181
+ dtmfSent: '',
182
+ };
183
+ this.setupSessionHandlers(inviter);
184
+ await inviter.invite();
185
+ this.emitCallState();
186
+ return { ...this.currentCallInfo };
187
+ }
188
+ // -------------------------------------------------------------------
189
+ // Inbound calls
190
+ // -------------------------------------------------------------------
191
+ handleIncomingCall(invitation) {
192
+ // If there's already an active call, reject
193
+ if (this.currentSession) {
194
+ invitation.reject();
195
+ return;
196
+ }
197
+ this.currentSession = invitation;
198
+ const remoteUri = invitation.remoteIdentity.uri;
199
+ this.currentCallInfo = {
200
+ id: invitation.id,
201
+ direction: 'inbound',
202
+ remoteIdentity: remoteUri.user || 'unknown',
203
+ remoteDisplayName: invitation.remoteIdentity.displayName || remoteUri.user || 'unknown',
204
+ state: 'ringing',
205
+ startTime: new Date(),
206
+ answerTime: null,
207
+ held: false,
208
+ muted: false,
209
+ dtmfSent: '',
210
+ };
211
+ this.setupSessionHandlers(invitation);
212
+ this.emit('incomingCall', { ...this.currentCallInfo });
213
+ // Auto-answer if configured
214
+ if (this.config.autoAnswer) {
215
+ this.answer().catch((err) => {
216
+ this.emit('error', new Error(`Auto-answer failed: ${err.message}`));
217
+ });
218
+ }
219
+ }
220
+ /** Answer an incoming call */
221
+ async answer() {
222
+ if (!this.currentSession || !(this.currentSession instanceof Invitation)) {
223
+ throw new Error('No incoming call to answer');
224
+ }
225
+ await this.currentSession.accept({
226
+ sessionDescriptionHandlerOptions: {
227
+ constraints: { audio: true, video: false },
228
+ },
229
+ });
230
+ }
231
+ /** Reject an incoming call */
232
+ async reject() {
233
+ if (!this.currentSession || !(this.currentSession instanceof Invitation)) {
234
+ throw new Error('No incoming call to reject');
235
+ }
236
+ await this.currentSession.reject();
237
+ this.clearSession();
238
+ }
239
+ // -------------------------------------------------------------------
240
+ // Session controls
241
+ // -------------------------------------------------------------------
242
+ /** Hang up the current call */
243
+ async hangup() {
244
+ if (!this.currentSession)
245
+ throw new Error('No active call');
246
+ const session = this.currentSession;
247
+ switch (session.state) {
248
+ case SessionState.Initial:
249
+ case SessionState.Establishing:
250
+ if (session instanceof Inviter) {
251
+ await session.cancel();
252
+ }
253
+ else if (session instanceof Invitation) {
254
+ await session.reject();
255
+ }
256
+ break;
257
+ case SessionState.Established:
258
+ await session.bye();
259
+ break;
260
+ default:
261
+ break;
262
+ }
263
+ this.clearSession();
264
+ }
265
+ /** Hold/unhold the current call */
266
+ async toggleHold() {
267
+ if (!this.currentSession || this.currentSession.state !== SessionState.Established) {
268
+ throw new Error('No established call to hold');
269
+ }
270
+ if (!this.currentCallInfo)
271
+ throw new Error('No call info');
272
+ const sessionDescriptionHandler = this.currentSession.sessionDescriptionHandler;
273
+ if (!sessionDescriptionHandler)
274
+ throw new Error('No session description handler');
275
+ const pc = sessionDescriptionHandler.peerConnection;
276
+ if (!pc)
277
+ throw new Error('No peer connection');
278
+ const isHeld = this.currentCallInfo.held;
279
+ // Toggle audio tracks direction
280
+ for (const sender of pc.getSenders()) {
281
+ if (sender.track?.kind === 'audio') {
282
+ sender.track.enabled = isHeld; // enable if currently held
283
+ }
284
+ }
285
+ this.currentCallInfo.held = !isHeld;
286
+ this.currentCallInfo.state = isHeld ? 'established' : 'held';
287
+ this.emitCallState();
288
+ return this.currentCallInfo.held;
289
+ }
290
+ /** Mute/unmute local audio */
291
+ toggleMute() {
292
+ if (!this.currentSession || this.currentSession.state !== SessionState.Established) {
293
+ throw new Error('No established call to mute');
294
+ }
295
+ if (!this.currentCallInfo)
296
+ throw new Error('No call info');
297
+ const sessionDescriptionHandler = this.currentSession.sessionDescriptionHandler;
298
+ if (!sessionDescriptionHandler)
299
+ throw new Error('No session description handler');
300
+ const pc = sessionDescriptionHandler.peerConnection;
301
+ if (!pc)
302
+ throw new Error('No peer connection');
303
+ const isMuted = this.currentCallInfo.muted;
304
+ for (const sender of pc.getSenders()) {
305
+ if (sender.track?.kind === 'audio') {
306
+ sender.track.enabled = isMuted; // enable if currently muted
307
+ }
308
+ }
309
+ this.currentCallInfo.muted = !isMuted;
310
+ this.emitCallState();
311
+ return this.currentCallInfo.muted;
312
+ }
313
+ /** Send a DTMF tone */
314
+ sendDtmf(tone) {
315
+ if (!this.currentSession || this.currentSession.state !== SessionState.Established) {
316
+ throw new Error('No established call for DTMF');
317
+ }
318
+ const sessionDescriptionHandler = this.currentSession.sessionDescriptionHandler;
319
+ if (!sessionDescriptionHandler)
320
+ throw new Error('No session description handler');
321
+ const pc = sessionDescriptionHandler.peerConnection;
322
+ if (!pc)
323
+ throw new Error('No peer connection');
324
+ // Send via RTP (RFC 2833)
325
+ for (const sender of pc.getSenders()) {
326
+ if (sender.track?.kind === 'audio' && sender.dtmf) {
327
+ sender.dtmf.insertDTMF(tone, 100, 70);
328
+ if (this.currentCallInfo) {
329
+ this.currentCallInfo.dtmfSent += tone;
330
+ this.emitCallState();
331
+ }
332
+ return;
333
+ }
334
+ }
335
+ // Fallback: SIP INFO
336
+ this.currentSession.info({
337
+ requestOptions: {
338
+ body: {
339
+ contentDisposition: 'render',
340
+ contentType: 'application/dtmf-relay',
341
+ content: `Signal=${tone}\r\nDuration=100`,
342
+ },
343
+ },
344
+ });
345
+ if (this.currentCallInfo) {
346
+ this.currentCallInfo.dtmfSent += tone;
347
+ this.emitCallState();
348
+ }
349
+ }
350
+ /** Blind transfer the current call */
351
+ async blindTransfer(target) {
352
+ if (!this.currentSession || this.currentSession.state !== SessionState.Established) {
353
+ throw new Error('No established call to transfer');
354
+ }
355
+ const targetUri = UserAgent.makeURI(`sip:${target}@${this.config.sipDomain}`);
356
+ if (!targetUri)
357
+ throw new Error(`Invalid transfer target: ${target}`);
358
+ await this.currentSession.refer(targetUri);
359
+ // Session will be ended by the server after successful transfer
360
+ }
361
+ /** Get current call info (snapshot) */
362
+ getCurrentCall() {
363
+ return this.currentCallInfo ? { ...this.currentCallInfo } : null;
364
+ }
365
+ // -------------------------------------------------------------------
366
+ // Internal helpers
367
+ // -------------------------------------------------------------------
368
+ setupSessionHandlers(session) {
369
+ session.stateChange.addListener((state) => {
370
+ if (!this.currentCallInfo)
371
+ return;
372
+ switch (state) {
373
+ case SessionState.Establishing:
374
+ this.currentCallInfo.state = 'connecting';
375
+ break;
376
+ case SessionState.Established:
377
+ this.currentCallInfo.state = 'established';
378
+ this.currentCallInfo.answerTime = new Date();
379
+ this.attachRemoteAudio(session);
380
+ break;
381
+ case SessionState.Terminating:
382
+ this.currentCallInfo.state = 'terminating';
383
+ break;
384
+ case SessionState.Terminated:
385
+ this.currentCallInfo.state = 'terminated';
386
+ this.emitCallState();
387
+ this.emit('callEnded', { ...this.currentCallInfo });
388
+ this.clearSession();
389
+ return;
390
+ }
391
+ this.emitCallState();
392
+ });
393
+ }
394
+ attachRemoteAudio(session) {
395
+ const sessionDescriptionHandler = session.sessionDescriptionHandler;
396
+ if (!sessionDescriptionHandler)
397
+ return;
398
+ const pc = sessionDescriptionHandler.peerConnection;
399
+ if (!pc)
400
+ return;
401
+ const remoteStream = new MediaStream();
402
+ for (const receiver of pc.getReceivers()) {
403
+ if (receiver.track) {
404
+ remoteStream.addTrack(receiver.track);
405
+ }
406
+ }
407
+ this.audioElement.srcObject = remoteStream;
408
+ this.audioElement.play().catch(() => {
409
+ // Browser may block autoplay; user interaction needed
410
+ });
411
+ }
412
+ emitCallState() {
413
+ if (this.currentCallInfo) {
414
+ this.emit('callStateChanged', { ...this.currentCallInfo });
415
+ }
416
+ }
417
+ clearSession() {
418
+ this.currentSession = null;
419
+ this.currentCallInfo = null;
420
+ }
421
+ /** Cleanup everything */
422
+ async destroy() {
423
+ await this.stop();
424
+ this.listeners.clear();
425
+ }
426
+ }
427
+ //# sourceMappingURL=webrtc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webrtc.js","sourceRoot":"","sources":["../src/webrtc.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@cemscale-voip/voip-sdk",
3
+ "version": "1.0.0",
4
+ "description": "VoIP SDK for CemScale multi-tenant platform — API client, WebRTC, React hooks",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "module": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ },
14
+ "./hooks": {
15
+ "import": "./dist/hooks/index.js",
16
+ "types": "./dist/hooks/index.d.ts"
17
+ }
18
+ },
19
+ "files": [
20
+ "dist"
21
+ ],
22
+ "scripts": {
23
+ "build": "tsc",
24
+ "dev": "tsc --watch",
25
+ "clean": "rm -rf dist",
26
+ "prepublishOnly": "npm run clean && npm run build"
27
+ },
28
+ "keywords": [
29
+ "voip",
30
+ "sip",
31
+ "webrtc",
32
+ "react",
33
+ "hooks",
34
+ "multi-tenant"
35
+ ],
36
+ "author": "Cemscale",
37
+ "license": "UNLICENSED",
38
+ "peerDependencies": {
39
+ "react": ">=18.0.0"
40
+ },
41
+ "peerDependenciesMeta": {
42
+ "react": {
43
+ "optional": true
44
+ }
45
+ },
46
+ "dependencies": {
47
+ "sip.js": "^0.21.2"
48
+ },
49
+ "devDependencies": {
50
+ "@types/node": "^22.0.0",
51
+ "@types/react": "^19.0.0",
52
+ "react": "^19.0.0",
53
+ "typescript": "^5.7.0"
54
+ }
55
+ }