Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Getting started

Install

1. baresip

ringo-flow needs baresip ≥ 3.14 in your $PATH (baresip -v to check). See Supported platforms for install instructions (pacman -S baresip, brew install baresip, …).

2. ringo-flow

Pre-built binaries for Linux and macOS (x86_64 + arm64) are on the releases page — download, extract and put ringo-flow on your $PATH.

From crates.io:

cargo install ringo-flow

From GitHub (no clone needed):

cargo install --git https://github.com/davidborzek/ringo ringo-flow

From a workspace checkout (no install):

cargo run -p ringo-flow -- run scenario.rhai

Run a scenario

Credentials and the SIP domain come from the environment (via env(...)), so nothing sensitive lives in the script:

SIP_DOMAIN=example.com A_USER=alice A_PASS=… B_USER=bob B_PASS=… \
  ringo-flow run scenario.rhai
ringo-flow run scenario.rhai     # one file
ringo-flow run scenarios/        # a directory (all *.rhai, recursively)
ringo-flow check scenario.rhai   # syntax-check only (no baresip)

The exit code is non-zero if any scenario fails.

Useful flags

  • --scenario <pattern> — run a subset by name (re: for a regex).
  • --tag <tag> / --exclude-tag <tag> — filter by tag (repeatable, comma-separated).
  • --env-file FILE — load variables for env(...) (a sibling <scenario>.env is layered on top per file).
  • --logs — print each agent’s SIP signaling at the end.
  • --save-audio — save sent/received WAVs to the working directory.
  • --json — emit NDJSON events (for CI).
  • -q / -v, --no-color.

See ringo-flow run --help for the full list.