diff --git a/.changeset/sip-media-configs.md b/.changeset/sip-media-configs.md new file mode 100644 index 00000000..34f88429 --- /dev/null +++ b/.changeset/sip-media-configs.md @@ -0,0 +1,5 @@ +--- +'livekit-server-sdk': minor +--- + +Support SIP media configs. diff --git a/packages/livekit-server-sdk/package.json b/packages/livekit-server-sdk/package.json index c8b815ab..9371e487 100644 --- a/packages/livekit-server-sdk/package.json +++ b/packages/livekit-server-sdk/package.json @@ -44,7 +44,7 @@ }, "dependencies": { "@bufbuild/protobuf": "^1.10.1", - "@livekit/protocol": "^1.46.6", + "@livekit/protocol": "^1.48.0", "camelcase-keys": "^9.0.0", "jose": "^5.1.2" }, diff --git a/packages/livekit-server-sdk/src/SipClient.ts b/packages/livekit-server-sdk/src/SipClient.ts index 526e7d92..90426acc 100644 --- a/packages/livekit-server-sdk/src/SipClient.ts +++ b/packages/livekit-server-sdk/src/SipClient.ts @@ -7,6 +7,7 @@ import type { Pagination, RoomConfiguration, SIPHeaderOptions, + SIPMediaConfig, SIPMediaEncryption, SIPOutboundConfig, } from '@livekit/protocol'; @@ -81,7 +82,9 @@ export interface CreateSipInboundTrunkOptions { // Map SIP response headers from INVITE to sip.h.* participant attributes automatically. includeHeaders?: SIPHeaderOptions; krispEnabled?: boolean; + /** @deprecated - use `media.encryption` instead */ mediaEncryption?: SIPMediaEncryption; + media?: SIPMediaConfig; /** Maximum time for a call to ring in seconds. */ ringingTimeout?: number; } @@ -99,7 +102,9 @@ export interface CreateSipOutboundTrunkOptions { headersToAttributes?: { [key: string]: string }; // Map SIP response headers from INVITE to sip.h.* participant attributes automatically. includeHeaders?: SIPHeaderOptions; + /** @deprecated - use `media.encryption` instead */ mediaEncryption?: SIPMediaEncryption; + media?: SIPMediaConfig; } export interface SipDispatchRuleDirect { @@ -167,6 +172,7 @@ export interface CreateSipParticipantOptions { waitUntilAnswered?: boolean; /** Optional request timeout in seconds. default 60 seconds if waitUntilAnswered is true, otherwise 10 seconds */ timeout?: number; + media?: SIPMediaConfig; } export interface ListSipDispatchRuleOptions { @@ -203,7 +209,9 @@ export interface SipInboundTrunkUpdateOptions { authPassword?: string; name?: string; metadata?: string; + /** @deprecated - use `media.encryption` instead */ mediaEncryption?: SIPMediaEncryption; + media?: SIPMediaConfig; } export interface SipOutboundTrunkUpdateOptions { @@ -215,7 +223,9 @@ export interface SipOutboundTrunkUpdateOptions { destinationCountry?: string; name?: string; metadata?: string; + /** @deprecated - use `media.encryption` instead */ mediaEncryption?: SIPMediaEncryption; + media?: SIPMediaConfig; } export interface TransferSipParticipantOptions { @@ -325,6 +335,7 @@ export class SipClient extends ServiceBase { includeHeaders: opts.includeHeaders, krispEnabled: opts.krispEnabled, mediaEncryption: opts.mediaEncryption, + media: opts.media, ringingTimeout: opts.ringingTimeout ? new Duration({ seconds: BigInt(opts.ringingTimeout) }) : undefined, @@ -375,6 +386,7 @@ export class SipClient extends ServiceBase { includeHeaders: opts.includeHeaders, destinationCountry: opts.destinationCountry, mediaEncryption: opts.mediaEncryption, + media: opts.media, }), }).toJson(); @@ -780,6 +792,7 @@ export class SipClient extends ServiceBase { : undefined, krispEnabled: opts.krispEnabled, waitUntilAnswered: opts.waitUntilAnswered, + media: opts.media, }).toJson(); const data = await this.rpc.request( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2d73d82a..5127ee09 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -247,8 +247,8 @@ importers: specifier: ^1.10.1 version: 1.10.1 '@livekit/protocol': - specifier: ^1.46.6 - version: 1.46.6 + specifier: ^1.48.0 + version: 1.48.0 camelcase-keys: specifier: ^9.0.0 version: 9.1.3 @@ -988,8 +988,8 @@ packages: '@livekit/protocol@1.46.3': resolution: {integrity: sha512-YvsE4UN5i+wY9vXfwhF6EUrRyUm/YhiFU1jBcsmsLd/xodUJxYTBcWS4OgL4IJffjzIoyxsrbKp1h9qC55mtcQ==} - '@livekit/protocol@1.46.6': - resolution: {integrity: sha512-upzlHP1vi/kZ/QqALZTFskQ0ifqc2f15RKucHYOsIHJsaXvEYanG75mAb7o+Yomfs4XhQ4BaRsdY+TFHXpaqrg==} + '@livekit/protocol@1.48.0': + resolution: {integrity: sha512-fYHYgltH6YavAsokl3qsHLkBdQeKCl4UORVTub5crS3t8JtKFZ0uinHDFQ+XXdNKS6Ub9gcOjV+UHcDiqnWXoQ==} '@livekit/rtc-ffi-bindings-darwin-arm64@0.12.60': resolution: {integrity: sha512-YHXqybkYfaTc3txJXXWoVogiSP3yKJdkaZlIlZ6IDMGnN9elUoHDYU+ZSn/rbdGu0pp4HUOzffXkbkItN735Bw==} @@ -4448,7 +4448,7 @@ snapshots: dependencies: '@bufbuild/protobuf': 1.10.1 - '@livekit/protocol@1.46.6': + '@livekit/protocol@1.48.0': dependencies: '@bufbuild/protobuf': 1.10.1