Software IP PBX und Lasttests

Guten Tag allerseits! Seit einigen Jahren mache ich IP-Telefonie und stelle fest, dass das Internet zwar voller Informationen ist, ich aber nicht nur über das russische Segment spreche, sondern dass Sie manchmal das richtige nur in einem "verlassenen Forum" finden können, sonst überhaupt nicht . Wenn es genügend Informationen über IP-Telefonie und das SIP-Protokoll selbst gibt, gibt es keine Daten darüber, wie eine Software-IP-PBX aufgebaut ist, wie sie aus offensichtlichen Gründen getestet und debuggt wird oder nicht, aber sie ist in einer Sprache geschrieben, die nur jemand verstehen kann, der sie viele Jahre lang verstehen kann arbeitet in diesem Bereich.



Ich habe beschlossen, diese Lücken zu füllen und meinen eigenen Beitrag zu leisten. Diese Informationen sind informativ und nützlich für Anfänger. Erfahrene Benutzer können etwas Neues für sich selbst hervorheben. In jedem Fall werden wir alle schwarze Zahlen schreiben. Die Pläne im Moment sind groß - einen Zyklus von Beiträgen zu schreiben, der das gewonnene Wissen zusammenfasst, aus offensichtlichen Gründen werde ich keine Baugruppen, virtuellen Maschinen usw. veröffentlichen. Das Wichtigste ist, Regie zu führen, und derjenige, der geht, wird seinen Weg finden.



Vielleicht genug von den Texten, fangen wir wie immer mit der Theorie an. Da dieser Beitrag von Benutzern mit einem anderen Wissensstand gelesen wird, werde ich versuchen, alles kurz und klar zu fassen.



Einführung



Eine Software-IP-PBX ist eine automatische Telefonvermittlung, die auf dem IP-Protokoll basiert. Das "Gehirn" ist eine spezielle Software, die Sprachumschaltung (in diesem Fall Sprachpakete) und andere Dienste implementiert, die Teilnehmern bereitgestellt werden.



Nun wollen wir sehen, wie das alles funktioniert. Ich werde sofort eine Reservierung im Detail vornehmen. Ich werde es nicht annehmen. Es wird sehr lange dauern und daher wird es einige Fehler und Auslassungen geben.



Der Teilnehmer nimmt den Hörer ab und gibt die Nummer ein, die Signalisierung wird sofort ausgelöst, wodurch die Sitzung des Sprachstroms gesteuert wird. Hierzu gibt es eine Reihe von Protokollen, von denen zwei SIP und H.323 unterschieden werden können. Im Moment hat SIP große Popularität erlangt und wird in diesem Beitrag berücksichtigt. Ferner nehmen wir an, dass unter Verwendung des SIP-Protokolls eine logische Verbindung zwischen den Teilnehmern hergestellt wurde und dann eine Stimme benötigt wird.



Der Teilnehmer spricht ins Telefon - seine Stimme wird mithilfe eines Software- oder Hardware-Codecs in eine Reihe von Bits codiert. Codec ist ein Sprachkomprimierungsalgorithmus, der einfachste und am häufigsten verwendete PCMA. Diese Bits werden dann unter Verwendung des RTP-Protokolls an den Adressaten gesendet.



Um all das zusammenzufassen, haben wir das SIP-Protokoll, das die Kommunikationssitzung verwaltet. Es enthält das SDP-Protokoll, das die Sitzung beschreibt (verwendete und verfügbare Codecs und andere Informationen). Diese Protokolle werden in den TCP- oder UDP-Transport gepackt und verwenden das IP-Protokoll in die angegebene Richtung gesendet. Sobald eine logische Verbindung hergestellt ist, wird die Sprache mithilfe des Codecs komprimiert und in RTP gepackt und mithilfe des IP-Protokolls an den Adressaten gesendet.



Versuchen wir nun, die Hauptfrage zu beantworten: Wer kontrolliert das alles? Der Software-Switch, kurz Softswitch, ist das „Gehirn“ der Software-IP-PBX, die die gesamte interne und externe Kommunikation verwaltet. Wir alle hören von Softswitch, jeder hat von Asterisk und Freeswitch gehört. Es gibt bezahlte, es gibt kostenlose, es gibt mit einer grafischen Oberfläche, es gibt ohne.



