Skip to content

Add experimental native V.90 answering modem and PPP recovery - #29

Merged
nicolasumaras merged 465 commits into
mainfrom
codex/v90-development
Sep 14, 2026
Merged

nicolasumaras merged 465 commits into
mainfrom
codex/v90-development

Conversation

@nicolasumaras

@nicolasumaras nicolasumaras commented Sep 9, 2026 •

Copy link
Copy Markdown
Owner

Experimental software V.90 answering server with PPP Internet access. Keep a one-call limit: simultaneous physical calls remain unverified.

The native C backend provides modem startup, PCM downstream, upstream decoding and V.42/LAPM. The application manages SIP/RTP, PPP and resource cleanup. The latest fix reacquires valid LAPM negotiation traffic after an upstream decoder reset while retaining stricter established-stream recovery.

Test results

Tests used a Windows XP HP notebook with a SoftV90/SmartCP modem, Cisco ATA187 and FreePBX. The tested source is 878ac9eceba1afb51e7052502847d12728169376; merge 7d20fcc2d8306dc415085acfc8593889d9210c3a preserves its exact tree.

  • JavaScript and native CI passed: https://github.com/nicolasumaras/SIPfax/actions/runs/34744311481. A focused session/PPP isolation review also passed 40 software tests; those do not substitute for simultaneous physical calls.
  • The source archive reproduces the native binary and all 25 managed runtime files. Native SHA-256: 65a83c9da4243f6348534a83b0f3c39773fc763eec167cc4ce938261e3e6b532.
  • Ten consecutive physical V.90 calls passed at 49,296 bit/s with PPP, checksum and teardown checks.
  • A 1,805.763-second V.90 session passed 222 verified downloads totaling 7,274,496 bytes and 45 public HTTP checks, with zero reported modem errors. Median download payload throughput was approximately 40.6 kbit/s.
  • Genuine POST uploads of 12,345 bytes and 1,048,576 bytes passed independent client/server byte-count, pattern and checksum checks. The large upload took 318.02 seconds (about 26.4 kbit/s payload). The same PPP call retained Internet access afterward, with zero reported RAS errors.
  • Caller-selected V.34 passed at 12,000 bit/s while the server offered both V.90 and V.34. The caller negotiation mask excluded V.90 and native V.34 training was observed. After restoring caller initialization, a V.90 control call passed at 49,296 bit/s. Both passed PPP/HTTP and teardown checks.
  • Bounded loss tests passed: three outbound RTP packets dropped in one call, and three separated incoming events of three packets each in another call. Checksums, PPP continuity and cleanup passed.
  • A 60-second outgoing jitter trial applied 20 ms delay with ±5 ms variation to the exact RTP flow; 3,001 packets were delayed. Receiver interarrival standard deviation changed from approximately 0.54 ms to 4.19 ms, then recovered to 0.25 ms. Twelve HTTP checks and continuous PPP identity passed with zero reported RAS errors. Transition reordering and sequence gaps were recorded; they are not a unique packet-loss count.
  • Packaged installation, rollback, baseline file hashes and resource cleanup were verified across physical trials. Raw modem traces and packet captures remain on the test container; these published results contain aggregate evidence only.

Retained failures and limits

An earlier candidate failed during LAPM negotiation and motivated the latest recovery fix. Earlier V.34 startup failures remain recorded. An initial caller-setting attempt failed immediately with XP error 692 before server negotiation; a subsequent retry passed. These successes do not establish universal interoperability or arbitrary impairment tolerance.

The successful bulk-upload controller ended with a duplicate-stop error for an already-stopped transient capture unit. The original failure is retained. Independent verification confirmed payload integrity, stopped services, empty call/PPP resources and restoration of all 25 baseline files; the controller was corrected.

The caller-selected V.34/restored-V.90 result is one successful cycle, not a V.34 endurance or broad reliability qualification of this final artifact. Two simultaneous physical calls, higher capacity and broader V.34 reliability remain unqualified.

Repository research documents include historical snapshots; this release note records the current release scope. This is a prerelease, with rollback retained for deployment.

@nicolasumaras
nicolasumaras marked this pull request as ready for review September 14, 2026 01:32
@nicolasumaras
nicolasumaras merged commit 7d20fcc into main Sep 14, 2026
2 checks 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.

2 participants