From 085d54e379b08ff375ee617dc1361f3cdda08fb0 Mon Sep 17 00:00:00 2001 From: zusrut Date: Wed, 19 Nov 2025 09:42:29 +0100 Subject: [PATCH 1/2] add udp jumboframe support --- pkg/config/config.go | 2 ++ pkg/sip/service.go | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/pkg/config/config.go b/pkg/config/config.go index 8e2dc354..b07c2854 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -80,6 +80,8 @@ type Config struct { NAT1To1IP string `yaml:"nat_1_to_1_ip"` ListenIP string `yaml:"listen_ip"` + // ENABLE JUMBO FRAME FOR UDP + UDPJumboFrame bool `yaml:"udp_jumbo_frame"` // if different from signaling IP MediaUseExternalIP bool `yaml:"media_use_external_ip"` MediaNAT1To1IP string `yaml:"media_nat_1_to_1_ip"` diff --git a/pkg/sip/service.go b/pkg/sip/service.go index 09ff5575..ef7cf879 100644 --- a/pkg/sip/service.go +++ b/pkg/sip/service.go @@ -19,6 +19,7 @@ import ( "crypto/tls" "errors" "fmt" + "github.com/livekit/sipgo/transport" "io" "log/slog" "net" @@ -73,6 +74,10 @@ func NewService(region string, conf *config.Config, mon *stats.Monitor, log logg if log == nil { log = logger.GetLogger() } + if conf.UDPJumboFrame { + transport.UDPMTUSize = 10000 + } + if conf.MediaTimeout <= 0 { conf.MediaTimeout = defaultMediaTimeout } From 3a7997dd7fed0a1bd4c02db3dbe1928de7c03acc Mon Sep 17 00:00:00 2001 From: Denys Smirnov Date: Thu, 11 Dec 2025 14:59:35 +0200 Subject: [PATCH 2/2] Rename the option to UDPMaxPayload. --- pkg/config/config.go | 3 +-- pkg/sip/service.go | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/pkg/config/config.go b/pkg/config/config.go index b07c2854..c86b8a5c 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -80,8 +80,7 @@ type Config struct { NAT1To1IP string `yaml:"nat_1_to_1_ip"` ListenIP string `yaml:"listen_ip"` - // ENABLE JUMBO FRAME FOR UDP - UDPJumboFrame bool `yaml:"udp_jumbo_frame"` + UDPMaxPayload int `yaml:"udp_max_payload"` // if different from signaling IP MediaUseExternalIP bool `yaml:"media_use_external_ip"` MediaNAT1To1IP string `yaml:"media_nat_1_to_1_ip"` diff --git a/pkg/sip/service.go b/pkg/sip/service.go index ef7cf879..bab8fe8a 100644 --- a/pkg/sip/service.go +++ b/pkg/sip/service.go @@ -19,7 +19,6 @@ import ( "crypto/tls" "errors" "fmt" - "github.com/livekit/sipgo/transport" "io" "log/slog" "net" @@ -30,6 +29,8 @@ import ( "sync/atomic" "time" + "github.com/livekit/sipgo/transport" + "google.golang.org/protobuf/types/known/emptypb" msdk "github.com/livekit/media-sdk" @@ -74,10 +75,9 @@ func NewService(region string, conf *config.Config, mon *stats.Monitor, log logg if log == nil { log = logger.GetLogger() } - if conf.UDPJumboFrame { - transport.UDPMTUSize = 10000 + if conf.UDPMaxPayload > 0 { + transport.UDPMTUSize = conf.UDPMaxPayload } - if conf.MediaTimeout <= 0 { conf.MediaTimeout = defaultMediaTimeout }