livekit-server-sdk 2.4.0 → 2.5.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.
package/dist/SipClient.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // SPDX-FileCopyrightText: 2024 LiveKit, Inc.
2
2
  //
3
3
  // SPDX-License-Identifier: Apache-2.0
4
- import { CreateSIPDispatchRuleRequest, CreateSIPParticipantRequest, CreateSIPTrunkRequest, DeleteSIPDispatchRuleRequest, DeleteSIPTrunkRequest, ListSIPDispatchRuleRequest, ListSIPDispatchRuleResponse, ListSIPTrunkRequest, ListSIPTrunkResponse, SIPDispatchRule, SIPDispatchRuleDirect, SIPDispatchRuleIndividual, SIPDispatchRuleInfo, SIPParticipantInfo, SIPTrunkInfo, } from '@livekit/protocol';
4
+ import { CreateSIPDispatchRuleRequest, CreateSIPInboundTrunkRequest, CreateSIPOutboundTrunkRequest, CreateSIPParticipantRequest, CreateSIPTrunkRequest, DeleteSIPDispatchRuleRequest, DeleteSIPTrunkRequest, ListSIPDispatchRuleRequest, ListSIPDispatchRuleResponse, ListSIPInboundTrunkRequest, ListSIPInboundTrunkResponse, ListSIPOutboundTrunkRequest, ListSIPOutboundTrunkResponse, ListSIPTrunkRequest, ListSIPTrunkResponse, SIPDispatchRule, SIPDispatchRuleDirect, SIPDispatchRuleIndividual, SIPDispatchRuleInfo, SIPInboundTrunkInfo, SIPOutboundTrunkInfo, SIPParticipantInfo, SIPTransport, SIPTrunkInfo, } from '@livekit/protocol';
5
5
  import ServiceBase from './ServiceBase.js';
6
6
  import { TwirpRpc, livekitPackage } from './TwirpRPC.js';
7
7
  const svc = 'SIP';
@@ -21,6 +21,7 @@ export class SipClient extends ServiceBase {
21
21
  /**
22
22
  * @param number phone number of the trunk
23
23
  * @param opts CreateSipTrunkOptions
24
+ * @deprecated use createSipInboundTrunk or createSipOutboundTrunk
24
25
  */
25
26
  async createSipTrunk(number, opts) {
26
27
  let inboundAddresses;
@@ -55,20 +56,98 @@ export class SipClient extends ServiceBase {
55
56
  outboundUsername: outboundUsername,
56
57
  outboundPassword: outboundPassword,
57
58
  }).toJson();
58
- const data = await this.rpc.request(svc, 'CreateSIPTrunk', req, await this.authHeader({}));
59
+ const data = await this.rpc.request(svc, 'CreateSIPTrunk', req, await this.authHeader({}, { admin: true }));
59
60
  return SIPTrunkInfo.fromJson(data, { ignoreUnknownFields: true });
60
61
  }
