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
Every `ActionNode` response can include three optional top-level fields for node identification and data passthrough:
144
+
145
+
```json
146
+
{
147
+
"type": "prompt",
148
+
"file": "hello.wav",
149
+
"step_id": "1000602002200750100",
150
+
"step_name": "欢迎语",
151
+
"extra": {
152
+
"tenantId": "didi",
153
+
"gvpFlow": "CTCDaiJiaKeFu",
154
+
"callPath": "F_11,F",
155
+
"businessType": "6",
156
+
"customerType": "1",
157
+
"routePoint": "39325"
158
+
}
159
+
}
160
+
```
161
+
162
+
| Field | Type | Description |
163
+
|-------|------|-------------|
164
+
|`step_id`|`string` or null | Node identifier — stored and emitted in `ivr_step_trace` events as `step_id`|
165
+
|`step_name`|`string` or null | Node name — stored and emitted as `step_name`|
166
+
|`extra`|`JSON Object` or null | Transparent passthrough data — provider returns the complete object each time; RustPBX stores it and includes it verbatim in every subsequent `ivr_step_trace` event |
167
+
168
+
> **Passthrough behavior**: After `session_start`, the provider should include `extra` in every response. RustPBX stores the latest `extra` value and echoes it in all `ivr_step_trace` events until the provider updates it. The `step_id` and `step_name` from the most recent provider response are used for the current step's trace.
169
+
141
170
### Next Chaining
142
171
143
172
Non-terminal actions can include a `next` field to chain multiple actions without a round-trip:
0 commit comments