Perangkat lunak IP PBX dan pengujian beban

Selamat siang semuanya! Selama beberapa tahun sekarang saya telah berurusan dengan IP telephony dan mulai memperhatikan bahwa meskipun Internet penuh dengan informasi, saya berbicara tidak hanya tentang segmen Rusia, tetapi kadang-kadang Anda dapat menemukan yang Anda perlukan hanya pada "forum yang ditinggalkan", atau tidak sama sekali . Jika ada cukup informasi tentang IP-telephony dan protokol sip itu sendiri, maka tidak ada data tentang bagaimana suatu perangkat lunak IP-PBX dibangun, bagaimana itu diuji dan di-debug karena alasan yang jelas, atau, tetapi ditulis dalam bahasa yang hanya orang yang sudah bertahun-tahun yang dapat memahaminya. bekerja di area ini.



Saya memutuskan untuk mengisi kekosongan ini dan membuat kontribusi saya sendiri, informasi ini akan informatif dan berguna bagi pemula, pengguna yang lebih berpengalaman dapat menekankan sesuatu yang baru untuk diri mereka sendiri, dalam hal apa pun kita semua akan berada dalam kegelapan. Saya punya rencana besar saat ini - untuk menulis serangkaian posting, meringkas pengetahuan saya, untuk alasan yang jelas saya tidak akan mengunggah majelis, mesin virtual, dll. Yang paling penting adalah mengarahkannya, dan walker akan menemukan jalannya.



Mungkin liriknya cukup, mari kita mulai seperti biasa dengan teori. Karena posting ini akan dibaca oleh pengguna dengan berbagai tingkat pengetahuan, saya akan mencoba menjelaskan semuanya dengan singkat dan jelas.



pengantar



Perangkat lunak IP-PBX adalah pertukaran telepon otomatis yang beroperasi berdasarkan protokol IP, "otak" di antaranya adalah perangkat lunak khusus yang mengimplementasikan pengalihan suara (dalam hal ini, paket suara) dan layanan lain yang disediakan untuk pelanggan.



Sekarang, mari kita lihat bagaimana semua ini bekerja, saya akan segera melakukan reservasi secara rinci dan saya tidak akan menjelaskannya, itu akan memakan banyak waktu, dan karena itu akan ada beberapa kesalahan dan kelalaian.



Pelanggan mengangkat telepon dan memasukkan nomor, pensinyalan segera diaktifkan, yang akan mengontrol sesi aliran suara, karena ini ada sejumlah protokol yang dapat dibedakan oleh dua SIP dan H.323. Saat ini SIP telah mendapatkan banyak popularitas dan dalam posting ini akan dipertimbangkan. Lebih lanjut, kami mengasumsikan bahwa menggunakan protokol SIP koneksi logis dibuat antara pelanggan, dan kemudian suara diperlukan.



Pelanggan berbicara ke telepon - suaranya dikodekan menggunakan perangkat lunak atau perangkat keras codec ke dalam serangkaian bit. Codec - algoritma kompresi suara, PCMA paling sederhana dan paling umum. Kemudian bit-bit ini dikirim ke penerima menggunakan protokol RTP.



Untuk meringkas semua hal di atas, kami memiliki protokol SIP yang mengelola sesi komunikasi, termasuk protokol SDP, yang menggambarkan sesi (codec yang digunakan dan tersedia dan informasi lainnya), protokol ini dikemas ke dalam transportasi TCP atau UDP dan menggunakan protokol IP dikirim ke arah yang ditunjukkan. Segera setelah koneksi logis dibuat, suara dikompresi menggunakan codec dan dikemas dalam RTP dan dikirim menggunakan protokol IP ke penerima.



Sekarang mari kita coba menjawab pertanyaan utama: siapa yang mengendalikan semua ini? Peralihan perangkat lunak atau softswitch adalah “otak” dari sebuah perangkat lunak IP-PBX yang mengelola semua interaksi internal dan eksternal. Kita semua mendengar tentang Softswitch, semua orang telah mendengar tentang Asterisk dan Freeswitch. Ada yang berbayar, ada yang gratis, ada yang dengan antarmuka grafis, ada yang tanpa.



