Skip to content

Releases: firetellcom/firetell-client-sdk

1.4.0

Choose a tag to compare

@sangnguyendev sangnguyendev released this 07 Oct 11:07
6496913

What's Changed

  • feat: add automatic ICE server and TURN credential refresh with TTL t… by @sangnguyendev in #59

Full Changelog: v1.3.0...v1.4.0

1.3.0

Choose a tag to compare

@sangnguyendev sangnguyendev released this 07 Oct 08:12
3b3d29d

What's Changed

  • feat: implement automatic websocket signaling reconnection and keep-a… by @sangnguyendev in #58

Full Changelog: v1.2.7...v1.3.0

1.2.7

Choose a tag to compare

@sangnguyendev sangnguyendev released this 28 Sep 10:35
261aa83

What's Changed

  • feat: rename to field to client_number in conversation payload by @sangnguyendev in #56
  • chore: bump version to 1.2.7 and rename 'to' field to 'client_number'… by @sangnguyendev in #57

Full Changelog: v1.2.6...v1.2.7

1.2.6

Choose a tag to compare

@firetell-us firetell-us released this 27 Sep 17:09
f18c53c

What's Changed

  • Create dependabot.yml by @sangnguyendev in #35
  • chore(deps-dev): bump flatted from 3.3.3 to 3.4.4 by @dependabot[bot] in #31
  • Potential fix for code scanning alert no. 1: Workflow does not contain permissions by @sangnguyendev in #42
  • chore(deps): bump picomatch by @dependabot[bot] in #30
  • chore(deps-dev): bump brace-expansion from 1.1.12 to 1.1.21 by @dependabot[bot] in #33
  • chore(deps-dev): bump js-yaml from 4.1.0 to 4.3.2 by @dependabot[bot] in #32
  • chore(deps-dev): bump @humanfs/node from 0.16.7 to 0.16.8 by @dependabot[bot] in #34
  • chore(deps-dev): bump @eslint/js from 9.36.0 to 10.0.1 by @dependabot[bot] in #36
  • chore(deps-dev): bump typescript from 5.8.2 to 7.0.2 by @dependabot[bot] in #37
  • chore(deps-dev): bump globals from 16.4.0 to 17.12.0 by @dependabot[bot] in #38
  • chore(deps-dev): bump @types/node from 24.7.0 to 26.5.1 by @dependabot[bot] in #39
  • chore(deps-dev): bump eslint from 9.36.0 to 10.10.0 by @dependabot[bot] in #40
  • chore(deps-dev): bump minimatch from 9.0.5 to 9.0.9 by @dependabot[bot] in #41
  • chore(deps-dev): bump rollup from 4.52.3 to 4.63.3 by @dependabot[bot] in #43
  • chore(deps): bump glob from 10.4.5 to 10.5.0 by @dependabot[bot] in #44
  • Potential fix for code scanning alert no. 2: DOM text reinterpreted as HTML by @sangnguyendev in #45
  • chore: update devDependencies by @sangnguyendev in #48
  • feat: add call center SMS conversations module with REST endpoints, t… by @sangnguyendev in #54
  • feat: add call center SMS conversations module by @sangnguyendev in #55

New Contributors

Full Changelog: v1.2.5...v1.2.6

1.2.5

Choose a tag to compare

@firetell-us firetell-us released this 15 Sep 06:08
bcab79b

What's Changed

  • ci: add GitHub Actions workflow to publish package to npm on release by @firetell-devs in #28
  • fix: update npm registry URL in publish workflow by @firetell-devs in #29

New Contributors

  • @firetell-devs made their first contribution in #28

Full Changelog: v1.2.4...v1.2.5

1.2.4

Choose a tag to compare

@sangnguyendev sangnguyendev released this 09 Sep 10:34
2b25562

1.2.3

Choose a tag to compare

@sangnguyendev sangnguyendev released this 04 Sep 11:10
53df077

[1.2.3] - 2026-09-04

Changed

  • call.transfer() simplified (Breaking):
    • Signature changed from transfer(targetUsername, teamId?, reason?) to transfer(target, reason?).
    • target now accepts: agent username, extension number (e.g. "100"), team ID (te_...), or SIP account ID (si_...).
    • Removed teamId parameter — target type is auto-resolved server-side via prefix-based resolution.
  • FiretellClient.sendTransfer() simplified (Breaking):
    • Signature changed from sendTransfer(callId, targetUsername, teamId?, reason?) to sendTransfer(callId, target, reason?).
    • HTTP fallback body changed from { target_username, team_id, reason } to { target, reason }.
  • Per-call WebSocket payloads cleaned up:
    • Removed redundant call_id from all WS event payloads (call.hangup, call.answer, call.reject, call.transfer, call.dtmf, call.mute, call.hold, call.unhold). The per-call WS connection inherently binds the socket to a specific call, making call_id unnecessary.
    • call.transfer payload field renamed from to to target for consistency with the HTTP API.

