sip-communicator.properties 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. {{ $ENABLE_TRANSCRIPTIONS := .Env.ENABLE_TRANSCRIPTIONS | default "0" | toBool -}}
  2. {{ $JIGASI_BREWERY_MUC := .Env.JIGASI_BREWERY_MUC | default "jigasibrewery" -}}
  3. {{ $JIGASI_XMPP_USER := .Env.JIGASI_XMPP_USER | default "jigasi" -}}
  4. {{ $JIGASI_JVB_TIMEOUT := .Env.JIGASI_JVB_TIMEOUT | default "30000" -}}
  5. {{ $JIGASI_LOCAL_REGION := .Env.JIGASI_LOCAL_REGION | default "" -}}
  6. {{ $BOSH_URL_PATTERN := .Env.BOSH_URL_PATTERN | default "" -}}
  7. {{ $USE_TRANSLATOR_IN_CONFERENCE := .Env.USE_TRANSLATOR_IN_CONFERENCE | default "0" | toBool -}}
  8. {{ $XMPP_AUTH_DOMAIN := .Env.XMPP_AUTH_DOMAIN | default "auth.meet.jitsi" -}}
  9. {{ $XMPP_MUC_DOMAIN := .Env.XMPP_MUC_DOMAIN | default "muc.meet.jitsi" -}}
  10. {{ $XMPP_GUEST_DOMAIN := .Env.XMPP_GUEST_DOMAIN | default "guest.meet.jitsi" -}}
  11. {{ $XMPP_INTERNAL_MUC_DOMAIN := .Env.XMPP_INTERNAL_MUC_DOMAIN | default "internal-muc.meet.jitsi" -}}
  12. {{ $XMPP_DOMAIN := .Env.XMPP_DOMAIN | default "meet.jitsi" -}}
  13. {{ $XMPP_PORT := .Env.XMPP_PORT | default "5222" -}}
  14. {{ $XMPP_SERVER := .Env.XMPP_SERVER | default "xmpp.meet.jitsi" -}}
  15. {{ $XMPP_SERVERS := splitList "," $XMPP_SERVER -}}
  16. {{ $SHUTDOWN_REST_ENABLED := .Env.SHUTDOWN_REST_ENABLED | default "false" | toBool -}}
  17. {{ $DISABLE_SIP := .Env.JIGASI_DISABLE_SIP | default "false" | toBool -}}
  18. {{/* assign env from context, preserve during range when . is re-assigned */}}
  19. {{ $TRUSTED_DOMAIN_LIST := .Env.JIGASI_TRUSTED_DOMAINS | default "" -}}
  20. {{ $TRUSTED_DOMAINS := splitList "," $TRUSTED_DOMAIN_LIST -}}
  21. {{ $ENV := .Env -}}
  22. net.java.sip.communicator.impl.protocol.SingleCallInProgressPolicy.enabled=false
  23. # Adjust opus encoder complexity
  24. net.java.sip.communicator.impl.neomedia.codec.audio.opus.encoder.COMPLEXITY=10
  25. # Disables packet logging
  26. net.java.sip.communicator.packetlogging.PACKET_LOGGING_ENABLED=false
  27. # Control REST Shutdown
  28. org.jitsi.jigasi.ENABLE_REST_SHUTDOWN={{ $SHUTDOWN_REST_ENABLED }}
  29. {{ if not $ENABLE_TRANSCRIPTIONS -}}
  30. # SIP account
  31. net.java.sip.communicator.impl.protocol.sip.acc1=acc1
  32. {{ if .Env.JIGASI_SIP_SERVER }}
  33. net.java.sip.communicator.impl.protocol.sip.acc1.PROXY_ADDRESS={{ .Env.JIGASI_SIP_SERVER }}
  34. net.java.sip.communicator.impl.protocol.sip.acc1.PROXY_AUTO_CONFIG=false
  35. net.java.sip.communicator.impl.protocol.sip.acc1.PROXY_PORT={{ .Env.JIGASI_SIP_PORT | default "5060" }}
  36. net.java.sip.communicator.impl.protocol.sip.acc1.PREFERRED_TRANSPORT={{ .Env.JIGASI_SIP_TRANSPORT | default "UDP" }}
  37. {{ end }}
  38. {{ if .Env.JIGASI_ENABLE_SDES_SRTP | default "0" | toBool }}
  39. net.java.sip.communicator.impl.protocol.sip.acc1.SAVP_OPTION=1
  40. net.java.sip.communicator.impl.protocol.sip.acc1.DEFAULT_ENCRYPTION=true
  41. net.java.sip.communicator.impl.protocol.sip.acc1.DEFAULT_SIPZRTP_ATTRIBUTE=false
  42. net.java.sip.communicator.impl.protocol.sip.acc1.ENCRYPTION_PROTOCOL.ZRTP=0
  43. net.java.sip.communicator.impl.protocol.sip.acc1.ENCRYPTION_PROTOCOL.SDES=1
  44. net.java.sip.communicator.impl.protocol.sip.acc1.ENCRYPTION_PROTOCOL.DTLS-SRTP=0
  45. net.java.sip.communicator.impl.protocol.sip.acc1.ENCRYPTION_PROTOCOL_STATUS.ZRTP=false
  46. net.java.sip.communicator.impl.protocol.sip.acc1.ENCRYPTION_PROTOCOL_STATUS.SDES=true
  47. net.java.sip.communicator.impl.protocol.sip.acc1.ENCRYPTION_PROTOCOL_STATUS.DTLS-SRTP=false
  48. net.java.sip.communicator.impl.protocol.sip.acc1.SDES_CIPHER_SUITES=AES_CM_128_HMAC_SHA1_80,AES_CM_128_HMAC_SHA1_32
  49. {{ end }}
  50. net.java.sip.communicator.impl.protocol.sip.acc1.ACCOUNT_UID=SIP\:{{ .Env.JIGASI_SIP_URI }}
  51. net.java.sip.communicator.impl.protocol.sip.acc1.PASSWORD={{ .Env.JIGASI_SIP_PASSWORD | b64enc }}
  52. net.java.sip.communicator.impl.protocol.sip.acc1.PROTOCOL_NAME=SIP
  53. net.java.sip.communicator.impl.protocol.sip.acc1.SERVER_ADDRESS={{ .Env.JIGASI_SIP_SERVER }}
  54. net.java.sip.communicator.impl.protocol.sip.acc1.USER_ID={{ .Env.JIGASI_SIP_URI }}
  55. net.java.sip.communicator.impl.protocol.sip.acc1.KEEP_ALIVE_INTERVAL=25
  56. net.java.sip.communicator.impl.protocol.sip.acc1.KEEP_ALIVE_METHOD={{ .Env.JIGASI_SIP_KEEP_ALIVE_METHOD | default "OPTIONS" }}
  57. net.java.sip.communicator.impl.protocol.sip.acc1.VOICEMAIL_ENABLED=false
  58. net.java.sip.communicator.impl.protocol.sip.acc1.JITSI_MEET_ROOM_HEADER_NAME=X-Room-Name
  59. net.java.sip.communicator.impl.protocol.sip.acc1.JITSI_MEET_DOMAIN_BASE_HEADER_NAME=X-Domain-Base
  60. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.AMR-WB/16000=750
  61. # Temporarily disable G722, see: https://github.com/jitsi/docker-jitsi-meet/issues/1357
  62. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.G722/8000=0
  63. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.GSM/8000=0
  64. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.H263-1998/90000=0
  65. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.H264/90000=0
  66. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.PCMA/8000=600
  67. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.PCMU/8000=650
  68. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.SILK/12000=0
  69. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.SILK/16000=0
  70. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.SILK/24000=0
  71. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.SILK/8000=0
  72. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.VP8/90000=0
  73. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.iLBC/8000=10
  74. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.opus/48000=1000
  75. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.red/90000=0
  76. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.speex/16000=0
  77. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.speex/32000=0
  78. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.speex/8000=0
  79. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.telephone-event/8000=1
  80. net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.ulpfec/90000=0
  81. net.java.sip.communicator.impl.protocol.sip.acc1.OVERRIDE_ENCODINGS=true
  82. net.java.sip.communicator.impl.protocol.sip.acc1.DOMAIN_BASE={{ $XMPP_DOMAIN }}
  83. {{ end -}}
  84. # XMPP account used for control
  85. {{ range $index, $element := $XMPP_SERVERS -}}
  86. {{ $SERVER := splitn ":" 2 $element }}
  87. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}=acc{{ $index }}
  88. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.ACCOUNT_UID=Jabber:{{ $JIGASI_XMPP_USER }}@{{ $XMPP_AUTH_DOMAIN }}
  89. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.USER_ID={{ $JIGASI_XMPP_USER }}@{{ $XMPP_AUTH_DOMAIN }}
  90. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.IS_SERVER_OVERRIDDEN=true
  91. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.SERVER_ADDRESS={{ $SERVER._0 }}
  92. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.SERVER_PORT={{ $SERVER._1 | default $XMPP_PORT }}
  93. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.PASSWORD={{ $ENV.JIGASI_XMPP_PASSWORD | b64enc }}
  94. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.AUTO_GENERATE_RESOURCE=true
  95. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.RESOURCE_PRIORITY=30
  96. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.IS_CARBON_DISABLED=true
  97. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.DEFAULT_ENCRYPTION=true
  98. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.IS_USE_ICE=true
  99. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.IS_ACCOUNT_DISABLED=false
  100. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.IS_PREFERRED_PROTOCOL=false
  101. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.AUTO_DISCOVER_JINGLE_NODES=false
  102. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.PROTOCOL=Jabber
  103. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.IS_USE_UPNP=false
  104. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.USE_DEFAULT_STUN_SERVER=true
  105. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.ENCRYPTION_PROTOCOL.DTLS-SRTP=0
  106. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.ENCRYPTION_PROTOCOL_STATUS.DTLS-SRTP=true
  107. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.VIDEO_CALLING_DISABLED=true
  108. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.OVERRIDE_ENCODINGS=true
  109. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.G722/8000=705
  110. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.GSM/8000=0
  111. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.H263-1998/90000=0
  112. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.H264/90000=0
  113. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.PCMA/8000=0
  114. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.PCMU/8000=0
  115. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.SILK/12000=0
  116. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.SILK/16000=0
  117. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.SILK/24000=0
  118. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.SILK/8000=0
  119. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.VP8/90000=0
  120. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.iLBC/8000=0
  121. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.opus/48000=750
  122. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.speex/16000=0
  123. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.speex/32000=0
  124. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.speex/8000=0
  125. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.Encodings.telephone-event/8000=0
  126. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.BREWERY={{ $JIGASI_BREWERY_MUC }}@{{ $XMPP_INTERNAL_MUC_DOMAIN }}
  127. net.java.sip.communicator.impl.protocol.jabber.acc{{ $index }}.DOMAIN_BASE={{ $XMPP_DOMAIN }}
  128. {{ end -}}
  129. org.jitsi.jigasi.BREWERY_ENABLED=true
  130. org.jitsi.jigasi.ENABLE_SIP={{ not $DISABLE_SIP }}
  131. org.jitsi.jigasi.HEALTH_CHECK_SIP_URI={{ .Env.JIGASI_HEALTH_CHECK_SIP_URI | default "" }}
  132. org.jitsi.jigasi.HEALTH_CHECK_INTERVAL={{ .Env.JIGASI_HEALTH_CHECK_INTERVAL | default "300000" }}
  133. org.jitsi.jigasi.HEALTH_CHECK_TIMEOUT=600000
  134. org.jitsi.jigasi.xmpp.acc.IS_SERVER_OVERRIDDEN=true
  135. org.jitsi.jigasi.xmpp.acc.SERVER_ADDRESS={{ $XMPP_SERVER }}
  136. org.jitsi.jigasi.xmpp.acc.VIDEO_CALLING_DISABLED=true
  137. org.jitsi.jigasi.xmpp.acc.JINGLE_NODES_ENABLED=false
  138. org.jitsi.jigasi.xmpp.acc.AUTO_DISCOVER_STUN=false
  139. org.jitsi.jigasi.xmpp.acc.IM_DISABLED=true
  140. org.jitsi.jigasi.xmpp.acc.SERVER_STORED_INFO_DISABLED=true
  141. org.jitsi.jigasi.xmpp.acc.IS_FILE_TRANSFER_DISABLED=true
  142. {{ if .Env.ENABLE_AUTH | default "0" | toBool }}
  143. {{ if .Env.ENABLE_GUESTS | default "0" | toBool }}
  144. org.jitsi.jigasi.xmpp.acc.USER_ID={{ $JIGASI_XMPP_USER }}@{{ $XMPP_GUEST_DOMAIN }}
  145. org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=true
  146. {{ else }}
  147. org.jitsi.jigasi.xmpp.acc.USER_ID={{ $JIGASI_XMPP_USER }}@{{ $XMPP_AUTH_DOMAIN }}
  148. org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=false
  149. {{ end }}
  150. org.jitsi.jigasi.xmpp.acc.PASS={{ .Env.JIGASI_XMPP_PASSWORD }}
  151. org.jitsi.jigasi.xmpp.acc.ALLOW_NON_SECURE=true
  152. {{ end }}
  153. # Activate this property if you are using self-signed certificates or other
  154. # type of non-trusted certicates. In this mode your service trust in the
  155. # remote certificates always.
  156. net.java.sip.communicator.service.gui.ALWAYS_TRUST_MODE_ENABLED=true
  157. {{ if $ENABLE_TRANSCRIPTIONS -}}
  158. # Transcription config
  159. org.jitsi.jigasi.ENABLE_TRANSCRIPTION=true
  160. org.jitsi.jigasi.transcription.ENABLE_TRANSLATION=true
  161. org.jitsi.jigasi.transcription.DIRECTORY=/tmp/transcripts
  162. org.jitsi.jigasi.transcription.BASE_URL={{ .Env.PUBLIC_URL }}/transcripts
  163. org.jitsi.jigasi.transcription.jetty.port=-1
  164. org.jitsi.jigasi.transcription.ADVERTISE_URL={{ .Env.JIGASI_TRANSCRIBER_ADVERTISE_URL | default "false"}}
  165. org.jitsi.jigasi.transcription.SAVE_JSON=false
  166. org.jitsi.jigasi.transcription.SEND_JSON=true
  167. org.jitsi.jigasi.transcription.SAVE_TXT=true
  168. org.jitsi.jigasi.transcription.SEND_TXT={{ .Env.JIGASI_TRANSCRIBER_SEND_TXT | default "false"}}
  169. org.jitsi.jigasi.transcription.RECORD_AUDIO={{ .Env.JIGASI_TRANSCRIBER_RECORD_AUDIO | default "false"}}
  170. org.jitsi.jigasi.transcription.RECORD_AUDIO_FORMAT=wav
  171. {{ end -}}
  172. {{ if .Env.JIGASI_SIP_DEFAULT_ROOM }}
  173. org.jitsi.jigasi.DEFAULT_JVB_ROOM_NAME={{ .Env.JIGASI_SIP_DEFAULT_ROOM }}
  174. {{ end }}
  175. org.jitsi.jigasi.MUC_SERVICE_ADDRESS={{ $XMPP_MUC_DOMAIN }}
  176. # when checking other participants whether they are jibri/jigasi we can also check the the domain they use for connecting
  177. {{ if $TRUSTED_DOMAIN_LIST }}
  178. org.jitsi.jigasi.TRUSTED_DOMAINS=[ {{ range $index, $element := $TRUSTED_DOMAINS }}{{ if gt $index 0 }},{{ end }}"{{ $element }}"{{ end}} ]
  179. {{ end }}
  180. org.jitsi.jigasi.JVB_INVITE_TIMEOUT={{ $JIGASI_JVB_TIMEOUT }}
  181. {{ if $JIGASI_LOCAL_REGION }}
  182. org.jitsi.jigasi.LOCAL_REGION={{ $JIGASI_LOCAL_REGION }}
  183. {{ end }}
  184. {{ if $BOSH_URL_PATTERN }}
  185. org.jitsi.jigasi.xmpp.acc.BOSH_URL_PATTERN={{ $BOSH_URL_PATTERN }}
  186. {{ end }}
  187. {{ if $USE_TRANSLATOR_IN_CONFERENCE }}
  188. org.jitsi.jigasi.xmpp.acc.USE_TRANSLATOR_IN_CONFERENCE=true
  189. net.java.sip.communicator.impl.protocol.sip.acc1.USE_TRANSLATOR_IN_CONFERENCE=true
  190. # Should be enabled when using translator mode
  191. net.java.sip.communicator.impl.neomedia.audioSystem.audiosilence.captureDevice_list=["AudioSilenceCaptureDevice:noTransferData"]
  192. {{ end }}
  193. {{ if .Env.JIGASI_CONFIGURATION -}}
  194. {{ join "\n" (splitList "," .Env.JIGASI_CONFIGURATION) }}
  195. {{ end -}}