@bitcall/webrtc-sip-gateway
v0.3.12
Published
Linux CLI for bootstrapping and managing the Bitcall WebRTC-to-SIP Gateway
Readme
@bitcall/webrtc-sip-gateway
Linux-only CLI to install and operate the Bitcall WebRTC-to-SIP gateway.
Latest updates:
- Gateway container now renders Kamailio
#!substdefdefaults from.envat startup, so advertise/origin/SIP transport values are runtime-accurate. initandreconfigurestop an existing stack before preflight checks so the gateway's own:5060listener does not trigger false port conflicts.updatenow syncsBITCALL_GATEWAY_IMAGEto the CLI target image tag, pulls, and force-recreates containers so new image layers are applied.updatenow also passes--renew-anon-volumesso stale anonymous/etc/kamailiovolume data cannot mask image-shipped Kamailio config updates.up/restart/updateauto-migrate legacy compose files by removing stale/etc/kamailiovolume mounts that can override image-shipped config.- Docker image includes
sngrepandtcpdumpfor SIP troubleshooting. sip-traceopens a live SIP message viewer usingsngrepin the container via compose service execution.- Fixed nftables media firewall rule generation for IPv6 media-block mode (nft-compatible port ranges and rule action order).
- Media firewall status now checks both nft and ip6tables marker rules so legacy ip6tables protections are reported correctly.
- In-dialog handling is hardened: in-dialog requests (including 2xx ACK) with broken/missing route-set now attempt alias/usrloc fallback before 404.
TURN_MODE=coturnnow generates a compose stack with a dedicated coturn container.
Install
sudo npm i -g @bitcall/webrtc-sip-gatewayHost requirement:
- Use Docker Engine with
docker composeplugin. - Snap
docker-composeis not supported (cannot access/opt/bitcall-gateway).
Main workflow
sudo bitcall-gateway init
sudo bitcall-gateway status
sudo bitcall-gateway logs -f
sudo bitcall-gateway media statusDefault media policy is IPv4-only via IPv6 media firewall drops on RTP/TURN ports only. Host IPv6 remains enabled for signaling and non-media traffic. Backend selection prefers nftables on non-UFW hosts and uses ip6tables when UFW is active.
Default init runs in production profile with universal routing:
BITCALL_ENV=productionROUTING_MODE=universal- provider allowlist/origin/source IPs are permissive by default
Use sudo bitcall-gateway init --advanced for full security/provider controls.
Use sudo bitcall-gateway init --dev for local testing only.
Use --verbose to stream apt/docker output during install. Default mode keeps
console output concise and writes command details to
/var/log/bitcall-gateway-install.log.
Commands
sudo bitcall-gateway initsudo bitcall-gateway init --devsudo bitcall-gateway init --productionsudo bitcall-gateway init --advancedsudo bitcall-gateway init --verbosesudo bitcall-gateway upsudo bitcall-gateway downsudo bitcall-gateway restartsudo bitcall-gateway pausesudo bitcall-gateway resumesudo bitcall-gateway enablesudo bitcall-gateway disablesudo bitcall-gateway reconfiguresudo bitcall-gateway statussudo bitcall-gateway logs [-f] [service]sudo bitcall-gateway sip-tracesudo bitcall-gateway cert statussudo bitcall-gateway cert renewsudo bitcall-gateway cert install --cert /path/cert.pem --key /path/key.pemsudo bitcall-gateway updatesudo bitcall-gateway media statussudo bitcall-gateway media ipv4-only onsudo bitcall-gateway media ipv4-only offsudo bitcall-gateway uninstall
Files created by init
/opt/bitcall-gateway/.env/opt/bitcall-gateway/docker-compose.yml/opt/bitcall-gateway/acme-webroot/.well-known/acme-challenge/healthcheck/etc/systemd/system/bitcall-gateway.service
Publishing npm package
- Bump version in
cli/package.json. - Commit the change.
- Create tag
vX.Y.Z. - Push tags; GitHub Actions publishes automatically.
