Logiciel PBX IP et tests de charge

Bonne journée tout le monde! Depuis plusieurs années maintenant, je suis engagé dans la téléphonie IP et j'ai commencé à remarquer que bien qu'Internet regorge d'informations, je ne parle pas seulement du segment russe, mais parfois vous pouvez trouver celui dont vous avez besoin uniquement sur un "forum abandonné", ou ce n'est pas du tout ... S'il y a beaucoup d'informations sur la téléphonie IP et le protocole SIP lui-même, alors il n'y a pas de données sur la façon dont le logiciel IP-PBX est construit, comment il est testé et débogué, ou c'est le cas, mais écrit dans un langage tel que seule une personne âgée de plusieurs années peut comprendre travaille dans ce domaine.



J'ai décidé de combler ces lacunes et d'apporter ma propre contribution, ces informations seront informatives et utiles pour les débutants, les utilisateurs plus expérimentés pourront mettre l'accent sur quelque chose de nouveau pour eux-mêmes, en tout cas nous serons tous dans le noir. J'ai de grands projets en ce moment - écrire une série d'articles, résumant mes connaissances, pour des raisons évidentes je ne téléchargerai pas d'assemblages, de machines virtuelles, etc. Le plus important est de le diriger, et le marcheur trouvera son chemin.



Peut-être assez de paroles, commençons comme toujours par la théorie. Étant donné que ce message sera lu par des utilisateurs ayant différents niveaux de connaissances, je vais essayer de tout expliquer brièvement et clairement.



introduction



Un logiciel IP-PBX est un central téléphonique fonctionnant sur la base du protocole IP, dont le «cerveau» est un logiciel spécial qui met en œuvre la commutation vocale (dans ce cas, les paquets vocaux) et d'autres services fournis aux abonnés.



Voyons maintenant comment tout cela fonctionne, je vais immédiatement faire une réservation en détail, je ne la prendrai pas, cela prendra beaucoup de temps, et il y aura donc des erreurs et des omissions.



L'abonné décroche le téléphone et entre le numéro, une alarme est activée immédiatement, qui contrôlera la session de transmission du flux vocal, pour cela, il existe un certain nombre de protocoles à partir desquels deux SIP et H.323 peuvent être distingués. Pour le moment, SIP a acquis une grande popularité et dans ce post, il sera pris en compte. En outre, nous supposons que l'utilisation du protocole SIP une connexion logique a été établie entre les abonnés, puis une voix est nécessaire.



L'abonné parle dans le téléphone - sa voix est codée à l'aide d'un codec logiciel ou matériel en un ensemble de bits. Codec est un algorithme de compression de voix, le PCMA le plus simple et le plus courant. Ensuite, ces bits sont envoyés au destinataire en utilisant le protocole RTP.



Pour résumer tout ce qui précède, nous avons le protocole SIP qui contrôle la session de communication, il inclut le protocole SDP, qui décrit la session (codecs utilisés et disponibles et autres informations), ces protocoles sont emballés dans le transport TCP ou UDP et utilisant IP envoyé dans la direction spécifiée. Dès qu'une connexion logique est établie, la voix est compressée à l'aide du codec et emballée en RTP et envoyée au destinataire à l'aide du protocole IP.



Essayons maintenant de répondre à la question principale, qui contrôle tout cela? Le commutateur logiciel ou softswitch en abrégé est le «cerveau» d'un IP-PBX logiciel qui gère toutes les interactions internes et externes. Nous entendons tous parler de Softswitch, tout le monde a entendu parler d'Asterisk et de Freeswitch. Il y en a des payants, il y en a des gratuits, il y en a avec une interface graphique, il y en a sans.



