docs: add Telnyx quickstart and configuration parity#103
Merged
Conversation
3 tasks
nicolotognoni
added a commit
that referenced
this pull request
May 25, 2026
…ts (#105) The ``EmbeddedServer wraps logging callbacks with active-record fallback`` test fired once on PR #103's CI run and once on the post-merge ``main`` run with the same root cause: ``setTimeout(50)`` to drain a fire-and-forget ``logCallStart`` is not enough on Node 22 (~10 % failure rate) — the async scheduler defers the atomic-write resolve a tick longer than on Node 20 where the test was originally tuned. Replaced the fixed wait with a bounded poll: walk ``tmp`` for ``metadata.json`` every 25 ms up to 2 s, break on first hit. Same assertion, no behaviour change in the SUT, fast path is unchanged (the file lands within ~30 ms on both Node versions when the system is idle).
nicolotognoni
added a commit
that referenced
this pull request
May 25, 2026
* feat(recording): Telnyx recording parity (#103) Bring Telnyx call recording to feature parity with Twilio across the Python and TypeScript SDKs. Telnyx Call Control already supports recording via the and REST endpoints. Both Python and TypeScript stream bridges already POST to these endpoints when is passed. This PR closes the remaining gaps: - **Python server**: add a webhook handler that logs the recording URL (mirrors the Twilio route and the existing TS handler). Tries → , mp3 then wav. - **Docs**: remove the "Recording is Twilio-only" claim from all three READMEs (root, python/, typescript/). - **TypeScript inline docs**: update the comment to reflect that both Twilio and Telnyx are supported. - **Tests**: add unit tests for Telnyx bridge recording (, ). Files changed: - libraries/python/getpatter/server.py - libraries/python/README.md - libraries/python/tests/unit/test_telnyx_bridge_unit.py - libraries/typescript/README.md - libraries/typescript/src/stream-handler.ts - README.md No Twilio code paths were modified. No new dependencies were added (Telnyx recording is pure httpx, already a base dependency). * chore(recording): rebase + CHANGELOG + webhook handler tests Maintainer follow-up on Abhishek's Telnyx recording parity PR (#106): - Resolved README rebase conflict against post-0.6.2 main. Aligned all three READMEs (root, libraries/python, libraries/typescript) on the same copy ("Recording parity is supported via Telnyx Call Control; consult the Telnyx portal for configuration details.") that #103 introduced on the root README. - Added CHANGELOG.md entries under ## Unreleased / ### Added and ### Changed (invariant 0 of documentation-best-practices.md). - Added 4 unit tests in tests/unit/test_server_unit.py covering the new call.recording.saved webhook handler: * mp3 URL preferred over wav * wav fallback when mp3 missing * public_recording_urls fallback when recording_urls is empty * empty payload still logs call_control_id, returns 200 The contributor's tests covered the bridge (which was already implemented pre-PR); this commit covers the actually new code path. All tests green: pytest tests/unit/test_server_unit.py ::TestTelnyxRecordingSavedWebhook → 4 passed; existing TestTelnyxRecording bridge tests → 2 passed. --------- Co-authored-by: Abhishek <abhishek@telnyx.com> Co-authored-by: nicolotognoni <nicolo.tognoni1@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Patter SDK README currently presents a Twilio-only getting-started experience despite the SDK championing "Twilio + Telnyx parity." This PR corrects that imbalance by adding Telnyx-specific quickstart snippets, environment variables, and softening an outdated recording limitation note.
Changes
Quickstart — env var sections
TELNYX_API_KEYandTELNYX_CONNECTION_ID.Quickstart — Python snippet
from getpatter import Patter, Telnyx, OpenAIRealtimeand the 4-linePatter(carrier=Telnyx(), ...)pattern.Quickstart — TypeScript snippet
new Telnyx().Configuration → Environment Variables table
TELNYX_API_KEYTELNYX_CONNECTION_IDTELNYX_PHONE_NUMBERTelnyx provider note
Scope
README.mdis modified.