turnserver.conf.j2
1 # Coturn TURN SERVER configuration file 2 # 3 # Boolean values note: where a boolean value is supposed to be used, 4 # you can use '0', 'off', 'no', 'false', or 'f' as 'false', 5 # and you can use '1', 'on', 'yes', 'true', or 't' as 'true' 6 # If the value is missing, then it means 'true' by default. 7 # 8 9 # Listener interface device (optional, Linux only). 10 # NOT RECOMMENDED. 11 # 12 #listening-device=lo 13 14 # TURN listener port for UDP and TCP (Default: 3478). 15 # Note: actually, TLS & DTLS sessions can connect to the 16 # "plain" TCP & UDP port(s), too - if allowed by configuration. 17 # 18 listening-port={{ coturn_stun_tcp_port }} 19 20 # TURN listener port for TLS (Default: 5349). 21 # Note: actually, "plain" TCP & UDP sessions can connect to the TLS & DTLS 22 # port(s), too - if allowed by configuration. The TURN server 23 # "automatically" recognizes the type of traffic. Actually, two listening 24 # endpoints (the "plain" one and the "tls" one) are equivalent in terms of 25 # functionality; but Coturn keeps both endpoints to satisfy the RFC 5766 specs. 26 # For secure TCP connections, Coturn currently supports SSL version 3 and 27 # TLS version 1.0, 1.1 and 1.2. 28 # For secure UDP connections, Coturn supports DTLS version 1. 29 # 30 tls-listening-port={{ coturn_stun_tls_port }} 31 32 # Alternative listening port for UDP and TCP listeners; 33 # default (or zero) value means "listening port plus one". 34 # This is needed for RFC 5780 support 35 # (STUN extension specs, NAT behavior discovery). The TURN Server 36 # supports RFC 5780 only if it is started with more than one 37 # listening IP address of the same family (IPv4 or IPv6). 38 # RFC 5780 is supported only by UDP protocol, other protocols 39 # are listening to that endpoint only for "symmetry". 40 # 41 alt-listening-port={{ coturn_stun_tcp_alt_port }} 42 43 # Alternative listening port for TLS and DTLS protocols. 44 # Default (or zero) value means "TLS listening port plus one". 45 # 46 alt-tls-listening-port={{ coturn_stun_tls_alt_port }} 47 48 # Some network setups will require using a TCP reverse proxy in front 49 # of the STUN server. If the proxy port option is set a single listener 50 # is started on the given port that accepts connections using the 51 # haproxy proxy protocol v2. 52 # (https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt) 53 # 54 #tcp-proxy-port=5555 55 56 # Listener IP address of relay server. Multiple listeners can be specified. 57 # If no IP(s) specified in the config file or in the command line options, 58 # then all IPv4 and IPv6 system IPs will be used for listening. 59 # 60 #listening-ip=172.17.19.101 61 #listening-ip=10.207.21.238 62 #listening-ip=2607:f0d0:1002:51::4 63 {% for ip in coturn_listening_ips %} 64 listening-ip={{ ip }} 65 {% endfor %} 66 67 # Auxiliary STUN/TURN server listening endpoint. 68 # Aux servers have almost full TURN and STUN functionality. 69 # The (minor) limitations are: 70 # 71 # 1) Auxiliary servers do not have alternative ports and 72 # they do not support STUN RFC 5780 functionality (CHANGE REQUEST). 73 # 74 # 2) Auxiliary servers also are never returning ALTERNATIVE-SERVER reply. 75 # 76 # Valid formats are 1.2.3.4:5555 for IPv4 and [1:2::3:4]:5555 for IPv6. 77 # 78 # There may be multiple aux-server options, each will be used for listening 79 # to client requests. 80 # 81 #aux-server=172.17.19.110:33478 82 #aux-server=[2607:f0d0:1002:51::4]:33478 83 84 # (recommended for older Linuxes only) 85 # Automatically balance UDP traffic over auxiliary servers (if configured). 86 # The load balancing is using the ALTERNATE-SERVER mechanism. 87 # The TURN client must support 300 ALTERNATE-SERVER response for this 88 # functionality. 89 # 90 #udp-self-balance 91 92 # Relay interface device for relay sockets (optional, Linux only). 93 # NOT RECOMMENDED. 94 # 95 #relay-device=eth1 96 97 # Relay address (the local IP address that will be used to relay the 98 # packets to the peer). 99 # Multiple relay addresses may be used. 100 # The same IP(s) can be used as both listening IP(s) and relay IP(s). 101 # 102 # If no relay IP(s) specified, then the turnserver will apply the default 103 # policy: it will decide itself which relay addresses to be used, and it 104 # will always be using the client socket IP address as the relay IP address 105 # of the TURN session (if the requested relay address family is the same 106 # as the family of the client socket). 107 # 108 #relay-ip=172.17.19.105 109 #relay-ip=2607:f0d0:1002:51::5 110 111 # For Amazon EC2 users: 112 # 113 # TURN Server public/private address mapping, if the server is behind NAT. 114 # In that situation, if a -X is used in form "-X <ip>" then that ip will be reported 115 # as relay IP address of all allocations. This scenario works only in a simple case 116 # when one single relay address is be used, and no RFC5780 functionality is required. 117 # That single relay address must be mapped by NAT to the 'external' IP. 118 # The "external-ip" value, if not empty, is returned in XOR-RELAYED-ADDRESS field. 119 # For that 'external' IP, NAT must forward ports directly (relayed port 12345 120 # must be always mapped to the same 'external' port 12345). 121 # 122 # In more complex case when more than one IP address is involved, 123 # that option must be used several times, each entry must 124 # have form "-X <public-ip/private-ip>", to map all involved addresses. 125 # RFC5780 NAT discovery STUN functionality will work correctly, 126 # if the addresses are mapped properly, even when the TURN server itself 127 # is behind A NAT. 128 # 129 # By default, this value is empty, and no address mapping is used. 130 # 131 #external-ip=1.2.3.4 132 {% for ip in coturn_external_ips %} 133 external-ip={{ ip }} 134 {% endfor %} 135 136 # Number of the relay threads to handle the established connections 137 # (in addition to authentication thread and the listener thread). 138 # If explicitly set to 0 then application runs relay process in a 139 # single thread, in the same thread with the listener process 140 # (the authentication thread will still be a separate thread). 141 # 142 # If this parameter is not set, then the default OS-dependent 143 # thread pattern algorithm will be employed. Usually the default 144 # algorithm is optimal, so you have to change this option 145 # if you want to make some fine tweaks. 146 # 147 # In the older systems (Linux kernel before 3.9), 148 # the number of UDP threads is always one thread per network listening 149 # endpoint - including the auxiliary endpoints - unless 0 (zero) or 150 # 1 (one) value is set. 151 # 152 #relay-threads=0 153 154 # Lower and upper bounds of the UDP relay endpoints: 155 # (default values are 49152 and 65535) 156 # 157 min-port={{ coturn_relay_min_port }} 158 max-port={{ coturn_relay_max_port }} 159 160 # Uncomment to run TURN server in 'normal' 'moderate' verbose mode. 161 # By default the verbose mode is off. 162 {% if not coturn_verbose %}#{% endif %}verbose 163 164 # Uncomment to run TURN server in 'extra' verbose mode. 165 # This mode is very annoying and produces lots of output. 166 # Not recommended under normal circumstances. 167 # 168 #Verbose 169 170 # Uncomment to use fingerprints in the TURN messages. 171 # By default the fingerprints are off. 172 # 173 {% if not coturn_fingerprint_enabled %}#{% endif %}fingerprint 174 175 # Uncomment to use long-term credential mechanism. 176 # By default no credentials mechanism is used (any user allowed). 177 # 178 #lt-cred-mech 179 180 # This option is the opposite of lt-cred-mech. 181 # (TURN Server with no-auth option allows anonymous access). 182 # If neither option is defined, and no users are defined, 183 # then no-auth is default. If at least one user is defined, 184 # in this file, in command line or in usersdb file, then 185 # lt-cred-mech is default. 186 # 187 #no-auth 188 189 # Enable prometheus exporter 190 # If enabled the turnserver will expose an endpoint with stats on a prometheus format 191 # this endpoint is listening on a different port to not conflict with other configurations. 192 # 193 # You can simply run the turnserver and access the port 9641 and path /metrics 194 # 195 # For more info on the prometheus exporter and metrics 196 # https://prometheus.io/docs/introduction/overview/ 197 # https://prometheus.io/docs/concepts/data_model/ 198 # 199 {% if not coturn_metrics_enabled %}#{% endif %}prometheus 200 201 # TURN REST API flag. 202 # (Time Limited Long Term Credential) 203 # Flag that sets a special authorization option that is based upon authentication secret. 204 # 205 # This feature's purpose is to support "TURN Server REST API", see 206 # "TURN REST API" link in the project's page 207 # https://github.com/coturn/coturn/ 208 # 209 # This option is used with timestamp: 210 # 211 # usercombo -> "timestamp:userid" 212 # turn user -> usercombo 213 # turn password -> base64(hmac(secret key, usercombo)) 214 # 215 # This allows TURN credentials to be accounted for a specific user id. 216 # If you don't have a suitable id, then the timestamp alone can be used. 217 # This option is enabled by turning on secret-based authentication. 218 # The actual value of the secret is defined either by the option static-auth-secret, 219 # or can be found in the turn_secret table in the database (see below). 220 # 221 # Read more about it: 222 # - https://tools.ietf.org/html/draft-uberti-behave-turn-rest-00 223 # - https://www.ietf.org/proceedings/87/slides/slides-87-behave-10.pdf 224 # 225 # Be aware that use-auth-secret overrides some parts of lt-cred-mech. 226 # The use-auth-secret feature depends internally on lt-cred-mech, so if you set 227 # this option then it automatically enables lt-cred-mech internally 228 # as if you had enabled both. 229 # 230 # Note that you can use only one auth mechanism at the same time! This is because, 231 # both mechanisms conduct username and password validation in different ways. 232 # 233 # Use either lt-cred-mech or use-auth-secret in the conf 234 # to avoid any confusion. 235 # 236 {% if not coturn_auth_enabled %}#{% endif %}use-auth-secret 237 238 # 'Static' authentication secret value (a string) for TURN REST API only. 239 # If not set, then the turn server 240 # will try to use the 'dynamic' value in the turn_secret table 241 # in the user database (if present). The database-stored value can be changed on-the-fly 242 # by a separate program, so this is why that mode is considered 'dynamic'. 243 # 244 {% if coturn_auth_enabled %} 245 static-auth-secret={{ coturn_auth_secret | mandatory }} 246 {% endif %} 247 248 # Server name used for 249 # the oAuth authentication purposes. 250 # The default value is the realm name. 251 # 252 server-name={{ coturn_domain }} 253 254 # Flag that allows oAuth authentication. 255 # 256 {% if not coturn_oauth_enabled %}#{% endif %}oauth 257 258 # 'Static' user accounts for the long term credentials mechanism, only. 259 # This option cannot be used with TURN REST API. 260 # 'Static' user accounts are NOT dynamically checked by the turnserver process, 261 # so they can NOT be changed while the turnserver is running. 262 # 263 #user=username1:key1 264 #user=username2:key2 265 # OR: 266 #user=username1:password1 267 #user=username2:password2 268 # 269 # Keys must be generated by turnadmin utility. The key value depends 270 # on user name, realm, and password: 271 # 272 # Example: 273 # $ turnadmin -k -u ninefingers -r north.gov -p youhavetoberealistic 274 # Output: 0xbc807ee29df3c9ffa736523fb2c4e8ee 275 # ('0x' in the beginning of the key is what differentiates the key from 276 # password. If it has 0x then it is a key, otherwise it is a password). 277 # 278 # The corresponding user account entry in the config file will be: 279 # 280 #user=ninefingers:0xbc807ee29df3c9ffa736523fb2c4e8ee 281 # Or, equivalently, with open clear password (less secure): 282 #user=ninefingers:youhavetoberealistic 283 # 284 285 # SQLite database file name. 286 # 287 # The default file name is /var/db/turndb or /usr/local/var/db/turndb or 288 # /var/lib/turn/turndb. 289 # 290 userdb=/data/coturn.db 291 292 # PostgreSQL database connection string in the case that you are using PostgreSQL 293 # as the user database. 294 # This database can be used for the long-term credential mechanism 295 # and it can store the secret value for secret-based timed authentication in TURN REST API. 296 # See http://www.postgresql.org/docs/8.4/static/libpq-connect.html for 8.x PostgreSQL 297 # versions connection string format, see 298 # http://www.postgresql.org/docs/9.2/static/libpq-connect.html#LIBPQ-CONNSTRING 299 # for 9.x and newer connection string formats. 300 # 301 #psql-userdb="host=<host> dbname=<database-name> user=<database-user> password=<database-user-password> connect_timeout=30" 302 303 # MySQL database connection string in the case that you are using MySQL 304 # as the user database. 305 # This database can be used for the long-term credential mechanism 306 # and it can store the secret value for secret-based timed authentication in TURN REST API. 307 # 308 # Optional connection string parameters for the secure communications (SSL): 309 # ca, capath, cert, key, cipher 310 # (see http://dev.mysql.com/doc/refman/5.1/en/ssl-options.html for the 311 # command options description). 312 # 313 # Use the string format below (space separated parameters, all optional): 314 # 315 #mysql-userdb="host=<host> dbname=<database-name> user=<database-user> password=<database-user-password> port=<port> connect_timeout=<seconds> read_timeout=<seconds>" 316 317 # If you want to use an encrypted password in the MySQL connection string, 318 # then set the MySQL password encryption secret key file with this option. 319 # 320 # Warning: If this option is set, then the mysql password must be set in "mysql-userdb" in an encrypted format! 321 # If you want to use a cleartext password then do not set this option! 322 # 323 # This is the file path for the aes encrypted secret key used for password encryption. 324 # 325 #secret-key-file=/path/ 326 327 # MongoDB database connection string in the case that you are using MongoDB 328 # as the user database. 329 # This database can be used for long-term credential mechanism 330 # and it can store the secret value for secret-based timed authentication in TURN REST API. 331 # Use the string format described at http://hergert.me/docs/mongo-c-driver/mongoc_uri.html 332 # 333 #mongo-userdb="mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]" 334 335 # Redis database connection string in the case that you are using Redis 336 # as the user database. 337 # This database can be used for long-term credential mechanism 338 # and it can store the secret value for secret-based timed authentication in TURN REST API. 339 # Use the string format below (space separated parameters, all optional): 340 # 341 #redis-userdb="ip=<ip-address> dbname=<database-number> password=<database-user-password> port=<port> connect_timeout=<seconds>" 342 343 # Redis status and statistics database connection string, if used (default - empty, no Redis stats DB used). 344 # This database keeps allocations status information, and it can be also used for publishing 345 # and delivering traffic and allocation event notifications. 346 # The connection string has the same parameters as redis-userdb connection string. 347 # Use the string format below (space separated parameters, all optional): 348 # 349 #redis-statsdb="ip=<ip-address> dbname=<database-number> password=<database-user-password> port=<port> connect_timeout=<seconds>" 350 351 # The default realm to be used for the users when no explicit 352 # origin/realm relationship is found in the database, or if the TURN 353 # server is not using any database (just the commands-line settings 354 # and the userdb file). Must be used with long-term credentials 355 # mechanism or with TURN REST API. 356 # 357 # Note: If the default realm is not specified, then realm falls back to the host domain name. 358 # If the domain name string is empty, or set to '(None)', then it is initialized as an empty string. 359 # 360 realm={{ coturn_domain }} 361 362 # This flag sets the origin consistency 363 # check. Across the session, all requests must have the same 364 # main ORIGIN attribute value (if the ORIGIN was 365 # initially used by the session). 366 # 367 #check-origin-consistency 368 369 # Per-user allocation quota. 370 # default value is 0 (no quota, unlimited number of sessions per user). 371 # This option can also be set through the database, for a particular realm. 372 # 373 #user-quota=0 374 375 # Total allocation quota. 376 # default value is 0 (no quota). 377 # This option can also be set through the database, for a particular realm. 378 # 379 #total-quota=0 380 381 # Max bytes-per-second bandwidth a TURN session is allowed to handle 382 # (input and output network streams are treated separately). Anything above 383 # that limit will be dropped or temporarily suppressed (within 384 # the available buffer limits). 385 # This option can also be set through the database, for a particular realm. 386 # 387 #max-bps=0 388 389 # 390 # Maximum server capacity. 391 # Total bytes-per-second bandwidth the TURN server is allowed to allocate 392 # for the sessions, combined (input and output network streams are treated separately). 393 # 394 #bps-capacity=0 395 396 # Uncomment if no UDP client listener is desired. 397 # By default UDP client listener is always started. 398 # 399 #no-udp 400 401 # Uncomment if no TCP client listener is desired. 402 # By default TCP client listener is always started. 403 # 404 #no-tcp 405 406 # Uncomment if no TLS client listener is desired. 407 # By default TLS client listener is always started. 408 # 409 #no-tls 410 411 # Uncomment if no DTLS client listener is desired. 412 # By default DTLS client listener is always started. 413 # 414 #no-dtls 415 416 # Uncomment if no UDP relay endpoints are allowed. 417 # By default UDP relay endpoints are enabled (like in RFC 5766). 418 # 419 #no-udp-relay 420 421 # Uncomment if no TCP relay endpoints are allowed. 422 # By default TCP relay endpoints are enabled (like in RFC 6062). 423 # 424 #no-tcp-relay 425 426 # Uncomment if extra security is desired, 427 # with nonce value having a limited lifetime. 428 # The nonce value is unique for a session. 429 # Set this option to limit the nonce lifetime. 430 # Set it to 0 for unlimited lifetime. 431 # It defaults to 600 secs (10 min) if no value is provided. After that delay, 432 # the client will get 438 error and will have to re-authenticate itself. 433 # 434 stale-nonce=0 435 436 # Uncomment if you want to set the maximum allocation 437 # time before it has to be refreshed. 438 # Default is 3600s. 439 # 440 #max-allocate-lifetime=3600 441 442 443 # Uncomment to set the lifetime for the channel. 444 # Default value is 600 secs (10 minutes). 445 # This value MUST not be changed for production purposes. 446 # 447 #channel-lifetime=600 448 449 # Uncomment to set the permission lifetime. 450 # Default to 300 secs (5 minutes). 451 # In production this value MUST not be changed, 452 # however it can be useful for test purposes. 453 # 454 #permission-lifetime=300 455 456 # Certificate file. 457 # Use an absolute path or path relative to the 458 # configuration file. 459 # Use PEM file format. 460 # 461 cert={{ coturn_certs_full_chain_path | mandatory | regex_replace(coturn_cont_certs_vol, "/certs") }} 462 463 # Private key file. 464 # Use an absolute path or path relative to the 465 # configuration file. 466 # Use PEM file format. 467 # 468 pkey={{ coturn_certs_private_key_path | mandatory | regex_replace(coturn_cont_certs_vol, "/certs") }} 469 470 # Private key file password, if it is in encoded format. 471 # This option has no default value. 472 # 473 #pkey-pwd=... 474 475 # Allowed OpenSSL cipher list for TLS/DTLS connections. 476 # Default value is "DEFAULT". 477 # 478 cipher-list="DEFAULT" 479 480 # CA file in OpenSSL format. 481 # Forces TURN server to verify the client SSL certificates. 482 # By default this is not set: there is no default value and the client 483 # certificate is not checked. 484 # 485 # Example: 486 #CA-file=/etc/ssh/id_rsa.cert 487 488 # Curve name for EC ciphers, if supported by OpenSSL 489 # library (TLS and DTLS). The default value is prime256v1, 490 # if pre-OpenSSL 1.0.2 is used. With OpenSSL 1.0.2+, 491 # an optimal curve will be automatically calculated, if not defined 492 # by this option. 493 # 494 #ec-curve-name=prime256v1 495 496 # Use 566 bits predefined DH TLS key. Default size of the key is 2066. 497 # 498 #dh566 499 500 # Use 1066 bits predefined DH TLS key. Default size of the key is 2066. 501 # 502 #dh1066 503 504 # Use custom DH TLS key, stored in PEM format in the file. 505 # Flags --dh566 and --dh1066 are ignored when the DH key is taken from a file. 506 # 507 #dh-file=<DH-PEM-file-name> 508 509 # Flag to prevent stdout log messages. 510 # By default, all log messages go to both stdout and to 511 # the configured log file. With this option everything will 512 # go to the configured log only (unless the log file itself is stdout). 513 # 514 #no-stdout-log 515 516 # Option to set the log file name. 517 # By default, the turnserver tries to open a log file in 518 # /var/log, /var/tmp, /tmp and the current directory 519 # (Whichever file open operation succeeds first will be used). 520 # With this option you can set the definite log file name. 521 # The special names are "stdout" and "-" - they will force everything 522 # to the stdout. Also, the "syslog" name will force everything to 523 # the system log (syslog). 524 # In the runtime, the logfile can be reset with the SIGHUP signal 525 # to the turnserver process. 526 # 527 log-file=stdout 528 529 # Option to redirect all log output into system log (syslog). 530 # 531 #syslog 532 533 # Set syslog facility for syslog messages 534 # Default values is ''. 535 # 536 #syslog-facility="LOG_LOCAL1" 537 538 # This flag means that no log file rollover will be used, and the log file 539 # name will be constructed as-is, without PID and date appendage. 540 # This option can be used, for example, together with the logrotate tool. 541 # 542 #simple-log 543 544 # Enable full ISO-8601 timestamp in all logs. 545 new-log-timestamp 546 547 # Set timestamp format (in strftime(1) format). Depends on new-log-timestamp to be enabled. 548 #new-log-timestamp-format "%FT%T%z" 549 550 # Disabled by default binding logging in verbose log mode to avoid DoS attacks. 551 # Enable binding logging and UDP endpoint logs in verbose log mode. 552 #log-binding 553 554 # Option to set the "redirection" mode. The value of this option 555 # will be the address of the alternate server for UDP & TCP service in the form of 556 # <ip>[:<port>]. The server will send this value in the attribute 557 # ALTERNATE-SERVER, with error 300, on ALLOCATE request, to the client. 558 # Client will receive only values with the same address family 559 # as the client network endpoint address family. 560 # See RFC 5389 and RFC 5766 for the description of ALTERNATE-SERVER functionality. 561 # The client must use the obtained value for subsequent TURN communications. 562 # If more than one --alternate-server option is provided, then the functionality 563 # can be more accurately described as "load-balancing" than a mere "redirection". 564 # If the port number is omitted, then the default port 565 # number 3478 for the UDP/TCP protocols will be used. 566 # Colon (:) characters in IPv6 addresses may conflict with the syntax of 567 # the option. To alleviate this conflict, literal IPv6 addresses are enclosed 568 # in square brackets in such resource identifiers, for example: 569 # [2001:db8:85a3:8d3:1319:8a2e:370:7348]:3478 . 570 # Multiple alternate servers can be set. They will be used in the 571 # round-robin manner. All servers in the pool are considered of equal weight and 572 # the load will be distributed equally. For example, if you have 4 alternate servers, 573 # then each server will receive 25% of ALLOCATE requests. A alternate TURN server 574 # address can be used more than one time with the alternate-server option, so this 575 # can emulate "weighting" of the servers. 576 # 577 # Examples: 578 #alternate-server=1.2.3.4:5678 579 #alternate-server=11.22.33.44:56789 580 #alternate-server=5.6.7.8 581 #alternate-server=[2001:db8:85a3:8d3:1319:8a2e:370:7348]:3478 582 583 # Option to set alternative server for TLS & DTLS services in form of 584 # <ip>:<port>. If the port number is omitted, then the default port 585 # number 5349 for the TLS/DTLS protocols will be used. See the previous 586 # option for the functionality description. 587 # 588 # Examples: 589 #tls-alternate-server=1.2.3.4:5678 590 #tls-alternate-server=11.22.33.44:56789 591 #tls-alternate-server=[2001:db8:85a3:8d3:1319:8a2e:370:7348]:3478 592 593 # Option to suppress TURN functionality, only STUN requests will be processed. 594 # Run as STUN server only, all TURN requests will be ignored. 595 # By default, this option is NOT set. 596 # 597 #stun-only 598 599 # Option to hide software version. Enhance security when used in production. 600 # Revealing the specific software version of the agent through the 601 # SOFTWARE attribute might allow them to become more vulnerable to 602 # attacks against software that is known to contain security holes. 603 # Implementers SHOULD make usage of the SOFTWARE attribute a 604 # configurable option (https://tools.ietf.org/html/rfc5389#section-16.1.2) 605 # 606 #no-software-attribute 607 608 # Option to suppress STUN functionality, only TURN requests will be processed. 609 # Run as TURN server only, all STUN requests will be ignored. 610 # By default, this option is NOT set. 611 # 612 #no-stun 613 614 # This is the timestamp/username separator symbol (character) in TURN REST API. 615 # The default value is ':'. 616 # 617 #rest-api-separator=: 618 619 # Flag that can be used to allow peers on the loopback addresses (127.x.x.x and ::1). 620 # This is an extra security measure. 621 # 622 # (To avoid any security issue that allowing loopback access may raise, 623 # the no-loopback-peers option is replaced by allow-loopback-peers.) 624 # 625 # Allow it only for testing in a development environment! 626 # In production it adds a possible security vulnerability, so for security reasons 627 # it is not allowed using it together with empty cli-password. 628 # 629 #allow-loopback-peers 630 631 # Flag that can be used to disallow peers on well-known broadcast addresses (224.0.0.0 and above, and FFXX:*). 632 # This is an extra security measure. 633 # 634 no-multicast-peers 635 636 # Option to set the max time, in seconds, allowed for full allocation establishment. 637 # Default is 60 seconds. 638 # 639 #max-allocate-timeout=60 640 641 # Option to allow or ban specific ip addresses or ranges of ip addresses. 642 # If an ip address is specified as both allowed and denied, then the ip address is 643 # considered to be allowed. This is useful when you wish to ban a range of ip 644 # addresses, except for a few specific ips within that range. 645 # 646 # This can be used when you do not want users of the turn server to be able to access 647 # machines reachable by the turn server, but would otherwise be unreachable from the 648 # internet (e.g. when the turn server is sitting behind a NAT) 649 # 650 # Examples: 651 # denied-peer-ip=83.166.64.0-83.166.95.255 652 # allowed-peer-ip=83.166.68.45 653 654 # File name to store the pid of the process. 655 # Default is /var/run/turnserver.pid (if superuser account is used) or 656 # /var/tmp/turnserver.pid . 657 # 658 #pidfile="/var/run/turnserver.pid" 659 660 # Require authentication of the STUN Binding request. 661 # By default, the clients are allowed anonymous access to the STUN Binding functionality. 662 # 663 #secure-stun 664 665 # Mobility with ICE (MICE) specs support. 666 # 667 #mobility 668 669 # Allocate Address Family according (DEPRECATED and will be removed in favor of allocation-default-address-family) 670 # If enabled then TURN server allocates address family according the TURN 671 # Client <=> Server communication address family. 672 # (By default Coturn works according RFC 6156.) 673 # !!Warning: Enabling this option breaks RFC6156 section-4.2 (violates use default IPv4)!! 674 # 675 #keep-address-family 676 677 # TURN server allocates address family according TURN client requested address family. 678 # If address family not requested explicitly by the client, then it falls back to this default. 679 # The standard RFC explicitly define that this default must be IPv4, 680 # so use other option values with care! 681 # Possible values: "ipv4" or "ipv6" or "keep" 682 # "keep" sets the allocation default address family according to 683 # the TURN client allocation request connection address family. 684 # 685 #allocation-default-address-family="ipv4" 686 #allocation-default-address-family="ipv4" 687 688 # User name to run the process. After the initialization, the turnserver process 689 # will attempt to change the current user ID to that user. 690 # 691 #proc-user=<user-name> 692 693 # Group name to run the process. After the initialization, the turnserver process 694 # will attempt to change the current group ID to that group. 695 # 696 #proc-group=<group-name> 697 698 # Turn OFF the CLI support. 699 # By default it is always ON. 700 # See also options cli-ip and cli-port. 701 # 702 no-cli 703 704 #Local system IP address to be used for CLI server endpoint. Default value 705 # is 127.0.0.1. 706 # 707 #cli-ip=127.0.0.1 708 709 # CLI server port. Default is 5766. 710 # 711 #cli-port=5766 712 713 # CLI access password. Default is empty (no password). 714 # For the security reasons, it is recommended that you use the encrypted 715 # form of the password (see the -P command in the turnadmin utility). 716 # 717 # Secure form for password 'qwerty': 718 # 719 #cli-password=$5$79a316b350311570$81df9cfb9af7f5e5a76eada31e7097b663a0670f99a3c07ded3f1c8e59c5658a 720 # 721 # Or unsecure form for the same password: 722 # 723 #cli-password=qwerty 724 725 # Enable Web-admin support on https. By default it is Disabled. 726 # If it is enabled it also enables a http a simple static banner page 727 # with a small reminder that the admin page is available only on https. 728 # 729 {% if not coturn_admin_enabled %}#{% endif %}web-admin 730 731 # Local system IP address to be used for Web-admin server endpoint. Default value is 127.0.0.1. 732 # 733 web-admin-ip={{ coturn_admin_addr }} 734 735 # Web-admin server port. Default is 8080. 736 # 737 web-admin-port={{ coturn_admin_port }} 738 739 # Web-admin server listen on STUN/TURN worker threads 740 # By default it is disabled for security reasons! (Not recommended in any production environment!) 741 # 742 #web-admin-listen-on-workers 743 744 # Redirect ACME, i.e. HTTP GET requests matching '^/.well-known/acme-challenge/(.*)' to '<URL>$1'. 745 # Default is '', i.e. no special handling for such requests. 746 # 747 #acme-redirect=http://redirectserver/.well-known/acme-challenge/ 748 749 # Server relay. NON-STANDARD AND DANGEROUS OPTION. 750 # Only for those applications when you want to run 751 # server applications on the relay endpoints. 752 # This option eliminates the IP permissions check on 753 # the packets incoming to the relay endpoints. 754 # 755 #server-relay 756 757 # Maximum number of output sessions in ps CLI command. 758 # This value can be changed on-the-fly in CLI. The default value is 256. 759 # 760 #cli-max-output-sessions 761 762 # Set network engine type for the process (for internal purposes). 763 # 764 #ne=[1|2|3] 765 766 # Do not allow an TLS/DTLS version of protocol 767 # 768 no-tlsv1 769 no-tlsv1_1 770 #no-tlsv1_2 771 772 # Disable RFC5780 (NAT behavior discovery). 773 # 774 # Originally, if there are more than one listener address from the same 775 # address family, then by default the NAT behavior discovery feature enabled. 776 # This option disables the original behavior, because the NAT behavior 777 # discovery adds extra attributes to response, and this increase the 778 # possibility of an amplification attack. 779 # 780 # Strongly encouraged to use this option to decrease gain factor in STUN 781 # binding responses. 782 # 783 no-rfc5780 784 785 # Disable handling old STUN Binding requests and disable MAPPED-ADDRESS 786 # attribute in binding response (use only the XOR-MAPPED-ADDRESS). 787 # 788 # Strongly encouraged to use this option to decrease gain factor in STUN 789 # binding responses. 790 # 791 no-stun-backward-compatibility 792 793 # Only send RESPONSE-ORIGIN attribute in binding response if RFC5780 is enabled. 794 # 795 # Strongly encouraged to use this option to decrease gain factor in STUN 796 # binding responses. 797 # 798 response-origin-only-with-rfc5780