Hi Vaun,
I did quite a bit of work trying to get media route via a private MPLS, so some of my findings may be of use?
When the WebRTC agent registers with PureCloud and the ICE data is passed to the Edge it will contain information on where/how to send the media to the client. This will have a list in order private,public,relay to where the edge should try and send the media (I have changed IPs):
i3ice::Session::on_remote_candidates_received_from_peer(): New candidates received from remote peer:
[MediaID, ComponentID, CandidateType, Address]
0, 1, host, 192.168.0.10:52037 0, 1, srflx, 190.180.180.10:52249 0, 1, srflx, 190.180.180.10:52250 0, 1, relay, 34.200.150.10:21294
Then before sending the media the Edge will try and ping one of the addresses starting from the left, the private address. Once it succeeds it will use this for all media streams:
i3ice::Session::on_round_trip_failed(): Round trip between LocalAddress=EDGEIP:20306 and RemoteAddress=192.168.0.10:52037 timed out.
i3ice::Session::on_round_trip_failed(): Round trip between LocalAddress=EDGEIP:20306 and RemoteAddress=190.180.180.10:52249 timed out.
..
i3ice::Session::on_connectivity_check_succeeded(): Outgoing Connectivity Check succeeded. MediaID=0, ComponentID=1, LocalAddress=EDGEIP:20306, RemoteAddress=34.200.150.10:21294,
In this example, the private and public addresses fail, so it falls back to the working relay address
Hope this is of some use
Thanks Luke
------------------------------
Luke Mitchell
Conn3ct
------------------------------