State of knowledge

June 2021.
Version info: ProCall 7 Enterprise. ProCall 6 Enterprise

In the event of faults in the area of ProCall Enterprise SIP softphone operation or also in the areas of an audio/video chat or screen sharing, it may be necessary or helpful for analysis purposes to have statistics information from the WebRTC stack of the ProCall Enterprise client available.

For each call or session, a variety of data such as jitter, packet loss, round-trip time, audio level, media connection paths, etc. can be retrieved and logged on the WebRTC stack of the ProCall Enterprise client in addition to the usual Debug Logging.

You will receive the request to log this additional WebRTC statistics information from your respective support instance.

This information is valid for ProCall Enterprise Client for Windows versions 6 and 7.

Activation of ProCall Enterprise Client WebRTC statistics retrieval

To retrieve and log statistics from the WebRTC stack for each SIP softphone call, audio chat, video chat or screen sharing session, declare the DWORD (32-bit) AVWebRTCStatsReport in the Microsoft Windows Registry under the key HKEY_CURRENT_USER\Software\ESTOS\UCServer4\CtiMain and set its value to 1.

[HKEY_CURRENT_USER\SOFTWARE\ESTOS\UCServer4\CtiMain]
"AVWebRTCStatsReport"=dword:00000001

Zulässiger Wertebereich für das DWORD (32-bit) AVWebRTCStatsReport:
Wert 0: der Abruf und die Protokollierung der WebRTC Statistik-Informationen ist deaktiviert
Wert 1: der Abruf und die Protokollierung der WebRTC Statistik-Informationen ist aktiviert
CODE

Afterwards, the ProCall Enterprise client for Windows has to be restarted to be able to use this DWORD from the client.

Also, make sure that in ProCall Enterprise client for Windows the Debug level is set to Debug (all).
Only in combination with the ProCall Enterprise client log level Debug (all) the logging of the WebRTC statistics information is done, the WebRTC statistics are NOT logged in the log levels Error (only errors), Warning (errors and warnings), Informational (errors, warnings, and information). More information about creating a ProCall Enterprise client for Windows debug logs can be found here: Creation of a debug log for ProCall client.

