dev1
  • Elixir 55%
  • Svelte 28.2%
  • TypeScript 13.7%
  • HTML 1.3%
  • JavaScript 1.1%
  • Other 0.7%
Find a file
comms-alpha 5ef77a88b6 Restore @capacitor/core dep + post-strip cleanup
Required by callkit.ts and audio_route.ts. Used as no-op when
running in a browser (not inside a Capacitor mobile wrapper).
Build succeeded after restore.
2026-05-20 09:43:42 -04:00
kooltel_comms Initial commit: comms-alpha-dev1 2026-05-20 09:41:10 -04:00
spoke Restore @capacitor/core dep + post-strip cleanup 2026-05-20 09:43:42 -04:00
.gitignore Initial commit: comms-alpha-dev1 2026-05-20 09:41:10 -04:00
README.md Initial commit: comms-alpha-dev1 2026-05-20 09:41:10 -04:00

comms-alpha-dev1

Alpha codebase for the next-generation Kooltel Communications stack.

What this is

A self-contained codebase that:

  • Speaks SIP via sip.js (RFC 7118) over WSS, terminating in a chan_pjsip Asterisk back end.
  • Has zero references to legacy WebRTC SIP-bridge stacks. Seeded from the deploy-host.invalid known-good base (104cc28d hotfix v0.2.77.1) with every legacy SIP-bridge file, test, dependency, and comment stripped out.
  • Has no embedded coupling to specific deploy targets. The sip.js extension map (WSS URL / SIP domain / REGISTER password per ext) is populated at runtime from KT_SIPJS_EXTS_JSON; no hostname, IP, or password is hardcoded.
  • Builds and runs as a single deployable unit. Elixir/Phoenix hub (kooltel_comms/) + Svelte 5 frontend (spoke/) build independently and ship as one Phoenix release.

Layout

kooltel_comms/    # Elixir/Phoenix hub (Mix project)
spoke/            # Svelte 5 + Vite frontend (Capacitor wrapper for APK/iOS)

Build (frontend)

cd spoke
npm install
npm run build           # writes spoke/dist-spoke/

Build (hub)

cd kooltel_comms
mix deps.get
mix compile

Runtime configuration

The Phoenix hub uses environment-variable driven config in kooltel_comms/config/runtime.exs.

sip.js / Asterisk adapter

export PBX_ADAPTER=sipjs_asterisk
export KT_SIPJS_EXTS_JSON='{
  "101": {
    "wss_url":  "wss://your-asterisk-host:8089/ws",
    "domain":   "your-asterisk-host",
    "password": "register-secret"
  }
}'

Each ext in the map is independently configured. The hub's /api/me/sip_profile endpoint returns these values to the authenticated client; the spoke consumes them and boots its sip.js UserAgent against the configured WSS endpoint.

Provenance

This codebase is separate from git.deploy-host.invalid/Kooltel/comms-app. It is seeded from that repo's deploy-host.invalid known-good commit (104cc28d), with the legacy WebRTC SIP-bridge stack fully removed and the sip.js path made the only SIP transport.

Future commits live in this repository only.