Pada Gambar 1, saya telah menggambarkan diagram blok perangkat lunak IP-PBX, mari kita pertimbangkan secara lebih rinci. Pertama-tama, ini adalah sistem operasi (OS), harus kompatibel dengan perangkat keras, memiliki repositori yang diperlukan dan mudah digunakan. Kami tidak akan berbicara tentang perangkat keras, biarkan itu menjadi server. Berdasarkan keinginan pelanggan (TOR), "otak" dari IP-PBX kami - Softswitch dipilih, dapat berupa Asterisk atau Freeswitch yang sama atau Softswitch yang ditulis dengan tangan. Dalam gambar, saya memisahkan Softswitch dan perangkat lunak, pada kenyataannya itu bisa menjadi satu aplikasi, itu semua tergantung pada persyaratan pelanggan, Anda dapat mengambil siap, Freeswitch yang sama, menulis sebuah program yang akan mengelolanya dan juga mengimplementasikan fungsi tambahan. Semuanya jelas dengan server web, kita perlu lapisan antara klien http dan Softswitch. Nah, dan sesuai database,kita tidak akan terus menulis ulang file konfigurasi. OS memberi kita lingkungan kerja, kita juga perlu menulis driver tambahan jika Anda ingin menghubungkan papan FXO dan E1.



gambar

Gambar 1. Blok diagram perangkat lunak IP-PBX



Sekarang Anda dapat bernafas, teori yang dijelaskan sangat kental, tetapi diperlukan untuk pemahaman lebih lanjut tentang materi.



Penguji Sipp dan StarTrinity SIP



Beberapa minggu yang lalu tugas telah ditetapkan - untuk menguji beban yang dapat ditahan oleh perangkat lunak IP-PBX kami. Setelah banyak pencarian, saya menemukan generator panggilan Sipp gratis dan StarTrinity SIP Tester berbayar. Di bawah ini saya akan menjelaskan secara singkat kemampuan aplikasi ini.



Mungkin saya akan mulai dengan hal paling sederhana - StarTrinity SIP Tester. Aplikasi hanya berfungsi di bawah Windows, memiliki sejumlah besar kemungkinan, pendaftaran pengguna, bertindak sebagai server pendaftaran, mengirim panggilan keluar dengan banyak parameter, menerima panggilan masuk dan mengirim pesan yang ditentukan, pada kenyataannya, Anda dapat menulis skrip sendiri dan aplikasi akan membantu Anda dengan ini. Tetapi semua fungsionalitas adalah topik untuk posting terpisah, kami membutuhkan hal yang paling mendasar untuk bekerja - kemampuan untuk mengirim panggilan pada interval tertentu, tanpa melupakan RTP. Dan sekarang yang paling penting adalah aplikasi ini berbayar, tetapi para pengembang juga menyediakan versi gratis yang sedikit stripped-down, tetapi pada kenyataannya bahkan versi stripped-down dapat digunakan jika Anda pintar.



Versi gratisnya memungkinkan Anda melakukan 150 panggilan, sementara ada 50 koneksi simultan.Tetapi setelah reboot, penghitung diatur ulang dan Anda dapat mengirim panggilan lagi.Gambar 2 dan 3 menunjukkan aplikasi StarTrinity SIP Tester, kita dapat melihat di mana alamat, ke nomor mana, dari siapa, apa codec, interval dan informasi panggilan lainnya. Perlu juga dicatat bahwa ada antarmuka Web dan kemampuan untuk membuat skrip sendiri, tetapi yang saya tidak suka adalah bahwa Anda tidak dapat membuat skrip dengan parameter yang salah.



gambar

Gambar 2. Versi berbayar StarTrinity SIP Tester



gambar

Gambar 3. Versi gratis StarTrinity SIP Tester



Jika StarTrinity SIP Tester adalah antarmuka grafis yang indah yang siap bekerja di luar kotak, maka Sipp menampilkan dirinya kepada saya sebagai semacam "monster" yang perlu diunduh, dikompilasi, dan paket yang diperlukan ditambahkan. Tetapi ternyata, ini tidak perlu ditakuti, para pengembang telah meninggalkan panduan yang sangat baik di situs yang menggambarkan proses instalasi dan kemampuan aplikasi ini. Mereka akan segera memperingatkan Anda bahwa dibutuhkan beberapa hari untuk mempelajari cara menulis skrip, tetapi ini merupakan nilai tambah, Anda akan sepenuhnya memahami protokol sip itu sendiri dan memeriksa bidangnya. Beberapa kata, ada skrip bawaan, mereka mengirim dan menerima panggilan paling umum, kami masih mencari sisanya di Internet, beberapa pengguna berbagi, tetapi saya harus duduk untuk mempelajari spesifikasi dan menulis skrip saya. Sipp tersedia untuk Windows dan Linux, tetapi bekerja lebih stabil di Linux.



