webrtc:// URI capability pack for urisys-node.
Transport layer for WebRTC sessions: HTTP signaling inbox (mock relay on node) and DataChannel URI envelopes. Browser P2P signaling between ifURI peers uses ifURI’s /api/webrtc/signal — see if-uri/app/docs/WEBRTC.md.
PyPI / GitHub Releases (urisys-node auto-install):
urisys-node remote install-pack webrtc --endpoint http://lenovo:8790
Dev wheel:
pip wheel -w /tmp/wheels .
node://lenovo/command/install-pack # pack: webrtc, specs: [file:///tmp/wheels/uriwebrtc-0.1.0-py3-none-any.whl]
Flow: urisys-examples/lenovo-remote/02c-install-webrtc-pack.uri.flow.yaml
| URI | Operation | Description |
|---|---|---|
webrtc://local/session/{session}/command/start |
webrtc.session.start |
Open session (signaling: http-relay) |
webrtc://local/session/{session}/data/command/send |
webrtc.data.send |
Accept URI envelope (no execution) |
webrtc://local/session/{session}/signal/command/post |
webrtc.signal.post |
Store SDP/ICE signal in room inbox |
webrtc://local/session/{session}/signal/query/inbox |
webrtc.signal.inbox |
Poll signals since id |
Manifest: uriwebrtc/manifest.yaml
Contract: markpacts/uriwebrtc.markpact.md
{ "room": "rdp-chat" }
Response:
{
"ok": true,
"webrtc": {
"room": "rdp-chat",
"status": "ready",
"signaling": "http-relay",
"data_channel": "uri-envelope"
}
}
{
"room": "rdp-chat",
"envelope": {
"uri": "kvm://local/monitor/primary/query/screenshot",
"payload": {},
"context": { "approved": true, "dry_run": true }
}
}
Execution stays in target schemes (kvm://, him://, …) — this route only records the envelope.
{
"room": "rdp-chat",
"from": "http://192.168.188.212:8766",
"type": "offer",
"data": { "type": "offer", "sdp": "v=0..." }
}
type: offer |
answer |
ice |
{ "room": "rdp-chat", "since": 0 }
When two ifURI /voice tabs connect as WebRTC peers:
POST {peer}/api/webrtc/signal (browser ↔ browser through ifURI HTTP relay)RTCPeerConnection{ kind: "voice", id, text } → peer runs local voice pipeline → { kind: "voice-reply", id, ok, text }Node webrtc:// routes are used for smoke tests and flow automation, not for browser signaling path.
cd tellmesh/uriwebrtc
uv sync
pytest -q
webrtc → uriwebrtcstt:// / tts:// (voice on node)Orchestrator: urisys · Mapa: MESH.md · Model: ECOSYSTEM.md
| Pole | Wartość |
|---|---|
| Warstwa | Capability pack |
| Scheme | webrtc:// |
| Zależność | uricontrol>=0.1.8 |
Runtime edge: uri_control.edge w pakiecie uricontrol (legacy PyPI uricore / urisysedge usunięty 2026-06).
Resolver intencji: uriresolver (uri_resolver) + transport w uritransport; policy gate: uriguard (uri_guard).