Skip to content

davidborzek/ringo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ringo

A terminal SIP softphone and telephony test runner built on baresip.

CI ringo-phone on crates.io ringo-flow on crates.io License: MIT Rust

ringo is a cargo workspace of telephony tools built on baresip — a SIP softphone you live in, and a scenario runner that drives baresip headless for automated call testing, both sharing one engine.

📖 Documentation: https://davidborzek.github.io/ringo/

Tools

Crate What it is Docs
ringo-phone The ringo softphone — a ratatui TUI managing multiple SIP profiles, with calls, contacts, transfers, remote control and headless automation Guide
ringo-flow A telephony scenario test runner — bring up SIP agents from a Rhai script, drive them, and assert call behaviour (incl. audio) Guide · API
ringo-core The shared engine — baresip spawning, the ctrl_tcp wire protocol, the call-event model (internal, no stable API)

Requirements

  • baresip >= 3.14 in $PATH (used by both the softphone and the test runner)
  • Rust 1.85+ to build

Quick start

Install the softphone and open the profile picker:

cargo install ringo-phone   # installs the `ringo` binary
ringo                       # Ctrl+N to create your first profile

See the documentation for install options, configuration, remote control and writing scenario tests with ringo-flow.

Development

The repo is a cargo workspace; build and test all crates together:

cargo build --workspace
cargo test --workspace
cargo clippy --workspace

Contributions are welcome. Please open an issue before submitting large changes so we can discuss the approach first.

License

MIT — see LICENSE.

Packages

 
 
 

Contributors

Languages