In Abbildung 1 habe ich ein Blockdiagramm einer Software-IP-PBX dargestellt. Betrachten wir es genauer. Erstens ist es ein Betriebssystem, es muss mit Hardware kompatibel sein, über die erforderlichen Repositorys verfügen und einfach zu bedienen sein. Wir werden nicht über Hardware sprechen, sondern eine Art Server. Basierend auf den Wünschen des Kunden (TOR) wird das „Gehirn“ unserer IP-PBX - Softswitch ausgewählt. Es kann sich um denselben Stern oder Freeswitch oder einen von Hand geschriebenen Softswitch handeln. In der Abbildung habe ich Softswitch und Software getrennt. Tatsächlich kann es sich um eine Anwendung handeln. Dies hängt alles von den Anforderungen des Kunden ab. Sie können einen vorgefertigten, denselben Freeswitch verwenden, ein Programm schreiben, das ihn steuert, und zusätzliche Funktionen implementieren. Mit dem Webserver ist alles klar, wir brauchen eine Schicht zwischen dem http-Client und Softswitch. Nun, und dementsprechend die Datenbank,Wir werden die Konfigurationsdateien nicht ständig neu schreiben. Das Betriebssystem bietet uns eine Arbeitsumgebung. Außerdem müssen zusätzliche Treiber geschrieben werden, wenn Sie FXO- und E1-Karten anschließen möchten.



Bild

Abb. 1: Blockdiagramm einer Software-IP-PBX



Jetzt können Sie ausatmen. Die beschriebene Theorie ist sehr präzise, ​​wird jedoch zum besseren Verständnis des Materials benötigt.



Sipp und StarTrinity SIP Tester



Vor einigen Wochen wurde die Aufgabe gestellt - die Last zu testen, der unsere Software IP-PBX standhalten kann. Nach langem Suchen stieß ich auf einen kostenlosen Sipp-Anrufgenerator und einen kostenpflichtigen StarTrinity-SIP-Tester. Im Folgenden werde ich kurz die Funktionen dieser Anwendungen beschreiben.



Vielleicht beginne ich mit dem einfachsten - mit StarTrinity SIP Tester. Die Anwendung funktioniert nur unter Windows, verfügt über eine Vielzahl von Funktionen, Benutzerregistrierung, fungiert als Registrierungsserver, sendet ausgehende Anrufe mit vielen Parametern, empfängt eingehende Anrufe und sendet die angegebenen Nachrichten. Sie können das Skript sogar selbst schreiben, und die Anwendung hilft Ihnen dabei. Aber alle Funktionen sind das Thema eines separaten Beitrags. Wir brauchen das Grundlegendste für die Arbeit - die Fähigkeit, Anrufe in einem bestimmten Intervall zu senden, ohne RTP zu vergessen. Und jetzt ist das Wichtigste, dass diese Anwendung bezahlt wird, aber die Entwickler bieten auch eine kostenlose, leicht abgespeckte Version an, aber tatsächlich kann sogar eine abgespeckte Version verwendet werden, wenn Sie schlau sind.



Mit der kostenlosen Version können Sie 150 Anrufe tätigen, während 50 Verbindungen gleichzeitig bestehen können. Nach dem Neustart wird der Zähler jedoch zurückgesetzt und Sie können erneut Anrufe senden. Die Abbildungen 2 und 3 zeigen die StarTrinity SIP Tester-Anwendung. Wir können sehen, welche Adresse, an welche Nummer, von wem, welcher Codec, Intervall und andere Informationen über Anrufe. Es ist auch erwähnenswert, dass es eine Weboberfläche gibt und die Möglichkeit, Skripte selbst zu erstellen, aber was mir nicht gefallen hat, ist, dass Sie keine Skripte mit falschen Parametern erstellen können.



Bild

Abbildung 2. Bezahlte Version des StarTrinity SIP-Testers



Bild

Abbildung 3. Kostenlose Version des StarTrinity SIP-Testers



Wenn StarTrinity SIP Tester eine schöne grafische Oberfläche ist, die sofort einsatzbereit ist, dann präsentierte sich Sipp mir als eine Art „Monster“, das heruntergeladen, kompiliert und die erforderlichen Pakete hinzugefügt werden müssen. Aber wie sich herausstellte, sollten Sie keine Angst davor haben. Die Entwickler haben auf der Website eine hervorragende Anleitung hinterlassen, die den Installationsprozess und die Funktionen dieser Anwendung beschreibt. Sie werden Sie sofort warnen, dass das Schreiben von Skripten mehrere Tage dauert. Dies ist jedoch von Vorteil. Sie werden das sip-Protokoll selbst gründlich verstehen und seine Felder untersuchen. Ein paar Worte, es gibt eingebaute Skripte, sie sind die am häufigsten gesendeten und empfangenen, wir suchen immer noch im Internet nach dem Rest, einige Benutzer teilen ihn, aber ich musste mich hinsetzen und die Spezifikationen studieren und meine Skripte schreiben. Sipp ist für Windows und Linux verfügbar, funktioniert jedoch unter Linux stabiler.



Nun zu dem Punkt, es ist teuer, eine Maschine nur für Sipp zuzuweisen, wir nehmen und machen eine virtuelle Maschine, ich benutze VirtualBox unter Ubuntu, ich hatte keine Probleme. Installieren Sie gemäß der Anleitung den Anwendungsordner und starten Sie die Anwendung mit den erforderlichen Schlüsseln.