62
+ /**
63
+ @param name human-readable name of the trunk
64
+ * @param numbers phone numbers of the trunk
65
+ * @param opts CreateSipTrunkOptions
66
+ */
67
+ async createSipInboundTrunk(name, numbers, opts) {
68
+ let allowedAddresses;
69
+ let allowedNumbers;
70
+ let authUsername = '';
71
+ let authPassword = '';
72
+ let metadata = '';
73
+ if (opts !== undefined) {
74
+ allowedAddresses = opts.allowed_addresses;
75
+ allowedNumbers = opts.allowed_numbers;
76
+ authUsername = opts.auth_username || '';
77
+ authPassword = opts.auth_password || '';
78
+ metadata = opts.metadata || '';
79
+ }
80
+ const req = new CreateSIPInboundTrunkRequest({
81
+ trunk: new SIPInboundTrunkInfo({
82
+ name: name,
83
+ numbers: numbers,
84
+ metadata: metadata,
85
+ allowedAddresses: allowedAddresses,
86
+ allowedNumbers: allowedNumbers,
87
+ authUsername: authUsername,
88
+ authPassword: authPassword,
89
+ }),
90
+ }).toJson();
91
+ const data = await this.rpc.request(svc, 'CreateSIPInboundTrunk', req, await this.authHeader({}, { admin: true }));
92
+ return SIPInboundTrunkInfo.fromJson(data, { ignoreUnknownFields: true });
93
+ }
94
+ /**
95
+ * @param name human-readable name of the trunk
96
+ * @param address hostname and port of the SIP server to dial
97
+ * @param numbers phone numbers of the trunk
98
+ * @param opts CreateSipTrunkOptions
99
+ */
100
+ async createSipOutboundTrunk(name, address, numbers, opts) {
101
+ let authUsername = '';
102
+ let authPassword = '';
103
+ let transport = SIPTransport.SIP_TRANSPORT_AUTO;
104
+ let metadata = '';
105
+ if (opts !== undefined) {
106
+ authUsername = opts.auth_username || '';
107
+ authPassword = opts.auth_password || '';
108
+ transport = opts.transport || SIPTransport.SIP_TRANSPORT_AUTO;
109
+ metadata = opts.metadata || '';
110
+ }
111
+ const req = new CreateSIPOutboundTrunkRequest({
112
+ trunk: new SIPOutboundTrunkInfo({
113
+ name: name,
114
+ address: address,
115
+ numbers: numbers,
116
+ metadata: metadata,
117
+ transport: transport,
118
+ authUsername: authUsername,
119
+ authPassword: authPassword,
120
+ }),
121
+ }).toJson();
122
+ const data = await this.rpc.request(svc, 'CreateSIPOutboundTrunk', req, await this.authHeader({}, { admin: true }));
123
+ return SIPOutboundTrunkInfo.fromJson(data, { ignoreUnknownFields: true });
124
+ }
125
+ /**
126
+ * @deprecated use listSipInboundTrunk or listSipOutboundTrunk
127
+ */
61
128
  async listSipTrunk() {
62
129
  var _a;
63
130
  const req = {};
64
- const data = await this.rpc.request(svc, 'ListSIPTrunk', new ListSIPTrunkRequest(req).toJson(), await this.authHeader({}));
131
+ const data = await this.rpc.request(svc, 'ListSIPTrunk', new ListSIPTrunkRequest(req).toJson(), await this.authHeader({}, { admin: true }));
65
132
  return (_a = ListSIPTrunkResponse.fromJson(data, { ignoreUnknownFields: true }).items) !== null && _a !== void 0 ? _a : [];
66
133
  }
134
+ async listSipInboundTrunk() {
135
+ var _a;
136
+ const req = {};
137
+ const data = await this.rpc.request(svc, 'ListSIPInboundTrunk', new ListSIPInboundTrunkRequest(req).toJson(), await this.authHeader({}, { admin: true }));
138
+ return (_a = ListSIPInboundTrunkResponse.fromJson(data, { ignoreUnknownFields: true }).items) !== null && _a !== void 0 ? _a : [];
139
+ }
140
+ async listSipOutboundTrunk() {
141
+ var _a;
142
+ const req = {};
143
+ const data = await this.rpc.request(svc, 'ListSIPOutboundTrunk', new ListSIPOutboundTrunkRequest(req).toJson(), await this.authHeader({}, { admin: true }));
144
+ return (_a = ListSIPOutboundTrunkResponse.fromJson(data, { ignoreUnknownFields: true }).items) !== null && _a !== void 0 ? _a : [];
145
+ }
67
146
  /**
68
147
  * @param sipTrunkId sip trunk to delete
69
148
  */
70
149
  async deleteSipTrunk(sipTrunkId) {
71
- const data = await this.rpc.request(svc, 'DeleteSIPTrunk', new DeleteSIPTrunkRequest({ sipTrunkId }).toJson(), await this.authHeader({}));
150
+ const data = await this.rpc.request(svc, 'DeleteSIPTrunk', new DeleteSIPTrunkRequest({ sipTrunkId }).toJson(), await this.authHeader({}, { admin: true }));
72
151
  return SIPTrunkInfo.fromJson(data, { ignoreUnknownFields: true });
73
152
  }
