Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Core] JB: small fixes and adjusments #2315

Closed
wants to merge 1 commit into from

Conversation

jchavanton
Copy link
Contributor

@jchavanton jchavanton commented Nov 20, 2023

  • [Core] JB: if the jitter buffer size is above the its max size, we force accelerate

  • [Core] JB: proper handling of seq roll-over

  • [Core] JB: fix seq decrement

These fixes and the adjustment were thoroughly tested, they were found while testing the packet relay metrics. #2292

A/B testing with 100 sessions and no artificial jitter, to make sure everything is working well under normal conditions.

  • less packets are replaced by PLC or simply skipped with the default JB
  • less delays is introduced

EJB : more elastic jitter buffer
image

The packet relay metrics are still not ready for merge but I am able to use them to precisely monitor the jitter buffer in production.


Here is one report of real traffic facing jitter, I selected it randomly from production traffic.
We can use it as a source of validation evidence.
Configuration:

<action application="set" data="rtp_jitter_buffer_accelerate=true"/>
<action application="set" data="jitterbuffer_msec=20:1200"/>

End of call report:

{
  "rp": {
    "call_id_in": "rt342cma1dgelvphc5pb",
    "call_id_out": "c454bbd8-4e26-4049-85bb-20569a0b2990",
    "report": {
      "in": {
        "ssrc": "0x95262C82",
        "remote_socket": "172.11.61.245:18550",
        "local_socket": "172.11.61.245:35930",
        "codec": "opus",
        "count": 43181,   // ~15 minutes call
        "plc": 732   //  1.6% PLC
      },
      "out": {
        "ssrc": "0xA95A90EE",
        "remote_socket": "172.11.50.19:34402",
        "local_socket": "172.11.61.245:13842",
        "codec": "PCMU",
        "count": 43181,
        "max_ms": 1060,   // this is the maximum time spent by any packet inside FS, we can see close to matching the JB max size.
        "avg_ms": 74.57   // this is the average time spent by any packet inside FS
      }
    }
  },
  "jb": {
    "in_call_id": "rt342cma1dgelvphc5pb",
    "out_call_id": "c454bbd8-4e26-4049-85bb-20569a0b2990",
    "jb": {
      "size_max_ms": 1220,   // we can see that the maximum jitter buffer size was respected
      "size_est_ms": 20,
      "acceleration_ms": 13680,
      "expand_ms": 13580,
      "fast_acceleration_ms": 0,
      "forced_acceleration_ms": 60,   // at one point the jitter buffer was above its max size
      "jitter_max_ms": 140,   // very high jitter was seen during that call
      "jitter_est_ms": 8,   // near the end there was not that much jitter
      "reset": 7,
      "reset_too_big": 0
    }
  }
}

* [Core] JB: if the jitter buffer size is above the its max size, we force accelerate

* [Core] JB: proper handling of seq roll-over

* [Core] JB: fix seq decrement
@signalwire-ci
Copy link

signalwire-ci bot commented Nov 20, 2023

@signalwire-ci
Copy link

signalwire-ci bot commented Nov 20, 2023

@jchavanton
Copy link
Contributor Author

REPLACED WITH

#2337

@jchavanton jchavanton closed this Dec 18, 2023
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