| name | telephony-integration |
| description | Add or modify telephony providers in assistant-api with transport-aware streamer/webhook implementations, factory wiring, and codec/resampling compatibility. |
Telephony Integration Skill
Mission
Integrate telephony providers safely across webhook payloads, media streams, callbacks, and cleanup paths.
Inputs expected from user
- Transport type: WebSocket, SIP, AudioSocket, or mixed.
- Inbound/outbound requirements.
- Codec and sample-rate constraints.
If missing:
- Use nearest baseline (
twilio, exotel, vonage, asterisk, sip).
- Preserve internal LINEAR16 16k and base resampler usage.
Hard boundaries
In scope:
api/assistant-api/internal/channel/telephony/internal/<provider>/...
api/assistant-api/internal/channel/telephony/telephony.go
- optional:
inbound.go, outbound.go, type/telephony.go, type/streamer.go
- UI telephony registry/component wiring
Out of scope:
- STT/TTS provider internals
- EOS/VAD internals
- integration-api LLM caller logic
Runtime flow checklist
ReceiveCall maps webhook payload to CallInfo.
InboundCall returns provider connect handshake.
- Streamer
Recv/Send handles codec and buffer lifecycle.
StatusCallback maps provider events.
- Disconnect and directive paths cleanly terminate sessions.
Governed lifecycle
- Classify work as Fast, Standard, or Governed using
DEVELOPMENT_PROCESS.md; use the full gated lifecycle only for Governed work.
- This skill operates only in its assigned phase and path ownership; it may not approve its own plan or code review.
- Governed implementation starts only from a coordinator-attested approved plan; Fast and Standard work follows its lighter documented lifecycle.
- Return changed-file and verification evidence to the coordinator, then route the complete verified diff to the read-only
code-reviewer.
Validation commands
go test ./api/assistant-api/internal/channel/telephony/...
go test ./api/assistant-api/internal/adapters/internal/...
cd ui && yarn test providers
./skills/telephony-integration/scripts/validate.sh --check-diff --provider <provider>
References
references/checklist.md
references/telephony-provider-checklist.md
examples/sample.md