74
153
  /**
@@ -116,20 +195,20 @@ export class SipClient extends ServiceBase {
116
195
  name: name,
117
196
  metadata: metadata,
118
197
  }).toJson();
119
- const data = await this.rpc.request(svc, 'CreateSIPDispatchRule', req, await this.authHeader({}));
198
+ const data = await this.rpc.request(svc, 'CreateSIPDispatchRule', req, await this.authHeader({}, { admin: true }));
120
199
  return SIPDispatchRuleInfo.fromJson(data, { ignoreUnknownFields: true });
121
200
  }
122
201
  async listSipDispatchRule() {
123
202
  var _a;
124
203
  const req = {};
125
- const data = await this.rpc.request(svc, 'ListSIPDispatchRule', new ListSIPDispatchRuleRequest(req).toJson(), await this.authHeader({}));
204
+ const data = await this.rpc.request(svc, 'ListSIPDispatchRule', new ListSIPDispatchRuleRequest(req).toJson(), await this.authHeader({}, { admin: true }));
126
205
  return (_a = ListSIPDispatchRuleResponse.fromJson(data, { ignoreUnknownFields: true }).items) !== null && _a !== void 0 ? _a : [];
127
206
  }
128
207
  /**
129
208
  * @param sipDispatchRuleId sip trunk to delete
130
209
  */
131
210
  async deleteSipDispatchRule(sipDispatchRuleId) {
132
- const data = await this.rpc.request(svc, 'DeleteSIPDispatchRule', new DeleteSIPDispatchRuleRequest({ sipDispatchRuleId }).toJson(), await this.authHeader({}));
211
+ const data = await this.rpc.request(svc, 'DeleteSIPDispatchRule', new DeleteSIPDispatchRuleRequest({ sipDispatchRuleId }).toJson(), await this.authHeader({}, { admin: true }));
133
212
  return SIPDispatchRuleInfo.fromJson(data, { ignoreUnknownFields: true });
134
213
  }
135
214
  /**
@@ -144,12 +223,14 @@ export class SipClient extends ServiceBase {
144
223
  let participantMetadata = '';
145
224
  let dtmf = '';
146
225
  let playRingtone = false;
226
+ let hidePhoneNumber = false;
147
227
  if (opts !== undefined) {
148
228
  participantIdentity = opts.participantIdentity || '';
149
229
  participantName = opts.participantName || '';
150
230
  participantMetadata = opts.participantMetadata || '';
151
231
  dtmf = opts.dtmf || '';
152
232
  playRingtone = opts.playRingtone || false;
233
+ hidePhoneNumber = opts.hidePhoneNumber || false;
153
234
  }
154
235
  const req = new CreateSIPParticipantRequest({
155
236
  sipTrunkId: sipTrunkId,
@@ -160,8 +241,9 @@ export class SipClient extends ServiceBase {
160
241
  participantMetadata: participantMetadata,
161
242
  dtmf: dtmf,
162
243
  playRingtone: playRingtone,
244
+ hidePhoneNumber: hidePhoneNumber,
163
245
  }).toJson();
164
- const data = await this.rpc.request(svc, 'CreateSIPParticipant', req, await this.authHeader({}));
246
+ const data = await this.rpc.request(svc, 'CreateSIPParticipant', req, await this.authHeader({}, { call: true }));
165
247
  return SIPParticipantInfo.fromJson(data, { ignoreUnknownFields: true });
166
248
  }
167
249
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SipClient.js","sourceRoot":"","sources":["../src/SipClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SipClient.js","sourceRoot":"","sources":["../src/SipClient.ts"],"names":[],"mappings":"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"}
package/dist/grants.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { TrackSource } from '@livekit/protocol';
2
- import { JWTPayload } from 'jose';
2
+ import type { JWTPayload } from 'jose';
3
3
  export declare function trackSourceToString(source: TrackSource): "camera" | "microphone" | "screen_share" | "screen_share_audio";
4
4
  export declare function claimsToJwtPayload(grant: ClaimGrants): JWTPayload & {
5
5
  video?: Record<string, unknown>;
@@ -43,14 +43,23 @@ export interface VideoGrant {
43
43
  hidden?: boolean;
44
44
  /** participant is recording the room, when set, allows room to indicate it's being recorded */
