> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # TapAction > Action handle for an active media tap operation. [call-tap]: /docs/server-sdks/reference/python/relay/call/tap [base-action-interface]: /docs/server-sdks/reference/python/relay/actions [stop]: /docs/server-sdks/reference/python/relay/actions/tap-action/stop Returned from [`call.tap()`][call-tap]. Tracks an active media tap (audio interception) operation. Terminal state: `finished`. Inherits all properties and methods from the [base Action interface][base-action-interface] (`control_id`, `is_done`, `completed`, `result`, `wait()`). ## **Properties** No additional properties beyond the [base Action interface][base-action-interface]. ## **Methods** #### [stop](/docs/server-sdks/reference/python/relay/actions/tap-action/stop) Stop media interception. ## **Example** ```python from signalwire.relay import RelayClient client = RelayClient( project="your-project-id", token="your-api-token", contexts=["default"], ) @client.on_call async def handle_call(call): await call.answer() action = await call.tap( tap={"type": "audio", "params": {"direction": "both"}}, device={"type": "ws", "params": {"uri": "wss://example.com/tap"}}, ) event = await action.wait() client.run() ``` > Action handle for an active media tap operation. ## Docs - [stop](https://signalwire.com/docs/server-sdks/reference/python/relay/actions/tap-action/stop.md): Stop media interception.