0

I have a setup where the client (Angular) connects to a Server (Go + PionV4). Flow explained:

  1. The client sends an HTTP request to the server and then the server stores some data required for later RTC connections and contacts CloudFlare for TURN credentials
  2. The client uses the returned creds to make a peer connection. Then it makes an offer which is sent to the server via HTTP
  3. While data exchange is happening all ICE sent by the client is buffered
  4. The server gets the offer and updates the storage created earlier to also store stuff related to WebRTC. 5 The server then sets the remote description
  5. All buffered ICE candidates are added now and any new candidates are added immediately without buffering
  6. An Answer is created and sent back
  • (Server) Ice Gathering State Changed: Completed
  • (Server) Ice Connection State Changed: Connecting
  • ~~~10 Seconds~~~
  • (Server) Ice Connection State Changed: Failed

The client's ICE connection state listener does not output any data

The server's output edited to be readable: ICE to send : Candidates that is pushed from the server to the client Buffered ICE are candidates that are pushed from the client to the server

Adding buffered ICE <- The server set the remote description and are now starting to add buffered ICE candidates
Adding buffered ICE:  {candidate:416975186 1 udp 2113939711 2a0a:f640:1811:15c2:49e4:4e9b:8fd9:adc4 62235 typ host generation 0 ufrag lsSu network-cost 999 0xc002daf6d0 0xc0003629e0 <nil>} <- The server adds the only ICE candidate sent by client
Added buffered ICE successfully
Gathering State: gathering

-------------- The server checks the buffer again to make sure its empty 
Adding buffered ICE
No buffered ICE to add - skipping
--------------

Connection State: connecting

ICE To send  udp4 host 192.168.1.177:37278 (resolved: 192.168.1.177:37278)
ICE To send  udp4 host 172.17.0.1:38553 (resolved: 172.17.0.1:38553)
ICE To send  udp4 srflx 84.0.55.192:47382 related 0.0.0.0:47382 (resolved: 84.0.55.192:47382)
ICE To send  udp4 srflx 84.0.55.192:41404 related 0.0.0.0:41404 (resolved: 84.0.55.192:41404)
ICE To send  udp4 srflx 84.0.55.192:57332 related 0.0.0.0:57332 (resolved: 84.0.55.192:57332)
ICE To send  udp4 srflx 84.0.55.192:39442 related 0.0.0.0:39442 (resolved: 84.0.55.192:39442)
ICE To send  udp4 relay 104.30.146.82:59040 related 0.0.0.0:36234 (resolved: 104.30.146.82:59040)
ICE To send  udp4 relay 104.30.150.39:56491 related 0.0.0.0:42020 (resolved: 104.30.150.39:56491)
ICE To send  udp4 relay 104.30.150.40:12737 related 192.168.1.177:60362 (resolved: 104.30.150.40:12737)
ICE To send  udp4 relay 104.30.150.40:28585 related 192.168.1.177:39116 (resolved: 104.30.150.40:28585)
ICE To send  udp4 relay 104.30.146.81:29000 related 192.168.1.177:42708 (resolved: 104.30.146.81:29000)
ICE To send  udp4 relay 104.30.150.41:37984 related 192.168.1.177:40888 (resolved: 104.30.150.41:37984)

Gathering State: complete

ICE To send  <nil>

The client is my phone (iOS Safari / iOS Chrome (I'm testing with both) and its connected to cellular network to test the setup from an external network (Should be fine since Cloudflare's servers can handle Symmetric NAT just fine)

Not sure if it's normal that the client only sends one ICE candidate on network conditions like this but I tried anything to make it send more but maybe it should be like this?

1
  • Please provide enough code so others can better understand or reproduce the problem. Commented Jul 1 at 21:00

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.