45
45
  recorder?: boolean;
46
- /** participant acts as a server side participant/bot/agent */
46
+ /** participant allowed to connect to LiveKit as Agent Framework worker */
47
47
  agent?: boolean;
48
48
  }
49
+ export interface SIPGrant {
50
+ /** manage sip resources */
51
+ admin?: boolean;
52
+ /** make outbound calls */
53
+ call?: boolean;
54
+ }
49
55
  /** @internal */
50
56
  export interface ClaimGrants extends JWTPayload {
51
57
  name?: string;
52
58
  video?: VideoGrant;
59
+ sip?: SIPGrant;
60
+ kind?: string;
53
61
  metadata?: string;
62
+ attributes?: Record<string, string>;
54
63
  sha256?: string;
55
64
  }
56
65
  //# sourceMappingURL=grants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grants.d.ts","sourceRoot":"","sources":["../src/grants.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,mEAatD;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,GACjB,UAAU,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAOlD;AAED,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,0EAA0E;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC;IAElC,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,gBAAgB;AAChB,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"grants.d.ts","sourceRoot":"","sources":["../src/grants.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAEvC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,mEAatD;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,GACjB,UAAU,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAOlD;AAED,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,0EAA0E;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC;IAElC,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,gBAAgB;AAChB,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
+ export { AliOSSUpload, AutoParticipantEgress, AutoTrackEgress, AzureBlobUpload, DataPacket_Kind, DirectFileOutput, EgressInfo, EncodedFileOutput, EncodedFileType, EncodingOptions, EncodingOptionsPreset, GCPUpload, ImageOutput, IngressAudioEncodingOptions, IngressAudioEncodingPreset, IngressAudioOptions, IngressInfo, IngressInput, IngressState, IngressVideoEncodingOptions, IngressVideoEncodingPreset, IngressVideoOptions, ParticipantEgressRequest, ParticipantInfo, ParticipantInfo_State, ParticipantPermission, Room, RoomCompositeEgressRequest, RoomEgress, S3Upload, SIPDispatchRuleInfo, SIPParticipantInfo, SIPTrunkInfo, SegmentedFileOutput, SegmentedFileProtocol, StreamOutput, StreamProtocol, TrackCompositeEgressRequest, TrackEgressRequest, TrackInfo, TrackSource, TrackType, WebEgressRequest, } from '@livekit/protocol';
1
2
  export * from './AccessToken.js';
2
3
  export * from './EgressClient.js';
3
4
  export * from './IngressClient.js';
4
- export * from './SipClient.js';
5
5
  export * from './RoomServiceClient.js';
6
+ export * from './SipClient.js';
6
7
  export * from './WebhookReceiver.js';
7
8
  export * from './grants.js';
8
- export { AliOSSUpload, AzureBlobUpload, DirectFileOutput, EgressInfo, EncodedFileOutput, EncodedFileType, EncodingOptions, EncodingOptionsPreset, GCPUpload, ImageOutput, ParticipantEgressRequest, RoomCompositeEgressRequest, S3Upload, SegmentedFileOutput, SegmentedFileProtocol, StreamOutput, StreamProtocol, TrackCompositeEgressRequest, TrackEgressRequest, WebEgressRequest, IngressAudioEncodingOptions, IngressAudioEncodingPreset, IngressAudioOptions, IngressInfo, IngressInput, IngressState, IngressVideoEncodingOptions, IngressVideoEncodingPreset, IngressVideoOptions, DataPacket_Kind, ParticipantInfo, ParticipantInfo_State, ParticipantPermission, Room, TrackInfo, TrackType, TrackSource, SIPTrunkInfo, SIPDispatchRuleInfo, SIPParticipantInfo, } from '@livekit/protocol';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,SAAS,EACT,WAAW,EACX,wBAAwB,EACxB,0BAA0B,EAC1B,QAAQ,EACR,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,2BAA2B,EAC3B,kBAAkB,EAClB,gBAAgB,EAChB,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,IAAI,EACJ,SAAS,EACT,SAAS,EACT,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,SAAS,EACT,WAAW,EACX,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,IAAI,EACJ,0BAA0B,EAC1B,UAAU,EACV,QAAQ,EACR,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,2BAA2B,EAC3B,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,SAAS,EACT,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  // SPDX-FileCopyrightText: 2024 LiveKit, Inc.
2
2
  //
