We are excited to announce an integration with the Microsoft Universal Windows Platform! This integration enables UWP developers to monitor real-time voice, video, and data streams in applications ranging from virtual and augmented reality to gaming. UWP powers popular Microsoft Xbox game consoles and HoloLens mixed reality smart glasses, as well as Windows 10 desktop and ARM-powered mobile devices.
Our integration allows developers to easily monitor and troubleshoot any application that relies on real-time communications. We collect over 500 metrics every few seconds from a UWP endpoint and use AI-driven algorithms to detect network problems and automatically troubleshoot issues.
How Easy is it to Integrate UWP with callstats.io?
With just a few lines of code, developers can add the callstats.io REST interface to their application and enable it to begin reporting real-time metrics to our high-performance data collection engine. Our dashboard visualizes your data and enables your team to analyze trends and troubleshoot problems.
How Can I Integrate UWP and callstats.io?
Follow the integration steps below to create an account with callstats.io and integrate it into your UWP application.
- Create an account with callstats.io and follow the integrations steps.
- Create an Organization
- Navigate to the apps tab to create an app and enter the SDK as, other, UWP.
- From the left side panel, click on App Settings and navigate to the Security tab.
- Click on New Credentials and choose a label for the key.
- Select the key type as ECDSA and enter the public key.
- Under the key details, click on View for the credential.
- To authenticate with callstats.io, you need to generate cryptographic keys and upload the public key to the dashboard. Follow the instructions in readme.md. You should have a Config class and .p12 certificate in your project, which is all you need to authenticate to the callstats,io REST API.
- Reference the Org.WebRtc.Callstats NuGet package in your project.
- If you are using PeerCC sample, you can find classes for collecting data from PeerCC and WebRTC in the Stats folder. You may use this code as an example for your implementation. Add the files in the PeerCC-Sample repo to your project:
- PeerConnectionControllerStateChange.cs: Tracks RTCPeerConnection state changes and collects data from peer connection states for submission to callstats.io.
- StatsController.cs: Collects data from the entire PeerCC sample and uses the Org.WebRtc.Callstats library to send prepared data to the callstats.io REST API.
- WebRtcStats.cs: Prepares statistics obtained from RTCPeerConnection for communication to callstats.io via the REST API.
- Initialize callstats.io and send SDP and application errors via the StatsController. For an example, see Conductor.cs in PeerCC-Sample.
- Handle ICE state changes on RTCPeerConnection and use PeerConnectionStateChange to send data to callstats.io:
_peerConnection.OnIceGatheringStateChange += async() =>
Debug.WriteLine("Conductor: Ice connection state change, gathering-state=" + _peerConnection.IceGatheringState.ToString().ToLower());
_peerConnection.OnIceConnectionStateChange += async () =>
if (_peerConnection != null)
7. Send application level events for audio muting and unmuting to StatsController. For an example, see MainViewModel.cs in PeerCC-Sample.