Jitsi call interrupts when a 3rd person joins in the room and keep restarting the session #164
krishnakingdom
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
jicofo-logs.txt
jvb-logs.txt
prosody-logs.txt
I have a jitsi setup in my Kubernetes server in the Azure AKS, I followed this helm repo to install https://github.com/jitsi-contrib/jitsi-helm.
It is working with two users but other user joined in the meeting it is keep failing and each user audio and video also not sharable.
and please check my values.yaml once if you find anything useful and i have a concern here does this Kubernetes flavour will allow to cerate prosody users directly or need to configure once pod created.
GIving these details for your reference.
kubectl get pods -n jitsi
NAME READY STATUS RESTARTS AGE
busybox-test 1/1 Running 96 (52m ago) 4d
jitsi-jitsi-meet-jicofo-69fbcd79f6-kklkw 1/1 Running 0 19m
jitsi-jitsi-meet-jvb-57745dd4d5-9pdks 1/1 Running 0 19m
jitsi-jitsi-meet-web-76c5975f8c-x8bjs 1/1 Running 0 38m
jitsi-prosody-0 1/1 Running 0 38m
kubectl get svc -n jitsi
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
jitsi-jitsi-meet-jvb LoadBalancer 10.0.15.204 10.224.0.6 10000:32124/UDP 4d
jitsi-jitsi-meet-web LoadBalancer 10.0.34.115 52.189.16.194 80:32024/TCP 6d23h
jitsi-prosody ClusterIP 10.0.46.94 5280/TCP,5281/TCP,5347/TCP,5222/TCP,5269/TCP 6d23h
jicofo-logs.txt
jvb-logs.txt
prosody-logs.txt
Value.yaml
global:
clusterDomain: cluster.local
Set your public URL
publicURL: "https://devvideo.abcccc"
Timezone
tz: UTC
Image pull policy
image:
pullPolicy: Always
Enable WebSockets for better performance
websockets:
colibri:
enabled: true
xmpp:
enabled: true
JWT Configuration
jwt:
enabled: false
appId: "jitsi-app"
appSecret: "jitsi-secret"
tokenAuthUrl: "https://devvideo.abcccc/jwt"
asapKeyServer: ""
allowEmptyToken: true
enableTokenVerification: false
enableRoomNameVerification: false
enableDomainVerification: false
enableUserVerification: false
enableModeratorVerification: false
enableExpirationVerification: false
enableNotBeforeVerification: false
enableIssuerVerification: false
enableAudienceVerification: false
enableSubjectVerification: false
enableRoomVerification: false
enableContextVerification: false
enableUserInfoVerification: false
enableAvatarVerification: false
enableNameVerification: false
enableEmailVerification: false
enableModeratorRoleVerification: false
web:
Enable authentication and guests
enableAuth: false
enableGuests: true
replicaCount: 1
image:
repository: jitsi/web
tag: stable-10184
service:
type: LoadBalancer
port: 80
targetPort: 80
protocol: TCP
name: http
ingress:
enabled: true
className: "nginx"
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/proxy-body-size: "100m"
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
nginx.ingress.kubernetes.io/proxy-connect-timeout: "3600"
nginx.ingress.kubernetes.io/websocket-services: "jitsi-web,jitsi-prosody"
nginx.ingress.kubernetes.io/proxy-http-version: "1.1"
nginx.ingress.kubernetes.io/proxy-buffer-size: "128k"
nginx.ingress.kubernetes.io/proxy-buffers-number: "4"
nginx.ingress.kubernetes.io/proxy-busy-buffers-size: "256k"
nginx.ingress.kubernetes.io/proxy-max-temp-file-size: "0"
nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
nginx.ingress.kubernetes.io/proxy-next-upstream: "error timeout http_502 http_503 http_504"
nginx.ingress.kubernetes.io/proxy-next-upstream-tries: "3"
nginx.ingress.kubernetes.io/proxy-next-upstream-timeout: "3600"
hosts:
- host: devvideo.abcccc
paths:
- "/"
- "/colibri-ws"
tls:
- secretName: jitsi-tls
hosts:
- devvideo.abcccc
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 250m
memory: 256Mi
Environment variables
env:
LOG_LEVEL: "debug"
JWT_APP_ID: "jitsi-app"
JWT_APP_SECRET: "jitsi-secret"
ENABLE_COLIBRI_WEBSOCKET: "true"
ENABLE_MULTI_STREAM: "true"
ENABLE_SIMULCAST: "true"
ENABLE_REMB: "true"
ENABLE_TRANSPORT_CC: "true"
ENABLE_ENDPOINT_VERIFICATION: "false"
ENABLE_P2P: "true"
P2P_PREFERRED_CODEC: "VP9"
DISABLE_AUDIO_LEVELS: "false"
ENABLE_NOISY_MIC_DETECTION: "true"
ENABLE_OPUS_RED: "true"
ENABLE_PREJOIN_PAGE: "true"
SHOW_PROMOTIONAL_CLOSE_PAGE: "false"
ENABLE_STATIC_CONTENT_CACHING: "true"
ENABLE_STATIC_CONTENT_COMPRESSION: "true"
ENABLE_STATIC_CONTENT_ETAGS: "true"
ENABLE_STATIC_CONTENT_LAST_MODIFIED: "true"
ENABLE_STATIC_CONTENT_MAX_AGE: "31536000"
ENABLE_STATIC_CONTENT_NO_CACHE: "false"
ENABLE_STATIC_CONTENT_NO_STORE: "false"
ENABLE_STATIC_CONTENT_PRIVATE: "false"
ENABLE_STATIC_CONTENT_PUBLIC: "true"
ENABLE_STATIC_CONTENT_MUST_REVALIDATE: "false"
ENABLE_STATIC_CONTENT_PROXY_REVALIDATE: "false"
ENABLE_STATIC_CONTENT_S_MAXAGE: "31536000"
ENABLE_STATIC_CONTENT_IMMUTABLE: "true"
ENABLE_STATIC_CONTENT_STALE_WHILE_REVALIDATE: "31536000"
ENABLE_STATIC_CONTENT_STALE_IF_ERROR: "31536000"
ENABLE_WEBSOCKET: "true"
WEBSOCKET_DOMAIN: "devvideo.abcccc"
WEBSOCKET_TLS: "true"
WEBSOCKET_PORT: "443"
WEBSOCKET_PATH: "/xmpp-websocket"
WEBSOCKET_PROTOCOL: "wss"
WEBSOCKET_ORIGIN: "https://devvideo.abcccc"
WEBSOCKET_RETRY_DELAY: "2000"
WEBSOCKET_DISABLE_TLS_VERIFICATION: "false"
WEBSOCKET_ENABLE_MULTI_STREAM: "true"
WEBSOCKET_ENABLE_SIMULCAST: "true"
WEBSOCKET_ENABLE_REMB: "true"
WEBSOCKET_ENABLE_TRANSPORT_CC: "true"
WEBSOCKET_ENABLE_P2P: "true"
WEBSOCKET_P2P_PREFERRED_CODEC: "VP9"
WEBSOCKET_DISABLE_AUDIO_LEVELS: "false"
WEBSOCKET_ENABLE_NOISY_MIC_DETECTION: "true"
WEBSOCKET_ENABLE_OPUS_RED: "true"
WEBSOCKET_ENABLE_PREJOIN_PAGE: "true"
WEBSOCKET_SHOW_PROMOTIONAL_CLOSE_PAGE: "false"
# Add video track handling configuration
ENABLE_VIDEO_TRACK: "true"
ENABLE_VIDEO_TRACK_INITIALIZATION: "true"
ENABLE_VIDEO_TRACK_ADDITION: "true"
ENABLE_VIDEO_TRACK_REMOVAL: "true"
ENABLE_VIDEO_TRACK_MUTING: "true"
ENABLE_VIDEO_TRACK_UNMUTING: "true"
ENABLE_VIDEO_TRACK_PAUSING: "true"
ENABLE_VIDEO_TRACK_RESUMING: "true"
ENABLE_VIDEO_TRACK_STOPPING: "true"
ENABLE_VIDEO_TRACK_STARTING: "true"
ENABLE_VIDEO_TRACK_RESTARTING: "true"
ENABLE_VIDEO_TRACK_RECONNECTING: "true"
ENABLE_VIDEO_TRACK_RECONNECTED: "true"
ENABLE_VIDEO_TRACK_ERROR: "true"
ENABLE_VIDEO_TRACK_WARNING: "true"
ENABLE_VIDEO_TRACK_INFO: "true"
ENABLE_VIDEO_TRACK_DEBUG: "true"
ENABLE_VIDEO_TRACK_TRACE: "true"
ENABLE_VIDEO_TRACK_VERBOSE: "true"
ENABLE_VIDEO_TRACK_SILENT: "true"
ENABLE_VIDEO_TRACK_LOUD: "true"
ENABLE_VIDEO_TRACK_QUIET: "true"
ENABLE_VIDEO_TRACK_NOISY: "true"
ENABLE_VIDEO_TRACK_CLEAR: "true"
ENABLE_VIDEO_TRACK_FUZZY: "true"
ENABLE_VIDEO_TRACK_SHARP: "true"
ENABLE_VIDEO_TRACK_BLURRY: "true"
ENABLE_VIDEO_TRACK_PIXELATED: "true"
ENABLE_VIDEO_TRACK_BLOCKY: "true"
ENABLE_VIDEO_TRACK_SMOOTH: "true"
ENABLE_VIDEO_TRACK_CHOPPY: "true"
ENABLE_VIDEO_TRACK_STUTTERING: "true"
ENABLE_VIDEO_TRACK_FREEZING: "true"
ENABLE_VIDEO_TRACK_LAGGING: "true"
ENABLE_VIDEO_TRACK_DELAYED: "true"
ENABLE_VIDEO_TRACK_BUFFERING: "true"
ENABLE_VIDEO_TRACK_LOADING: "true"
ENABLE_VIDEO_TRACK_READY: "true"
ENABLE_VIDEO_TRACK_ENDED: "true"
ENABLE_VIDEO_TRACK_ABORTED: "true"
ENABLE_VIDEO_TRACK_ERRORED: "true"
ENABLE_VIDEO_TRACK_SUSPENDED: "true"
ENABLE_VIDEO_TRACK_CANPLAY: "true"
ENABLE_VIDEO_TRACK_CANPLAYTHROUGH: "true"
ENABLE_VIDEO_TRACK_DURATIONCHANGE: "true"
ENABLE_VIDEO_TRACK_EMPTIED: "true"
ENABLE_VIDEO_TRACK_LOADEDDATA: "true"
ENABLE_VIDEO_TRACK_LOADEDMETADATA: "true"
ENABLE_VIDEO_TRACK_LOADSTART: "true"
ENABLE_VIDEO_TRACK_PROGRESS: "true"
ENABLE_VIDEO_TRACK_RATECHANGE: "true"
ENABLE_VIDEO_TRACK_TIMEUPDATE: "true"
ENABLE_VIDEO_TRACK_VOLUMECHANGE: "true"
# Update ICE configuration
ENABLE_ICE_TCP: "true"
ENABLE_ICE_UDP: "true"
ENABLE_ICE_TCP_MUX: "true"
ENABLE_ICE_UDP_MUX: "true"
ENABLE_ICE_RESTART: "true"
ENABLE_ICE_FAILED_RESTART: "true"
ENABLE_ICE_FAILED_TIMEOUT: "60000"
ENABLE_ICE_RESTART_MAX_RETRIES: "5"
ENABLE_ICE_RESTART_TIMEOUT: "60000"
ENABLE_ICE_RESTART_DELAY: "1000"
ENABLE_ICE_TCP_ENABLED: "true"
ENABLE_ICE_UDP_ENABLED: "true"
# Update session configuration
ENABLE_SESSION_RESTART: "true"
ENABLE_SESSION_FAILED_RESTART: "true"
ENABLE_SESSION_FAILED_TIMEOUT: "30000"
ENABLE_SESSION_RESTART_MAX_RETRIES: "5"
ENABLE_SESSION_RESTART_TIMEOUT: "60000"
ENABLE_SESSION_RESTART_DELAY: "1000"
XMPP configuration
xmpp:
XMPP domain
domain: "devvideo.abcccc"
XMPP server
server: "devvideo.abcccc"
XMPP muc domain
mucDomain: "conference.devvideo.abcccc"
XMPP internal muc domain
internalMucDomain: "internal-muc.devvideo.abcccc"
XMPP guest domain
guestDomain: "guest.devvideo.abcccc"
componentSecret: "component-secret"
password: "prosody-password"
Prosody configuration
prosody:
Prosody domain
domain: "devvideo.abcccc"
Prosody muc domain
mucDomain: "conference.devvideo.abcccc"
Prosody internal muc domain
internalMucDomain: "internal-muc.devvideo.abcccc"
Prosody guest domain
guestDomain: "guest.devvideo.abcccc"
image:
repository: jitsi/prosody
tag: stable-8044
Service configuration with correct selector labels
service:
type: ClusterIP
ports:
bosh-insecure: 5280
bosh-secure: 5281
xmpp-component: 5347
xmpp-c2s: 5222
xmpp-s2s: 5269
selector:
app.kubernetes.io/instance: jitsi
app.kubernetes.io/name: prosody
Add readiness probe configuration
readinessProbe:
httpGet:
path: /http-bind
port: bosh-insecure
scheme: HTTP
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
Enable auto-restart
extraEnvs:
- name: ENABLE_AUTO_RESTART
value: "true"
- name: ENABLE_AUTH
value: "false"
- name: ENABLE_GUESTS
value: "true"
- name: ENABLE_ANONYMOUS
value: "true"
- name: XMPP_WEBSOCKET
value: "true"
- name: XMPP_WEBSOCKET_PORT
value: "5280"
- name: XMPP_WEBSOCKET_DOMAIN
value: "devvideo.abcccc"
- name: XMPP_WEBSOCKET_TLS
value: "true"
- name: XMPP_WEBSOCKET_PREFIX
value: "/xmpp-websocket"
- name: XMPP_WEBSOCKET_SERVICE_NAME
value: "jitsi-prosody"
- name: XMPP_C2S_BIND_ADDRESS
value: "0.0.0.0"
- name: XMPP_C2S_PORT
value: "5222"
Configure prosody modules
globalModules:
- "mod_roster"
- "mod_register"
- "mod_watchregistrations"
- "mod_admin_adhoc"
- "mod_auth_anonymous"
- "mod_auth_token"
- "mod_auto_restart"
- "mod_muc"
- "mod_muc_meeting_id"
- "mod_muc_domain_mapper"
- "mod_muc_lobby_rooms"
- "mod_muc_breakout_rooms"
- "mod_av_moderation"
- "mod_speakerstats"
- "mod_conference_duration"
- "mod_end_conference"
- "mod_websocket"
- "mod_bosh"
Add auto-restart configuration
globalConfig:
- "auto_restart_modules = { 'all' }"
- "auto_restart_interval = 3600"
- "auto_restart_time = '03:00'"
- "muc_component = 'conference.devvideo.abcccc'"
- "internal_muc_component = 'internal-muc.devvideo.abcccc'"
- "guest_muc_component = 'guest.devvideo.abcccc'"
- "lobby_muc_component = 'lobby.devvideo.abcccc'"
- "breakout_muc_component = 'breakout.devvideo.abcccc'"
- "av_moderation_component = 'avmoderation.devvideo.abcccc'"
- "speakerstats_component = 'speakerstats.devvideo.abcccc'"
- "conference_duration_component = 'conferenceduration.devvideo.abcccc'"
- "end_conference_component = 'endconference.devvideo.abcccc'"
- "focus_component = 'focus.devvideo.abcccc'"
- "websocket_origin = 'https://devvideo.abcccc'"
- "bosh_origin = 'https://devvideo.abcccc'"
- "c2s_require_encryption = false"
- "s2s_require_encryption = false"
- "allow_registration = true"
- "authentication = 'anonymous'"
- "anonymous_domain = 'guest.devvideo.abcccc'"
- "anonymous_protocol = 'both'"
- "anonymous_mechanism = 'anonymous'"
- "anonymous_allow_guest = true"
- "anonymous_allow_guest_moderator = true"
- "anonymous_allow_guest_audio = true"
- "anonymous_allow_guest_video = true"
- "anonymous_allow_guest_screenshare = true"
- "anonymous_allow_guest_recording = true"
- "anonymous_allow_guest_live_streaming = true"
- "anonymous_allow_guest_transcription = true"
- "anonymous_allow_guest_breakout_rooms = true"
- "anonymous_allow_guest_av_moderation = true"
- "anonymous_allow_guest_speakerstats = true"
- "anonymous_allow_guest_conference_duration = true"
- "anonymous_allow_guest_end_conference = true"
- "anonymous_allow_guest_knocking = true"
- "anonymous_allow_guest_lobby = true"
- "allow_empty_token = true"
- "allow_unencrypted_plain_auth = true"
- "https_ports = { }"
- "ssl = {
key = '/etc/prosody/certs/devvideo.abcccc.key';
certificate = '/etc/prosody/certs/devvideo.abcccc.crt';
}"
- "unlimited_jids = { 'focus@auth.devvideo.abcccc', 'jvb@auth.devvideo.abcccc' }"
- "component_interface = '0.0.0.0'"
- "component_ports = { 5347 }"
- "admins = { 'focus@auth.devvideo.abcccc' }"
- "modules_enabled = {
'admin_adhoc';
'bosh';
'websocket';
'http_files';
'ping';
'roster';
'saslauth';
'tls';
'dialback';
'disco';
'posix';
'log_auth';
'version';
'uptime';
'time';
'register';
'admin_telnet';
}"
- "VirtualHost "devvideo.abcccc""
- " authentication = "anonymous""
- " allow_anonymous_s2s = true"
- " allow_anonymous_authentication = true"
- " anonymous_protocol = "both""
- " c2s_require_encryption = false"
- " s2s_require_encryption = false"
- " s2s_secure_auth = false"
- " s2s_insecure_domains = { "devvideo.abcccc" }"
- " s2s_secure_domains = { }"
- " ssl = {"
- " key = "/etc/prosody/certs/devvideo.abcccc.key";"
- " certificate = "/etc/prosody/certs/devvideo.abcccc.crt";"
- " }"
- "VirtualHost "auth.devvideo.abcccc""
- " authentication = "internal_hashed""
- " storage = "internal""
- " admins = { "focus@auth.devvideo.abcccc" }"
- " modules_enabled = {"
- " "ping";"
- " "register";"
- " "saslauth";"
- " }"
- " ssl = {"
- " key = "/etc/prosody/certs/auth.devvideo.abcccc.key";"
- " certificate = "/etc/prosody/certs/auth.devvideo.abcccc.crt";"
- " }"
- " -- Create users"
- " -- Focus user"
- " focus = {"
- " password = "jitsi-secret";"
- " roles = { "admin" };"
- " }"
- " -- JVB user"
- " jvb = {"
- " password = "jitsi-secret";"
- " roles = { "participant" };"
- " }"
- "Component "conference.devvideo.abcccc" "muc""
- " storage = "memory""
- " modules_enabled = {"
- " "muc_meeting_id";"
- " "muc_domain_mapper";"
- " "token_verification";"
- " }"
- " admins = { "focus@auth.devvideo.abcccc" }"
- " muc_room_cache_size = 1000"
- " muc_room_locking = false"
- " muc_room_default_public_jids = true"
- "Component "internal-muc.devvideo.abcccc" "muc""
- " storage = "memory""
- " modules_enabled = {"
- " "ping";"
- " }"
- " admins = { "focus@auth.devvideo.abcccc" }"
- " muc_room_cache_size = 1000"
- " muc_room_locking = false"
- " muc_room_default_public_jids = true"
- "Component "focus.devvideo.abcccc""
- " component_secret = "jitsi-secret""
- "Component "auth.devvideo.abcccc""
- " component_secret = "jitsi-secret""
jicofo:
replicaCount: 1
image:
repository: jitsi/jicofo
tag: stable-10184
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 250m
memory: 256Mi
Additional Jicofo configuration
env:
# XMPP configuration
XMPP_DOMAIN: "devvideo.abcccc"
XMPP_SERVER: "jitsi-prosody"
XMPP_PORT: "5222"
XMPP_SECRET: "jitsi-secret"
XMPP_AUTH_DOMAIN: "auth.devvideo.abcccc"
XMPP_INTERNAL_MUC_DOMAIN: "internal-muc.devvideo.abcccc"
XMPP_MUC_DOMAIN: "conference.devvideo.abcccc"
XMPP_RECORDER_DOMAIN: "recorder.devvideo.abcccc"
jvb:
Enable Node IP autodetection
useNodeIP: true
publicIPs: []
service:
enabled: true
type: LoadBalancer
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
ports:
- name: rtp-udp
port: 10000
protocol: UDP
targetPort: 10000
- name: colibri-rest
port: 8080
protocol: TCP
targetPort: 8080
- name: ice-tcp
port: 4443
protocol: TCP
targetPort: 4443
- name: websocket
port: 443
protocol: TCP
targetPort: 443
- name: ice-udp-1
port: 10001
protocol: UDP
targetPort: 10001
- name: ice-udp-2
port: 10002
protocol: UDP
targetPort: 10002
- name: ice-tcp-1
port: 4444
protocol: TCP
targetPort: 4444
- name: ice-tcp-2
port: 4445
protocol: TCP
targetPort: 4445
- name: http
port: 9090
protocol: TCP
targetPort: 9090
Enable host network for direct UDP access
useHostNetwork: true
useHostPort: true
hostPorts:
- name: rtp-udp
port: 10000
protocol: UDP
- name: colibri-rest
port: 8080
protocol: TCP
- name: ice-tcp
port: 4443
protocol: TCP
- name: websocket
port: 443
protocol: TCP
- name: ice-udp-1
port: 10001
protocol: UDP
- name: ice-udp-2
port: 10002
protocol: UDP
- name: ice-tcp-1
port: 4444
protocol: TCP
- name: ice-tcp-2
port: 4445
protocol: TCP
Disable autoscaling for testing
autoscaling:
enabled: false
Additional JVB configuration
env:
# XMPP configuration
XMPP_SERVER: jitsi-prosody
XMPP_PORT: "5222"
XMPP_DOMAIN: "auth.devvideo.abcccc"
XMPP_AUTH_DOMAIN: "auth.devvideo.abcccc"
XMPP_INTERNAL_MUC_DOMAIN: "internal-muc.devvideo.abcccc"
XMPP_MUC_DOMAIN: "conference.devvideo.abcccc"
JVB_AUTH_USER: "jvb"
JVB_AUTH_PASSWORD: "jitsi-secret"
JVB_BREWERY_MUC: jvbbrewery
Disable recording for testing
recording:
enabled: false
Enable metrics for monitoring
metrics:
enabled: true
prometheus:
enabled: true
All reactions