3
3
  // SPDX-License-Identifier: Apache-2.0
4
+ export { AliOSSUpload, AutoParticipantEgress, AutoTrackEgress, AzureBlobUpload, DataPacket_Kind, DirectFileOutput, EgressInfo, EncodedFileOutput, EncodedFileType, EncodingOptions, EncodingOptionsPreset, GCPUpload, ImageOutput, IngressAudioEncodingOptions, IngressAudioEncodingPreset, IngressAudioOptions, IngressInfo, IngressInput, IngressState, IngressVideoEncodingOptions, IngressVideoEncodingPreset, IngressVideoOptions, ParticipantEgressRequest, ParticipantInfo, ParticipantInfo_State, ParticipantPermission, Room, RoomCompositeEgressRequest, RoomEgress, S3Upload, SIPDispatchRuleInfo, SIPParticipantInfo, SIPTrunkInfo, SegmentedFileOutput, SegmentedFileProtocol, StreamOutput, StreamProtocol, TrackCompositeEgressRequest, TrackEgressRequest, TrackInfo, TrackSource, TrackType, WebEgressRequest, } from '@livekit/protocol';
4
5
  export * from './AccessToken.js';
5
6
  export * from './EgressClient.js';
6
7
  export * from './IngressClient.js';
7
- export * from './SipClient.js';
8
8
  export * from './RoomServiceClient.js';
9
+ export * from './SipClient.js';
9
10
  export * from './WebhookReceiver.js';
10
11
  export * from './grants.js';
11
- export { AliOSSUpload, AzureBlobUpload, DirectFileOutput, EgressInfo, EncodedFileOutput, EncodedFileType, EncodingOptions, EncodingOptionsPreset, GCPUpload, ImageOutput, ParticipantEgressRequest, RoomCompositeEgressRequest, S3Upload, SegmentedFileOutput, SegmentedFileProtocol, StreamOutput, StreamProtocol, TrackCompositeEgressRequest, TrackEgressRequest, WebEgressRequest, IngressAudioEncodingOptions, IngressAudioEncodingPreset, IngressAudioOptions, IngressInfo, IngressInput, IngressState, IngressVideoEncodingOptions, IngressVideoEncodingPreset, IngressVideoOptions, DataPacket_Kind, ParticipantInfo, ParticipantInfo_State, ParticipantPermission, Room, TrackInfo, TrackType, TrackSource, SIPTrunkInfo, SIPDispatchRuleInfo, SIPParticipantInfo, } from '@livekit/protocol';
12
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,sCAAsC;AAEtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,SAAS,EACT,WAAW,EACX,wBAAwB,EACxB,0BAA0B,EAC1B,QAAQ,EACR,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,2BAA2B,EAC3B,kBAAkB,EAClB,gBAAgB,EAChB,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,IAAI,EACJ,SAAS,EACT,SAAS,EACT,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,sCAAsC;AAEtC,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,SAAS,EACT,WAAW,EACX,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,IAAI,EACJ,0BAA0B,EAC1B,UAAU,EACV,QAAQ,EACR,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,2BAA2B,EAC3B,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,SAAS,EACT,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "livekit-server-sdk",
3
- "version": "2.4.0",
3
+ "version": "2.5.1",
4
4
  "description": "Server-side SDK for LiveKit",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -13,7 +13,7 @@
