Skip to content

[Example] 380 — Bandwidth Real-Time Call Transcription (Node.js)#161

Open
github-actions[bot] wants to merge 1 commit intomainfrom
example/380-bandwidth-call-transcription-node
Open

[Example] 380 — Bandwidth Real-Time Call Transcription (Node.js)#161
github-actions[bot] wants to merge 1 commit intomainfrom
example/380-bandwidth-call-transcription-node

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot commented Apr 3, 2026

New example: Bandwidth Real-Time Call Transcription

Integration: Bandwidth | Language: Node.js | Products: STT

What this shows

A Node.js Express server that answers inbound Bandwidth voice calls using BXML, opens a WebSocket media stream via the <StartStream> verb, receives μ-law audio from Bandwidth, forwards it to Deepgram's live STT WebSocket, and logs real-time transcripts to the console. Demonstrates the Bandwidth → Deepgram telephony transcription path for enterprise carrier-grade voice.

Required secrets

  • BW_ACCOUNT_ID — Bandwidth account ID
  • BW_USERNAME — Bandwidth API username
  • BW_PASSWORD — Bandwidth API password
  • BW_VOICE_APPLICATION_ID — Bandwidth voice application ID
  • BW_NUMBER — Bandwidth phone number

Tests

✅ Tests passed (with DEEPGRAM_API_KEY; Bandwidth credentials simulated)

Downloading test audio...
Converting to mulaw 8 kHz mono...
Audio ready: 207466 bytes of mulaw 8 kHz

Server started on :3099
POST /webhooks/answer -> BXML with correct <StartStream>

Streaming audio through server -> Deepgram (up to 30 s)...
[bandwidth] Stream started — call: test-call-id
[bandwidth] Audio format: audio/PCMU @ 8000 Hz
[deepgram] Connection opened
[interim] Yeah. Is
[final] Yeah. As as much as, it's worth celebrating,
[bandwidth] Stream stopped — call: test-call-id

Received 6 transcript event(s)
Transcript length verified: 125 chars for 10s of audio

All tests passed

Closes #143


Built by Engineer on 2026-04-03

…e.js)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions github-actions bot added type:example New example language:node Language: Node.js integration:bandwidth Integration: Bandwidth labels Apr 3, 2026
@github-actions github-actions bot added the status:needs-credentials Missing env vars for E2E tests label Apr 3, 2026
@github-actions
Copy link
Copy Markdown
Contributor Author

github-actions bot commented Apr 3, 2026

Waiting on credentials

Missing: BW_ACCOUNT_ID BW_USERNAME BW_PASSWORD BW_VOICE_APPLICATION_ID BW_NUMBER

Add these as repository secrets and the next review sweep will pick this up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

integration:bandwidth Integration: Bandwidth language:node Language: Node.js status:needs-credentials Missing env vars for E2E tests type:example New example

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bandwidth real-time call transcription

0 participants