Auswertung der ProCall Enterprise Server Logdateien mediaav_YYYY_MM_DD_HH_MM.txt
November 2023
Produktrelevanz | estos ProCall 8 Enterprise estos ProCall 7 Enterprise |
---|
Inhalte der Logdatei mediaav_YYYY_MM_DD_HH_MM.txt
Am Ende eines über den estos UC Media Server geführten SIP Softphone Calls führt das SIP Gateway im estos UCServer einen Abruf der Statistik-Daten durch und schreibt diese abgerufenen Daten
- in das SIP Gateway Log sipav_YYYY_MM_DD_HH_MM.txt
- in die Statistik-Logdatei mediaav_YYYY_MM_DD_HH_MM.txt.
Für einen Call werden immer zwei Records in die Logdateien geschrieben:
- ein Record für den WebRTC Endpoint des UC Media Servers: die Verbindung zwischen UC Media Server und ProCall Enterprise Client
- ein Record für den RTP Endpoint des UC Media Servers: die Verbindung zwischen UC Media Server und Telefonanlage
Die Statistik-Logdatei mediaav_YYYY_MM_DD_HH_MM.txt bietet damit einen raschen Überblick über die Verbindungsqualität von SIP Softphone Calls aus Sicht des estos UC Media Servers. Wichtige Kennzahlen sind hier erfasst und können schnell und unkompliziert für eine erste Bewertung herangezogen werden.
Beispiel für die Statistik-Daten zu einem SIP Softphone Call
...
10.11.2023 00:00:24:423;4;Log;Windows Server 2022 Standard (10.0.20348)
10.11.2023 00:00:24:423;4;Log;Product version: 8.3.1.8259
...
10.11.2023 08:00:01:871;1;EAVConnectionManager-8652;MEDIAAV;ESipAVCall::GetStats AVCallthis:0x000001A5371A2CD0 SIPCallID:'8032c7db74b7ad91eaea663970e55fc3' From:'sip:100@172.168.149.249 To:'sip:200@172.17.69.249;maddr=172.168.149.241;transport=udp' Endp:'1c46e30e-917f-4616-9e76-ab9e8b5b7516_kurento.MediaPipeline/96cf282b-f37e-4b18-9e93-f799ed065e65_kurento.RtpEndpoint' Stats:'{"8fe25671-1742-4970-afa0-d166e735917b":{"__module__":"kurento","__type__":"RTCOutboundRTPStreamStats","associateStatsId":"","bytesSent":301280,"codecId":"","firCount":0,"fractionLost":0,"id":"8fe25671-1742-4970-afa0-d166e735917b","isRemote":false,"mediaTrackId":"","nackCount":0,"packetsLost":0,"packetsSent":1883,"pliCount":0,"remb":0,"roundTripTime":0,"sliCount":0,"ssrc":"348949513","targetBitrate":63986,"timestamp":1699599601,"transportId":"","type":"outboundrtp"},"d46d4f30-2767-4c7c-9b7d-489ef1ea6341":{"__module__":"kurento","__type__":"RTCInboundRTPStreamStats","associateStatsId":"","bytesReceived":309600,"codecId":"","firCount":0,"fractionLost":0,"id":"d46d4f30-2767-4c7c-9b7d-489ef1ea6341","isRemote":false,"jitter":0.0012499999720603228,"mediaTrackId":"","nackCount":0,"packetsLost":0,"packetsReceived":1935,"pliCount":0,"remb":0,"sliCount":0,"ssrc":"3788155462","timestamp":1699599601,"transportId":"","type":"inboundrtp"}}'
10.11.2023 08:00:01:871;1;EAVConnectionManager-8652;MEDIAAV;ESipAVCall::GetStats AVCallthis:0x000001A5371A2CD0 SIPCallID:'8032c7db74b7ad91eaea663970e55fc3' From:'sip:100@172.168.149.249 To:'sip:200@172.17.69.249;maddr=172.168.149.241;transport=udp' Endp:'1c46e30e-917f-4616-9e76-ab9e8b5b7516_kurento.MediaPipeline/80e7bee5-474d-44dd-88a3-1b62fe43e8a3_kurento.WebRtcEndpoint' Stats:'{"c579f1ff-eb8b-484d-87fd-7e697ce52e65":{"__module__":"kurento","__type__":"RTCInboundRTPStreamStats","associateStatsId":"","bytesReceived":301120,"codecId":"","firCount":0,"fractionLost":0,"id":"c579f1ff-eb8b-484d-87fd-7e697ce52e65","isRemote":false,"jitter":0.002624999964609742,"mediaTrackId":"","nackCount":0,"packetsLost":9,"packetsReceived":1882,"pliCount":0,"remb":0,"sliCount":0,"ssrc":"2031170082","timestamp":1699599601,"transportId":"","type":"inboundrtp"},"d82ac906-da9e-4503-bfd9-c72c6c93e828":{"__module__":"kurento","__type__":"RTCOutboundRTPStreamStats","associateStatsId":"","bytesSent":302880,"codecId":"","firCount":0,"fractionLost":0,"id":"d82ac906-da9e-4503-bfd9-c72c6c93e828","isRemote":false,"mediaTrackId":"","nackCount":0,"packetsLost":44,"packetsSent":1893,"pliCount":0,"remb":0,"roundTripTime":0,"sliCount":0,"ssrc":"3326488042","targetBitrate":64003,"timestamp":1699599601,"transportId":"","type":"outboundrtp"}}'
...
Folgende Angaben können dieser Logdatei entnommen werden:
Information | Beispiel | Bemerkungen |
---|---|---|
Betriebssystem des ProCall Enterprise Server Hosts | Windows Server 2022 Standard (10.0.20348) | |
Produktversion ProCall Enterprise | Product version: 8.3.1.8259 | |
Datum und Uhrzeit (Ortszeit) | 10.11.2023 08:00:01:871 | Zeitstempel zum abgerufenen Statistik-Datensatz, entspricht dem Zeitpunkt des Call-Endes |
From: | From:'sip:100@172.168.149.249 | Identifikation der Caller Number |
To: | To:'sip:200@172.17.69.249 | Identifikation der Called Number |
RtpEndpoint | n/a | Unter diesem Schlüsselwort findet sich der Statistik-Datensatz für die Verbindung zwischen UC Media Server und Telefonanlage |
WebRtcEndpoint | n/a | Unter diesem Schlüsselwort findet sich der Statistik-Datensatz für die Verbindung zwischen UC Media Server und ProCall Enterprise Client |
RTCOutboundRTPStreamStats | n/a | Enthält der Statistikblock dieses Schlüsselwort, handelt es sich um die Statistik für den aus Sicht des UC Media Servers ausgehenden Stream |
bytesSent | "bytesSent":302880 | Verschickte Datenmenge in Bytes |
packetsLost | "packetsLost":44 | Anzahl nicht empfangener Pakete gemeldet durch die Gegenseite (Empfänger) |
packetsSent | "packetsSent":1893 | Anzahl ausgesandter Pakete |
roundTripTime | "roundTripTime":0 | Ermittelte RTT für die RTP-Pakete |
ssrc | "ssrc":"3326488042" | Synchronisation Source Identifier ssrc des ausgehenden Streams, hier dezimal dargestellt, in Wireshark nach hexadezimal umzuwandeln |
RTCInboundRTPStreamStats | n/a | Enthält der Statistikblock dieses Schlüsselwort, handelt es sich um die Statistik für den aus Sicht des UC Media Servers eingehenden Stream |
bytesReceived | "bytesReceived":301120 | Empfangene Datenmenge in Bytes |
jitter | "jitter":0.002624999964609742 | Gemessener Jitter-Wert im Inbound Stream |
packetsLost | "packetsLost":9 | Anzahl der nicht empfangenen aber erwarteten Pakete (basierend auf Sequenznummernfehler im Stream) |
packetsReceived | "packetsReceived":1882 | Anzahl empfangener Pakete |
ssrc | "ssrc":"2031170082" | Synchronisation Source Identifier ssrc des eingehenden Streams, hier dezimal dargestellt, in Wireshark nach hexadezimal umzuwandeln |
Abfragewerkzeug ScanMediaAVLogs
Sollen die Logdateien mediaav_YYYY_MM_DD_HH_MM.txt herangezogen werden, um sich eine globale Sicht über die Audioqualität zu verschaffen, stellen wir hier das Abfragewerkzeug ScanMediaAVLogs zur Verfügung, das aus einem Befehlszeilenwerkzeug in Form einer einfachen auf Microsoft Windows Betriebssystemen ausführbaren Datei besteht.
Das hier bereitgestellte Abfragewerkzeug ScanMediaAVLogs ist kein Produktbestandteil eines estos Produktes.
Dieses Abfragewerkzeug wird hier unter Ausschluss jeglicher Gewährleistung oder Funktionsgarantie bereitgestellt.
Für das Herunterladen oder die Nutzung des Abfragewerkzeug ScanMediaAVLogs bietet die estos GmbH keine Supportunterstützung.
Das Befehlszeilenwerkzeug ScanMediaAVLogs ermöglicht die Filterung bzw. Auswertung umfassender Bestände von Statistik-Datensätzen. Das Werkzeug liest die adressierten Logdateien mediaav_YYYY_MM_DD_HH_MM.txt ein und sortiert die Daten nach Calls und zugehörigen Statistiken.
Das heruntergeladene Abfragewerkzeug ScanMediaAVLogs kann einfach in einem gewünschten Zielordner abgelegt und via Kommandozeile aufgerufen werden:
Möchte man sich die Pfadangabe (Option --path, siehe unten) zu den Logdateien mediaav_YYYY_MM_DD_HH_MM.txt ersparen, wird das Abfragewerkzeug in denselben Ordner einkopiert, in dem sich diese Logdateien befinden.
Ausgaben des Abfragewerkzeugs ScanMediaAVLogs
Anhand einer beispielhaften Abfrage
Durchsuche in allen im lokalen Verzeichnis befindlichen Logdateien mediaav_YYYY_MM_DD_HH_MM.txt die Calls mit einer Paketverlustrate von 3.0 % oder höher
also ScanMediaAVLogs --path . --percent 3.0
(die Optionen werden im nächsten Abschnitt erläutert) zeigen sich die Ausgaben:
Das Abfragewerkzeug listet jeden Call auf, der den Abfragekriterien entspricht:
- Datum und Uhrzeit des Gesprächsendes
- die FROM- und TO-Adresse zur Verbindung
- WebRTC PacketsLost (Paketverlustrate) aufgeschlüsselt nach Tx (transmitted) und Rx (received) im Verhältnis zu den
- WebRTC Packets Tx (transmitted) und Rx (received) insgesamt
- der gemessene WebRTC Jitter des Media Streams vom Client
- die gemessene WebRTC RoundTripTime (Paketlaufzeit von UC Media Server zum ProCall Enterprise Client und zurück)
- die SSRC Synchronisation Source Identifier (Tx und Rx) dieser Media Streams dezimal eindeutig repräsentierend
- RTP PacketsLost (Paketverlustrate) aufgeschlüsselt nach Tx (transmitted) und Rx (received) im Verhältnis zu den
- RTP Packets Tx (transmitted) und Rx (received) insgesamt,
- der gemessene RTP Jitter des Media Streams von der PBX
- die gemessene RTP RoundTripTime (Paketlaufzeit von UC Media Server zur PBX und zurück)
- die SSRC Synchronisation Source Identifier (Tx und Rx) dieser Media Streams dezimal eindeutig repräsentierend
- ...
ScanMediaAVLogs Version 0.93 (beta), (c) 2022 estos GmbH. All rights reserved
Using search path: .
Showing calls with equal or above than 3.0% packets lost
13.11.2023 10:03:33 From:sip:142@10.20.2.200 To:sip:442@10.20.2.33:51310 SIPCallID: ebea17d960c8818e PacketsLost: 3.76% (max)
-- WebRTC PacketsLost (TX/RX): 5/0 (3.76%/0.00%)
WebRTC FractionLost (TX/RX): 12/0
WebRTC SSRC (TX/RX): 3755405116/1999186444
WebRTC Packets (TX/RX): 133/131
WebRTC Timestamp : 1699866213
WebRTC Jitter : 0.002270833356305957
WebRTC RoundTripTime : 0.03765869140625
-- RTP PacketsLost (TX/RX): 0/0 (0.00%/0.00%)
RTP FractionLost (TX/RX): 0/0
RTP SSRC (TX/RX): 4156934333/852327775
RTP Packets (TX/RX): 130/132
RTP Timestamp : 1699866213
RTP Jitter : 0.003375000087544322
RTP RoundTripTime : 0
Mediaav files found: 6
Streams: 608
Total calls with media streams: 255
Calls listed in output: 1
Weitere Informationen | Beispiel | Erläuterungen |
---|---|---|
Mediaav files found | 6 | Anzahl der durchsuchten Logdateien vom Typ mediaav_YYYY_MM_DD_HH_MM.txt im spezifizierten Pfad (--path). |
Streams | 608 | Anzahl der Datensätze, die mindestens einen Media Stream auf dem RTP Endpoint oder dem WebRTC Endpoint erfasst haben. |
Total calls with media streams | 255 | Anzahl der Datensätze, die einen vollständigen Satz von Media Streams beinhalten, d. h. auf dem RTP Endpoint und auf dem WebRTC Endpoint einen eingehenden und einen ausgehenden Stream erfasst haben. |
Calls listed in output | 1 | Anzahl der Datensätze, die den Such- und Filterkriterien entsprechen und ausgegeben wurden. |
Auf diese Weise ist es also möglich, einen umfangreichen Datenbestand von Call-Statistiken schnell durchforsten zu lassen, um Calls zu identifizieren, welche eine höhere Paketverlustrate aufweisen.
In obigem Beispiel wurden 608 Streams auf eine Paketverlustrate von 3.0 % oder höher durchsucht und es gab nur einen Call bzw. einen Treffer auf Basis dieses Kriteriums: der Counter WebRTC PacketsLost TX zeigt den Wert 5 verlorener Pakete
Eine weitere Betrachtung des Treffers zeigt jedoch eine nur sehr kurze Verbindung im Umfang von nur 133 WebRTC Tx Paketen (ca, zweieinhalb Sekunden), weshalb in der Praxis einem derartigen Fall keine weitere Aufmerksamkeit zu schenken ist.
Sollten in den Abfragen jedoch häufiger Auffälligkeiten in den Countern PacketsLost, Jitter oder RoundTripTime in Erscheinung treten, so können hieraus weitere Überlegungen und Untersuchungsschritte abgeleitet werden:
- Treten die überhöhten Counter auf dem WebRTC Endpoint, also der Verbindung zum Client, in Erscheinung?
- Treten die überhöhten Counter auf dem RTP Endpoint, also der Verbindung zur PBX, in Erscheinung?
- Sind häufig dieselben Nebenstellen (FROM oder TO) von den überhöhten Countern betroffen?
- Auf welchem Weg sind diese häufig betroffenen Nebenstellen mit dem UC Media Server verbunden?
- ...
Eine eingehende Untersuchung kann dann mittels PCAP Mitschnittdatei/Trace für UCServer erstellen - Netzwerkanalyse erforderlich sein.
Verfügbare Optionen des Abfragewerkzeugs ScanMediaAVLogs
Das Abfragewerkzeug ScanAVMediaLogs kennt die folgenden Optionen:
Optionen | Argument | Beispiele | Zweck | Bemerkungen |
---|---|---|---|---|
<ohne> | C:\TEMP\mediaavlogs>ScanMediaAVLogs.exe | Ausgabe der Statistik-Datensätze in Logdateien mediaav_YYYY_MM_DD_HH_MM.txt im lokalen Verzeichnis bei absteigender Sortierreihenfolge nach Paketverlustrate. | ||
--help oder -h | n/v | C:\TEMP\mediaavlogs>ScanMediaAVLogs.exe --help | Ausgabe aller verfügbaren Optionen der ScanAVMediaLogs.exe. | |
--path | <PATH> als Zeichenfolge | C:\TEMP\mediaavlogs>ScanMediaAVLogs.exe --path c:\temp\mediaavlogs C:\TEMP\mediaavlogs>ScanMediaAVLogs.exe --path "\\desktop-abc\c$\Program Files\estos\UCServer\logs" C:\TEMP\mediaavlogs>ScanMediaAVLogs --path . > .\result.txt | Ausgabe aller verfügbarer Statistik-Datensätze und absteigende Sortierung nach Paketverlustrate. | Diese Option spezifiziert den Ablageort der zu analysierenden Logdateien mediaav_YYYY_MM_DD_HH_MM.txt. Die Angabe eines absoluten, relativen oder UNC-Pfades ist möglich. Die Ausgabeumlenkung in eine Datei kann ebenfalls wie gewohnt verwendet werden. |
--phonenumber | <PHONENUMBER> als Zeichenfolge | C:\TEMP\mediaavlogs>ScanMediaAVLogs.exe --phonenumber sip:142@ | Suche nach Calls, welche in den Rufnummernfeldern FROM oder TO die angegebene Zeichenkette (Rufnummer, Teil einer Rufnummer) beinhalten. Die Ausgabe der Treffer erfolgt mit absteigender Sortierung nach Paketverlusten. | Diese Option spezifiziert nach der zu filternden SIP-Adresse bzw. einem Rufnummernteil. Gesucht wird im FROM- und TO-Attribut. Da hier bei der Suche ein exakter Substring-Vergleich durchgeführt wird, sollte das Argument möglichst eindeutig gewählt werden. Wird beispielsweise nach sip:142@ gesucht, werden bspw. keine Datensätze berücksichtigt, in denen die 142 als Teilstring (bspw. Rufnummer 0071114212345) enthalten ist. Werden die Optionen --phonenumber und --lostpackets zusammen verwendet, werden diese logisch mit AND verarbeitet. Wird nach einer Rufnummer oder einem Rufnummernteil gesucht und man erhält jedoch keine Ausgabe (Calls listed in output: 0), muss es nicht bedeuten, dass dieser Nummernteil überhaupt nicht in den Logdateien enthalten ist. Wenn die Rufnummer enthalten ist, jedoch von der Statistik-Auswertung nicht erfasst ist, wurde auf dieser Rufnummer nur ein Call, aber kein Media Stream protokolliert. Somit liegen keine Call-Statistiken vor, sondern nur der Call selbst. |
--lostpackets | <LOSTPACKETS> als Dezimalzahl | C:\TEMP\mediaavlogs>ScanMediaAVLogs.exe --lostpackets 200 | Suche nach Calls mit einem Paketverlust mindestens dem angegebenen Argument entsprechend | Diese Option spezifiziert den Paketverlust. Es werden nur Statistik-Datensätze ausgegeben, in denen die Anzahl der verlorenen Pakete diesem oder einem höheren Wert entsprechen. Wenn diese Option nicht angegeben ist, wird der Standardwert 0 angenommen, es wird damit nicht nach Paketverlust gefiltert. Der Filterwert bezieht sich auf die Summe aus
Wird --phonenumber und --lostpackets zusammen spezifiziert, werden diese logisch mit AND verarbeitet. Wird die Option --percent angegeben, wird die Option --lostpackets nicht berücksichtigt. |
--percent | <PERCENT> als Dezimalzahl im Bereich zwischen 0 und 100 | C:\TEMP\mediaavlogs>ScanMediaAVLogs.exe --percent 3 | Suche nach Calls mit einer Paketverlustrate mindestens dem angegebenen Argument entsprechend | Diese Option spezifiziert die Paketverlustrate. Es werden nur Statistik-Datensätze ausgegeben, in denen der Anteil verlorener Pakete im Verhältnis zu den übertragenen Paketen diesem oder einem höheren Prozentsatz entsprechen. Die Paketverlustrate wird für jeden Stream (WebRTC IN, WebRTC OUT, RTP IN, RTP OUT) gesondert errechnet. Sobald einer dieser vier Streams die angegebene Paketverlustrate erreicht oder überschreitet, wird dieser Statistik-Datensatz ausgegeben. Wenn diese Option nicht angegeben ist, wird der Standardwert 0 angenommen, es wird damit nicht nach Paketverlust gefiltert. Wird die Option --percent angegeben, wird die Option --lostpackets nicht weiter berücksichtigt. Intern wird genauer gearbeitet, als die Ausgabedarstellung x.xx% es erscheinen lässt. Es ist also eine Filterung nach < 0.01% möglich, bspw. 0.0003% |
--date | <DATE> als Zeichenfolge | C:\TEMP\mediaavlogs>ScanMediaAVLogs.exe --date 10.11. C:\TEMP\mediaavlogs>ScanMediaAVLogs.exe --date "13.11.2023 09:23" C:\TEMP\mediaavlogs>ScanMediaAVLogs.exe --date "10.11.2023 10:" | Suche nach Calls, die zu einem spezifizierten Datum oder zu einer spezifizierten Uhrzeit beendet wurden | Diese Option spezifiziert die Zeitangabe, die bei der Filterung berücksichtigt wird. Die Volltextsuche erfordert als Suchstring die Datums- und Uhrzeitangabe entsprechend der Darstellung in der Ausgabe. Wenn diese Option nicht angegeben ist, wird nicht nach Datum oder Uhrzeit gefiltert. |
--unsorted | n/v | C:\TEMP\mediaavlogs>ScanMediaAVLogs --unsorted > .\res_unsorted.txt C:\TEMP\mediaavlogs>ScanMediaAVLogs --path . --unsorted | Ausgabe der Statistik-Datensätze bei aufsteigender Sortierreihenfolge nach Zeitpunkt des Call-Endes | Um die im Standard vorgesehene Sortier-Reihenfolge nach absteigender Paketverlust-Rate nicht zu verwenden, wird diese Option gewählt. Diese Option in Kombination mit den weiteren Optionen --date, --lostpackets oder --phonenumber liefert die Treffer in Sortierung nach Datum aus. |
Download ScanMediaAVLogs.exe
Version 0.93
Weiterführende Informationen
Erzeugen eines Debug-Logs von UCServer
estos ProCall Enterprise Server Logdateien
PCAP Mitschnittdatei/Trace für UCServer erstellen - Netzwerkanalyse