Skip to main content

app_call

This tool on every surface: CLI · MCP · Python · JavaScript · Go · Java · .NET

Simulate an incoming call: "ring", then "accept" or "hang". Interruption is where mobile apps fail and desktop software does not — a call mid-form, state lost on resume, a callback that never fires — and none of it can be provoked by tapping. Emulator only: a real phone cannot be made to ring from outside, which is a property of phones, and mobium says so rather than failing obscurely. Confirmed against the device's telephony state, not the console's acknowledgement. Discards the refs from the last app_map, since a call takes over the screen.

Changes the device, the app or the session: readOnlyHint is false.

Arguments​

NameTypeRequiredWhat it is
actionstring: ring, accept, hang"ring" (default), "accept" or "hang".
devicestringDevice serial to target, e.g. "emulator-5554". Omit when only one device is running.
driverstring: uiautomator2, uiautomator, wdaDriver to use: "uiautomator2" (default for Android; fast, installs a server APK on first use), "uiautomator" (Android, installs nothing, slower, cannot type), or "wda" (WebDriverAgent: iOS simulators and iPhones).
numberstringCalling number. Defaults to 5551234.

Examples​

Each is the arguments of a tools/call request; the first is shown whole.

Ring the device with an incoming call​

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "app_call",
"arguments": {
"number": "5551234"
}
}
}

On an Android 15 emulator the answer's text was:

ringing a call from 5551234

mobium call --number 5551234 on an Android 15 emulator

mobium call --number 5551234 on an Android 15 emulator

Hang up​

{
"action": "hang"
}

On an Android 15 emulator the answer's text was:

ended a call from 5551234