b2b_trigger_scenario
Trigger a B2B user agent scenario by its ID, using optional custom SIP headers and semicolon-delimited parameters for per-scenario configuration.
Instructions
Trigger a B2B scenario by id (defined in b2b_logic XML scenarios).
Parameters
scenario_id: Scenario id from the b2b_logic configuration. custom_hdrs: Optional custom SIP headers for the scenario invocation. params: Optional semicolon-delimited parameters (per-scenario).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes | ||
| custom_hdrs | No | ||
| params | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- The main handler function for the b2b_trigger_scenario MCP tool. It is decorated with @mcp.tool(), @audited("b2b_trigger_scenario"), and @require_permission("mi.write"). Accepts scenario_id (required), custom_hdrs (optional), and params (optional), then executes the MI command via app.mi_client.execute.
@mcp.tool() @audited("b2b_trigger_scenario") @require_permission("mi.write") async def b2b_trigger_scenario( ctx: Context, scenario_id: str, custom_hdrs: str = "", params: str = "", ) -> dict[str, Any]: """Trigger a B2B scenario by id (defined in b2b_logic XML scenarios). Parameters ---------- scenario_id: Scenario id from the b2b_logic configuration. custom_hdrs: Optional custom SIP headers for the scenario invocation. params: Optional semicolon-delimited parameters (per-scenario). """ app = ctx.request_context.lifespan_context return await app.mi_client.execute( "b2b_trigger_scenario", {"id": scenario_id, "custom_hdrs": custom_hdrs, "params": params}, ) - Registration of the MI command metadata for b2b_trigger_scenario. Defines the MI module ('b2b_logic'), description, expected parameters (['id', 'custom_hdrs', 'params']), and permission level ('mi.write').
_r("b2b_trigger_scenario", "b2b_logic", "Trigger a B2B scenario by id", ["id", "custom_hdrs", "params"], "mi.write", "b2b_logic") - src/opensips_mcp/tools/b2b_tools.py:77-77 (registration)The @mcp.tool() decorator registers this function as an MCP tool named 'b2b_trigger_scenario' (inferred from function name). This is how the tool becomes available in the MCP tool registry.
@mcp.tool()