Elixir, Phoenix, and WebRTC - An Enterprise Class Soft Phone in the Browser
summary
Builds a browser soft phone using Elixir and Phoenix with WebRTC and connects into an Asterisk-based PBX; implements a gen_fsm per client for signaling, a proxy that replays state on reload to survive page refresh, and moves ICE and DTLS handling into the Asterisk channel driver so media can flow. Alpha testing is live with beta planned soon. Packaging produces RPMs, licensing limits concurrent clients, headset/device switching is fragile and cost two weeks to stabilise, and earlier Elixir gateways are already in commercial deployments.
AI-written summary · about
chapters (11)
- 0:00Intro
- 2:14Elixir @ work
- 5:37Project Goals
- 11:42Architecture
- 13:49Design - Client Controller
- 19:15Design - Multiple Endpoints
- 20:25Design - Production
- 21:45Design - In the Browser
- 23:31Design - WebRTC
- 27:21Design - Licensing
- 28:52Challenges
related talks
37mWebRTC and Phoenix, when μ Seconds aren't Fast Enough
25mElixir WebRTC - batteries included WebRTC implementation for Elixir ecosystem
01h 00mPhoenix: an Intro to Elixir's Web Framework
44mRise of The Phoenix - Building an Elixir Web Framework
39m"Elixir-based Ruby Web Server"
28mPipelining WebRTC videoconferences in Elixir with Membrane Framework
50mPhoenix Framework: a (Truly) Fullstack Stack for Building Real-Time Web
46mBuilding a Realtime Websocket API in Phoenix