Logging of WebRTC statistics information is done in the regular ProCall Enterprise client log file ProCall_YYYY_MM_DD_HH_MM.txt, which by default is located in the directory %localappdata%\estos\ProCall <versionnr.>\logs (in version 7 for example in %localappdata%\estos\ProCall 7\logs.

Example: WebRTC statistics data

15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::FlushReports;(3A8F) WebRTC Received Status Report Data
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCTransportStats [0] : {"type":"transport","id":"RTCTransport_0_1","timestamp":1623735481463000,"bytesSent":162140,"packetsSent":1514,"bytesReceived":224710,"packetsReceived":1389,"dtlsState":"connected","selectedCandidatePairId":"RTCIceCandidatePair_dIQxjSuo_hbOilMZS","localCertificateId":"RTCCertificate_57:68:B5:8E:0C:73:ED:4B:ED:D2:17:68:AA:97:8D:13:B7:82:80:55:38:B3:4D:CF:79:6A:5D:CD:BD:A5:AC:EF","remoteCertificateId":"RTCCertificate_FC:3B:2A:FB:92:ED:63:01:D4:A0:EB:83:E3:D1:81:57:EA:F3:67:A9:BF:86:A2:64:A0:C4:0F:F9:01:18:76:2B","tlsVersion":"FEFD","dtlsCipher":"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA","srtpCipher":"AES_CM_128_HMAC_SHA1_80","selectedCandidatePairChanges":2}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCAudioSourceStats [0] {"type":"media-source","id":"RTCAudioSource_5","timestamp":1623735481463000,"trackIdentifier":"audio__BLLX2oLRt__01_01_Headphone__Plan","kind":"audio","audioLevel":0,8079775383770257,"totalAudioEnergy":4,279622633298168,"totalSamplesDuration":29,99000000000189}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCRemoteInboundRtpStreamStats [0] {"type":"remote-inbound-rtp","id":"RTCRemoteInboundRtpAudioStream_857357210","timestamp":1623735474032000,"ssrc":857357210,"kind":"audio","transportId":"RTCTransport_0_1","codecId":"RTCCodec_0_Outbound_111","packetsLost":0,"jitter":0,0029375,"localId":"RTCOutboundRTPAudioStream_857357210","roundTripTime":0,033}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCOutboundRTPStreamStats [0] {"type":"outbound-rtp","id":"RTCOutboundRTPAudioStream_857357210","timestamp":1623735481463000,"ssrc":857357210,"isRemote":false,"mediaType":"audio","kind":"audio","trackId":"RTCMediaStreamTrack_sender_5","transportId":"RTCTransport_0_1","codecId":"RTCCodec_0_Outbound_111","mediaSourceId":"RTCAudioSource_5","remoteId":"RTCRemoteInboundRtpAudioStream_857357210","packetsSent":1499,"retransmittedPacketsSent":0,"bytesSent":114804,"headerBytesSent":29980,"retransmittedBytesSent":0}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCInboundRTPStreamStats [0] {"type":"inbound-rtp","id":"RTCInboundRTPAudioStream_1028001286","timestamp":1623735481463000,"ssrc":1028001286,"isRemote":false,"mediaType":"audio","kind":"audio","trackId":"RTCMediaStreamTrack_receiver_5","transportId":"RTCTransport_0_1","codecId":"RTCCodec_0_Inbound_111","packetsReceived":1381,"fecPacketsReceived":0,"fecPacketsDiscarded":0,"bytesReceived":192178,"headerBytesReceived":16572,"packetsLost":0,"lastPacketReceivedTimestamp":2411,538,"jitter":0,"jitterBufferDelay":46454,4,"jitterBufferEmittedCount":1323840,"totalSamplesReceived":1372800,"concealedSamples":49920,"silentConcealedSamples":48920,"concealmentEvents":2,"insertedSamplesForDeceleration":450,"removedSamplesForAcceleration":0,"audioLevel":47,"totalAudioEnergy":0,2265530920651619,"totalSamplesDuration":30,66000000000199}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCPeerConnectionStats [0] {"type":"peer-connection","id":"RTCPeerConnection","timestamp":1623735481463000,"dataChannelsOpened":0,"dataChannelsClosed":0}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCMediaStreamTrackStats [0] : {"type":"track","id":"RTCMediaStreamTrack_receiver_5","timestamp":1623735481463000,"trackIdentifier":"2970e2a2-db70-4c10-9c7c-ef97234371ba","remoteSource":true,"ended":false,"detached":false,"kind":"audio","jitterBufferDelay":46454,4,"jitterBufferEmittedCount":1323840,"audioLevel":0,001434369945371868,"totalAudioEnergy":0,2265530920651619,"totalSamplesReceived":1372800,"totalSamplesDuration":30,66000000000199,"concealedSamples":49920,"silentConcealedSamples":48920,"concealmentEvents":2,"insertedSamplesForDeceleration":450,"removedSamplesForAcceleration":0,"jitterBufferFlushes":0,"delayedPacketOutageSamples":0,"relativePacketArrivalDelay":0,4,"jitterBufferTargetDelay":26553,6,"interruptionCount":0,"totalInterruptionDuration":0}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCMediaStreamTrackStats [1] : {"type":"track","id":"RTCMediaStreamTrack_sender_5","timestamp":1623735481463000,"trackIdentifier":"audio__BLLX2oLRt__01_01_Headphone__Plan","mediaSourceId":"RTCAudioSource_5","remoteSource":false,"ended":false,"detached":false,"kind":"audio"}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCMediaStreamStats [0] {"type":"stream","id":"RTCMediaStream_default","timestamp":1623735481463000,"streamIdentifier":"default","trackIds":["RTCMediaStreamTrack_receiver_5"]}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCMediaStreamStats [1] {"type":"stream","id":"RTCMediaStream_stream_BLLX2oLRt_01____________________","timestamp":1623735481463000,"streamIdentifier":"stream_BLLX2oLRt_01____________________","trackIds":["RTCMediaStreamTrack_sender_5"]}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCRemoteIceCandidateStats [0] {"type":"remote-candidate","id":"RTCIceCandidate_hbOilMZS","timestamp":1623735481463000,"transportId":"RTCTransport_0_1","isRemote":true,"ip":"10.20.2.34","port":5777,"protocol":"udp","candidateType":"host","priority":2015363583,"deleted":false}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCIceCandidatePairStats [0] {"type":"candidate-pair","id":"RTCIceCandidatePair_dIQxjSuo_hbOilMZS","timestamp":1623735481463000,"transportId":"RTCTransport_0_1","localCandidateId":"RTCIceCandidate_dIQxjSuo","remoteCandidateId":"RTCIceCandidate_hbOilMZS","state":"succeeded","priority":8,655920682778246e+18,"nominated":true,"writable":true,"bytesSent":162140,"bytesReceived":224710,"totalRoundTripTime":0,478,"currentRoundTripTime":0,028,"availableOutgoingBitrate":300000,"requestsReceived":18,"requestsSent":1,"responsesReceived":16,"responsesSent":18,"consentRequestsSent":15}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [0] : {"type":"codec","id":"RTCCodec_0_Inbound_0","timestamp":1623735481463000,"payloadType":0,"mimeType":"audio/PCMU","clockRate":8000,"channels":1}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [1] : {"type":"codec","id":"RTCCodec_0_Inbound_102","timestamp":1623735481463000,"payloadType":102,"mimeType":"audio/ILBC","clockRate":8000,"channels":1}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [2] : {"type":"codec","id":"RTCCodec_0_Inbound_103","timestamp":1623735481463000,"payloadType":103,"mimeType":"audio/ISAC","clockRate":16000,"channels":1}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [3] : {"type":"codec","id":"RTCCodec_0_Inbound_104","timestamp":1623735481463000,"payloadType":104,"mimeType":"audio/ISAC","clockRate":32000,"channels":1}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [4] : {"type":"codec","id":"RTCCodec_0_Inbound_105","timestamp":1623735481463000,"payloadType":105,"mimeType":"audio/CN","clockRate":16000,"channels":1}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [5] : {"type":"codec","id":"RTCCodec_0_Inbound_106","timestamp":1623735481463000,"payloadType":106,"mimeType":"audio/CN","clockRate":32000,"channels":1}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [6] : {"type":"codec","id":"RTCCodec_0_Inbound_110","timestamp":1623735481463000,"payloadType":110,"mimeType":"audio/telephone-event","clockRate":48000,"channels":1}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [7] : {"type":"codec","id":"RTCCodec_0_Inbound_111","timestamp":1623735481463000,"payloadType":111,"mimeType":"audio/opus","clockRate":48000,"channels":2,"sdpFmtpLine":"minptime=10;useinbandfec=1"}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [8] : {"type":"codec","id":"RTCCodec_0_Inbound_112","timestamp":1623735481463000,"payloadType":112,"mimeType":"audio/telephone-event","clockRate":32000,"channels":1}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [9] : {"type":"codec","id":"RTCCodec_0_Inbound_113","timestamp":1623735481463000,"payloadType":113,"mimeType":"audio/telephone-event","clockRate":16000,"channels":1}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [10] : {"type":"codec","id":"RTCCodec_0_Inbound_126","timestamp":1623735481463000,"payloadType":126,"mimeType":"audio/telephone-event","clockRate":8000,"channels":1}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [11] : {"type":"codec","id":"RTCCodec_0_Inbound_13","timestamp":1623735481463000,"payloadType":13,"mimeType":"audio/CN","clockRate":8000,"channels":1}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [12] : {"type":"codec","id":"RTCCodec_0_Inbound_8","timestamp":1623735481463000,"payloadType":8,"mimeType":"audio/PCMA","clockRate":8000,"channels":1}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [13] : {"type":"codec","id":"RTCCodec_0_Inbound_9","timestamp":1623735481463000,"payloadType":9,"mimeType":"audio/G722","clockRate":8000,"channels":1}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [14] : {"type":"codec","id":"RTCCodec_0_Outbound_111","timestamp":1623735481463000,"payloadType":111,"mimeType":"audio/opus","clockRate":48000,"channels":2,"sdpFmtpLine":"minptime=10;useinbandfec=1"}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCodecStats [15] : {"type":"codec","id":"RTCCodec_0_Outbound_126","timestamp":1623735481463000,"payloadType":126,"mimeType":"audio/telephone-event","clockRate":8000,"channels":1}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCertificateStats [0] : {"type":"certificate","id":"RTCCertificate_57:68:B5:8E:0C:73:ED:4B:ED:D2:17:68:AA:97:8D:13:B7:82:80:55:38:B3:4D:CF:79:6A:5D:CD:BD:A5:AC:EF","timestamp":1623735481463000,"fingerprint":"57:68:B5:8E:0C:73:ED:4B:ED:D2:17:68:AA:97:8D:13:B7:82:80:55:38:B3:4D:CF:79:6A:5D:CD:BD:A5:AC:EF","fingerprintAlgorithm":"sha-256","base64Certificate":"MIIBFzCBvaADAgECAgkAmY9eellScp4wCgYIKoZIzj0EAwIwETEPMA0GA1UEAwwGV2ViUlRDMB4XDTIxMDYxNDA1MzczMFoXDTIxMDcxNTA1MzczMFowETEPMA0GA1UEAwwGV2ViUlRDMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZVDrMwXb1/ucmvZ7ooNrPxcGwk29Cx9H6ozbTu215q2UDtRNlGPHF3B+mHahKjRJPyLH5xMT2uj7Zk79G/qGtDAKBggqhkjOPQQDAgNJADBGAiEAr8S7F3hxSL4Gk45RDRTgMMu8uPV/dSHvYY3wWOPP+j4CIQCY0nGNkgNHx8DRTl67r/koBFi5p7aNiTnPG4q6Nor7Dw=="}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::LogRTCReport;RTCCertificateStats [1] : {"type":"certificate","id":"RTCCertificate_FC:3B:2A:FB:92:ED:63:01:D4:A0:EB:83:E3:D1:81:57:EA:F3:67:A9:BF:86:A2:64:A0:C4:0F:F9:01:18:76:2B","timestamp":1623735481463000,"fingerprint":"FC:3B:2A:FB:92:ED:63:01:D4:A0:EB:83:E3:D1:81:57:EA:F3:67:A9:BF:86:A2:64:A0:C4:0F:F9:01:18:76:2B","fingerprintAlgorithm":"sha-256","base64Certificate":"MIICtzCCAZ+gAwIBAgIBADANBgkqhkiG9w0BAQsFADAfMQswCQYDVQQGEwJTRTEQMA4GA1UEAwwHS3VyZW50bzAeFw0yMTA2MTUwNTIzMzRaFw0yMjA2MTUwNTIzMzRaMB8xCzAJBgNVBAYTAlNFMRAwDgYDVQQDDAdLdXJlbnRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyogP2HlQfmfMzN7rZ3dxph9QLv4QlsTBBJMqtGQJFGmT1/2iDxOs7MYPPVitpNMl6gDOvbydhFFFBxIQ2+YOQCGp9UKbWd0rNCI287HbsYtUTpeIFWlVmECFGxe4VNhIjXw92fxw1RCSw2RIFTOBAh5HNvesywcmy533QrqjqTLPzJZ2aC81RlhtydNjtBRE4esMyPf3mc/mPlcDlry8vWIeiZ9cg1UwwBVp1uz2p3PkW6kaMOHenmo4HqokRgmyH+5/4kgO5+ZJn/lk5TuEU752SahZxpnMz8DsxCYrKH1MD+NR7ADeynGiSkeA5VvuNGzpeeaFrfe7/h5ZX6R3wwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCMBkxAEz9WoZPT7e8jJoCQfZU3qBn0Q/zEV/LCL3Yohl1sbKEXXHQmmFDC2KfYrDKP92jSTl1SOIWTt0G/94B4GaT/Rm1suJYX1ZnPzyWmTKx4AuHg9XbOCqWz5A2PTSXYScaT4pvy/u3YdWa+bGK2EJegc1zfeWpGCi6O0L9bnoBaxXLYRtShrcUI5v8dF0bEQ5Pksr05AxyFxER8YtPfPjx8uCf/Xh3/6aW+9vn58Rc/EesYE+U0SvpxIZ2gpRV9aRVRuNn25HUNWQwILGGoJHiT/+oU2DIpTwLU0hPnl4muBGTXuyOS6aO8NxvDt2Zkanob30KwtlZhRGtkgmeU"}
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::FlushReports;(3A8F) TX Audio Codec: opus
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::FlushReports;(3A8F) RX Audio Failure Rate: 0%
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::FlushReports;(3A8F) ICE (TURN/STUN) Info: 10.21.3.38:36000 (host) <--> 10.20.2.34:5777 (host)
15.06.2021 07:38:02:499;32;mainthread-1272;EAVMediaStats::FlushReports;(3A8F) WebRTC Received Status Report Data - End
CODE

Due to the very rarely observed situation of a frozen ProCall Enterprise client for Windows after terminated call or session due to retrieval of the WebRTC statistics information, it is strongly recommended to set the DWORD AVWebRTCStatsReport back to the value 0 after completion of the tests and collection of the analysis material in order to disable the statistics logging again.

Disabling ProCall Enterprise client WebRTC statistics retrieval

To disable statistics retrieval and logging from the WebRTC stack, set the DWORD (32-bit) AVWebRTCStatsReport value to 0 in the Microsoft Windows Registry under the HKEY_CURRENT_USER\Software\ESTOS\UCServer4\CtiMain key and restart the ProCall Enterprise client for Windows.

[HKEY_CURRENT_USER\SOFTWARE\ESTOS\UCServer4\CtiMain]
"AVWebRTCStatsReport"=dword:00000000
CODE

Alternatively, it may be useful to reset the client debug level from Debug (all) to a lower level.

Creation of a debug log for ProCall client

Anzahl WebRTCTrace-Logdateien erhöhen