Skip to content

LKMA-216 add V.22bis softmodem path - #23

Merged
nicolasumaras merged 2 commits into
mainfrom
lkma-216-v22bis-path
Jun 26, 2026
Merged

LKMA-216 add V.22bis softmodem path#23
nicolasumaras merged 2 commits into
mainfrom
lkma-216-v22bis-path

Conversation

@nicolasumaras

Copy link
Copy Markdown
Owner

Summary\n- advertise V.21 plus V.22/V.22bis in the SpanDSP V.8 answer menu and select V.22bis when offered\n- add V.22bis data-mode diagnostics plus HDLC pty bridge coverage for the worker path\n- document the real Windows lab deployment/runbook flow for IPCP-open and ppp0 ping validation\n\n## Verification\n- npm test\n- make -C vendor/sipfax-softmodem SPANDSP_CFLAGS='-I/tmp/tmp.fur9ICi9J7/root/usr/include/x86_64-linux-gnu -I/tmp/tmp.fur9ICi9J7/root/usr/include' LDLIBS='-L/tmp/tmp.fur9ICi9J7/root/usr/lib/x86_64-linux-gnu -Wl,-rpath,/tmp/tmp.fur9ICi9J7/root/usr/lib/x86_64-linux-gnu -lspandsp -lm'\n- LD_LIBRARY_PATH=/tmp/tmp.fur9ICi9J7/root/usr/lib/x86_64-linux-gnu make -C vendor/sipfax-softmodem bench-v21 bench-v22bis bench-hdlc-pty\n

@nicolasumaras

Copy link
Copy Markdown
Owner Author

Approve — LKMA-216 Phase 5a V.22bis path

Reviewed PR head 862702c601da73445172f3aa8c7c0ece00f31190 on branch lkma-216-v22bis-path (task branch off main, not stacked on lkma-199-pppd-egress).

What I checked:

  • V.8 menu advertises V.21 + V.22bisvendor/sipfax-softmodem/sipfax-softmodem.c:702 sets parms.modulations = V8_MOD_V21 | V8_MOD_V22.
  • V.22bis selected on V.8 offerv8_result at sipfax-softmodem.c:650-662 branches on V8_MOD_V22 into enter_data_mode(MODULATION_V22BIS, "v8-v22bis-selected"); falls back to V.21 on non-V.8 / failed V.8.
  • V.22bis demodulator/modulator initv22bis_init(... 2400 ...) at sipfax-softmodem.c:618-633 with HDLC pty bridge plumbed through hdlc_tx_next_bit and put_hdlc_bit.
  • media.modem modulation diagnostics — Worker emit_control writes modulation/baud (sipfax-softmodem.c:325-353); Node side src/media.js:534-705 merges control events into lastControl and surfaces modulation, baud, state, ber, lastEvent, lastEventAt from diagnostics().
  • V.22bis bench coveragevendor/sipfax-softmodem/bench-v22bis.py plus make bench-v22bis proves V.22bis data-mode entry against artifacts/lkma-193a/ground-truth/v22bis/inbound.wav. README is explicit that the artifact is synthetic and the bench forces the modulation; acceptable for the "data-mode entry against the recording/replay artifact" deliverable.
  • HDLC pty bridge coveragetest/hdlc-pty-loopback.py + make bench-hdlc-pty.
  • Runbook docsdeploy/README.md "Real Windows Lab Run" (lines 219-314) lists prerequisites, wiring, expected media.modem.modulation: V.22bis / baud: 2400, IPCP-open confirmation, ppp.interfaceName check, and ping validation over ppp0.
  • Proxmox lab access docdeploy/README.md:27-33 documents the access path through root@192.168.1.20 and shared PROXMOX runtime secret without storing the secret value.

CI:

  • Workflow CI job test: SUCCESS at head 862702c (run 28258403552).
  • Mergeable: MERGEABLE / CLEAN.
  • No prior reviews on the PR.

Deployment evidence (per Developer comment on LKMA-216):

  • /opt/sipfax on VM 133 / 192.168.1.31 checked out to 862702c.
  • Worker rebuilt and installed to /usr/local/bin/sipfax-softmodem.
  • sipfax.service active; /healthz returns status: ok.
  • Listeners confirmed: UDP 5060, UDP 40000, TCP 127.0.0.1:8080.
  • Independent reachability probe: UDP 5060 and SSH 22 open from outside; operator 8080 correctly loopback-only.

Non-blocking follow-up tracked separately:

  • Add a real V.8-negotiated V.22bis bench once a non-synthetic V.22bis recording is available; mirror the V.21 control-event test for V.22bis on the Node side.

Merging now per the LKMA-216 acceptance path.

@nicolasumaras
nicolasumaras merged commit 6ef314f into main Jun 26, 2026
1 check passed
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