https://livekit.io logo
Join Slack
Powered by
# self-hosting
  • p

    powerful-kitchen-37205

    10/20/2025, 3:41 PM
    I need to understand whats the problem exactly for my following set up ? LiveKit Agent Audio Failure (No UDP/RTP Flow) Symptom A Python Agent successfully connects to a LiveKit room, establishes signaling, and subscribes to a publishing Bridge client's audio track. However, zero audio packets (UDP/RTP) are received by the Agent. The Agent remains in a "waiting for audio" state. Server & SDK Details • LiveKit Server: Self hosted on CentOS. • Agent SDK: LiveKit Agent Framework / Python. • Failure Point: WebRTC Media Plane (UDP) only. Confirmed Working (Signaling is OK) 1. Subscription is Confirmed: LiveKit CLI (
    lk room participants list
    ) shows the Agent is successfully subscribed to the Bridge's audio track (
    muted: false
    ). 2. Health Check is OK:
    /health
    endpoint returns "ok." Confirmed Troubleshooting 1. Firewall: UDP ports 50000-60000 and TCP ports 7880/7881 are open on the CentOS firewall (
    firewalld
    ). 2. NAT/IP:
    livekit.yaml
    is configured with
    use_external_ip: true
    and the server's public IP is explicitly set in
    node_ip
    to handle NAT. Request The signaling is correct, and the ports are open, yet no media flows. This suggests an issue with the LiveKit server's UDP routing/forwarding on the CentOS platform. Any guidance on specific server-side logging or configuration unique to WebRTC media flow troubleshooting would be greatly appreciated.
  • f

    freezing-teacher-57973

    10/23/2025, 10:05 AM
    How to make the livekit server advertise both private IP and public IP as ICE candidates? Current setup: • livekit-server runs in kubernetes cluster in Azure. • public loadbalancer exposes livekit-server to internet with UDP-MUX ports open for media exchange and HTTP port for signaling • The following rtc config with TURN disabled
    Copy code
    rtc:
        udp_port: 7882-7892
        use_external_ip: false
        node_ip: 172.xxx.xx.xx    <<< public ip of load balancer
    The configuration works well for all clients: those running inside the cluster and outside but "internal clients" also uses the same public IP of the load balancer to connect to the server. This is adding unnecessary inbound/outbound network cost. Also there a potential latency impact with additional network hops (I am not experiencing this ATM). So my question is, how to make the server advertise both the internal and public IP addresses so that internal clients with choose the internal IP address and the public clients will choose public IP address? There is an old github issue about this too. Also I am bit reluctant of enabling TURN due to latency impact. It took me quite a while to bring down the latency to acceptable level. I don't want to lose those gains by using TURN. Any input will be very helpful. Thanks in advance! https://github.com/livekit/livekit/issues/1898
    b
    f
    • 3
    • 4
  • r

    red-park-73886

    10/25/2025, 7:57 PM
    I am new to LiveKit. I have compiled the server and run it using '--dev' parameter. I can connect the client using ws://localhost:7880 on same machine but I can not connect from another machine using ws://192.168.0.19:7880. Do I need a config file?
    f
    • 2
    • 2
  • s

    strong-flag-7078

    10/26/2025, 4:50 PM
    hi! is livekit compatible with valkey?
  • s

    strong-flag-7078

    10/26/2025, 4:51 PM
    it should be compatible if it is compatible with Redis OSS 7.2
  • w

    wonderful-carpet-2571

    10/27/2025, 9:53 AM
    Copy code
    room": "<redacted>", "participant": "<redacted>", "connID": "CO_Uz7oj2ERVjr2", "error": "request canceled"}
    2025-10-27 09:10:33.905Z <http://github.com/livekit/livekit-server/pkg/routing.(*LocalRouter).StartParticipantSignalWithNodeID|github.com/livekit/livekit-server/pkg/routing.(*LocalRouter).StartParticipantSignalWithNodeID>
    2025-10-27 09:10:33.905Z        /workspace/pkg/routing/localrouter.go:113
    2025-10-27 09:10:33.905Z <http://github.com/livekit/livekit-server/pkg/routing.(*RedisRouter).StartParticipantSignal|github.com/livekit/livekit-server/pkg/routing.(*RedisRouter).StartParticipantSignal>
    2025-10-27 09:10:33.905Z        /workspace/pkg/routing/redisrouter.go:169
    2025-10-27 09:10:33.905Z <http://github.com/livekit/livekit-server/pkg/service.(*RTCService).startConnection|github.com/livekit/livekit-server/pkg/service.(*RTCService).startConnection>
    2025-10-27 09:10:33.905Z        /workspace/pkg/service/rtcservice.go:607
    2025-10-27 09:10:33.905Z <http://github.com/livekit/livekit-server/pkg/service.(*RTCService).ServeHTTP|github.com/livekit/livekit-server/pkg/service.(*RTCService).ServeHTTP>
    2025-10-27 09:10:33.905Z        /workspace/pkg/service/rtcservice.go:277
    2025-10-27 09:10:33.905Z net/http.(*ServeMux).ServeHTTP
    2025-10-27 09:10:33.905Z        /usr/local/go/src/net/http/server.go:2822
    2025-10-27 09:10:33.905Z <http://github.com/urfave/negroni/v3.(*Negroni).UseHandler.Wrap.func1|github.com/urfave/negroni/v3.(*Negroni).UseHandler.Wrap.func1>
    2025-10-27 09:10:33.905Z        /go/pkg/mod/github.com/urfave/negroni/v3@v3.1.1/negroni.go:59
    2025-10-27 09:10:33.905Z <http://github.com/urfave/negroni/v3.HandlerFunc.ServeHTTP|github.com/urfave/negroni/v3.HandlerFunc.ServeHTTP>
    2025-10-27 09:10:33.905Z        /go/pkg/mod/github.com/urfave/negroni/v3@v3.1.1/negroni.go:33
    2025-10-27 09:10:33.905Z <http://github.com/urfave/negroni/v3.middleware.ServeHTTP|github.com/urfave/negroni/v3.middleware.ServeHTTP>
    2025-10-27 09:10:33.905Z        /go/pkg/mod/github.com/urfave/negroni/v3@v3.1.1/negroni.go:51
    2025-10-27 09:10:33.905Z net/http.HandlerFunc.ServeHTTP
    2025-10-27 09:10:33.905Z        /usr/local/go/src/net/http/server.go:2294
    2025-10-27 09:10:33.905Z <http://github.com/livekit/livekit-server/pkg/service.(*APIKeyAuthMiddleware).ServeHTTP|github.com/livekit/livekit-server/pkg/service.(*APIKeyAuthMiddleware).ServeHTTP>
    2025-10-27 09:10:33.905Z        /workspace/pkg/service/auth.go:107
    2025-10-27 09:10:33.905Z <http://github.com/urfave/negroni/v3.middleware.ServeHTTP|github.com/urfave/negroni/v3.middleware.ServeHTTP>
    2025-10-27 09:10:33.905Z        /go/pkg/mod/github.com/urfave/negroni/v3@v3.1.1/negroni.go:51
    2025-10-27 09:10:33.905Z <http://github.com/livekit/livekit-server/pkg/service.RemoveDoubleSlashes|github.com/livekit/livekit-server/pkg/service.RemoveDoubleSlashes>
    2025-10-27 09:10:33.905Z        /workspace/pkg/service/utils.go:49
    2025-10-27 09:10:33.905Z <http://github.com/urfave/negroni/v3.HandlerFunc.ServeHTTP|github.com/urfave/negroni/v3.HandlerFunc.ServeHTTP>
    2025-10-27 09:10:33.905Z        /go/pkg/mod/github.com/urfave/negroni/v3@v3.1.1/negroni.go:33
    2025-10-27 09:10:33.905Z <http://github.com/urfave/negroni/v3.middleware.ServeHTTP|github.com/urfave/negroni/v3.middleware.ServeHTTP>
    2025-10-27 09:10:33.905Z        /go/pkg/mod/github.com/urfave/negroni/v3@v3.1.1/negroni.go:51
    2025-10-27 09:10:33.905Z <http://github.com/rs/cors.(*Cors).ServeHTTP|github.com/rs/cors.(*Cors).ServeHTTP>
    2025-10-27 09:10:33.905Z        /go/pkg/mod/github.com/rs/cors@v1.11.1/cors.go:324
    2025-10-27 09:10:33.905Z <http://github.com/urfave/negroni/v3.middleware.ServeHTTP|github.com/urfave/negroni/v3.middleware.ServeHTTP>
    2025-10-27 09:10:33.905Z        /go/pkg/mod/github.com/urfave/negroni/v3@v3.1.1/negroni.go:51
    2025-10-27 09:10:33.905Z <http://github.com/urfave/negroni/v3.(*Recovery).ServeHTTP|github.com/urfave/negroni/v3.(*Recovery).ServeHTTP>
    2025-10-27 09:10:33.905Z        /go/pkg/mod/github.com/urfave/negroni/v3@v3.1.1/recovery.go:210
    2025-10-27 09:10:33.905Z <http://github.com/urfave/negroni/v3.middleware.ServeHTTP|github.com/urfave/negroni/v3.middleware.ServeHTTP>
    2025-10-27 09:10:33.905Z        /go/pkg/mod/github.com/urfave/negroni/v3@v3.1.1/negroni.go:51
    2025-10-27 09:10:33.905Z <http://github.com/urfave/negroni/v3.(*Negroni).ServeHTTP|github.com/urfave/negroni/v3.(*Negroni).ServeHTTP>
    2025-10-27 09:10:33.905Z        /go/pkg/mod/github.com/urfave/negroni/v3@v3.1.1/negroni.go:111
    2025-10-27 09:10:33.905Z net/http.serverHandler.ServeHTTP
    2025-10-27 09:10:33.905Z        /usr/local/go/src/net/http/server.go:3301
    2025-10-27 09:10:33.905Z net/http.(*conn).serve
    2025-10-27 09:10:33.905Z        /usr/local/go/src/net/http/server.go:2102
    2025-10-27 09:10:34.002Z 2025-10-27T09:10:34.002Z       ERROR   livekit routing/localrouter.go:113      could not handle new participant        {"room": "<redacted>", "participant": "<redacted>", "connID": "CO_z8zbfBe3n5o9", "error": "request canceled"}
    I'm running livekit server on a beefy server with these limts, but we still end up throttling, is there a way to horizontally scale the RTC server? my deployment albeit has all the resources i never hit the limit but the code still starts to fail when we have about 250-300 ish rooms open concurrent
    Copy code
    resources:
      requests:
        cpu: 13500m    # ~13.5 cores
        memory: 55Gi   # ~55GiB
      limits:
        cpu: 15000m    # full 16 cores
        memory: 62Gi   # full 64GiB
  • r

    rapid-van-16677

    10/28/2025, 4:28 PM
    Anybody who can work as freelancer and can deploy the livekit server and livekit sip?
    ➕ 2
    s
    a
    f
    • 4
    • 8
  • s

    some-lamp-76309

    10/28/2025, 6:52 PM
    Hi folks, Can someone help me with any architecture diagram and guides / Helm charts for reference to deploy on K8s the following: • Livekit Server on Kubernetes // Scalable architecture using prewarming of worker nodes • SIP server to handle outbound call // Also scaling I'm using Livekit self hosted version and not the Livekit cloud (edited)
    r
    s
    • 3
    • 7
  • f

    fast-hairdresser-13908

    10/29/2025, 11:44 AM
    how to use Azure OPen AI for STT and TTS, what to configure in .env?
    s
    • 2
    • 1
  • b

    billions-refrigerator-97088

    10/30/2025, 2:59 PM
    I have created a new project, created a respective sandbox, and installed it locally as well. The problem I am facing when i am calling ai is not responding anything what might be the issue in there any idea?
  • b

    bitter-grass-45470

    10/31/2025, 6:52 AM
    Hello, I am not able to see
    input
    in Langfuse. Following this example: https://github.com/livekit/agents/blob/main/examples/voice_agents/langfuse_trace.py Is anyone using Langfuse? how does traces look for you?
    ➕ 1
  • g

    green-optician-80808

    11/01/2025, 1:17 PM
    hi im having some issues with the server, to be specific with the turn settings, as it needs 2 tls files apparently, and im using plesk but apparently the current version has like one single file for tls but i need a key and cert file. how would i do that?
    s
    • 2
    • 1
  • g

    green-parrot-24267

    11/03/2025, 3:57 AM
    I have 50 workers running in Kubernetes, each worker with 4-core CPU. They are running alright but i notice in the 50 workers, some are more idle than the others. Attached images are examples of 2 workers, one is very "busy" and the other is idle most of the time. The idle worker use less CPU and also process fewer jobs. My Worker Options settings are: • num_idle_processes = 0 • load_threshold = 0.5 Has anyone run into similar issue? Really appreciated if you can share some thoughts on why this happens and what the possible solutions are.
    s
    • 2
    • 1
  • p

    prehistoric-printer-73777

    11/03/2025, 8:33 AM
    have any one tried to self host livekit server on (Google Kubernetes Engine) GKE, I have an issue that the agent is trying to join the room but it fails at some point and the agent never successfully enters that room
    f
    • 2
    • 1
  • b

    brainy-shoe-64693

    11/03/2025, 11:25 AM
    Has anyone tried self hosting livekit sip on eks, if so can anyone share some references
  • w

    white-oxygen-36812

    11/03/2025, 4:37 PM
    Hey team, we are having a few cases of people receiving this error:
    Copy code
    Could not connect to room: could not establish signal connection: Websocket got closed during a (re)connection attempt
    It seems they didn't reach livekit server. I guess due to some firewall or network protection. We use Cloudflare in our domain. Any recommendation?
  • s

    sparse-coat-14874

    11/04/2025, 1:43 PM
    Good morning I'm having a problem sending calls to the SIP provider, the LK needs to put the fromdomain to indicate the ip/domain that I'm registering to make the call, I didn't find this option in the trunk configuration, could anyone help me?
  • c

    chilly-balloon-11273

    11/06/2025, 1:41 AM
    Good morning everyone, I am trying to build a voice solution using voice bots, which is working well, but the request is getting failed for more than 5 request, how can scale it to 500 request per second, does anyone have fully working scaled code.
  • b

    brainy-shoe-64693

    11/07/2025, 10:42 AM
    Hello, Our team is working on setting up LiveKit on EKS, and we're specifically looking into deploying the LiveKit SIP server. Has anyone had experience with deploying the LiveKit SIP server on EKS? I have a few questions related to the ports that need to be exposed, as our DevOps team has raised some security concerns regarding this.
  • a

    ancient-pizza-45206

    11/08/2025, 6:53 AM
    Hey everyone 👋 I’m running a self-hosted LiveKit server and was wondering — is there any way to implement BVC (Background Voice Cancellation) or similar advanced noise cancellation on a self-hosted setup? I know the enhanced Krisp-based noise cancellation is available on LiveKit Cloud, but has anyone tried enabling or replicating that feature in self-hosted deployments? Any guidance or ideas on how to integrate BVC manually would be super helpful! 🙏
  • i

    important-eve-8964

    11/08/2025, 6:02 PM
    Hi everyone, I am running a self-hosted LiveKit (server, agent, and SIP) and trying to integrate with Twilio. I'm hitting an issue when attempting to create a SIP dispatch rule using the CLI. The command consistently returns an
    invalid_argument: missing rule
    error, even when I believe I am following the documented structure. The Setup & Issue 1. Command Execution:
    Copy code
    ~/project# lk sip dispatch create dispatch-rule.json
    Using default project [--project_name]
    twirp error invalid_argument: missing rule
    2.
    dispatch-rule.json
    content:
    Copy code
    {
      "dispatch_rule": {
        "rule": {
          "dispatchRuleIndividual": {
            "roomPrefix": "call-"
          }
        }
      }
    }
    Troubleshooting Attempted I have already reviewed and tried solutions from the official documentation and related GitHub issues: • LiveKit Docs: Checked the
    dispatch-rule
    format and setup guide (specifically [ https://docs.livekit.io/sip/dispatch-rule ]). • GitHub Issue: Referenced [https://github.com/livekit/livekit/issues/3789], which discusses dispatch rule creation, but the solution hasn't resolved my specific "missing rule" error. Has anyone encountered this specific
    twirp error invalid_argument: missing rule
    when using the
    lk sip dispatch create
    command? Thanks in advance for any insights!
  • b

    busy-cricket-46386

    11/08/2025, 6:15 PM
    Hey everyone, I'm currently trying to set up a self-hosted LiveKit (server, agent, and SIP) and integrate it with an inbound call from my Twilio number. The service stack seems to be running, but every time I attempt an inbound call, the LiveKit SIP service immediately closes the call with a 486 "flood" error. The Issue & Log Evidence The SIP service successfully receives the
    INVITE
    but rejects it seconds later. • Key Log Line: The call is closed with status 486 and reason "flood". This points to an internal rate-limiting mechanism being triggered in the LiveKit SIP component. Code snippet:
    Copy code
    livekit-sip | 2025-11-08T18:02:56.280Z INFO sip sip/inbound.go:782 Closing inbound call {"nodeID": "...", "callID": "SCL_bpEBHK2W5LmX", "fromIP": "...", "fromHost": "...", "status": 486, "reason": "flood"}
    My Setup Context • LiveKit Components: Self-hosted LiveKit Server, Agent, and SIP. • Call Origin: An inbound call originated from Twilio (which then connects to my SIP endpoint). • Error Cause: The log suggests the call is being rejected for perceived "flooding," even if it is a single legitimate call attempt. Is there a specific configuration or environment variable in the LiveKit SIP service that controls the inbound call rate-limiting (e.g., calls per second from a single IP)? Or any solution for this? Thanks!
  • f

    few-hamburger-81561

    11/09/2025, 10:46 PM
    Hey! May we add (I can contribute myself if am not missing sm) kubernetes.io/ingress.global-static-ip-name: {{ .Values.loadBalancer.staticIpName }} to both "gke-managed-cert" and "gke" in here https://github.com/livekit/livekit-helm/blob/master/livekit-server/templates/ingress.yaml ?
  • b

    boundless-battery-65494

    11/10/2025, 1:02 PM
    Hi folks 👋 Has anyone here successfully implemented custom TTS using Coqui TTS in your LiveKit project? If yes, could you please share a code snippet or reference documentation? I’ve found a few links online, but none of them were very helpful. Any pointers would be greatly appreciated!
  • a

    alert-farmer-13558

    11/11/2025, 6:58 AM
    Hi I build production-ready, scalable platforms — from AI agents and automation systems to blockchain dApps and cloud-native SaaS applications. - AI/ML → LLMs (OpenAI, Claude, Gemini, Llama, fine-tuning) • RAG • Vector DBs (Pinecone, Chroma, Weaviate, Redis) • Voice AI (Retell, Vapi) • LangChain / LangGraph • n8n / Zapier automations • Computer Vision • NLP • TTS/ASR • PyTorch • TensorFlowrecognition/TTS, ML frameworks(PyTorch, TensorFlow, LangChain, OpenAI API),Autonomous agents & task pipelines. - Blockchain → Smart Contracts • DeFi • DEX • NFTs • Solana • Ethereum • Polygon - Web & Mobile→ Next.js • React • Node.js • NestJS • FastAPI • Django • GraphQL• React Native, Expo, Flutter - Cloud / DevOps → AWS • Azure • Supabase • Firebase • Docker • Kubernetes • PostgreSQL • MongoDB. I’ve built scalable systems combining these technologies — from AI agents and automation tools to blockchain dApps and modern SaaS platforms. You can check my portfolio here: https://chee-portfolio.onrender.com If you need developer for a current or new project idea(business), please DM. 🚀 Thanks
  • s

    stocky-salesclerk-58931

    11/11/2025, 7:29 AM
    Hello everyone, @refined-appointment-81829, I’m facing some issues with the inbound SIP integration between Asterisk and LiveKit SIP. I’ve created the
    inbound_trunk.json
    file with the correct IP addresses and numbers, along with the dispatch rule and agent configuration. On the other side, my Asterisk setup is properly configured. When I originate a call from Asterisk, it keeps ringing continuously. However, on the LiveKit side, my agent gets triggered and starts generating streams after the call starts. In the PCAP and SIP data, there is no 200 OK / ACK message, and from the Asterisk side, the call keeps ringing. I’m not able to pinpoint the exact issue — I’m confused because if the SIP session isn’t accepted, how is the agent getting triggered?
    e
    • 2
    • 1
  • k

    kind-engineer-18120

    11/11/2025, 8:07 AM
    Is it possible to move participant from one room to another room in self-hosted livekit?
  • d

    delightful-planet-44653

    11/12/2025, 5:21 AM
    Hey everyone! I was wondering — how many agents (servers) are you all running for voice calls? Specifically: • Single-agent workflows • Multi-agent workflows And roughly how many concurrent calls are your setups able to handle? Just trying to get a sense of how others are scaling compared to our current setup.
  • b

    boundless-afternoon-2110

    11/12/2025, 10:46 PM
    Hello, everyone. Please advise if it is possible to install two LiveKit CLI (
    lk
    ) on one server. I need to launch two agents on one server without using Docker. Each agent belongs to its own project (in the cloud or self-hosted, it doesn’t matter). I added both projects to
    lk
    (LiveKit CLI), but I can’t enable both at the same time. Only one can be set as default. Therefore, I need either two
    lk
    or two simultaneously active projects.
  • f

    fancy-oil-75837

    11/14/2025, 6:39 AM
    Hi Team , i am facing the issue at this function
    Copy code
    LIVEKIT_URL: <http://livekit-server:7880>
      const participant = await sipClient.createSipParticipant(
          trunkId,
          phoneNumber,
          roomName,
          sipParticipantOptions
        );
    Following are the pararmter
    Copy code
    Creating SIP participant with parameters:
      trunkId: ST_8JTfsYKn3nmS
      phoneNumber: +918126131525
      roomName: support-room-ui
      options: {
      "participantIdentity": "agent-ui",
      "participantName": "agent-ui",
      "krispEnabled": true,
      "waitUntilAnswered": true,
      "hidePhoneNumber": false
    }
    Error I am getting
    Copy code
    Error message: twirp error unknown: update room failed: URL was not provided