1

I have an ios app written in swift setup with AppRTC code from here.

I have the app setup on two phone and everything works when connecting to googles http://appr.tc. I would like to take google's apprtc out. When I setup both apps with ICE servers (STUN/TURN) but no rtc server the apps are not able to connect to each other. They both log WARNING: Renegotiation needed but unimplemented. How can I have the two apps webRTC communicate back and forth using only the ICE servers?

Alex Pelletier
  • 4,933
  • 6
  • 34
  • 58

1 Answers1

1

WebRTC needs a signaling server to exchange ICE credentials + candidates as well as DTLS fingerprints. The ICE servers are not a replacement for the signaling server.

See https://bloggeek.me/media-signaling-flows-look-like-webrtc/ or https://www.html5rocks.com/en/tutorials/webrtc/infrastructure/ for two pretty good introductions to the topic.

Philipp Hancke
  • 15,855
  • 2
  • 23
  • 31
  • @alex'; Philipp is correct. Signalling is needed to create the connection, and STUN/TURN helps with the NAT traversal. Signalling can potentially be anything you like, such as websockets, COMET or any other means of transporting data between candidates. It is only needed for the connection setup and for reconnection if the connection drops, so very minimal data is transferred. XirSys, a STUN/TURN provider, also provides signalling as part of their services. You could implement this into your Swift application. Check out their v3 documentation for more information. – Lee Sylvester Jul 01 '17 at 04:23