document
capabilities
parent
features
issue
001
status
implementation-led
brief

capabilities are grouped by setup, inbound work, and outward action. each stage has different dependencies and different proof requirements.

capabilities

receive first.
act second.

number and host setup
  1. 01
    choose a provider and did

    start with a carrier account and a compatible number. provider capabilities differ across voice registration, trunking, sms, and email delivery.

  2. 02
    prepare the sip client

    main writes linphone configuration and reads its databases. later calling branches choose baresip for socket control and audio experiments.

  3. 03
    make inbound delivery reachable

    configure a provider webhook to an awake public host or tunnel, or use an appropriate carrier-email route where supported.

  4. 04
    run doctor and prove delivery

    inspect configuration, then send a real text or place a real call. installation alone does not prove carrier routing, media, or credentials.

inbound and local context
normalized messages

json, form, and query-string deliveries become common records with sender, recipient, body, timestamps, and the raw provider payload.

deduplication and read state

provider ids prevent repeated deliveries from multiplying messages; separate read marks keep viewing state explicit.

threads and missed calls

local views group communication into threads and expose missed calls, messages, voicemail, and call history.

carrier email import

parse supported carrier email, retain message content, and import attachments such as voicemail audio into the local workflow.

read-only call history

the linphone sqlite databases are opened read-only so the toolkit can inspect history without treating the client's database as its own write store.

live voice + text timeline

on mcp, concurrent sip events and http messages enter one sequenced in-memory timeline for the running session.

outbound and agent action
  1. 01
    single-recipient sms

    main includes http adapters for voip.ms, flowroute, and signalwire. sending requires both the environment opt-in and explicit send authorization.

  2. 02
    sender allow policy

    the allow branch evaluates explicit numbers, home country, or selected countries, defaults closed, and persists refusal records.

  3. 03
    outbound call tasks

    callheavy adds baresip control, local audio pumping, and an optional call-e rail. its strongest proof is a local loopback audio test, not universal carrier verification.

  4. 04
    voicemail worker

    generated livekit agents and openai tts worker code exists, but the baseline still has authorization and separately-running-agent gaps. it is not one-command voicemail delivery.

  5. 05
    mcp outward tools

    the mcp branch describes twelve read-only tools and three outward-facing tools over local stdio, not a hosted https api.