This repository has been archived on 2026-10-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
hope-voice-ios/docs/DEVICE_TESTING.md
T
2026-08-31 19:50:46 -04:00

3.1 KiB
Raw Blame History

Device testing checklist

Simulator verification covered connect/disconnect, transcripts (text mode), media reconciliation/UI, tasks panel, and the hardening pass. The items below need a real iPhone on the LAN (https://192.168.86.2:9178) because mic input, WebRTC capture, and audio session behavior don't work in this simulator environment (CoreAudio -4010, 0 input channels).

Setup: build with Xcode for a physical device (or xcodebuild ... -destination), install, ensure the server cert pin is current (see README — re-export after any server restart).

1. Mic input with real speech

  • Start → agent joins → mic enables without -4010.
  • Speak: orb/status transitions to listening; mic meter moves with voice level.
  • Stop speaking, wait >2 s while agent is silent → thinking chip appears.
  • Agent replies: state goes to speaking (remote audio drives it), TTS audible.
  • User transcript finals arrive in the list with correct role/timestamps.

2. Barge-in

  • While the agent is speaking, start talking → conversation continues without a "barge-in" glitch; state returns to listening/thinking as expected.
  • Text mode: barge-in hint line visible while in text mode.

3. Wake lock (screen off)

  • During an active conversation, observe that auto-lock is suppressed (isIdleTimerDisabled prevents the device from locking due to inactivity).
  • Note: isIdleTimerDisabled does not prevent a user from pressing the side button to lock the device. It only disables the automatic idle timeout.
  • After hang-up, auto-lock returns (idle timer re-enabled).

4. Audible media playback

  • Requires a track in an iOS-decodable format (m4a/aac/mp3) — current library tracks are webm and will fail with -11828 until the server serves a supported format.
  • Play a library track: audio is audible, now-playing card shows art/title/status.
  • Pause / ±10 s / stop / seek all work; agent mics off while playing (media_state published), mics back on when stopped.
  • End conversation while music was playing before → playback resumes.

5. Audio interruption (phone call / Siri)

  • Mid-conversation, trigger an interruption (incoming call or "Hey Siri").
  • Mic is muted on interruption begin; conversation/media pause cleanly.
  • On end (with shouldResume), mic and media resume automatically.
  • Media panel: AVPlayer pauses on interruption and resumes after.

6. Mic permission denied fallback

  • Deny microphone permission in iOS Settings for the app, relaunch.
  • Start → session reaches ready despite mic failure (non-fatal); orange error banner shows the mic error; text mode remains fully usable.

7. General device sanity

  • Connect / hang-up / reconnect matrix (3×) — no crashes, state resets cleanly.
  • Change server URL in Settings while idle → session recreates without crash.
  • Reconnect banner appears on network loss mid-call; recovers on return.
  • Voice/model picker changes take effect live on the agent and survive relaunch.