You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> **[recording] and [sipflow] are mutually exclusive for RTP capture.**
22
+
> The default configuration uses `[sipflow]` for both SIP signalling and RTP
23
+
> audio capture. Only configure `[recording]` when you specifically need the
24
+
> legacy live WAV recorder. See [08-sipflow.md](08-sipflow.md) for details.
25
+
20
26
Control when calls are recorded. Can be set at top-level `[recording]` or per-proxy `[proxy.recording]` (proxy-level overrides top-level).
21
27
22
28
`[recording]` controls the live WAV recorder. When enabled, the recorder always writes a local WAV first. Set `type = "http"` or `type = "s3"` only to upload that local WAV after the call completes.
@@ -28,7 +34,7 @@ Recording configuration has priority over SipFlow RTP recording. If a top-level
28
34
- SipFlow SIP message capture still works when `[sipflow]` is enabled.
29
35
- SipFlow RTP capture and `[sipflow.upload]` recording export are disabled for that call.
30
36
31
-
Only omit the recording section entirely when you want `[sipflow.upload]` to act as the recording source.
37
+
Only omit the recording section entirely when you want SipFlow to capture RTP audio and/or `[sipflow.upload]` to act as the recording source.
32
38
33
39
```toml
34
40
# Top-level recording config (applies to all proxies unless overridden)
Copy file name to clipboardExpand all lines: docs/config/08-sipflow.md
+15-1Lines changed: 15 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,12 @@
2
2
3
3
SipFlow is the SIP flow capture subsystem built into RustPBX. It captures call SIP signalling messages into a compact on-disk store and can also capture bi-directional RTP media when no explicit recording policy is configured. The console and HTTP API use this data to query call flows and, when media capture is enabled, replay recordings by Call-ID.
4
4
5
+
> **Default configuration.** The example config (`config.toml.example`) enables
6
+
> `[sipflow]` with `type = "local"` and omits `[recording]`. This gives you SIP
7
+
> signalling capture **and** RTP audio capture out of the box. If you add a
8
+
> `[recording]` section, SipFlow will stop capturing RTP audio (signalling
9
+
> capture continues). See the "Recording Priority" section below.
10
+
5
11
See [docs/sipflow.md](../sipflow.md) for the full deployment guide (architecture diagrams, systemd unit, storage sizing, and API reference).
6
12
7
13
---
@@ -70,6 +76,11 @@ Start the standalone server:
70
76
71
77
## Recording Priority
72
78
79
+
> **WARNING: `[recording]` and `[sipflow]` are mutually exclusive for RTP
80
+
> capture.** If you configure both, SipFlow will capture SIP signalling but
81
+
> **NOT** RTP audio. To get recordings in the console audio player, either
SipFlow SIP message capture is independent from call recording. If `[sipflow]` is enabled, RustPBX continues to store SIP messages for the caller and callee Call-IDs.
SipFlow capture is enabled by configuring the `[sipflow]` backend. It is independent from `[callrecord]`, which only controls CDR JSON storage.
116
127
117
128
```toml
129
+
# Default configuration (recommended):
130
+
# - SipFlow captures SIP signalling AND RTP audio
131
+
# - No [recording] section needed
118
132
[sipflow]
119
133
type = "local"
120
134
root = "./config/sipflow"
121
135
subdirs = "daily"
122
136
```
123
137
124
-
When SipFlow is active, each CDR entry in the console can display a**SIP Flow** tab with the signalling ladder. The audio player is available only when the active recording policy produced media, either through `[recording]` or through SipFlow RTP capture when no recording section exists.
138
+
When SipFlow is active and **no `[recording]` section exists**, each CDR entry in the console shows both the**SIP Flow** tab (signalling ladder) and the **audio player** (recorded RTP). If a `[recording]` section is present, the audio player relies on the legacy recorder's WAV output instead.
0 commit comments