Sigmo Pro

August 10, 2026 · View on GitHub

Sigmo Pro is released under the MIT License.

End-to-end production provisioning, Telegram authorization, private R2 release, Bootstrap, and update operations are documented in the 完整部署指南.

Sigmo Pro is the nested Go module for features that should not affect the public go.mod: eSIM Quick Transfer, IMS access, carrier Websheets, WebRTC call media, and voice codec support.

The Pro module imports the public Sigmo module through:

replace github.com/damonto/sigmo => ..

Features

  • eSIM Quick Transfer (esim_transfer): Transfers supported physical SIM or eSIM lines from another modem or CCID reader to the target eUICC through TS.43 carrier flows.
  • IMS access (ims): Adds Sigmo-managed VoWiFi and VoLTE SMS, USSD, call control, WebRTC media, and carrier websheet flows.
  • Websheets (esim_transfer or ims): Pro-owned carrier websheet proxy routes.
  • Voice media (ims): Bridges browser WebRTC audio to the codecs provided by ims-go.

Structure

Pro mirrors the public module layout:

pro/
  internal/app/handler/...
  internal/pkg/...

HTTP routes are registered from the Pro entrypoint through server.Runtime extensions. The public router stays unaware of Pro handlers and Pro packages.

Local Development

Use normal Go module auth for private Pro dependencies:

export GOPRIVATE=github.com/damonto/*
git config --global url."git@github.com:damonto/".insteadOf "https://github.com/damonto/"

Run Pro with both features:

cd pro
go run -tags=esim_transfer,ims . --db-path=../sigmo.db --debug

Or build first and run the binary with the permissions needed to access modem device nodes and configure network interfaces:

cd pro
go build -tags=esim_transfer,ims -o ../sigmo-pro .
sudo ../sigmo-pro --db-path=/var/lib/sigmo/sigmo.db

Prefer building as your normal user and running the binary with sudo. Running sudo go run makes Go and Git use root's module cache and Git/SSH configuration.

The repository helper uses scripts/pro-features.env, builds with the normal user's Go cache, and starts the temporary go run binary with sudo:

./scripts/dev.sh

Dependency Updates

Update public dependencies and Pro dependencies together:

./scripts/update-pro-deps.sh

By default, Pro-only modules are pinned to the remote HEAD pseudo-version. Use tagged release versions instead with:

./scripts/update-pro-deps.sh --module-version=tags

--pseudo and --tags are short aliases for the two modes.

CI

GitHub Actions Pro builds pass PRO_GO_TAGS and PRO_GO_MODFILE=pro/go.mod. Private module access uses the repository secret SIGMO_PRO_MODULE_TOKEN. Pull request builds keep using the public module manifest so Pro module credentials are not exposed.

License

Sigmo Pro is released under the MIT License.