Skip to content

TURN TLS not working #3265

Description

@licaon-kter

Environment

  • ejabberd version: 20.04.9
  • Erlang version: Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version 10.2.4
  • OS: Debian Buster arm64
  • Installed from: source

Listeners (& certs as expected):

  -
    port: 3478
    transport: udp
    use_turn: true
    turn_min_port: 60000
    turn_max_port: 65000
    turn_ip: MY.EXTE.RNAL.IP
    module: ejabberd_stun
  -
    port: 3478
    use_turn: true
    turn_min_port: 60000
    turn_max_port: 65000
    turn_ip: MY.EXTE.RNAL.IP
    module: ejabberd_stun
  -
    port: 5349
    use_turn: true
    turn_min_port: 60000
    turn_max_port: 65000
    turn_ip: MY.EXTE.RNAL.IP
    tls: true
    module: ejabberd_stun

Modules:

mod_stun_disco:
    services:
      -
        host: MY.EXTE.RNAL.IP
        port: 3478
        type: stun
      -
        host: MY.EXTE.RNAL.IP
        port: 3478
        type: turn
      -
        host: MY.EXTE.RNAL.IP
        port: 3478
        type: stun
        transport: tcp
      -
        host: MY.EXTE.RNAL.IP
        port: 3478
        type: turn
        transport: tcp
      -
        host: mydomain.tld
        port: 443
        type: stuns
      -
        host: mydomain.tld
        port: 443
        type: turns

SSLH will route all 443 traffic to port 5349 eventually (yrutschle/sslh#246 (comment))

Between Conversations contacts, the call is not connected after pickup.

10:10:14.211 [info] <0.394.0>@mod_stun_disco:handle_call:332 Offering STUN/TURN services to user2@mydomain.tld/myConversations3.FfGe (14c8f5dbc592ffcd)
10:10:14.359 [info] <0.1634.1>@ejabberd_listener:accept:256 (<0.1636.1>) Accepted connection hidden_by_ejabberd -> LANIP:5349
10:10:14.361 [info] <0.1634.1>@ejabberd_listener:accept:256 (<0.1637.1>) Accepted connection hidden_by_ejabberd -> LANIP:5349
10:10:14.443 [info] <0.394.0>@mod_stun_disco:handle_call:332 Offering STUN/TURN services to user1@mydomain.tld/myConversations3.NjCv (f907ff75c592ffcd)
10:10:14.484 [info] <0.1637.1> accepted long-term STUN authentication for 1589008094:14c8f5dbc592ffcd@mydomain.tld from LANIP:47372
10:10:14.495 [info] <0.1636.1> accepted long-term STUN authentication for 1589008094:14c8f5dbc592ffcd@mydomain.tld from LANIP:47370
10:10:16.000 [info] <0.1634.1>@ejabberd_listener:accept:256 (<0.1640.1>) Accepted connection hidden_by_ejabberd -> LANIP:5349
10:10:16.066 [info] <0.1636.1> accepted long-term STUN authentication for 1589008094:14c8f5dbc592ffcd@mydomain.tld from LANIP:47370
10:10:16.103 [info] <0.1637.1> accepted long-term STUN authentication for 1589008094:14c8f5dbc592ffcd@mydomain.tld from LANIP:47372
10:10:16.230 [info] <0.1640.1> accepted long-term STUN authentication for 1589008094:f907ff75c592ffcd@mydomain.tld from LANIP:47374
10:10:16.275 [info] <0.1640.1> accepted long-term STUN authentication for 1589008094:f907ff75c592ffcd@mydomain.tld from LANIP:47374
10:10:16.275 [info] <0.1640.1> accepted long-term STUN authentication for 1589008094:f907ff75c592ffcd@mydomain.tld from LANIP:47374
10:10:16.301 [info] <0.1637.1> accepted long-term STUN authentication for 1589008094:14c8f5dbc592ffcd@mydomain.tld from LANIP:47372

Conversations gives up...
10:10:31.510 [info] <0.1640.1> accepted long-term STUN authentication for 1589008094:f907ff75c592ffcd@mydomain.tld from LANIP:47374
10:10:31.567 [info] <0.1637.1> accepted long-term STUN authentication for 1589008094:14c8f5dbc592ffcd@mydomain.tld from LANIP:47372

But, if I comment the listeners, add a secret, reload_config, start coturn on the same ports 3478/5349, it will work just fine.

10:33:47.727 [info] <0.394.0>@mod_stun_disco:handle_call:332 Offering STUN/TURN services to user2@mydomain.tld/myConversations3.FfGe (14c8f5dbc592ffcd)
10:33:48.045 [info] <0.394.0>@mod_stun_disco:handle_call:332 Offering STUN/TURN services to user1@mydomain.tld/myConversations3.NjCv (f907ff75c592ffcd)

What am I missing?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions