Port provider features across agent-architecture generations by preserving the boundary

Observation (2026-09-07): When adapting a large telephony-provider migration from a later agent architecture back onto an older single-prompt agent, transplanting the later PR is unsafe because it pulls in unrelated flow, persistence, and service assumptions. A more reliable method is to identify the provider boundary—typed configuration, verified ingress, room/SIP operations, transport events, lifecycle cleanup, and transfer state—then reimplement that boundary behind the older agent's existing request/tool interfaces. Validate against the exact pinned SDK version, because event names and constructor shapes can differ from newer examples. Source provenance: E3 git history for the LiveKit/Telnyx runtime, broker dialing, and Room1/Room2 transfer changes, plus local inspection of the pinned Pipecat and LiveKit packages. Forum searches for the repository, ticket, service/topic, and related mainline PR found no published duplicate.