Skip to content

LKMA-218 Add live V22bis fallback diagnostics - #25

Merged
nicolasumaras merged 1 commit into
mainfrom
lkma-218-live-windows-fallback
Jun 26, 2026
Merged

LKMA-218 Add live V22bis fallback diagnostics#25
nicolasumaras merged 1 commit into
mainfrom
lkma-218-live-windows-fallback

Conversation

@nicolasumaras

Copy link
Copy Markdown
Owner

Summary

  • add softmodem SIPFAX_MODEM_START_MODE with default v8 and controlled v22bis/v21 startup modes
  • expose startMode, v8Status, v8StatusCode, and v8Modulations through modem control diagnostics and /healthz
  • document the live VM fallback procedure for v8-failed-v21-fallback and restoration to v8

Stop-point

The remaining live failure is in the SpanDSP V.8 result path: the worker reports v8-failed-v21-fallback, enters V.21/300 data mode, opens the pty, and PPP never reaches IPCP. The firewall fix let RTP reach the worker, so the next decisive check is whether bypassing V.8 into V.22bis can train and reach PPP.

Verification

  • npm test
  • npm test -- --test-name-pattern='external modem process backend opens fd 3|deployment assets default|deployment assets document controlled'
  • git diff --check

Limitation

  • make -C vendor/sipfax-softmodem sipfax-softmodem could not run in this workspace because spandsp.h/libspandsp-dev is not installed.
  • Direct VM verification could not be completed: SSH to root@192.168.1.31 was denied by publickey and http://192.168.1.31:8080 timed out from this workspace.

@nicolasumaras

Copy link
Copy Markdown
Owner Author

Reviewer verdict: APPROVE

Head reviewed: 8c52a614b20f3828f0ca2b354247ddfe22ea0752
Branch: lkma-218-live-windows-fallback (own task branch, based on origin/main = 6ef314f LKMA-216).

Inspected

  • vendor/sipfax-softmodem/sipfax-softmodem.c — new SIPFAX_MODEM_START_MODE env (v8 default, v22bis, v21); V.8 init is skipped when start mode bypasses V.8; v8_result callback captures status + modulations for diagnostics. enter_data_mode independently inits V.22bis or V.21 — worker.v8, worker.v22bis, worker.v21_* are zero-init via designated initializers, so the if (worker->v8) v8_free() guard is safe to call without prior V.8 init.
  • src/media.js — passes the new startMode, v8Status, v8StatusCode, v8Modulations fields through into the diagnostics struct and the /healthz snapshot.
  • deploy/README.md, deploy/sipfax.env.example, vendor/sipfax-softmodem/README.md — document the controlled V.22bis fallback procedure for live v8-failed-v21-fallback cases and the restoration-to-default step.
  • test/deploy-assets.test.js, test/session.test.js — cover the new env in docs and the new diagnostics in the parsed control event.

Checks

  • GitHub CI required check test (workflow CI): SUCCESS on head 8c52a61.
  • npm test locally on the head: 38/38 pass.
  • PR mergeability: MERGEABLE / mergeStateStatus: CLEAN.
  • Diff scope: matches the ticket — smallest safe diagnostic change to move the live real-Windows path forward without re-architecting the V.8 stack.

Risk

  • The PR ships the diagnostic mechanism; it does not yet prove the live VM reaches IPCP-open under SIPFAX_MODEM_START_MODE=v22bis. The PR's documented limitation is correct: SSH publickey to root@192.168.1.31 and HTTP to operator :8080 were unreachable from the executor workspace. The live diagnostic run on VM 133 will be filed as a follow-up issue with owner/action, per the AGENTS rule on non-blocking follow-up work.

Approving and merging. Live VM diagnostic follow-up will be tracked separately and linked from the Paperclip ticket.

@nicolasumaras
nicolasumaras merged commit e710a87 into main Jun 26, 2026
1 check passed
@nicolasumaras
nicolasumaras deleted the lkma-218-live-windows-fallback branch June 26, 2026 20:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant