Die Überwachung des Status des VoIP-Signalisierungsnetzwerks ist eine der wichtigen Bedingungen, unter denen der UCaaS-Anbieter seinen Kunden ein garantiertes Qualitätsniveau für Dienste wie Audio- und Videoanrufe, Faxempfang und -übertragung bieten kann. Typischerweise wird eine solche Steuerung unter Verwendung verschiedener Überwachungssysteme, Verkehrserfassung und -analyse, CDR-Analyse durchgeführt. Einige der Parameter des Signalnetzwerks sind ziemlich schwierig und mit den angegebenen Methoden oft nicht zu bewerten.
Eine mögliche Quelle für wichtige Informationen über den Status eines VoIP-Signalisierungsnetzwerks ist der SIP Application Server (SIP AS), eines der Hauptelemente bei der Verarbeitung von Anrufen in einem VoIP-Netzwerk. Mit SIP AS-Protokolldateien können Sie unter anderem die folgenden Parameter eines VoIP-Signalisierungsnetzwerks auswerten:
- Länge des SIP-Dialogs
- Das Zeitintervall zwischen dem Senden einer Anforderung und dem Empfangen einer endgültigen Antwort (Anforderungsantwortzeit, RRT) für verschiedene Arten von SIP-Anforderungen
- Die Anzahl der erneuten Übertragungen von Nachrichten (Neuübertragungen, RTR) für verschiedene Arten von SIP-Nachrichten
Nicht nur die Werte dieser Parameter sind wichtig, sondern auch die Verteilung dieser Parameter sowie ihre zeitlichen Änderungen. Informationen über die Änderung der Parameterwerte im Laufe der Zeit ermöglichen die Vorhersage möglicher Probleme in einem VoIP-Netzwerk. Diese Informationen können auch als eine der Datenquellen für verschiedene Algorithmen für maschinelles Lernen (maschinelles Lernen, ML) dienen, die es ermöglichen, Änderungen von Parametern nicht nur abhängig von der Zeit, sondern auch von anderen Faktoren vorherzusagen.
Abhängig von der Signallast kann SIP AS Protokolldateien im Textformat von bis zu mehreren zehn GB pro Tag generieren. Die Analyse von Textdateien eines solchen Volumes ist eine ressourcenintensive Aufgabe. Als eine der möglichen Optionen können verschiedene Python-Tools für diese Analyse verwendet werden. Beispielsweise bietet die Pandas- Bibliothek sehr praktische Werkzeuge zum Verarbeiten und Analysieren verschiedener Daten, insbesondere von Datenrahmen (DF). Der in diesem Artikel verwendete Code ist hier verfügbar.
Die folgenden Schritte werden zum Analysieren von SIP AS-Protokolldateien vorgeschlagen:
- Öffnen Sie die Protokolldatei zum Lesen. Wenn SIP AS mehrere Protokolldateien erstellt hat, sollten diese in derselben Reihenfolge geöffnet werden, in der sie erstellt wurden.
- Daten zeilenweise lesen. Dies ist erforderlich, um RAM zu sparen, wenn mit Dateien mit Einheiten von mehreren zehn GB gearbeitet wird
- Markieren Sie SIP-Nachrichten zwischen bestimmten Zeichenfolgen - Trennzeichen
- Erstellen Sie eine Liste mit Wörterbüchern. Jedes der Wörterbücher besteht wiederum aus einem Zeitstempel (Schlüssel) und der eigentlichen SIP-Nachricht (Wert) in Form einer Liste
- Speichern Sie diese Liste auf dem Festplatten- oder Netzwerkspeicher, z. B. als Pickle-Datei. Diese Datei wird später zum Erstellen verschiedener DFs verwendet.
- Erstellen Sie einen DF aus einer gespeicherten Pickle-Datei, die die für die weitere Analyse erforderlichen Informationen enthält (SIP DF).
In diesem speziellen Fall wurde ein SIP-DF erstellt, der die folgenden Spalten enthält:
- Zeitstempel - Zeitstempel von SIP AS hinzugefügt
- Anruf-ID - Anruf-ID der SIP-Konversation
- CSeq_num, CSeq_meth - Daten aus dem 'CSeq'-SIP-Header
- Richtung - Nachricht empfangen (Rx <-) oder gesendet (Tx->), SIP AS wird hinzugefügt
- SIP-Methode - SIP-Methode von SIP Request-Line
- Src Dst IP - IP-Adresse, von der die Nachricht gesendet oder empfangen wurde

Abb. 1. Parameter von SIP DF, erhalten aus einer Pickle-Datei von ungefähr 3 GB

Abb. 2. Inhalt von SIP DF
Mit einem ähnlichen SIP-DF können Sie verschiedene Parameter eines VoIP-Signalisierungsnetzwerks auswerten. Alle folgenden Beispiele stammen aus einem gültigen VoIP-Netzwerk. IP-Adressen und andere Daten, die Informationen zum angegebenen Netzwerk enthalten können, wurden geändert.
1. Die Länge des SIP-Dialogs


Abb. 3. Länge des DF- und SIP-Dialogs
Für jeden Fall eines langen SIP-Dialogs können Sie den Anruf anhand des Anruf-ID-Werts ermitteln und anschließend anhand von Textprotokollen das Szenario dieses Anrufs analysieren. Trotz der relativ geringen Anzahl von Anrufen, für die die Länge der SIP-Konversation zehn bis Hunderte von Nachrichten beträgt, müssen die Szenarien dieser Anrufe untersucht werden. Die Untersuchung solcher Anrufe ergab die folgenden Quellen für lange SIP-Dialoge:
- Übertragung von mehreren Dutzend Gruppen einer bestimmten Struktur, bestehend aus DTMF-Zeichen, nach Einrichtung einer Sprachsitzung. Dies ist ein Sprachanrufszenario, in dem Authentifizierung, Autorisierung und Informationsaustausch zwischen dem anrufenden und dem angerufenen Teilnehmer stattfinden.
- Videoanrufe, bei denen eine sehr große Anzahl von FIR -Anforderungen (Full Intra-Frame Request) festgestellt wurde. Dies weist insbesondere auf ein Telefonsoftwareproblem oder den Verlust von RTP-Paketen während Videoanrufen hin.
Lange SIP-Dialoge können auch aufgrund einer Fehlfunktion des VoIP-Geräts angezeigt werden. Versuche, PIN-Codes über ein IVR-Menü auszuwählen (Senden einer großen Anzahl von DTMF-Sequenzen). In jedem Fall ist es erforderlich, die Anzahl langer SIP-Gespräche zu überwachen, da mit zunehmender Anzahl solcher Dialoge eine zusätzliche nutzlose Signallast auf die Elemente des VoIP-Netzwerks auftreten kann.
2. RRT
Sie wird für empfangene und gesendete INFO- und INVITE-Anforderungen separat berechnet. Beachten Sie, dass bei der Verarbeitung einer großen Anzahl von Aufrufen dieselben CSeq-Werte für verschiedene Dialoge auftreten können. Es kann davon ausgegangen werden, dass die Verteilung der RRT-Werte für die gesendeten Anforderungen ungefähr gleich sein sollte, die absoluten Werte sich aufgrund der unterschiedlichen Größe und des unterschiedlichen Inhalts der INFO- und INVITE-Anforderungen und folglich der unterschiedlichen Verarbeitungszeiten dieser Anforderungen durch Netzwerkelemente unterscheiden sollten.

Abb. 3. RRT für INFO-Anforderungen, die von SIP AS empfangen wurden
Die Erhöhung der RRT-Werte in diesem Fall weist auf mögliche Probleme bei der Virtualisierung hin, eine Erhöhung der Belastung von SIP AS. Mit Call-ID und CSeq_num können Sie die RRT-Werte für jeden Fall überprüfen.

Abb. 4. RRT für INFO-Anforderungen, die von SIP AS gesendet werden. Die RRT in der Grafik ist auf 500 ms begrenzt. Dies ist der Standardwert für den SIP T1- Timer.

Abb. 5. RRT für von SIP AS gesendete INVITE-Anfragen. Wie erwartet ist die Verteilung ungefähr dieselbe wie bei INFO-Abfragen.
3. RTR
Ein wichtiger Parameter, der den Status eines VoIP-Signalisierungsnetzwerks kennzeichnet.

Abb. 6. Der Prozentsatz der erneuten Übertragung von INFO- bzw. INVITE-Anforderungen. RTRs, die einmal oder mehrmals auftreten, werden berücksichtigt.
Zusätzlich zu den beschriebenen Beispielen können andere Daten unter Verwendung von DF erhalten werden, zum Beispiel:
- Korrigieren Sie den SIP AS-Lastausgleich für ausgehende Nachrichten. Dazu müssen Sie die Anzahl der gesendeten Nachrichten (Tx) an verschiedene IP-Adressen (SrcDst IP) mit groupby () zählen. Count () - ähnlich der Funktion retransmits_counter_tx (). Der Unterschied in der Anzahl der Nachrichten über 15-20% weist auf eine falsche Lastverteilung hin
- Die Anzahl der fehlgeschlagenen Anrufweiterleitungen. Zu diesem Zweck können Sie einen separaten DF erstellen, der nur REFER-Dialoge sowie die erforderlichen Überschriften und Felder aus den Nachrichten dieser Dialoge enthält
- Die Abhängigkeit der Parameter von der Zeit. Wenn Sie den Durchschnittswert eines der Parameter, z. B. RRT, über mehrere Monate erfassen, können Sie basierend auf den Daten eine Zeitreihe (Zeitreihe, TS) erstellen. Mithilfe verschiedener Bibliotheken für die TS-Analyse, z. B. Statistikmodelle, können Sie den Trend, die Saisonalität und andere TS-Parameter bestimmen. Die Daten aus dieser Prognose können verwendet werden, um die Architektur des VoIP-Netzwerks anzupassen.
Fazit
SIP AS-Textprotokolldateien sind eine wichtige Informationsquelle über den aktuellen Status eines VoIP-Netzwerks. Darüber hinaus können die nach entsprechender Verarbeitung dieser Informationen erhaltenen Daten zur Vorhersage des Zustands eines VoIP-Netzwerks verwendet werden, insbesondere unter Verwendung von ML-Verfahren.