Dans la figure 1, j'ai représenté un schéma de principe d'un IP-PBX logiciel, considérons-le plus en détail. Tout d'abord, c'est un système d'exploitation (OS), il doit être compatible avec le matériel, avoir les référentiels nécessaires et être facile à utiliser. Nous ne parlerons pas de matériel, que ce soit une sorte de serveur. Sur la base des souhaits du client (TOR), le «cerveau» de notre IP-PBX - Softswitch est sélectionné, il peut s'agir du même Asterisk ou Freeswitch ou d'un Softswitch écrit à la main. Dans la figure, j'ai divisé Softswitch et logiciel, en fait cela peut être une application, tout dépend des exigences du client, vous pouvez prendre un prêt à l'emploi, le même Freeswitch, écrire un programme qui le gérera et implémentera également des fonctionnalités supplémentaires. Tout est clair avec le serveur web, nous avons besoin d'une couche entre le client http et le Softswitch. Eh bien, et en conséquence la base de données,nous n'allons pas réécrire constamment les fichiers de configuration. Le système d'exploitation nous donne un environnement de travail, il est également nécessaire d'écrire des pilotes supplémentaires si vous souhaitez connecter des cartes FXO et E1.



image

Fig 1. Schéma de principe d'un logiciel IP-PBX



Vous pouvez maintenant expirer, la théorie décrite est très compressée, mais elle est nécessaire pour une meilleure compréhension du matériel.



Testeur SIP Sipp et StarTrinity



Il y a quelques semaines, la tâche était fixée: tester la charge que notre logiciel IP-PBX peut supporter. Après de nombreuses recherches, je suis tombé sur un générateur d'appels Sipp gratuit et un testeur StarTrinity SIP payant. Ci-dessous, je décrirai brièvement les capacités de ces applications.



Je vais peut-être commencer par le plus simple - avec StarTrinity SIP Tester. L'application ne fonctionne que sous Windows, a un grand nombre de possibilités, l'enregistrement des utilisateurs, agit comme un serveur d'enregistrement, envoie des appels sortants avec de nombreux paramètres, reçoit des appels entrants et envoie des messages spécifiés, en fait, vous pouvez écrire le script vous-même et l'application vous aidera avec cela. Mais toutes les fonctionnalités font l'objet d'un article séparé, nous avons besoin de la chose la plus élémentaire pour le travail - la possibilité d'envoyer des appels à un intervalle donné, sans oublier RTP. Et maintenant, le plus important est que cette application soit payante, mais les développeurs proposent également une version gratuite et légèrement allégée, mais en fait, même une version allégée peut être utilisée si vous êtes intelligent.



La version gratuite vous permet de passer 150 appels, alors qu'il peut y avoir 50 connexions simultanées. Mais après le redémarrage, le compteur est remis à zéro et vous pouvez renvoyer des appels. Les figures 2 et 3 montrent l'application StarTrinity SIP Tester, nous pouvons voir à quelle adresse, à quel numéro, de qui, quel codec, intervalle et autres informations d'appel. Il est également intéressant de noter qu'il existe une interface Web et la possibilité de créer des scripts vous-même, mais ce que je n'ai pas aimé, c'est que vous ne pouvez pas créer de scripts avec des paramètres incorrects.



image

Fig 2. Version payante de StarTrinity SIP Tester



image

Fig 3. Version gratuite de StarTrinity SIP Tester



Si StarTrinity SIP Tester est une belle interface graphique prête à fonctionner, alors Sipp s'est présenté à moi comme une sorte de «monstre» qui doit être téléchargé, compilé et les packages nécessaires ajoutés. Mais il s'est avéré que cela ne devrait pas être craint, les développeurs ont laissé sur le site un excellent guide décrivant le processus d'installation et les capacités de cette application. Ils vous avertissent immédiatement qu'il faut plusieurs jours pour apprendre à écrire des scripts, mais c'est un plus, vous comprendrez parfaitement le protocole sip lui-même et examinerez ses champs. Quelques mots, il y a des scripts intégrés, ils ont envoyé et accepté les appels les plus courants, nous recherchons toujours le reste sur Internet, certains utilisateurs partagent, mais j'ai dû m'asseoir pour étudier les spécifications et écrire mes scripts. Sipp est disponible sous Windows et Linux, mais il fonctionne de manière plus stable sous Linux.



Maintenant, au point, allouer une machine uniquement pour Sipp coûte cher, nous prenons et faisons une machine virtuelle, j'utilise VirtualBox sous Ubuntu, je n'ai aucun problème. Installé conformément au guide, accédez au dossier de l'application et lancez l'application avec les clés nécessaires.



