Repository navigation
Releases: firetellcom/firetell-client-sdk
Releases · firetellcom/firetell-client-sdk
Release list
1.4.0
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
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
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
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
- @dependabot[bot] made their first contribution in #31
Full Changelog: v1.2.5...v1.2.6
1.2.5
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
1.2.3
[1.2.3] - 2026-09-04
Changed
call.transfer()simplified (Breaking):- Signature changed from
transfer(targetUsername, teamId?, reason?)totransfer(target, reason?). targetnow accepts: agent username, extension number (e.g."100"), team ID (te_...), or SIP account ID (si_...).- Removed
teamIdparameter — target type is auto-resolved server-side via prefix-based resolution.
- Signature changed from
FiretellClient.sendTransfer()simplified (Breaking):- Signature changed from
sendTransfer(callId, targetUsername, teamId?, reason?)tosendTransfer(callId, target, reason?). - HTTP fallback body changed from
{ target_username, team_id, reason }to{ target, reason }.
- Signature changed from
- Per-call WebSocket payloads cleaned up:
- Removed redundant
call_idfrom 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, makingcall_idunnecessary. call.transferpayload field renamed fromtototargetfor consistency with the HTTP API.
- Removed redundant
1.2.2
[1.2.2] - 2026-09-03
Added
getPhoneNumbers()REST API onFiretellClient:- 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
IClientPhoneNumberandIClientPhoneNumbersResponseinterfaces exporting phone number details (id,number,title,country_code,dial_code,status,capabilities,enable_outbound,shared_teams_id).
- Added
- Static & Named SDK Version Exports:
- Added static
FiretellClient.VERSIONproperty on the class for direct, synchronous version access without instantiation. - Exported
SDK_VERSIONconstant directly from package root (import { SDK_VERSION } from '@firetell/firetell-client-sdk'). - Added
"./package.json": "./package.json"to the packageexportsmap for direct version inspection by package managers and bundlers.
- Added static
1.2.1
[1.2.1] - 2026-08-22
Added
transfer_reasonincall.ringEvent &CallInstance:- Added
transfer_reason?: stringtoICallRingParamspayload in thecall.ringSSE event. - Exposed
call.transferReason?: stringon theCallinstance 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.htmldemo to displaytransfer_reasonin the incoming call banner and event log.
- Added
1.2.0
[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(), andclient.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()).
- Automatically establishes a lightweight, dedicated SSE connection (
- Call-Scoped Real-Time Transcription Events & APIs:
- Added
ECallEventName.TRANSCRIPTION("transcription"),ECallEventName.TRANSCRIPTION_STARTED("transcription.started"),ECallEventName.TRANSCRIPTION_DIALOGUE("transcription.dialogue"), andECallEventName.TRANSCRIPTION_COMPLETED("transcription.completed"). - Added ergonomic helper listener methods on
Call:call.onDialogue((dialogue) => ...)andcall.onTranscription((event) => ...). - Exported TypeScript interfaces:
ITranscriptionStartedEvent,ITranscriptionDialogueEvent,ITranscriptionCompletedEvent, andTranscriptionEvent.
- Added
- Call-Scoped Real-Time Recording Events & APIs:
- Added
ECallEventName.RECORDING("recording"),ECallEventName.RECORDING_STARTED("recording.started"),ECallEventName.RECORDING_COMPLETED("recording.completed"), andECallEventName.RECORDING_READY("recording.ready"). - Added ergonomic helper listener method on
Call:call.onRecording((event) => ...). - Exported TypeScript interfaces:
ICallRecordingStartedEvent,ICallRecordingCompletedEvent,ICallRecordingReadyEvent, andCallRecordingEvent.
- Added
- Public Getters on
FiretellClient:- Added
client.getBaseUrl()andclient.getJwt()getters.
- Added
Changed & Improved
- Strict Single-Emission & Call-Scoped Event Architecture:
- Removed duplicate event emissions across
FiretellClient._initEventStream()andCall._handleSseMessage(). - Decoupled per-call transcription events from
client.events, strictly routing all live subtitles, chunks, and summaries directly to the owningCallinstance (call.on(...)). - Decoupled WebSocket signaling (
_handleWsMessage) to handle exclusively Firetell WebRTC signaling (call.offer,call.answered,call.state, etc.), isolating SSE transport for transcription.
- Removed duplicate event emissions across
- Example Page Updated:
- Added
transcription.startedandtranscription.completedevent logging toexample/index.html.
- Added