13
13
  "src"
14
14
  ],
15
15
  "dependencies": {
16
- "@livekit/protocol": "^1.14.0",
16
+ "@livekit/protocol": "^1.19.0",
17
17
  "camelcase-keys": "^9.0.0",
18
18
  "jose": "^5.1.2"
19
19
  },
@@ -23,11 +23,6 @@
23
23
  "@edge-runtime/vm": "^3.1.7",
24
24
  "@livekit/changesets-changelog-github": "^0.0.4",
25
25
  "@types/node": "^20.10.1",
26
- "@typescript-eslint/eslint-plugin": "^7.7.0",
27
- "eslint": "^8.56.0",
28
- "eslint-config-airbnb-typescript": "^18.0.0",
29
- "eslint-config-prettier": "^9.1.0",
30
- "eslint-plugin-import": "^2.29.1",
31
26
  "happy-dom": "^14.0.0",
32
27
  "prettier": "^3.0.0",
33
28
  "typedoc": "^0.25.13",
@@ -44,7 +39,7 @@
44
39
  "build-docs": "typedoc",
45
40
  "changeset": "changeset",
46
41
  "ci:publish": "pnpm build && changeset publish",
47
- "lint": "eslint .",
42
+ "lint": "eslint src",
48
43
  "format": "prettier --write src",
49
44
  "format:check": "prettier --check src",
50
45
  "test": "vitest --environment node run",
@@ -4,7 +4,7 @@
4
4
  import * as jose from 'jose';
5
5
  import { describe, expect, it } from 'vitest';
6
6
  import { AccessToken, TokenVerifier } from './AccessToken';
7
- import { ClaimGrants } from './grants';
7
+ import type { ClaimGrants } from './grants';
8
8
 
9
9
  const testApiKey = 'abcdefg';
10
10
  const testSecret = 'abababa';