1.2.2

Choose a tag to compare

@sangnguyendev sangnguyendev released this 03 Sep 06:32
23e4974

[1.2.2] - 2026-09-03

Added

  • getPhoneNumbers() REST API on FiretellClient:
    • Added public async getPhoneNumbers(options?: { page?: number; limit?: number }): Promise<IClientPhoneNumbersResponse> to query phone numbers (DIDs) accessible by the authenticated agent and their shared teams.
    • Automatically sends the agent's JWT to GET /api/v1/call-center/phone-numbers.
    • Added API_ENDPOINTS.PHONE_NUMBERS ("/api/v1/call-center/phone-numbers").
    • Added IClientPhoneNumber and IClientPhoneNumbersResponse interfaces exporting phone number details (id, number, title, country_code, dial_code, status, capabilities, enable_outbound, shared_teams_id).
  • Static & Named SDK Version Exports:
    • Added static FiretellClient.VERSION property on the class for direct, synchronous version access without instantiation.
    • Exported SDK_VERSION constant directly from package root (import { SDK_VERSION } from '@firetell/firetell-client-sdk').
    • Added "./package.json": "./package.json" to the package exports map for direct version inspection by package managers and bundlers.

1.2.1

Choose a tag to compare

@sangnguyendev sangnguyendev released this 22 Aug 08:24
3f736cc

[1.2.1] - 2026-08-22

Added

  • transfer_reason in call.ring Event & Call Instance:
    • Added transfer_reason?: string to ICallRingParams payload in the call.ring SSE event.
    • Exposed call.transferReason?: string on the Call instance when a transferred call session is initialized.
    • Allows frontends, Webphones, and Console agents to display the contextual transfer reason provided by Voice AI agents (e.g., "Customer requested receptionist for billing inquiry") or human agents during ringing before and after answering.
    • Updated example/index.html demo to display transfer_reason in the incoming call banner and event log.

1.2.0

Choose a tag to compare

@sangnguyendev sangnguyendev released this 20 Aug 10:31
42dff9f

[1.2.0] - 2026-08-20

Added

  • Dedicated Per-Call SSE Event Stream (Call.connectCallEventStream):
    • Automatically establishes a lightweight, dedicated SSE connection (/stream?call_id=<callId>) for each active call session (call.start(), call.accept(), call.joinSession(), and client.createCallSession()).
    • Subscribes to the Per-Call channel and receive real-time speech-to-text transcriptions, recordings events, and telemetry without flooding the global workspace event stream.
    • Automatically disconnects and cleans up the stream upon call termination (call.destroy()).
  • Call-Scoped Real-Time Transcription Events & APIs:
    • Added ECallEventName.TRANSCRIPTION ("transcription"), ECallEventName.TRANSCRIPTION_STARTED ("transcription.started"), ECallEventName.TRANSCRIPTION_DIALOGUE ("transcription.dialogue"), and ECallEventName.TRANSCRIPTION_COMPLETED ("transcription.completed").
    • Added ergonomic helper listener methods on Call: call.onDialogue((dialogue) => ...) and call.onTranscription((event) => ...).
    • Exported TypeScript interfaces: ITranscriptionStartedEvent, ITranscriptionDialogueEvent, ITranscriptionCompletedEvent, and TranscriptionEvent.
  • Call-Scoped Real-Time Recording Events & APIs:
    • Added ECallEventName.RECORDING ("recording"), ECallEventName.RECORDING_STARTED ("recording.started"), ECallEventName.RECORDING_COMPLETED ("recording.completed"), and ECallEventName.RECORDING_READY ("recording.ready").
    • Added ergonomic helper listener method on Call: call.onRecording((event) => ...).
    • Exported TypeScript interfaces: ICallRecordingStartedEvent, ICallRecordingCompletedEvent, ICallRecordingReadyEvent, and CallRecordingEvent.
  • Public Getters on FiretellClient:
    • Added client.getBaseUrl() and client.getJwt() getters.

Changed & Improved

  • Strict Single-Emission & Call-Scoped Event Architecture:
    • Removed duplicate event emissions across FiretellClient._initEventStream() and Call._handleSseMessage().
    • Decoupled per-call transcription events from client.events, strictly routing all live subtitles, chunks, and summaries directly to the owning Call instance (call.on(...)).
    • Decoupled WebSocket signaling (_handleWsMessage) to handle exclusively Firetell WebRTC signaling (call.offer, call.answered, call.state, etc.), isolating SSE transport for transcription.
  • Example Page Updated:
    • Added transcription.started and transcription.completed event logging to example/index.html.