image

Fig 4. Générateur d'appels Sipp



Je ne décrirai pas la fonctionnalité Sipp, il est similaire à StarTrinity SIP Tester, quelle application est meilleure, il n'y a pas de réponse définitive, je suis arrivé à la conclusion qu'ils se complètent parfaitement.



Test de stress



Maintenant que nous savons ce qu'est un logiciel IP-PBX et comment il fonctionne, nous connaissons également la fonctionnalité des générateurs d'appels.



Encore une fois, lors des tests, il faut comprendre le mode de fonctionnement du logiciel IP-PBX: mode proxy (la signalisation RTP + est proxy), demi-proxy (seule la signalisation est proxy), redirection de demande (message 300). Cela déterminera si nous devons activer RTP dans certains scénarios ou non. Dans la figure 5, j'ai esquissé plusieurs cas de test.



Option 1 - nous testons le logiciel IP-PBX en mode transit, pour cela nous avons besoin de deux PC différents. Sur le PBX, nous enregistrons une route, respectivement, à partir d'un testeur SIP Sipp / StarTrinity, nous générons des appels vers un autre testeur SIP Sipp / StarTrinity. Je vais vous dire tout de suite avec StarTrinity SIP Tester sur Sipp (ou vice versa) je n'ai pas essayé de générer des appels, mais purement en théorie, ils devraient être entièrement compatibles.



Option 2 - nous testons le logiciel IP-PBX en mode transit, pour cela nous avons besoin de deux PC différents. Nous enregistrons une route sur le PBX, respectivement, à partir d'un testeur SIP Sipp / StarTrinity, nous générons des appels vers Asterisk. Pour Asterisk, j'utilise une machine virtuelle VirtualBox sous Ubuntu, je n'ai eu aucun problème. Dans le plan de numérotation Asterisk, écrivez ce qui suit:



image



Lorsque vous appelez ce numéro, Asterisk répond et renvoie toute la voix reçue.



image

Fig 5. Options de configuration de l'équipement pour le test de charge



Option 3 - nous testons le logiciel IP-PBX en mode terminal, pour cela nous avons besoin d'un PC et de téléphones IP, nous installons la réponse automatique sur les téléphones. Nous enregistrons les téléphones IP sur le PBX, respectivement, à partir d'un testeur SIP Sipp / StarTrinity, nous générons des appels vers eux.



Option 4 - nous testons le logiciel IP-PBX en mode terminal, pour cela nous avons besoin d'un PC et d'un TA analogique. Sur le PBX, nous prescrivons respectivement une TA analogique à partir d'un testeur SIP Sipp / StarTrinity, nous générons des appels vers eux. Pour autant que je sache, mais je n'ai moi-même pas rencontré certains appareils connectés à des lignes analogiques et pouvant être programmés, par exemple, pour décrocher le téléphone lors d'un appel, mais si ces options ne sont pas disponibles, vous devrez prendre manuellement les tubes.



C'est tout, bien sûr, nous activons les journaux sur le logiciel IP-PBX, ou affichons la console avec le débogage et regardons les erreurs qui se sont produites. C'est ainsi que les limites de performance et de défaillance peuvent être déterminées. Au fait, conseils, installez Wireshark, tshark, tcpdump sur la machine virtuelle, afin de pouvoir surveiller et analyser tout le trafic sur votre interface en temps réel.



Résumer



Pour résumer, nous nous sommes familiarisés superficiellement avec la construction d'un logiciel IP-PBX et les générateurs d'appels Sipp et StarTrinity SIP Tester et avons appris à simuler la charge. Si vous y réfléchissez, vous pouvez tester en toute sécurité l'ensemble de la pile Sip avec ces générateurs d'appels.



C'est tout pour aujourd'hui, j'attends vos commentaires et remarques, si vous souhaitez partager votre expérience, je n'en serai que ravi.



COURS DE CHARGEMENT ...



Liens



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

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

3.Books et d' autres informations asterisk.ru/knowledgebase/books



All Articles