@@ -63,7 +63,9 @@ describe('verify token is valid', () => {
63
63
  it('can decode encoded token', async () => {
64
64
  const t = new AccessToken(testApiKey, testSecret);
65
65
  t.sha256 = 'abcdefg';
66
+ t.kind = 'agent';
66
67
  t.addGrant({ roomCreate: true });
68
+ t.attributes = { foo: 'bar', live: 'kit' };
67
69
 
68
70
  const v = new TokenVerifier(testApiKey, testSecret);
69
71
  const decoded = await v.verify(await t.toJwt());
@@ -71,6 +73,8 @@ describe('verify token is valid', () => {
71
73
  expect(decoded).not.toBe(undefined);
72
74
  expect(decoded.sha256).toEqual('abcdefg');
73
75
  expect(decoded.video?.roomCreate).toBeTruthy();
76
+ expect(decoded.kind).toEqual('agent');
77
+ expect(decoded.attributes).toEqual(t.attributes);
74
78
  });
75
79
  });
76
80
 
@@ -2,7 +2,8 @@
2
2
  //
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  import * as jose from 'jose';
5
- import { ClaimGrants, VideoGrant, claimsToJwtPayload } from './grants.js';
5
+ import type { ClaimGrants, SIPGrant, VideoGrant } from './grants.js';
6
+ import { claimsToJwtPayload } from './grants.js';
6
7
 
7
8
  // 6 hours
8
9
  const defaultTTL = `6h`;
@@ -82,12 +83,32 @@ export class AccessToken {
82
83
 
83
84
  /**
84
85
  * Adds a video grant to this token.
85
- * @param grant
86
+ * @param grant -
86
87
  */
87
88
  addGrant(grant: VideoGrant) {
88
89
  this.grants.video = { ...(this.grants.video ?? {}), ...grant };
89
90
  }
90
91
 
92
+ /**
93
+ * Adds a SIP grant to this token.
94
+ * @param grant -
95
+ */
96
+ addSIPGrant(grant: SIPGrant) {
97
+ this.grants.sip = { ...(this.grants.sip ?? {}), ...grant };
98
+ }
99
+
100
+ get name(): string | undefined {
101
+ return this.grants.name;
102
+ }
103
+
104
+ set name(name: string) {
105
+ this.grants.name = name;
106
+ }
107
+
108
+ get metadata(): string | undefined {
109
+ return this.grants.metadata;
110
+ }
111
+
91
112
  /**
92
113
  * Set metadata to be passed to the Participant, used only when joining the room
93
114
  */
@@ -95,8 +116,20 @@ export class AccessToken {
95
116
  this.grants.metadata = md;
96
117
  }
97
118
 
98
- set name(name: string) {
99
- this.grants.name = name;
119
+ get attributes(): Record<string, string> | undefined {
120
+ return this.grants.attributes;
121
+ }
122
+
123
+ set attributes(attrs: Record<string, string>) {
124
+ this.grants.attributes = attrs;
125
+ }
126
+
127
+ get kind(): string | undefined {
128
+ return this.grants.kind;
129
+ }
130
+
131
+ set kind(kind: string) {
132
+ this.grants.kind = kind;
100
133
  }
101
134
 
102
135
  get sha256(): string | undefined {
@@ -282,7 +282,7 @@ export class EgressClient extends ServiceBase {
282
282
  svc,
283
283
  'StartParticipantEgress',
284
284
  req,
285
- this.authHeader({ roomRecord: true }),
285
+ await this.authHeader({ roomRecord: true }),
286
286
  );
287
287
  return EgressInfo.fromJson(data, { ignoreUnknownFields: true });
288
288
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-FileCopyrightText: 2024 LiveKit, Inc.
2
2
  //
3
3
  // SPDX-License-Identifier: Apache-2.0
4
- import type { DataPacket_Kind, TrackInfo } from '@livekit/protocol';
4
+ import type { DataPacket_Kind, RoomEgress, TrackInfo } from '@livekit/protocol';
5
5
  import {
6
6
  CreateRoomRequest,
7
7
  DeleteRoomRequest,
@@ -14,7 +14,6 @@ import {
14
14
  ParticipantInfo,
15
15
  ParticipantPermission,
16
16
  Room,
17
- RoomEgress,
18
17
  RoomParticipantIdentity,
19
18
  SendDataRequest,
20
19
  UpdateParticipantRequest,
@@ -22,7 +21,8 @@ import {
22
21
  UpdateSubscriptionsRequest,
23
22
  } from '@livekit/protocol';
24
23
  import ServiceBase from './ServiceBase.js';
25
- import { Rpc, TwirpRpc, livekitPackage } from './TwirpRPC.js';
24
+ import type { Rpc } from './TwirpRPC.js';
25
+ import { TwirpRpc, livekitPackage } from './TwirpRPC.js';
26
26
 
27
27
  /**
28
28
  * Options for when creating a room
@@ -40,6 +40,7 @@ export interface CreateOptions {
40
40
 
41
41
  /**
42
42
  * number of seconds to keep the room open after the last participant leaves
43
+ * this option is helpful to give a grace period for participants to re-join
43
44
  */
44
45
  departureTimeout?: number;
45
46
 
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  import { AccessToken } from './AccessToken.js';
5
- import { VideoGrant } from './grants.js';
5
+ import { SIPGrant, VideoGrant } from './grants.js';
6
6
 
7
7
  /**
8
8
  * Utilities to handle authentication
@@ -25,9 +25,12 @@ export default class ServiceBase {
25
25
  this.ttl = ttl || '10m';
26
26
  }
27
27
 
28
- async authHeader(grant: VideoGrant): Promise<any> {
28
+ async authHeader(grant: VideoGrant, sip?: SIPGrant): Promise<any> {
29
29
  const at = new AccessToken(this.apiKey, this.secret, { ttl: this.ttl });
30
30
  at.addGrant(grant);
31
+ if (sip) {
32
+ at.addSIPGrant(sip);
33
+ }
31
34
  return {
32
35
  Authorization: `Bearer ${await at.toJwt()}`,
33
36
  };