Skip to content

History

Revisions

  • Add 26.9.21 to Releases and move the current version The release notes for what shipped today: Android reporting real peer connection states, so a call whose transport died finally ends there; RestartIce working on all five platforms rather than one, and the IceRestart offer option that four bindings silently ignored; automatic recovery of a failed transport on the signalling path; a Windows sender that can be capped mid-call; the frame sink deadlock and the Media tile that ignored a changed stream. M153 underneath. The Apple camera preview delay is written up as a known issue rather than left for someone to find: it is in this release and fixed after it. Current version moved from 26.9.18 across Home, Getting started, Platform prerequisites, Testing and the feature matrix, whose body was already written for 26.9.21.

    @melihercan melihercan committed Sep 21, 2026
    3a0dda0
  • ICE restart only ever worked on Blazor RTCOfferOptions.IceRestart is read by one binding. Blazor passes the options object to the browser's createOffer; Android, iOS, Mac Catalyst and Windows discard it, so the "restart" was a plain re-offer carrying the old credentials. The call renegotiated and nothing restarted, which is why a browser test passed it and this page said the feature was verified on all five. Fixed in the repository as of 26.9.21 by calling RestartIce() instead, so: - What works where says what each platform actually did, and gains a row for the automatic recovery, which is new. - Connection.md documents that a call now recovers by itself, and warns anyone on an earlier package that the button is decorative on four platforms. - The 26.9.18 release note carries a correction, because that is the published package and people are running it today.

    @melihercan melihercan committed Sep 21, 2026
    414475b
  • Two more places that claimed to be current at 26.9.16 The page index in Releases and the heading of What works where both state a version they are current as of, so they are claims rather than history and had gone stale. The remaining 26.9.16 mentions are deliberate - "on 26.9.16 and earlier", "26.9.16 or later", and a tag in the release-process diagram.

    @melihercan melihercan committed Sep 19, 2026
    f78db3d
  • Add 26.9.18 to Releases and bump the current version One bug across three platforms, filed as several issues: peer connection awaits resumed on libwebrtc own signalling thread, so a Dispose after an await ran inside libwebrtc callback and closed the connection a few lines before libwebrtc used what the close destroyed. EXC_BAD_ACCESS at 0x30 on Apple, a destroyed-mutex abort on Android, and asynchronous either way so it killed unrelated work. Also records OnTrack finally firing on Apple, and the -NativeLog switch. Connection-Signaling said "the release following 26.9.16" in three places for things that have now shipped; they name 26.9.18.

    @melihercan melihercan committed Sep 19, 2026
    fac7a12
  • DOMAIN must be the address clients dial, not localhost The documented docker run set DOMAIN=localhost, which rejects every client that is not on the server's own machine. The demo server turns away a WebSocket upgrade whose Origin does not match DOMAIN, and it does it above the application, so docker logs shows nothing whatsoever. The client-side message is actively misleading - "Websocket connection aborted unexpectedly. Check connection and socket security version/TLS version" - when TLS has already succeeded a line earlier. The empty server log is the real tell. Found the hard way while verifying issue #21 on an iPhone: TCP connected, TLS connected, handshake aborted, nothing logged. Setting DOMAIN to the announced address fixed it immediately and the phone produced to the SFU.

    @melihercan melihercan committed Sep 17, 2026
    0f94584
  • Correct the TURN proxy table: three of the five are stubs The table listed all five proxies as though they were choices. Three of them - Twilio, Coturn and AppRtc - have a GetIceServersAsync that throws NotImplementedException, so picking one gets an exception at the first client to join a room rather than a working call. The page also said "the two proxies for hosted ones are already written", which is half true: Xirsys is, Twilio is not. That misinformation had a cost. Someone deploying the server and asking why calls worked on a LAN and not the internet (issue #42) was told, on the issue, to switch to Coturn or Twilio. Neither could ever have worked. Records the third gate as well, which nobody had noticed: IHttpClientFactory was never registered, so XirsysProxy - the one hosted proxy that is implemented - could not be resolved even after the two source edits this page described. Documents the single configuration key that replaces all three edits, marked as arriving in the release after 26.9.16 since the server is run from source and master does not have it yet. The old three-edit procedure is kept for anyone on an older checkout. Also documents ISignalingServerUrlProvider for setting the client's signalling address at runtime, same release, since this page is where the client BaseUrl is documented.

    @melihercan melihercan committed Sep 17, 2026
    03e8a24
  • Connection-Signaling: switching TURN provider takes two edits, not one The page said uncomment the proxy you want in Startup.cs. That is necessary and not sufficient: RoomHub hardcodes Create(TurnServer.StunOnly) rather than reading it from configuration, so uncommenting alone changes nothing and the reader would conclude the provider is broken. Written from Startup.cs without following the call through to the hub. Found by tracing what actually reads the TURN settings - the answer being nothing, in the default build. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @melihercan melihercan committed Sep 16, 2026
    dcf8590
  • Release as 26.9.16, today's date The scheme is the build date and 26.9.17 was tomorrow's. Also corrects the one sentence a blind replace would have left wrong - the example that maps the version back to a calendar date. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @melihercan melihercan committed Sep 16, 2026
    96cbc39
  • Releases: NOTICE now ships inside the packages Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @melihercan melihercan committed Sep 16, 2026
    200fdb0
  • Releases: NOTICE is filled in, so stop saying it is empty Replaces the warning with what the file now covers, and keeps one caveat that is still true: it is not packed into the .nupkg, so it does not reach a consumer on its own. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @melihercan melihercan committed Sep 16, 2026
    0dcea4e
  • Releases: absorb the release notes the README was carrying The root README had become a changelog with a package list attached - the 2.0.0 notes, the Xamarin drop, the credits and the upgrade steps. That belongs on a releases page, and now that one exists the README can stop being one. README_V1.md stays where it is and is linked rather than copied. It is a stack of dated notes going back to 2021 and reads as the historical record it is. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @melihercan melihercan committed Sep 16, 2026
    4af22ec
  • Wiki: the five reference pages Platform prerequisites leads with the three failures that say nothing when you hit them, symptom first, because that is how a reader arrives. What works where separates implemented from run. A lot of Apple code was written on reasoning alone and compiles perfectly, and a matrix that shows only yes or no would hide exactly that. Two rows were corrected against the source while writing it: OnDeviceChange is dead on iOS and Mac Catalyst, and simulcast outside Blazor and Android is unverified rather than working. Testing carries the real numbers - 114 tests, 2.0s - from a run, not from counting attributes. Troubleshooting is organised by what the reader sees, never by which layer is at fault, since a reader who knew the layer would not need the page. Releases records what the packages embed and that attribution is the consumer's to satisfy, and says plainly that NOTICE is empty rather than letting an empty file read as nothing being required. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @melihercan melihercan committed Sep 16, 2026
    44e8490
  • Wiki: the seven stack pages One page per layer, bottom to top, each ending in a pointer to the next: WebRTCnative, Bindings, The unified API, Middleware, Connection and its two implementations, and the demo apps. The unified API page is named for what it is rather than for the package, because a sidebar with WebRTCme nested under WebRTCme reads as a mistake. Connection is split three ways. One page covering two topologies, two server deployments and two sequence diagrams would have been six hundred lines, and the two implementations have almost nothing in common below IConnection. Twelve mermaid diagrams, all parsed and rendered under the strict security level GitHub uses before being committed. Mermaid rather than SVG pairs: it themes itself for dark mode and stays editable in place. Connection-Signaling records that the server's tracked appsettings.json carries a real Xirsys credential, because a reader who forks this needs to know not to rely on it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @melihercan melihercan committed Sep 16, 2026
    71350c8
  • Wiki spine: Home, Getting started, Hello world, sidebar Replaces the two-page stub. Home and Api.md described the Xamarin era and a WebRTCme.Api that no longer exists as a separate assembly; Api.md was a placeholder line of text and is deleted. The three prerequisites that fail silently - the Windows App Runtime, the MAUI version pin and the Blazor script tag - are each stated where a reader hits them, not only on a page of their own. The Hello world sample is compiled against all five slices before publishing, not transcribed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @melihercan melihercan committed Sep 16, 2026
    815986d
  • Updated Home (markdown)

    @melihercan melihercan committed Feb 23, 2023
    831880f
  • Updated Home (markdown)

    @melihercan melihercan committed Feb 11, 2023
    f7b117e
  • Updated Home (markdown)

    @melihercan melihercan committed Feb 11, 2023
    de4543a
  • Updated Home (markdown)

    @melihercan melihercan committed Feb 11, 2023
    a58adfb
  • Updated Home (markdown)

    @melihercan melihercan committed Feb 11, 2023
    74faffc
  • Updated Home (markdown)

    @melihercan melihercan committed Feb 11, 2023
    97e880f
  • Updated Home (markdown)

    @melihercan melihercan committed Feb 11, 2023
    b6d492f
  • Updated Home (markdown)

    @melihercan melihercan committed Feb 11, 2023
    8e6c026
  • Updated Home (markdown)

    @melihercan melihercan committed Feb 11, 2023
    d2eb457
  • Updated Home (markdown)

    @melihercan melihercan committed Feb 11, 2023
    d6e2a07
  • Updated Home (markdown)

    @melihercan melihercan committed Feb 11, 2023
    2c7c4e4
  • Updated Home (markdown)

    @melihercan melihercan committed Feb 11, 2023
    f26af59
  • Updated Home (markdown)

    @melihercan melihercan committed Feb 11, 2023
    bd955ff
  • Created Api (markdown)

    @melihercan melihercan committed Feb 10, 2023
    e645fd0
  • Initial Home page

    @melihercan melihercan committed Feb 4, 2023
    57f83ec