CallMonitor
Dashboard
No device
🏆
Winner found!
Live Stats
0
Total
0
Completed
0
Failed
0
Remaining
0%
Success rate
Idle — no active call
Code Progress
idle
---
Attempt 0 / 0 · 0% · phase:
tried 0 · invalid 0 · winners 0 · lockouts 0
range: elapsed: rate: ETA: last update:
Call Control
Idle - waiting for command
IVR Script · DTMF builder
Card number + menu key live here. Codes + per-call timing are managed below in Range Auto-Dial; connect/RING comes from there too. Use the token-flow builder for one-off manual scripts.
Built DTMF string (single-code, manual)

DTMF builder · from flow tokens · debug
Low-level escape hatch — normally you'll use Range Auto-Dial instead. Write the call as a token flow (one per line or comma-separated).
Tokens: CARD, MENU, CODE1/CODE2/CODE3, HANGUP, WAIT_n (n seconds), or a literal digit string. Example: CARD, WAIT_6, MENU, WAIT_5, CODE1, WAIT_7, CODE2, WAIT_7, CODE3, WAIT_6, HANGUP
Each WAIT_n becomes n commas in the compact string (1 comma = 1 s pause); each digit token expands to that card / menu key / code value.
Timeline · what each token does
Compact DTMF string (commas = 1 s each)
Manual DTMF · in-call
Use , for 1-second pause
Speaker
Microphone
Auto Dialer
Idle
Range Auto-Dial · multi-code per call
idle
RING 15s → CONNECTED 2s → CARD → wait 6s → PRESS 1 → wait 4-5s
→ CODE → 2s · listen 4-6s → CODE → 2s · listen 4-6s → CODE → 1s · listen 4-6s → HANGUP → gap → CALL
Sweeps a range of access codes, packing several per call. The per-call rhythm above is enforced end-to-end — device DTMF builder, classifier window, and live timeline below all derive from the same numbers. Each code gets a 2 s post-DTMF settle immediately followed by a 4-6 s listen window so an early IVR reply (“invalid”, lockout) is never missed.
Code range
Per-call window (seconds)
Call pacing (seconds)
Total codes
Calls
Avg call
Total est.
Next call timeline · green cursor tracks the live call; click any segment to edit its timing
ring connected (2s) card / menu key wait code digits listen window tail (last code)
Raw DTMF string
🎧 Live Listen · in-call audio + partial transcript
idle
Streaming + STT run on the PC server regardless of the browser. Muting here only silences your speakers — the WAV file and partial-transcript signals still flow into the Range classifier.
Level
0 B
Rolling transcript (last ~6s):
Time Phone Outcome Stage Invalid Keywords Transcript
No analysis results yet — click Pull & Analyze after recordings exist on the device.
Calls placed in this session (range auto-dial). Cross-reference with the Analysis tab once recordings are pulled.
  • No completed calls yet
Started Dur Target Codes attempted Outcome Transcript snippet Audio
No live-stream sessions yet. Start a stream or enable "Auto-start with range" in Live Listen.
Pending
  • empty
Recent
  • none
Daemon Configuration · single source of truth
One config. Saved to settings.json on the PC and pulled by service.sh on every daemon spawn via /api/dialer/env. Restart the daemon to apply: adb shell su -c "pkill -f td_call_ctl".
unsaved
Preview rendered env file (/api/dialer/env)
(reload to populate)
Resume / Range Audit
Download remaining
Active dialing card (from IVR Script): · Viewing history for: · Server stores each card under pc_server/code_results/<card>/log.jsonl.
0 processed
0 winner
0 invalid
0 lockout
0 exhausted
0 voicemail / stuck / unknown / dial_failed
remaining: 0 of 0
range hint: SKIP_PROCESSED is OFF — daemon will redial everything in CODE_START..CODE_END
What the IVR said after each code
When Code Outcome IVR transcript
no history yet — run the dialer, then click Reload
Processed codes map (click a row to see its transcript)
Call walk-through — one row per phone call (IVR stage path + transcript)
Each phone call (one DTMF burst = one recording) shows its ordered IVR stage path, a per-call verdict, and the transcript. Source: /api/code-results/<card>/calls.
no calls yet — run the dialer, then click Reload
🛠 Calibration · recommended timing
Analyses your recent per-code outcomes and proposes safer or tighter values for the Range card. Run a quick 10-code calibration first if you've never tuned this phone / line.
No findings yet — click Analyse outcomes.
SIM slots
Command Log · debug
Settings
Enable ADB dialing (PC-side fallback)