element-hq / element-x-android

Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose
GNU Affero General Public License v3.0
1.1k stars 156 forks source link

Calling from Browser to Element X App - Legacy Call Unsupported #3937

Open ckaap opened 1 day ago

ckaap commented 1 day ago

Steps to reproduce

photo_2024-11-25_10-59-34 Set up a Synapse Matrix server with Coturn configured for voice calls. Use a web browser to initiate a voice call to a user on the mobile app Element X. Observe the behavior when the call is received on Element X.

Outcome

Expected Behavior: The call should successfully connect between the web browser and the Element X mobile app. Actual Behavior: The call fails with the error message "Call not supported" on Element X. Additional Information:

Voice calls from the web browser to the standard Element app or between web browsers work without issues. Testing indicates that the problem is related to Legacy Call support, which appears to be unsupported in Element X.

root@element-synapse:~# cat /etc/turnserver.conf

listening-port=3478
tls-listening-port=5349
fingerprint
use-auth-secret
static-auth-secret=*turn_shared_secret*
realm=matrix.domain.com
user-quota=100
total-quota=1200
no-tcp-relay
syslog
no-multicast-peers
verbose
cert=/etc/letsencrypt/live/domain.com/fullchain.pem
pkey=/etc/letsencrypt/live/domain.com/privkey.pem

root@element-synapse:~# cat /etc/matrix-synapse/homeserver.yaml

pid_file: "/var/run/matrix-synapse.pid"
server_name: "matrix.domain.com"
listeners:
  - port: 8008
    tls: false
    type: http
    x_forwarded: true
    bind_addresses: ['127.0.0.1']
    resources:
      - names: [client, federation]
        compress: false
database:
  name: psycopg2
  txn_limit: 10000
  args:
    user: matrix
    password: password
    database: matrix
    host: localhost
    port: 5432
    cp_min: 5
    cp_max: 10
log_config: "/etc/matrix-synapse/log.yaml"
media_store_path: /var/lib/matrix-synapse/media
signing_key_path: "/etc/matrix-synapse/homeserver.signing.key"
trusted_key_servers:
  - server_name: "matrix.domain.com"
suppress_key_server_warning: true
max_upload_size: 100M
enable_registration: false
matrix_synapse_federation_enabled: false
matrix_synapse_federation_port_enabled: false
registration_shared_secret: "registration_shared_secret"
user_directory:
    enabled: true
    search_all_users: true
encryption_enabled_by_default_for_room_type: all
prefer_local_users: true
turn_uris:
  - "turn:matrix.domain.com:3478?transport=udp"
  - "turn:matrix.domain.com:3478?transport=tcp"
  - "turns:matrix.domain.com:5349?transport=tcp"
turn_shared_secret: "turn_shared_secret"
turn_user_lifetime: 86400000
turn_allow_guests: true
serve_server_wellknown: true
admin_users:
  - "@admin:matrix.domain.com"

Your phone model

No response

Operating system version

No response

Application version and app store

No response

Homeserver

No response

Will you send logs?

Yes

Are you willing to provide a PR?

Yes

spaetz commented 1 day ago

yes, legacy calls are unsupported by the new EX clients and as far as we know, never will be supported. Element Web on the other hand can do new-style Element-call calls now.

ckaap commented 1 day ago

Got it. Thank you very much.

ckaap commented 1 day ago

Do you have instructions on how to force Element web to force calls using Element call?

bmarty commented 1 day ago

Do you have instructions on how to force Element web to force calls using Element call?

@fkwp can you help here please?

ckaap commented 1 day ago

I think I found a solution. When creating a container with a web element, you need to add the following to the config file:

  "element_call": {
    "url": "https://call.element.io",
    "use_exclusively": true
  }

I'll check it out in the evening and write about the results.