webrtc icon indicating copy to clipboard operation
webrtc copied to clipboard

"Failed to start manager dtls: unsupported fingerprint algorithm" trying to connect to Asterisk webrtc

Open MTRNord opened this issue 10 months ago • 0 comments

Hi,

I am trying to connect to asterisk using the webrtc crate. I am the side offering. After accepting the other side's response I am getting:

2023-08-18T22:34:18.084980Z  INFO webrtc_ice::agent::agent_internal: [controlling]: Setting new connection state: Connected    
2023-08-18T22:34:18.085099Z  INFO webrtc::peer_connection: ICE connection state changed: connected    
Connection State has changed connected
Ctrl+C the remote client to stop the demo
2023-08-18T22:34:18.085532Z  WARN webrtc_dtls::handshake::handshake_message_client_hello: Unsupported Extension Type 0 35    
2023-08-18T22:34:18.085575Z  WARN webrtc_dtls::handshake::handshake_message_client_hello: Unsupported Extension Type 0 22    
2023-08-18T22:34:18.085716Z  WARN webrtc_dtls::handshake::handshake_message_client_hello: Unsupported Extension Type 0 35    
2023-08-18T22:34:18.085741Z  WARN webrtc_dtls::handshake::handshake_message_client_hello: Unsupported Extension Type 0 22    
2023-08-18T22:34:18.116241Z  WARN webrtc_dtls::handshake::handshake_message_client_hello: Unsupported Extension Type 0 35    
2023-08-18T22:34:18.116274Z  WARN webrtc_dtls::handshake::handshake_message_client_hello: Unsupported Extension Type 0 22    
2023-08-18T22:34:18.116360Z  WARN webrtc_dtls::handshake::handshake_message_client_hello: Unsupported Extension Type 0 35    
2023-08-18T22:34:18.116374Z  WARN webrtc_dtls::handshake::handshake_message_client_hello: Unsupported Extension Type 0 22    
2023-08-18T22:34:18.144129Z  INFO webrtc::peer_connection: peer connection state changed: failed    
Peer Connection State has changed: failed
Peer Connection has gone to failed exiting: Done forwarding
2023-08-18T22:34:18.144191Z  WARN webrtc::peer_connection::peer_connection_internal: Failed to start manager dtls: unsupported fingerprint algorithm    
2023-08-18T22:34:18.144283Z  WARN webrtc::peer_connection::peer_connection_internal: undeclared_media_processor failed to open SrtcpSession    
2023-08-18T22:34:18.144343Z  WARN webrtc::peer_connection::peer_connection_internal: undeclared_media_processor failed to open SrtpSession

The SDP string from Asterisk is:

v=0
o=- 3550438371 104235760 IN IP4 <redacted>
s=Asterisk
c=IN IP4 <redacted>
t=0 0
a=msid-semantic:WMS *
a=group:BUNDLE 0
m=audio 13952 UDP/TLS/RTP/SAVPF 111
a=connection:new
a=setup:active
a=fingerprint:SHA-256 24:25:65:2F:CD:EC:37:49:DC:C1:3A:5B:C3:17:60:DC:B0:5F:6E:CB:FA:8F:CC:AC:8D:A5:E<redacted>
a=ice-ufrag:3daee1c417d8b8f97a2002977c6783ef
a=ice-pwd:<redacted>
a=candidate:H310d1869 1 UDP 2130706431 <redacted> 13952 typ host
a=candidate:Ha000002 1 UDP 2130706431 <redacted> 13952 typ host
a=rtpmap:111 opus/48000/2
a=fmtp:111 maxaveragebitrate=510000
a=ptime:20
a=maxptime:60
a=recvonly
a=rtcp-mux
a=ssrc:2095965366 cname:8fb93b21-4e6c-4ae9-8d28-f5c989397234
a=msid:ef83edfe-d6be-42c9-97d3-f71983b898c0 21ba9aee-ab91-4b23-acfe-6f5525f1fd3e
a=rtcp-fb:* transport-cc
a=mid:0

I assume that this check is case-sensitive and causes my issue:

https://github.com/webrtc-rs/webrtc/blob/dfe2363376f112ed1dd7d182b07f1cef8966a414/webrtc/src/dtls_transport/mod.rs#L542

I don't have enough knowledge of the crate or WebRTC however to confirm that. But the fingerprint in the response from asterisk seems to do uppercase "SHA" instead of lowercase. So it would seem like an obvious culprit.

MTRNord avatar Aug 18 '23 22:08 MTRNord