getRTCIceServers method
- {String? location}
Get Ice servers from a Millicast signaling server.
Returns a Future object which represents a List of ice servers.
Implementation
getRTCIceServers({String? location}) async {
location = location ?? turnServerLocation;
_logger.i('Getting RTC ICE servers');
_logger.d('RTC ICE servers request location: $location');
List<dynamic> iceServer = [];
try {
http.Response data = await http.put(Uri.parse(location));
_logger.d('RTC ICE servers response: $data');
if (jsonDecode(data.body)['s'] == 'ok') {
// call returns old format,
// this updates URL to URLS in credentials path.
for (Map credentials in jsonDecode(data.body)['v']['iceServers']) {
var url = credentials['url'];
if (url.toString().isNotEmpty) {
credentials['urls'] = url;
credentials.remove('url');
}
iceServer.add(credentials);
}
_logger.i('RTC ICE servers successfully obtained.');
}
} catch (e) {
_logger.e('Error while getting RTC ICE servers: $e');
}
return iceServer;
}