Sekarang to the point, mahal untuk mengalokasikan mesin hanya untuk Sipp, kami mengambil dan membuat mesin virtual, saya menggunakan VirtualBox di Ubuntu, saya tidak punya masalah. Dipasang sesuai dengan panduan ini, buka folder aplikasi dan luncurkan aplikasi dengan tombol yang diperlukan.



gambar

Gambar 4. Sipp call generator



Saya tidak akan menjelaskan fungsionalitas Sipp, ini mirip dengan StarTrinity SIP Tester, aplikasi mana yang lebih baik, tidak ada jawaban yang pasti, saya sampai pada kesimpulan bahwa mereka saling melengkapi dengan sempurna.



Pengujian Stres



Sekarang kita tahu apa perangkat lunak IP-PBX itu dan bagaimana cara kerjanya, kita juga tahu fungsi generator panggilan.



Sekali lagi, saat pengujian, kita harus memahami mode operasi perangkat lunak IP-PBX: mode proxy (pensinyalan RTP + diproksi), semi-proxy (hanya pensinyalan diproksi), meminta pengalihan (pesan 300). Itu akan tergantung pada apakah kita perlu mengaktifkan RTP dalam beberapa skenario atau tidak. Pada Gambar 5, saya membuat sketsa beberapa opsi pengujian.



Opsi 1 - kami menguji perangkat lunak IP-PBX dalam mode transit, untuk ini kami membutuhkan dua PC yang berbeda. Pada PBX, kami masing-masing mendaftarkan rute, dari satu SIP / StarTrinity SIP Tester, kami membuat panggilan ke SIP / StarTrinity SIP Tester lainnya. Saya harus segera mengatakan bahwa saya tidak mencoba membuat panggilan dengan StarTrinity SIP Tester di Sipp (atau per revolusi), tetapi murni dalam teori mereka harus sepenuhnya kompatibel.



Opsi 2 - kami menguji perangkat lunak IP-PBX dalam mode transit, untuk ini kami membutuhkan dua PC yang berbeda. Kami masing-masing mendaftarkan rute pada PBX, dari satu Sipp / StarTrinity SIP Tester yang kami hasilkan panggilan ke Asterisk. Untuk Asterisk, saya menggunakan mesin virtual VirtualBox di Ubuntu, saya tidak punya masalah. Di dialplan Asterisk, tulis yang berikut ini:



gambar



Saat Anda memanggil nomor ini, Asterisk menjawab dan mengirim kembali semua suara yang diterima.



gambar

Gambar 5. Varian konfigurasi peralatan untuk pengujian beban



Opsi 3 - kami menguji perangkat lunak IP-PBX dalam mode terminal station, untuk ini kami memerlukan satu PC dan telepon IP, kami memasang jawab-otomatis pada telepon. Kami mendaftarkan telepon IP di PBX, masing-masing, dari satu Sipp / StarTrinity SIP Tester yang kami hasilkan dari mereka.



Opsi 4 - kami menguji perangkat lunak IP-PBX dalam mode terminal station, untuk ini kami membutuhkan satu PC dan TA analog. Kami mengatur TA analog pada PBX, masing-masing, dari satu SIP / StarTrinity SIP Tester yang kami hasilkan panggilannya. Sejauh yang saya tahu, tetapi saya sendiri belum menemukan perangkat tertentu yang terhubung ke saluran analog dan dapat diprogram, misalnya, untuk mengangkat telepon saat menelepon, tetapi jika opsi ini tidak tersedia, Anda harus mengambil tabung secara manual.



Itu saja, tentu saja, pada perangkat lunak IP-PBX kita menyalakan log, atau menampilkan konsol dengan debugging dan melihat kesalahan yang telah terjadi. Ini adalah bagaimana batas kinerja dan kegagalan dapat ditentukan. Ngomong-ngomong, saran, instal Wireshark, tshark, tcpdump pada mesin virtual, sehingga Anda dapat memantau dan menganalisis semua lalu lintas di antarmuka Anda secara real time.



Meringkas



Untuk meringkas, kita telah secara dangkal berkenalan dengan pembangunan perangkat lunak IP-PBX dan generator panggilan SIP dan StarTrinity SIP Tester dan belajar bagaimana mensimulasikan beban. Jika Anda memikirkannya, Anda dapat dengan aman menguji seluruh tumpukan Sip dengan generator panggilan ini.



Itu saja untuk hari ini, saya menunggu komentar dan komentar Anda, jika Anda ingin berbagi pengalaman, saya hanya akan senang.



LOADING ...



Tautan



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

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

3.Buku dan informasi lainnya asterisk.ru/knowledgebase/books



All Articles