Skip to content

client.test_helpers_inbound_calls

Simulate calls and events in test mode. These methods are on client.test_helpers_inbound_calls, where client is a MoreVoice client (see the Python SDK). On AsyncMoreVoice the same methods are awaited. Each one returns the response object and raises an exception when the API answers with an error.

Simulate an inbound call. Test mode only. A simulated caller dials one of your sandbox numbers: the call is routed like a real one (the number’s assistant, flow or inbound route), runs on the virtual carrier with simulated speech and AI, and sends every call event to your test-mode webhook endpoints. Returns the call (status ringing); it is answered within a second.

client.test_helpers_inbound_calls
def create(self, body: _m.InboundCallCreateParamsInput | Mapping[str, Any], *, more_voice_version: str | Unset = UNSET, idempotency_key: str | Unset = UNSET) -> _m.Call

client.test_helpers_inbound_calls.create() · await async_client.test_helpers_inbound_calls.create() · POST /test_helpers/inbound_calls · API reference

Field Type Required Description
to string yes A sandbox number of yours (POST /v1/phone_numbers with a test key).
from string no The simulated caller’s number (default +972521234567).
script string no What the simulated caller does: answer (default) talks for a few turns and hangs up; silent says nothing (and hangs up after 30 s); dtmf:123 presses the keys after the greeting, then talks.

Call:

Field Type Description
id string A call ID (prefix call_).
object "call" Always call.
type CallType Who handles the call: an AI assistant, a human agent, an IVR flow, a conference room, or a voicemail box.
direction CallDirection | null —
transport "sip" | "webrtc" sip for phone calls, webrtc for browser calls and conference rooms.
status CallStatus queued (placed, not ringing yet), ringing, in_progress (answered, or an inbound call being handled) or ended.
from string | null The calling number (E.164 when it is a phone number) or name.
to string | null The called number (E.164 when it is a phone number) or destination.
assistant_id string | null asst_… ID.
flow_id string | null flow_… ID.
flow_version integer | null The flow version that ran (0: an unpublished draft).
queue_id string | null q_… ID.
agent_id string | null The human agent who handled the call (usr_…).
campaign_id string | null cmp_… ID.
contact_id string | null ctc_… ID.
connection_id string | null conn_… ID.
api_key_id string | null The API key that created the call (key_…).
purpose CallPurpose | null —
started_at string When the call started: dialled out, or rang in.
answered_at string | null —
ended_at string | null —
duration_ms integer | null —
end_reason string | null Why the call ended, e.g. customer-ended-call, assistant-ended-call, customer-busy, customer-did-not-answer.
answered_by CallAnsweredBy | null —
disposition string | null The business outcome recorded on the call (set_outcome tool, or the summary).
has_recording boolean —
ai_generated boolean Machine-readable marking (EU AI Act Art. 50(2)): true when the call contains speech generated by AI — an AI voice agent, or synthetic-voice IVR prompts. Recordings of such calls carry the same tag in their file metadata.
ai_segments CallAiSegment[] When AI-generated speech was played, in ms from the start of the call (empty when ai_generated is false).
summary CallSummary | null —
cost CallCost | null Set once the call has ended (never null then); null while it is in progress.
variables Record<string, string> The variables the call was created with.
metadata Metadata Up to 50 key/value pairs (keys up to 40 characters, values up to 500) you attach to an object. Returned as sent.
livemode boolean true in live mode, false in test mode.
assistant CallAssistant The assistant of the call (expand[]=assistant).
from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
call = client.test_helpers_inbound_calls.create({
"from": "+972521234567",
"script": "dtmf:1",
"to": "+972509991234",
})
print(call)