Bild

Abbildung 4. Sipp-



Anrufgenerator Ich werde die Funktionalität von Sipp nicht beschreiben. Sie ähnelt dem StarTrinity SIP-Tester. Welche Anwendung ist besser? Es gibt keine eindeutige Antwort. Ich bin zu dem Schluss gekommen, dass sie sich perfekt ergänzen.



Belastbarkeitstest



Jetzt wissen wir, was eine Software-IP-PBX ist und wie sie funktioniert. Wir kennen auch die Funktionalität von Anrufgeneratoren.



Auch hier müssen wir beim Testen den Betriebsmodus der IP-PBX-Software verstehen: Proxy-Modus (RTP + -Signalisierung ist Proxy), Halb-Proxy (nur die Signalisierung ist Proxy), Anforderungsumleitung (Nachricht 300). Es hängt davon ab, ob wir in einigen Szenarien RTP aktivieren müssen oder nicht. In Abbildung 5 habe ich mehrere Testfälle skizziert.



Option 1 - Wir testen die Software IP-PBX im Transitmodus. Dazu benötigen wir zwei verschiedene PCs. Wir registrieren jeweils eine Route an der TK-Anlage von einem Sipp / StarTrinity-SIP-Tester, den wir generieren, zu einem anderen Sipp / StarTrinity-SIP-Tester. Ich werde sofort sagen, dass ich mit StarTrinity SIP Tester auf Sipp (oder pro Umdrehung) nicht versucht habe, Anrufe zu generieren, aber theoretisch sollten sie vollständig kompatibel sein.



Option 2 - Wir testen die Software IP-PBX im Transitmodus. Dazu benötigen wir zwei verschiedene PCs. An der TK-Anlage registrieren wir die Route jeweils von einem Sipp / StarTrinity-SIP-Tester, den wir für Asterisk generieren. Für Asterisk verwende ich eine virtuelle VirtualBox-Maschine unter Ubuntu, ich hatte keine Probleme. Schreiben Sie im Asterisk-Wählplan Folgendes:



Bild



Wenn Sie diese Nummer anrufen, antwortet Asterisk und sendet die gesamte empfangene Stimme zurück.



Bild

Abb. 5. Gerätekonfigurationsoptionen für Lasttests



Option 3 - Wir testen die Software IP-PBX im Terminalstationsmodus. Dazu benötigen wir einen PC und IP-Telefone. Wir installieren die automatische Antwort auf den Telefonen. Wir registrieren IP-Telefone an der TK-Anlage von einem Sipp / StarTrinity-SIP-Tester, von dem wir Anrufe generieren.



Option 4 - Wir testen die Software IP-PBX im Terminalstationsmodus. Dazu benötigen wir einen PC und einen analogen TA. Wir richten analoge TAs an der TK-Anlage jeweils von einem Sipp / StarTrinity-SIP-Tester aus, den wir für sie generieren. Soweit ich weiß, bin ich aber selbst nicht auf bestimmte Geräte gestoßen, die an analoge Leitungen angeschlossen sind und beispielsweise so programmiert werden können, dass sie beim Telefonieren den Hörer abheben. Wenn diese Optionen jedoch nicht verfügbar sind, müssen Sie die Röhren manuell abholen.



Das ist natürlich alles in der IP-PBX-Software, schalten Sie die Protokolle ein oder zeigen Sie die Konsole mit Debugging an und sehen Sie sich die aufgetretenen Fehler an. So können Sie die Grenze für Leistung und Ausfall bestimmen. Übrigens: Beratung, Installation von Wireshark, tshark, tcpdump auf der virtuellen Maschine, damit Sie den gesamten Datenverkehr auf Ihrer Schnittstelle in Echtzeit überwachen und analysieren können.



Zusammenfassen



Zusammenfassend haben wir uns oberflächlich mit dem Aufbau einer Software-IP-PBX und den Anrufgeneratoren Sipp und StarTrinity SIP Tester vertraut gemacht und gelernt, wie man die Last simuliert. Wenn Sie darüber nachdenken, können Sie mit diesen Aufrufgeneratoren den gesamten Sip-Stack sicher testen.



Das ist alles für heute, ich warte auf Ihre Kommentare und Bemerkungen. Wenn Sie Ihre Erfahrungen teilen möchten, werde ich mich nur freuen.



LADEN…



Links



1.Sipp sipp.readthedocs.io/de/v3.6.0/#

2.StarTrinity SIP-Tester startrinity.com/VoIP/SipTester/SipTester.aspx

3.Bücher und andere Informationen asterisk.ru/knowledgebase/books



All Articles